diff --git a/DEPS b/DEPS index 533b50e..d4efff5 100644 --- a/DEPS +++ b/DEPS
@@ -195,11 +195,11 @@ # 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': '03cde5f9997d47458c022c29e72b90d5933100f2', + 'skia_revision': '398ecf1876f13ffb7911fbf5b800cca8d4e8f90c', # 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': 'e23bb2ed80db350d79d5c669743cd6690ebe556d', + 'v8_revision': '1f2195b49c6d7611165ebd149b2825f27693930c', # Three lines of non-changing comments so that # the commit queue can handle CLs rolling swarming_client # and whatever else without interference from each other. @@ -207,11 +207,11 @@ # 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': 'bc993b2771f96ff99709ba2af20c7a4e0873fb2c', + 'angle_revision': '3d1609516687c6040bcfaa2ba94454f102076171', # Three lines of non-changing comments so that # the commit queue can handle CLs rolling SwiftShader # and whatever else without interference from each other. - 'swiftshader_revision': '622558b02e1a5441c579994831a6338ffaf2de5c', + 'swiftshader_revision': '1f48854dae26a2d129ae771e671a2172acb2da86', # Three lines of non-changing comments so that # the commit queue can handle CLs rolling PDFium # and whatever else without interference from each other. @@ -258,7 +258,7 @@ # Three lines of non-changing comments so that # the commit queue can handle CLs rolling catapult # and whatever else without interference from each other. - 'catapult_revision': 'a54f10f750bafacf529adeec3b9b889409246acb', + 'catapult_revision': '8178c8db633526170c98908ecd6ea7db3cdd7bab', # Three lines of non-changing comments so that # the commit queue can handle CLs rolling libFuzzer # and whatever else without interference from each other. @@ -266,7 +266,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': 'fb9ee39c41d43eaabc990658bbc46e1085da8931', + 'devtools_frontend_revision': '661b3a4411c6258802a13351cafa2e453b7de4c1', # 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. @@ -318,7 +318,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': '4f8bdaf473fb7c95ab0c4f6da72f93601a00e019', + 'dawn_revision': '320c6c87b2ed980d4c7622230976d40ad0fc54a1', # Three lines of non-changing comments so that # the commit queue can handle CLs rolling feed # and whatever else without interference from each other. @@ -545,7 +545,7 @@ }, 'src/ios/third_party/material_components_ios/src': { - 'url': Var('chromium_git') + '/external/github.com/material-components/material-components-ios.git' + '@' + 'a278ec6b07b8323dfe735064323f3aafe43ef9ce', + 'url': Var('chromium_git') + '/external/github.com/material-components/material-components-ios.git' + '@' + '68450098ecb0cd7f117603edb0ede50ce3438c81', 'condition': 'checkout_ios', }, @@ -669,7 +669,7 @@ 'packages': [ { 'package': 'chromium/third_party/android_protoc', - 'version': 'jtrjlp1zR2hubDA9R5NKk4GwXfuuRhoXts7tgjevxDMC', + 'version': 'sLsJWojddBL2u8NYwNh6pJsqp_bL1ttmYIlBnhiIQ1QC', }, ], 'condition': 'checkout_android', @@ -873,9 +873,10 @@ 'dep_type': 'cipd', }, - # Build tools for Chrome OS. + # Tools used when building Chrome for Chrome OS. This affects both the Simple + # Chrome workflow, as well as the chromeos-chrome ebuild. 'src/third_party/chromite': { - 'url': Var('chromium_git') + '/chromiumos/chromite.git' + '@' + '7f786caa5d60e1feec3af7913f47e632440b07da', + 'url': Var('chromium_git') + '/chromiumos/chromite.git' + '@' + '09ec5ae5729e3938a5e66e5976c61a5ef5757346', 'condition': 'checkout_chromeos', }, @@ -895,7 +896,7 @@ }, 'src/third_party/depot_tools': - Var('chromium_git') + '/chromium/tools/depot_tools.git' + '@' + 'c6aa15118046ed881094f1d97061bdb92ba7a149', + Var('chromium_git') + '/chromium/tools/depot_tools.git' + '@' + 'e7f2169b3665555121389754010b19882b563f1b', 'src/third_party/devtools-frontend/src': Var('chromium_git') + '/devtools/devtools-frontend' + '@' + Var('devtools_frontend_revision'), @@ -946,7 +947,7 @@ Var('chromium_git') + '/codecs/libgav1.git' + '@' + 'e46493b9148e0d1e63f55b5890bff503822616e5', 'src/third_party/glslang/src': - Var('chromium_git') + '/external/github.com/KhronosGroup/glslang.git' + '@' + '983698bb34ecfbf8a172a59ee4edc2ab7bdfa3b8', + Var('chromium_git') + '/external/github.com/KhronosGroup/glslang.git' + '@' + '517f39eee46f27c83527117d831c4d7e2f7c9fe3', 'src/third_party/google_toolbox_for_mac/src': { 'url': Var('chromium_git') + '/external/github.com/google/google-toolbox-for-mac.git' + '@' + Var('google_toolbox_for_mac_revision'), @@ -1248,7 +1249,7 @@ }, 'src/third_party/perfetto': - Var('android_git') + '/platform/external/perfetto.git' + '@' + '0fdfdcf61cd436faf7cf9b8be2596df9c6ca6010', + Var('android_git') + '/platform/external/perfetto.git' + '@' + 'ced41e1f394dc71e63fd979d50c2fe0e507f2fbe', 'src/third_party/perl': { 'url': Var('chromium_git') + '/chromium/deps/perl.git' + '@' + '6f3e5028eb65d0b4c5fdd792106ac4c84eee1eb3', @@ -1470,7 +1471,7 @@ }, 'src/third_party/webrtc': - Var('webrtc_git') + '/src.git' + '@' + '91c0477b4332b9e7880ce48332b1f77d5255a839', + Var('webrtc_git') + '/src.git' + '@' + 'c75c4280763435eeb44785dfc76f098bf06743bb', 'src/third_party/libgifcodec': Var('skia_git') + '/libgifcodec' + '@'+ Var('libgifcodec_revision'), @@ -1542,7 +1543,7 @@ Var('chromium_git') + '/v8/v8.git' + '@' + Var('v8_revision'), 'src-internal': { - 'url': 'https://chrome-internal.googlesource.com/chrome/src-internal.git@95c5b87ad1a3f0580740f58c6384e34a12077cc6', + 'url': 'https://chrome-internal.googlesource.com/chrome/src-internal.git@53daab94768a1972d367c5390ece7305b9fe4526', 'condition': 'checkout_src_internal', }, @@ -3449,7 +3450,7 @@ 'packages': [ { 'package': 'chromium/third_party/android_deps/libs/com_google_protobuf_protobuf_javalite', - 'version': 'version:3.12.2-cr0', + 'version': 'version:3.13.0-cr0', }, ], 'condition': 'checkout_android',
diff --git a/android_webview/javatests/src/org/chromium/android_webview/test/devui/DeveloperUiTestUtils.java b/android_webview/javatests/src/org/chromium/android_webview/test/devui/DeveloperUiTestUtils.java index d4d0f80..613747848 100644 --- a/android_webview/javatests/src/org/chromium/android_webview/test/devui/DeveloperUiTestUtils.java +++ b/android_webview/javatests/src/org/chromium/android_webview/test/devui/DeveloperUiTestUtils.java
@@ -9,9 +9,7 @@ import android.content.ClipboardManager; import android.content.Context; import android.view.View; -import android.widget.LinearLayout; import android.widget.ListView; -import android.widget.TextView; import org.hamcrest.Description; import org.hamcrest.Matcher; @@ -56,76 +54,6 @@ return withCount(is(itemCount)); } - /** - * Matches a view that has this layout - * android_webview/nonembedded/java/res_devui/layout/two_line_list_item.xml and has the given - * title. - */ - public static Matcher<View> withTitle(final Matcher<String> stringMatcher) { - return new TypeSafeMatcher<View>() { - @Override - public boolean matchesSafely(View view) { - if (!(view instanceof LinearLayout)) { - return false; - } - TextView textView = (TextView) view.findViewById(android.R.id.text1); - // Make sure only the immediate parent View is matched. - return textView != null && textView.getParent() == view - && stringMatcher.matches(textView.getText()); - } - - @Override - public void describeTo(Description description) { - description.appendText("with title: "); - stringMatcher.describeTo(description); - } - }; - } - - /** - * Matches a view that has this layout - * android_webview/nonembedded/java/res_devui/layout/two_line_list_item.xml and has the given - * title. - */ - public static Matcher<View> withTitle(String title) { - return withTitle(is(title)); - } - - /** - * Matches a view that has this layout - * android_webview/nonembedded/java/res_devui/layout/two_line_list_item.xml and has the given - * subtitle. - */ - public static Matcher<View> withSubtitle(final Matcher<String> stringMatcher) { - return new TypeSafeMatcher<View>() { - @Override - public boolean matchesSafely(View view) { - if (!(view instanceof LinearLayout)) { - return false; - } - TextView textView = (TextView) view.findViewById(android.R.id.text2); - // Make sure only the immediate parent View is matched. - return textView != null && textView.getParent() == view - && stringMatcher.matches(textView.getText()); - } - - @Override - public void describeTo(Description description) { - description.appendText("with subtitle: "); - stringMatcher.describeTo(description); - } - }; - } - - /** - * Matches a view that has this layout - * android_webview/nonembedded/java/res_devui/layout/two_line_list_item.xml and has the given - * subtitle. - */ - public static Matcher<View> withSubtitle(String subtitle) { - return withSubtitle(is(subtitle)); - } - public static String getClipBoardTextOnUiThread(Context context) throws ExecutionException { // ClipManager service has to be called on the UI main thread. return TestThreadUtils.runOnUiThreadBlocking(() -> {
diff --git a/android_webview/javatests/src/org/chromium/android_webview/test/devui/HomeFragmentTest.java b/android_webview/javatests/src/org/chromium/android_webview/test/devui/HomeFragmentTest.java index e2af805..4c2a5dd 100644 --- a/android_webview/javatests/src/org/chromium/android_webview/test/devui/HomeFragmentTest.java +++ b/android_webview/javatests/src/org/chromium/android_webview/test/devui/HomeFragmentTest.java
@@ -4,21 +4,20 @@ package org.chromium.android_webview.test.devui; +import static androidx.test.espresso.Espresso.onData; import static androidx.test.espresso.Espresso.onView; import static androidx.test.espresso.action.ViewActions.longClick; -import static androidx.test.espresso.assertion.ViewAssertions.doesNotExist; import static androidx.test.espresso.assertion.ViewAssertions.matches; import static androidx.test.espresso.matcher.ViewMatchers.withId; import static androidx.test.espresso.matcher.ViewMatchers.withText; import static org.hamcrest.MatcherAssert.assertThat; +import static org.hamcrest.Matchers.anything; import static org.hamcrest.Matchers.equalTo; import static org.hamcrest.Matchers.is; import static org.chromium.android_webview.test.devui.DeveloperUiTestUtils.getClipBoardTextOnUiThread; import static org.chromium.android_webview.test.devui.DeveloperUiTestUtils.withCount; -import static org.chromium.android_webview.test.devui.DeveloperUiTestUtils.withSubtitle; -import static org.chromium.android_webview.test.devui.DeveloperUiTestUtils.withTitle; import android.content.Context; import android.content.Intent; @@ -74,14 +73,25 @@ String expectedWebViewPackageInfo = String.format(Locale.US, "%s (%s/%s)", currentWebViewPackage.packageName, currentWebViewPackage.versionName, currentWebViewPackage.versionCode); - onView(withTitle("WebView package")) - .check(matches(withSubtitle(expectedWebViewPackageInfo))); - - onView(withTitle("DevTools package")).check(doesNotExist()); + onData(anything()) + .atPosition(0) + .onChildView(withId(android.R.id.text1)) + .check(matches(withText("WebView package"))); + onData(anything()) + .atPosition(0) + .onChildView(withId(android.R.id.text2)) + .check(matches(withText(expectedWebViewPackageInfo))); String expectedDeviceInfo = String.format(Locale.US, "%s - %s", Build.MODEL, Build.FINGERPRINT); - onView(withTitle("Device info")).check(matches(withSubtitle(expectedDeviceInfo))); + onData(anything()) + .atPosition(1) + .onChildView(withId(android.R.id.text1)) + .check(matches(withText("Device info"))); + onData(anything()) + .atPosition(1) + .onChildView(withId(android.R.id.text2)) + .check(matches(withText(expectedDeviceInfo))); } @Test @@ -105,17 +115,37 @@ String expectedWebViewPackageInfo = String.format(Locale.US, "%s (%s/%s)", dummyTestPackage.packageName, dummyTestPackage.versionName, dummyTestPackage.versionCode); - onView(withTitle("WebView package")) - .check(matches(withSubtitle(expectedWebViewPackageInfo))); + onData(anything()) + .atPosition(0) + .onChildView(withId(android.R.id.text1)) + .check(matches(withText("WebView package"))); + onData(anything()) + .atPosition(0) + .onChildView(withId(android.R.id.text2)) + .check(matches(withText(expectedWebViewPackageInfo))); PackageInfo devUiPackage = WebViewPackageHelper.getContextPackageInfo(context); String expectedDevUiInfo = String.format(Locale.US, "%s (%s/%s)", devUiPackage.packageName, devUiPackage.versionName, devUiPackage.versionCode); - onView(withTitle("DevTools package")).check(matches(withSubtitle(expectedDevUiInfo))); + onData(anything()) + .atPosition(1) + .onChildView(withId(android.R.id.text1)) + .check(matches(withText("DevTools package"))); + onData(anything()) + .atPosition(1) + .onChildView(withId(android.R.id.text2)) + .check(matches(withText(expectedDevUiInfo))); String expectedDeviceInfo = String.format(Locale.US, "%s - %s", Build.MODEL, Build.FINGERPRINT); - onView(withTitle("Device info")).check(matches(withSubtitle(expectedDeviceInfo))); + onData(anything()) + .atPosition(2) + .onChildView(withId(android.R.id.text1)) + .check(matches(withText("Device info"))); + onData(anything()) + .atPosition(2) + .onChildView(withId(android.R.id.text2)) + .check(matches(withText(expectedDeviceInfo))); } @Test
diff --git a/android_webview/nonembedded/BUILD.gn b/android_webview/nonembedded/BUILD.gn index e9792e0d..db797aec 100644 --- a/android_webview/nonembedded/BUILD.gn +++ b/android_webview/nonembedded/BUILD.gn
@@ -190,6 +190,7 @@ variables = trichrome_jinja_variables + _webview_jinja_variables if (android_64bit_target_cpu) { variables += [ + "use32bitAbi=", "library=libmonochrome_64.so", "trichrome_version=$trichrome_64_32_version_code", ]
diff --git a/android_webview/tools/system_webview_shell/BUILD.gn b/android_webview/tools/system_webview_shell/BUILD.gn index 24c0e90..e6008ff 100644 --- a/android_webview/tools/system_webview_shell/BUILD.gn +++ b/android_webview/tools/system_webview_shell/BUILD.gn
@@ -29,6 +29,16 @@ android_apk("system_webview_shell_apk") { apk_name = "SystemWebViewShell" + android_manifest = system_webview_shell_android_manifest + android_manifest_dep = ":system_webview_shell_manifest" + deps = [ + ":system_webview_shell_apk_java", + ":system_webview_shell_apk_resources", + ] +} + +android_library("system_webview_shell_apk_java") { + testonly = true sources = [ "apk/src/org/chromium/webview_shell/JankActivity.java", "apk/src/org/chromium/webview_shell/PageCyclerTestActivity.java", @@ -46,8 +56,6 @@ "apk/src/org/chromium/webview_shell/WebViewTracingActivity.java", "apk/src/org/chromium/webview_shell/WebViewWithClipPath.java", ] - android_manifest = system_webview_shell_android_manifest - android_manifest_dep = ":system_webview_shell_manifest" deps = [ ":system_webview_shell_apk_resources", "//base:base_java", @@ -58,6 +66,7 @@ "//third_party/android_deps:androidx_webkit_webkit_java", "//third_party/guava:guava_android_java", ] + resources_package = "org.chromium.webview_shell" } jinja_template("system_webview_shell_manifest") { @@ -95,6 +104,7 @@ android_manifest = "page_cycler/AndroidManifest.xml" sources = [ "page_cycler/src/org/chromium/webview_shell/page_cycler/PageCyclerTest.java" ] deps = [ + ":system_webview_shell_apk_java", "//base:base_java", "//base:base_java_test_support", "//content/public/android:content_java", @@ -117,6 +127,7 @@ "layout_tests/src/org/chromium/webview_shell/test/WebViewThreadTest.java", ] deps = [ + ":system_webview_shell_apk_java", "//base:base_java", "//base:base_java_test_support", "//testing/android/reporter:reporter_java",
diff --git a/android_webview/tools/system_webview_shell/apk/src/org/chromium/webview_shell/WebViewAnimationTestActivity.java b/android_webview/tools/system_webview_shell/apk/src/org/chromium/webview_shell/WebViewAnimationTestActivity.java index c539dab..ff10c24f 100644 --- a/android_webview/tools/system_webview_shell/apk/src/org/chromium/webview_shell/WebViewAnimationTestActivity.java +++ b/android_webview/tools/system_webview_shell/apk/src/org/chromium/webview_shell/WebViewAnimationTestActivity.java
@@ -82,16 +82,13 @@ mWebView.setBackgroundColor(0); mWebView.loadDataWithBaseURL("http://foo.bar", HTML, "text/html", null, "http://foo.bar"); OnClickListener onClickListner = (View v) -> { - switch (v.getId()) { - case R.id.translate: - runTranslate(); - break; - case R.id.scale: - runScale(); - break; - case R.id.rotate: - runRotate(); - break; + int viewId = v.getId(); + if (viewId == R.id.translate) { + runTranslate(); + } else if (viewId == R.id.scale) { + runScale(); + } else if (viewId == R.id.rotate) { + runRotate(); } }; findViewById(R.id.scale).setOnClickListener(onClickListner); @@ -101,10 +98,8 @@ .setOnSeekBarChangeListener(new OnSeekBarChangeListener() { @Override public void onProgressChanged(SeekBar view, int progress, boolean fromUser) { - switch (view.getId()) { - case R.id.view_alpha: - mWebView.setAlpha(progress / 100f); - break; + if (view.getId() == R.id.view_alpha) { + mWebView.setAlpha(progress / 100f); } }
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 090bfc08..e265af68 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
@@ -574,77 +574,74 @@ @Override public boolean onOptionsItemSelected(MenuItem item) { - switch(item.getItemId()) { - case R.id.menu_reset_webview: - if (mWebView != null) { - ViewGroup container = getContainer(); - container.removeView(mWebView); - mWebView.destroy(); - mWebView = null; - } - createAndInitializeWebView(); - return true; - case R.id.menu_clear_cache: - if (mWebView != null) { - mWebView.clearCache(true); - } - return true; - case R.id.menu_enable_tracing: - mEnableTracing = !mEnableTracing; - item.setChecked(mEnableTracing); + int itemId = item.getItemId(); + if (itemId == R.id.menu_reset_webview) { + if (mWebView != null) { + ViewGroup container = getContainer(); + container.removeView(mWebView); + mWebView.destroy(); + mWebView = null; + } + createAndInitializeWebView(); + return true; + } else if (itemId == R.id.menu_clear_cache) { + if (mWebView != null) { + mWebView.clearCache(true); + } + return true; + } else if (itemId == R.id.menu_enable_tracing) { + mEnableTracing = !mEnableTracing; + item.setChecked(mEnableTracing); - TracingController tracingController = TracingController.getInstance(); - if (mEnableTracing) { - tracingController.start( - new TracingConfig.Builder() - .addCategories(TracingConfig.CATEGORIES_WEB_DEVELOPER) - .setTracingMode(TracingConfig.RECORD_CONTINUOUSLY) - .build()); - } else { - try (StrictModeContext ignored = StrictModeContext.allowDiskWrites()) { - String outFileName = getFilesDir() + "/webview_tracing.json"; - try { - tracingController.stop(new TracingLogger(outFileName, this), - Executors.newSingleThreadExecutor()); - } catch (FileNotFoundException e) { - throw new RuntimeException(e); - } + TracingController tracingController = TracingController.getInstance(); + if (mEnableTracing) { + tracingController.start( + new TracingConfig.Builder() + .addCategories(TracingConfig.CATEGORIES_WEB_DEVELOPER) + .setTracingMode(TracingConfig.RECORD_CONTINUOUSLY) + .build()); + } else { + try (StrictModeContext ignored = StrictModeContext.allowDiskWrites()) { + String outFileName = getFilesDir() + "/webview_tracing.json"; + try { + tracingController.stop(new TracingLogger(outFileName, this), + Executors.newSingleThreadExecutor()); + } catch (FileNotFoundException e) { + throw new RuntimeException(e); } } - return true; - case R.id.menu_force_dark_off: - WebSettingsCompat.setForceDark( - mWebView.getSettings(), WebSettingsCompat.FORCE_DARK_OFF); - item.setChecked(true); - return true; - case R.id.menu_force_dark_auto: - WebSettingsCompat.setForceDark( - mWebView.getSettings(), WebSettingsCompat.FORCE_DARK_AUTO); - item.setChecked(true); - return true; - case R.id.menu_force_dark_on: - WebSettingsCompat.setForceDark( - mWebView.getSettings(), WebSettingsCompat.FORCE_DARK_ON); - item.setChecked(true); - return true; - case R.id.start_animation_activity: - startActivity(new Intent(this, WebViewAnimationTestActivity.class)); - return true; - case R.id.menu_print: - PrintManager printManager = (PrintManager) getSystemService(Context.PRINT_SERVICE); - String jobName = "WebViewShell document"; - PrintDocumentAdapter printAdapter = mWebView.createPrintDocumentAdapter(jobName); - printManager.print(jobName, printAdapter, new PrintAttributes.Builder().build()); - return true; - case R.id.menu_about: - about(); - hideKeyboard(mUrlBar); - return true; - case R.id.menu_devui: - launchWebViewDevUI(); - return true; - default: - break; + } + return true; + } else if (itemId == R.id.menu_force_dark_off) { + WebSettingsCompat.setForceDark( + mWebView.getSettings(), WebSettingsCompat.FORCE_DARK_OFF); + item.setChecked(true); + return true; + } else if (itemId == R.id.menu_force_dark_auto) { + WebSettingsCompat.setForceDark( + mWebView.getSettings(), WebSettingsCompat.FORCE_DARK_AUTO); + item.setChecked(true); + return true; + } else if (itemId == R.id.menu_force_dark_on) { + WebSettingsCompat.setForceDark(mWebView.getSettings(), WebSettingsCompat.FORCE_DARK_ON); + item.setChecked(true); + return true; + } else if (itemId == R.id.start_animation_activity) { + startActivity(new Intent(this, WebViewAnimationTestActivity.class)); + return true; + } else if (itemId == R.id.menu_print) { + PrintManager printManager = (PrintManager) getSystemService(Context.PRINT_SERVICE); + String jobName = "WebViewShell document"; + PrintDocumentAdapter printAdapter = mWebView.createPrintDocumentAdapter(jobName); + printManager.print(jobName, printAdapter, new PrintAttributes.Builder().build()); + return true; + } else if (itemId == R.id.menu_about) { + about(); + hideKeyboard(mUrlBar); + return true; + } else if (itemId == R.id.menu_devui) { + launchWebViewDevUI(); + return true; } return super.onOptionsItemSelected(item); }
diff --git a/android_webview/tools/system_webview_shell/test/data/webexposed/not-webview-exposed.txt b/android_webview/tools/system_webview_shell/test/data/webexposed/not-webview-exposed.txt index 06eaf91..0ec9993 100644 --- a/android_webview/tools/system_webview_shell/test/data/webexposed/not-webview-exposed.txt +++ b/android_webview/tools/system_webview_shell/test/data/webexposed/not-webview-exposed.txt
@@ -88,6 +88,16 @@ interface HTMLInputElement : HTMLElement getter webkitEntries +# Native File System API not supported on Android, crbug.com/1011535 +interface DataTransferItem + method getAsFileSystemHandle +interface StorageManager : EventTarget + method getDirectory +interface FileSystemHandle +interface FileSystemDirectoryHandle : FileSystemHandle +interface FileSystemFileHandle : FileSystemHandle +interface FileSystemWritableFileStream : WritableStream + # MediaDevices devicechange disabled on Android, crbug.com/671461 interface MediaDevices : EventTarget getter ondevicechange @@ -173,6 +183,9 @@ method gc # test only method webkitRequestFileSystem # File System API, crbug.com/589843 method webkitResolveLocalFileSystemURL # File System API, crbug.com/589843 + method showOpenFilePicker # Native File System API, crbug.com/1011535 + method showSaveFilePicker # Native File System API, crbug.com/1011535 + method showDirectoryPicker # Native File System API, crbug.com/1011535 # TODO(timvolodine): check screen orientation lock api # TODO(timvolodine): check notifications in service workers
diff --git a/ash/BUILD.gn b/ash/BUILD.gn index 34f9814..d3f1617a 100644 --- a/ash/BUILD.gn +++ b/ash/BUILD.gn
@@ -443,8 +443,6 @@ "highlighter/highlighter_result_view.h", "highlighter/highlighter_view.cc", "highlighter/highlighter_view.h", - "holding_space/holding_space_presenter.cc", - "holding_space/holding_space_presenter.h", "home_screen/drag_window_from_shelf_controller.cc", "home_screen/drag_window_from_shelf_controller.h", "home_screen/home_launcher_gesture_handler.cc", @@ -1887,7 +1885,6 @@ "frame/non_client_frame_view_ash_unittest.cc", "highlighter/highlighter_controller_unittest.cc", "highlighter/highlighter_gesture_util_unittest.cc", - "holding_space/holding_space_presenter_unittest.cc", "home_screen/drag_window_from_shelf_controller_test_api.cc", "home_screen/drag_window_from_shelf_controller_test_api.h", "home_screen/drag_window_from_shelf_controller_unittest.cc",
diff --git a/ash/accessibility/touch_exploration_manager.cc b/ash/accessibility/touch_exploration_manager.cc index 3bcb9b3..f0cfa9f 100644 --- a/ash/accessibility/touch_exploration_manager.cc +++ b/ash/accessibility/touch_exploration_manager.cc
@@ -17,10 +17,12 @@ #include "ash/shell.h" #include "ash/wm/window_util.h" #include "base/command_line.h" +#include "base/metrics/histogram_functions.h" #include "chromeos/audio/chromeos_sounds.h" #include "chromeos/audio/cras_audio_handler.h" #include "chromeos/constants/chromeos_switches.h" #include "extensions/common/constants.h" +#include "ui/accessibility/ax_enums.mojom.h" #include "ui/aura/client/aura_constants.h" #include "ui/gfx/geometry/rect.h" #include "ui/wm/public/activation_client.h" @@ -128,6 +130,8 @@ void TouchExplorationManager::HandleAccessibilityGesture( ax::mojom::Gesture gesture, gfx::PointF location) { + base::UmaHistogramEnumeration("Accessibility.ChromeVox.PerformGestureType", + gesture); GetA11yController()->HandleAccessibilityGesture(gesture, location); }
diff --git a/ash/ambient/ambient_controller.cc b/ash/ambient/ambient_controller.cc index d2283fa..98b48e16 100644 --- a/ash/ambient/ambient_controller.cc +++ b/ash/ambient/ambient_controller.cc
@@ -197,6 +197,12 @@ AmbientUiVisibility visibility) { switch (visibility) { case AmbientUiVisibility::kShown: + + // Record metrics on ambient mode usage. + ambient::RecordAmbientModeActivation( + /*ui_mode=*/ambient_ui_model_.ui_mode(), + /*tablet_mode=*/Shell::Get()->IsInTabletMode()); + // Resets the monitor and cancels the timer upon shown. inactivity_monitor_.reset();
diff --git a/ash/holding_space/DIR_METADATA b/ash/holding_space/DIR_METADATA deleted file mode 100644 index f4e13eec..0000000 --- a/ash/holding_space/DIR_METADATA +++ /dev/null
@@ -1,11 +0,0 @@ -# Metadata information for this directory. -# -# For more information on DIR_METADATA files, see: -# https://source.chromium.org/chromium/infra/infra/+/master:go/src/infra/tools/dirmd/README.md -# -# For the schema of this file, see Metadata message: -# https://source.chromium.org/chromium/infra/infra/+/master:go/src/infra/tools/dirmd/proto/dir_metadata.proto - -monorail { - component: "UI>Shell>HoldingSpace" -} \ No newline at end of file
diff --git a/ash/holding_space/OWNERS b/ash/holding_space/OWNERS deleted file mode 100644 index 6289b65..0000000 --- a/ash/holding_space/OWNERS +++ /dev/null
@@ -1,2 +0,0 @@ -tbarzic@chromium.org -newcomer@chromium.org
diff --git a/ash/holding_space/holding_space_presenter.cc b/ash/holding_space/holding_space_presenter.cc deleted file mode 100644 index 2368ad7..0000000 --- a/ash/holding_space/holding_space_presenter.cc +++ /dev/null
@@ -1,59 +0,0 @@ -// Copyright 2020 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. -// -#include "ash/holding_space/holding_space_presenter.h" - -#include "ash/public/cpp/holding_space/holding_space_item.h" -#include "base/stl_util.h" - -namespace ash { - -HoldingSpacePresenter::HoldingSpacePresenter() { - HoldingSpaceController* const controller = HoldingSpaceController::Get(); - controller_observer_.Add(controller); - if (controller->model()) - HandleNewModel(controller->model()); -} - -HoldingSpacePresenter::~HoldingSpacePresenter() = default; - -void HoldingSpacePresenter::OnHoldingSpaceModelAttached( - HoldingSpaceModel* model) { - HandleNewModel(model); -} - -void HoldingSpacePresenter::OnHoldingSpaceModelDetached( - HoldingSpaceModel* model) { - model_observer_.Remove(model); - item_ids_.clear(); -} - -void HoldingSpacePresenter::OnHoldingSpaceItemAdded( - const HoldingSpaceItem* item) { - item_ids_[item->type()].push_back(item->id()); -} - -void HoldingSpacePresenter::OnHoldingSpaceItemRemoved( - const HoldingSpaceItem* item) { - base::Erase(item_ids_[item->type()], item->id()); -} - -const std::vector<std::string>& HoldingSpacePresenter::GetItemIds( - HoldingSpaceItem::Type type) const { - const auto& item_list_it = item_ids_.find(type); - if (item_list_it == item_ids_.end()) { - static std::vector<std::string> empty_list; - return empty_list; - } - return item_list_it->second; -} - -void HoldingSpacePresenter::HandleNewModel(HoldingSpaceModel* model) { - model_observer_.Add(model); - - for (auto& item : model->items()) - item_ids_[item->type()].push_back(item->id()); -} - -} // namespace ash
diff --git a/ash/holding_space/holding_space_presenter.h b/ash/holding_space/holding_space_presenter.h deleted file mode 100644 index 2ebb4ddf..0000000 --- a/ash/holding_space/holding_space_presenter.h +++ /dev/null
@@ -1,66 +0,0 @@ -// Copyright 2020 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. -// -#ifndef ASH_HOLDING_SPACE_HOLDING_SPACE_PRESENTER_H_ -#define ASH_HOLDING_SPACE_HOLDING_SPACE_PRESENTER_H_ - -#include <string> -#include <vector> - -#include "ash/ash_export.h" -#include "ash/public/cpp/holding_space/holding_space_controller.h" -#include "ash/public/cpp/holding_space/holding_space_controller_observer.h" -#include "ash/public/cpp/holding_space/holding_space_item.h" -#include "ash/public/cpp/holding_space/holding_space_model.h" -#include "ash/public/cpp/holding_space/holding_space_model_observer.h" -#include "base/containers/flat_map.h" -#include "base/scoped_observer.h" - -namespace ash { - -class HoldingSpaceItem; - -// Manages the temporary holding space UI for a root window. -// The main job of the class is -// * to observe the holding space model and update item representations in the -// holding space UI. -// * to handle user actions within the holding space UI, and updates the -// holding space model accordingly. -// NOTE: Currently this class only tracks the list of items within the active -// holding space model. -class ASH_EXPORT HoldingSpacePresenter : public HoldingSpaceControllerObserver, - public HoldingSpaceModelObserver { - public: - HoldingSpacePresenter(); - HoldingSpacePresenter(const HoldingSpacePresenter& other) = delete; - HoldingSpacePresenter& operator=(const HoldingSpacePresenter& other) = delete; - ~HoldingSpacePresenter() override; - - // HoldingSpaceControllerObserver: - void OnHoldingSpaceModelAttached(HoldingSpaceModel* model) override; - void OnHoldingSpaceModelDetached(HoldingSpaceModel* model) override; - - // HoldingSpaceModelObserver: - void OnHoldingSpaceItemAdded(const HoldingSpaceItem* item) override; - void OnHoldingSpaceItemRemoved(const HoldingSpaceItem* item) override; - - const std::vector<std::string>& GetItemIds(HoldingSpaceItem::Type type) const; - - private: - // Handles the items from the model, and starts observing the model. - void HandleNewModel(HoldingSpaceModel* model); - - // IDs of items in the active holding space model, as observed by the holding - // space presenter. - base::flat_map<HoldingSpaceItem::Type, std::vector<std::string>> item_ids_; - - ScopedObserver<HoldingSpaceController, HoldingSpaceControllerObserver> - controller_observer_{this}; - ScopedObserver<HoldingSpaceModel, HoldingSpaceModelObserver> model_observer_{ - this}; -}; - -} // namespace ash - -#endif // ASH_HOLDING_SPACE_HOLDING_SPACE_PRESENTER_H_
diff --git a/ash/holding_space/holding_space_presenter_unittest.cc b/ash/holding_space/holding_space_presenter_unittest.cc deleted file mode 100644 index 7e7fd622..0000000 --- a/ash/holding_space/holding_space_presenter_unittest.cc +++ /dev/null
@@ -1,264 +0,0 @@ -// Copyright 2020 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#include "ash/holding_space/holding_space_presenter.h" - -#include <memory> -#include <set> -#include <utility> - -#include "ash/public/cpp/ash_features.h" -#include "ash/public/cpp/holding_space/holding_space_controller.h" -#include "ash/public/cpp/holding_space/holding_space_item.h" -#include "ash/public/cpp/holding_space/holding_space_model.h" -#include "ash/test/ash_test_base.h" -#include "base/stl_util.h" -#include "base/strings/strcat.h" -#include "base/strings/utf_string_conversions.h" -#include "base/test/scoped_feature_list.h" -#include "ui/gfx/image/image.h" - -namespace ash { - -namespace { - -constexpr HoldingSpaceItem::Type kItemTypes[] = { - HoldingSpaceItem::Type::kPinnedFile, HoldingSpaceItem::Type::kScreenshot, - HoldingSpaceItem::Type::kDownload}; - -} // namespace - -class HoldingSpacePresenterTest - : public AshTestBase, - public testing::WithParamInterface<HoldingSpaceItem::Type> { - public: - HoldingSpacePresenterTest() { - scoped_feature_list_.InitAndEnableFeature(features::kTemporaryHoldingSpace); - } - HoldingSpacePresenterTest(const HoldingSpacePresenterTest& other) = delete; - HoldingSpacePresenterTest& operator=(const HoldingSpacePresenterTest& other) = - delete; - ~HoldingSpacePresenterTest() override = default; - - // AshTestBase: - void SetUp() override { - AshTestBase::SetUp(); - holding_space_presenter_ = std::make_unique<HoldingSpacePresenter>(); - } - - void TearDown() override { - holding_space_presenter_.reset(); - AshTestBase::TearDown(); - } - - HoldingSpaceModel* primary_model() { return &primary_model_; } - - HoldingSpacePresenter* GetHoldingSpacePresenter() { - return holding_space_presenter_.get(); - } - - HoldingSpaceItem::Type GetTestItemType() const { return GetParam(); } - - std::string GetTestItemIdForType(HoldingSpaceItem::Type type, - const std::string& path) { - return HoldingSpaceItem::GetFileBackedItemId(type, base::FilePath(path)); - } - - std::string GetTestItemId(const std::string& path) { - return GetTestItemIdForType(GetTestItemType(), path); - } - - std::unique_ptr<HoldingSpaceItem> CreateTestItemForType( - HoldingSpaceItem::Type type, - const std::string& path) { - return HoldingSpaceItem::CreateFileBackedItem( - type, base::FilePath(path), - GURL(base::StrCat({"filesystem:base://", path})), gfx::ImageSkia()); - } - - std::unique_ptr<HoldingSpaceItem> CreateTestItem(const std::string& path) { - return CreateTestItemForType(GetTestItemType(), path); - } - - private: - std::unique_ptr<HoldingSpacePresenter> holding_space_presenter_; - HoldingSpaceModel primary_model_; - - base::test::ScopedFeatureList scoped_feature_list_; -}; - -INSTANTIATE_TEST_SUITE_P(ItemType, - HoldingSpacePresenterTest, - testing::ValuesIn(kItemTypes)); - -// Tests that items already in the model when an active model is set get added -// to the holding space. -TEST_P(HoldingSpacePresenterTest, ModelWithExistingItems) { - EXPECT_EQ(std::vector<std::string>(), - GetHoldingSpacePresenter()->GetItemIds(GetTestItemType())); - - const std::string item_1_id = GetTestItemId("item_1"); - primary_model()->AddItem(CreateTestItem("item_1")); - ASSERT_TRUE(primary_model()->GetItem(item_1_id)); - ASSERT_EQ(item_1_id, primary_model()->GetItem(item_1_id)->id()); - - const std::string item_2_id = GetTestItemId("item_2"); - primary_model()->AddItem(CreateTestItem("item_2")); - ASSERT_TRUE(primary_model()->GetItem(item_2_id)); - ASSERT_EQ(item_2_id, primary_model()->GetItem(item_2_id)->id()); - - // Note - the item ID is missing a suffix to verify the items do not get - // sorted by their IDs. - const std::string item_3_id = GetTestItemId("item"); - primary_model()->AddItem(CreateTestItem("item")); - - HoldingSpaceController::Get()->SetModel(primary_model()); - EXPECT_EQ(std::vector<std::string>({item_1_id, item_2_id, item_3_id}), - GetHoldingSpacePresenter()->GetItemIds(GetTestItemType())); - - HoldingSpaceController::Get()->SetModel(nullptr); - EXPECT_EQ(std::vector<std::string>(), - GetHoldingSpacePresenter()->GetItemIds(GetTestItemType())); -} - -// Tests that the holding space presenter picks up existing model items if a -// model is set and non-empty on presenter's creation. -TEST_P(HoldingSpacePresenterTest, NonEmptyModelOnPresenterCreation) { - // Initiate non-empty holding space model. - const std::string item_1_id = GetTestItemId("item_1"); - primary_model()->AddItem(CreateTestItem("item_1")); - const std::string item_2_id = GetTestItemId("item_2"); - primary_model()->AddItem(CreateTestItem("item_2")); - HoldingSpaceController::Get()->SetModel(primary_model()); - - // Create a new holding space presenter, and verify it picked up the existing - // model items. - auto secondary_presenter = std::make_unique<HoldingSpacePresenter>(); - EXPECT_EQ(std::vector<std::string>({item_1_id, item_2_id}), - secondary_presenter->GetItemIds(GetTestItemType())); - - HoldingSpaceController::Get()->SetModel(nullptr); - EXPECT_EQ(std::vector<std::string>(), - GetHoldingSpacePresenter()->GetItemIds(GetTestItemType())); - EXPECT_EQ(std::vector<std::string>(), - secondary_presenter->GetItemIds(GetTestItemType())); -} - -// Verifies that holding space handles holding space model changes. -TEST_P(HoldingSpacePresenterTest, AddingAndRemovingModelItems) { - HoldingSpaceController::Get()->SetModel(primary_model()); - EXPECT_EQ(std::vector<std::string>(), - GetHoldingSpacePresenter()->GetItemIds(GetTestItemType())); - - // Add some items to the model, and verify the items get picked up by the - // presenter. - const std::string item_1_id = GetTestItemId("item_1"); - primary_model()->AddItem(CreateTestItem("item_1")); - EXPECT_EQ(std::vector<std::string>({item_1_id}), - GetHoldingSpacePresenter()->GetItemIds(GetTestItemType())); - - const std::string item_2_id = GetTestItemId("item_2"); - primary_model()->AddItem(CreateTestItem("item_2")); - EXPECT_EQ(std::vector<std::string>({item_1_id, item_2_id}), - GetHoldingSpacePresenter()->GetItemIds(GetTestItemType())); - - const std::string item_3_id = GetTestItemId("item_3"); - primary_model()->AddItem(CreateTestItem("item_3")); - EXPECT_EQ(std::vector<std::string>({item_1_id, item_2_id, item_3_id}), - GetHoldingSpacePresenter()->GetItemIds(GetTestItemType())); - - primary_model()->RemoveItem(item_2_id); - EXPECT_EQ(std::vector<std::string>({item_1_id, item_3_id}), - GetHoldingSpacePresenter()->GetItemIds(GetTestItemType())); - - primary_model()->RemoveAll(); - EXPECT_EQ(std::vector<std::string>(), - GetHoldingSpacePresenter()->GetItemIds(GetTestItemType())); - - const std::string item_4_id = GetTestItemId("item_4"); - primary_model()->AddItem(CreateTestItem("item_4")); - EXPECT_EQ(std::vector<std::string>({item_4_id}), - GetHoldingSpacePresenter()->GetItemIds(GetTestItemType())); - - // Holding space should be cleared if the active model is reset. - HoldingSpaceController::Get()->SetModel(nullptr); - EXPECT_EQ(std::vector<std::string>(), - GetHoldingSpacePresenter()->GetItemIds(GetTestItemType())); -} - -// Verifies that presenter trackes items with the same backing URL but different -// types separately. -TEST_P(HoldingSpacePresenterTest, SameUrlsWithDifferentType) { - HoldingSpaceController::Get()->SetModel(primary_model()); - EXPECT_EQ(std::vector<std::string>(), - GetHoldingSpacePresenter()->GetItemIds(GetTestItemType())); - - // Add some items to the model, and verify the items get picked up by the - // presenter. - for (const auto& type : kItemTypes) - primary_model()->AddItem(CreateTestItemForType(type, "item_1")); - - // Collect items of all types, and verify they all have distinct IDs. - std::set<std::string> all_ids; - for (const auto& type : kItemTypes) { - std::vector<std::string> item_ids = - GetHoldingSpacePresenter()->GetItemIds(type); - EXPECT_EQ(std::vector<std::string>({GetTestItemIdForType(type, "item_1")}), - item_ids); - all_ids.insert(item_ids.begin(), item_ids.end()); - } - - EXPECT_EQ(base::size(kItemTypes), all_ids.size()); - EXPECT_EQ(base::size(kItemTypes), primary_model()->items().size()); - - // Remove the item for the test parameter type, and verify that is the only - // item removed. - primary_model()->RemoveItem(GetTestItemId("item_1")); - - all_ids.clear(); - for (const auto& type : kItemTypes) { - std::vector<std::string> item_ids = - GetHoldingSpacePresenter()->GetItemIds(type); - if (type == GetTestItemType()) { - EXPECT_EQ(std::vector<std::string>(), item_ids); - } else { - EXPECT_EQ( - std::vector<std::string>({GetTestItemIdForType(type, "item_1")}), - item_ids); - } - all_ids.insert(item_ids.begin(), item_ids.end()); - } - - EXPECT_EQ(base::size(kItemTypes) - 1, all_ids.size()); - EXPECT_EQ(base::size(kItemTypes) - 1, primary_model()->items().size()); -} - -// Verifies that the holding space gets updated when the active model changes. -TEST_P(HoldingSpacePresenterTest, ModelChange) { - const std::string primary_model_item_id = GetTestItemId("primary_model_item"); - primary_model()->AddItem(CreateTestItem("primary_model_item")); - - HoldingSpaceController::Get()->SetModel(primary_model()); - EXPECT_EQ(std::vector<std::string>({primary_model_item_id}), - GetHoldingSpacePresenter()->GetItemIds(GetTestItemType())); - - HoldingSpaceModel secondary_model; - const std::string secondary_model_item_id = - GetTestItemId("secondary_model_item"); - secondary_model.AddItem(CreateTestItem("secondary_model_item")); - - EXPECT_EQ(std::vector<std::string>({primary_model_item_id}), - GetHoldingSpacePresenter()->GetItemIds(GetTestItemType())); - - HoldingSpaceController::Get()->SetModel(&secondary_model); - - EXPECT_EQ(std::vector<std::string>({secondary_model_item_id}), - GetHoldingSpacePresenter()->GetItemIds(GetTestItemType())); - - HoldingSpaceController::Get()->SetModel(nullptr); - EXPECT_EQ(std::vector<std::string>(), - GetHoldingSpacePresenter()->GetItemIds(GetTestItemType())); -} - -} // namespace ash
diff --git a/ash/public/cpp/BUILD.gn b/ash/public/cpp/BUILD.gn index f7c07f4..6f12d9b 100644 --- a/ash/public/cpp/BUILD.gn +++ b/ash/public/cpp/BUILD.gn
@@ -124,6 +124,8 @@ "desks_helper.h", "esim_manager.cc", "esim_manager.h", + "file_icon_util.cc", + "file_icon_util.h", "fps_counter.cc", "fps_counter.h", "frame_header.cc", @@ -131,6 +133,7 @@ "frame_utils.cc", "frame_utils.h", "gesture_action_type.h", + "holding_space/holding_space_client.h", "holding_space/holding_space_controller.cc", "holding_space/holding_space_controller.h", "holding_space/holding_space_controller_observer.h", @@ -359,6 +362,7 @@ "android_intent_helper_unittest.cc", "app_list/app_list_config_provider_unittest.cc", "default_scale_factor_retriever_unittest.cc", + "file_icon_util_unittest.cc", "holding_space/holding_space_item_unittest.cc", "metrics_util_unittest.cc", "pagination/pagination_model_unittest.cc",
diff --git a/ash/public/cpp/ambient/ambient_metrics.cc b/ash/public/cpp/ambient/ambient_metrics.cc index 2aae5c9..c4ef946f 100644 --- a/ash/public/cpp/ambient/ambient_metrics.cc +++ b/ash/public/cpp/ambient/ambient_metrics.cc
@@ -4,7 +4,9 @@ #include "ash/public/cpp/ambient/ambient_metrics.h" +#include "ash/public/cpp/ambient/ambient_ui_model.h" #include "ash/public/cpp/ambient/common/ambient_settings.h" +#include "base/metrics/histogram_functions.h" namespace ash { namespace ambient { @@ -32,5 +34,15 @@ return AmbientModePhotoSource::kGooglePhotosPersonalAlbum; } +void RecordAmbientModeActivation(AmbientUiMode ui_mode, bool tablet_mode) { + std::string histogram_name = "Ash.AmbientMode.Activation."; + if (tablet_mode) + histogram_name += "TabletMode"; + else + histogram_name += "ClamshellMode"; + + base::UmaHistogramEnumeration(histogram_name, ui_mode); +} + } // namespace ambient } // namespace ash
diff --git a/ash/public/cpp/ambient/ambient_metrics.h b/ash/public/cpp/ambient/ambient_metrics.h index 7927f12..14741bc 100644 --- a/ash/public/cpp/ambient/ambient_metrics.h +++ b/ash/public/cpp/ambient/ambient_metrics.h
@@ -10,6 +10,7 @@ namespace ash { struct AmbientSettings; +enum class AmbientUiMode; namespace ambient { @@ -28,6 +29,9 @@ ASH_PUBLIC_EXPORT AmbientModePhotoSource AmbientSettingsToPhotoSource(const AmbientSettings& settings); +ASH_PUBLIC_EXPORT void RecordAmbientModeActivation(AmbientUiMode ui_mode, + bool tablet_mode); + } // namespace ambient } // namespace ash
diff --git a/ash/public/cpp/ambient/ambient_ui_model.h b/ash/public/cpp/ambient/ambient_ui_model.h index a2837a7..12cf948 100644 --- a/ash/public/cpp/ambient/ambient_ui_model.h +++ b/ash/public/cpp/ambient/ambient_ui_model.h
@@ -19,10 +19,12 @@ kClosed, }; -// Enumeration of ambient UI modes. +// Enumeration of ambient UI modes. This is used for metrics reporting and +// values should not be re-ordered or removed. enum class AmbientUiMode { - kLockScreenUi, - kInSessionUi, + kLockScreenUi = 0, + kInSessionUi = 1, + kMaxValue = kInSessionUi, }; // A checked observer which receives notification of changes to the Ambient Mode
diff --git a/ash/public/cpp/app_list/vector_icons/BUILD.gn b/ash/public/cpp/app_list/vector_icons/BUILD.gn index e5e676d..dfe37995 100644 --- a/ash/public/cpp/app_list/vector_icons/BUILD.gn +++ b/ash/public/cpp/app_list/vector_icons/BUILD.gn
@@ -15,32 +15,6 @@ "bookmark.icon", "domain.icon", "equal.icon", - "filetype_archive.icon", - "filetype_audio.icon", - "filetype_chart.icon", - "filetype_chip_background.icon", - "filetype_excel.icon", - "filetype_folder.icon", - "filetype_gdoc.icon", - "filetype_gdraw.icon", - "filetype_generic.icon", - "filetype_gform.icon", - "filetype_gmap.icon", - "filetype_gsheet.icon", - "filetype_gsite.icon", - "filetype_gslides.icon", - "filetype_gtable.icon", - "filetype_image.icon", - "filetype_linux.icon", - "filetype_pdf.icon", - "filetype_ppt.icon", - "filetype_script.icon", - "filetype_shared.icon", - "filetype_sites.icon", - "filetype_team_drive.icon", - "filetype_tini.icon", - "filetype_video.icon", - "filetype_word.icon", "google_black.icon", "google_color.icon", "history.icon",
diff --git a/ash/public/cpp/ash_features.cc b/ash/public/cpp/ash_features.cc index 5a7df01e..d3abdc9 100644 --- a/ash/public/cpp/ash_features.cc +++ b/ash/public/cpp/ash_features.cc
@@ -44,6 +44,9 @@ const base::Feature kContextualNudges{"ContextualNudges", base::FEATURE_ENABLED_BY_DEFAULT}; +const base::Feature kDarkLightMode{"DarkLightMode", + base::FEATURE_DISABLED_BY_DEFAULT}; + const base::Feature kDisplayAlignAssist{"DisplayAlignAssist", base::FEATURE_DISABLED_BY_DEFAULT}; @@ -174,6 +177,10 @@ return base::FeatureList::IsEnabled(kCaptureMode); } +bool IsDarkLightModeEnabled() { + return base::FeatureList::IsEnabled(kDarkLightMode); +} + bool IsHideArcMediaNotificationsEnabled() { return base::FeatureList::IsEnabled(kMediaSessionNotification) && base::FeatureList::IsEnabled(kHideArcMediaNotifications);
diff --git a/ash/public/cpp/ash_features.h b/ash/public/cpp/ash_features.h index 1c099ed..b8715f8 100644 --- a/ash/public/cpp/ash_features.h +++ b/ash/public/cpp/ash_features.h
@@ -28,6 +28,9 @@ // Enables contextual nudges for gesture education. ASH_PUBLIC_EXPORT extern const base::Feature kContextualNudges; +// Enables dark/light mode feature. +ASH_PUBLIC_EXPORT extern const base::Feature kDarkLightMode; + // Enables indicators to hint where displays are connected. ASH_PUBLIC_EXPORT extern const base::Feature kDisplayAlignAssist; @@ -181,6 +184,8 @@ ASH_PUBLIC_EXPORT bool IsCaptureModeEnabled(); +ASH_PUBLIC_EXPORT bool IsDarkLightModeEnabled(); + ASH_PUBLIC_EXPORT bool IsHideArcMediaNotificationsEnabled(); ASH_PUBLIC_EXPORT bool IsKeyboardShortcutViewerAppEnabled();
diff --git a/ash/public/cpp/ash_switches.cc b/ash/public/cpp/ash_switches.cc index f6afab8..aa67fdeb 100644 --- a/ash/public/cpp/ash_switches.cc +++ b/ash/public/cpp/ash_switches.cc
@@ -20,11 +20,6 @@ namespace ash { namespace switches { -// Indicates the current color mode of ash. -const char kAshColorMode[] = "ash-color-mode"; -const char kAshColorModeDark[] = "dark"; -const char kAshColorModeLight[] = "light"; - // Force the pointer (cursor) position to be kept inside root windows. const char kAshConstrainPointerToRoot[] = "ash-constrain-pointer-to-root";
diff --git a/ash/public/cpp/ash_switches.h b/ash/public/cpp/ash_switches.h index 6a697e72..2cd67a0 100644 --- a/ash/public/cpp/ash_switches.h +++ b/ash/public/cpp/ash_switches.h
@@ -18,9 +18,6 @@ // Please keep alphabetized. // TODO(sky): fix order! -ASH_PUBLIC_EXPORT extern const char kAshColorMode[]; -ASH_PUBLIC_EXPORT extern const char kAshColorModeDark[]; -ASH_PUBLIC_EXPORT extern const char kAshColorModeLight[]; ASH_PUBLIC_EXPORT extern const char kAshConstrainPointerToRoot[]; ASH_PUBLIC_EXPORT extern const char kAshContextualNudgesInterval[]; ASH_PUBLIC_EXPORT extern const char kAshContextualNudgesResetShownCount[];
diff --git a/ash/public/cpp/file_icon_util.cc b/ash/public/cpp/file_icon_util.cc new file mode 100644 index 0000000..175d52e --- /dev/null +++ b/ash/public/cpp/file_icon_util.cc
@@ -0,0 +1,294 @@ +// Copyright 2019 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "ash/public/cpp/file_icon_util.h" + +#include <string> +#include <utility> + +#include "ash/public/cpp/vector_icons/vector_icons.h" +#include "base/files/file_path.h" +#include "base/no_destructor.h" +#include "base/strings/string_util.h" +#include "base/strings/utf_string_conversions.h" +#include "third_party/skia/include/core/SkColor.h" +#include "ui/base/resource/resource_bundle.h" +#include "ui/gfx/color_palette.h" +#include "ui/gfx/image/image.h" +#include "ui/gfx/image/image_skia.h" +#include "ui/gfx/image/image_skia_operations.h" +#include "ui/gfx/paint_vector_icon.h" + +namespace { + +// Hex color: #796EEE +constexpr SkColor kFiletypeGsiteColor = SkColorSetRGB(121, 110, 238); + +// Hex color: #FF7537 +constexpr SkColor kFiletypePptColor = SkColorSetRGB(255, 117, 55); + +// Hex color: #796EEE +constexpr SkColor kFiletypeSitesColor = SkColorSetRGB(121, 110, 238); + +constexpr SkColor kWhiteBackgroundColor = SkColorSetRGB(255, 255, 255); + +constexpr int kIconDipSize = 20; + +} // namespace + +namespace ash { +namespace internal { + +IconType GetIconTypeForPath(const base::FilePath& filepath) { + static const base::NoDestructor<base::flat_map<std::string, IconType>> + // Changes to this map should be reflected in + // ui/file_manager/file_manager/common/js/file_type.js. + extension_to_icon({ + // Image + {".JPEG", IconType::kImage}, + {".JPG", IconType::kImage}, + {".BMP", IconType::kImage}, + {".GIF", IconType::kImage}, + {".ICO", IconType::kImage}, + {".PNG", IconType::kImage}, + {".WEBP", IconType::kImage}, + {".TIFF", IconType::kImage}, + {".TIF", IconType::kImage}, + {".SVG", IconType::kImage}, + + // Raw + {".ARW", IconType::kImage}, + {".CR2", IconType::kImage}, + {".DNG", IconType::kImage}, + {".NEF", IconType::kImage}, + {".NRW", IconType::kImage}, + {".ORF", IconType::kImage}, + {".RAF", IconType::kImage}, + {".RW2", IconType::kImage}, + + // Video + {".3GP", IconType::kVideo}, + {".3GPP", IconType::kVideo}, + {".AVI", IconType::kVideo}, + {".MOV", IconType::kVideo}, + {".MKV", IconType::kVideo}, + {".MP4", IconType::kVideo}, + {".M4V", IconType::kVideo}, + {".MPG", IconType::kVideo}, + {".MPEG", IconType::kVideo}, + {".MPG4", IconType::kVideo}, + {".MPEG4", IconType::kVideo}, + {".OGM", IconType::kVideo}, + {".OGV", IconType::kVideo}, + {".OGX", IconType::kVideo}, + {".WEBM", IconType::kVideo}, + + // Audio + {".AMR", IconType::kAudio}, + {".FLAC", IconType::kAudio}, + {".MP3", IconType::kAudio}, + {".M4A", IconType::kAudio}, + {".OGA", IconType::kAudio}, + {".OGG", IconType::kAudio}, + {".WAV", IconType::kAudio}, + + // Text + {".TXT", IconType::kGeneric}, + + // Archive + {".ZIP", IconType::kArchive}, + {".RAR", IconType::kArchive}, + {".TAR", IconType::kArchive}, + {".TAR.BZ2", IconType::kArchive}, + {".TBZ", IconType::kArchive}, + {".TBZ2", IconType::kArchive}, + {".TAR.GZ", IconType::kArchive}, + {".TGZ", IconType::kArchive}, + + // Hosted doc + {".GDOC", IconType::kGdoc}, + {".GSHEET", IconType::kGsheet}, + {".GSLIDES", IconType::kGslide}, + {".GDRAW", IconType::kGdraw}, + {".GTABLE", IconType::kGtable}, + {".GLINK", IconType::kGeneric}, + {".GFORM", IconType::kGform}, + {".GMAPS", IconType::kGmap}, + {".GSITE", IconType::kGsite}, + + // Other + {".PDF", IconType::kPdf}, + {".HTM", IconType::kGeneric}, + {".HTML", IconType::kGeneric}, + {".MHT", IconType::kGeneric}, + {".MHTM", IconType::kGeneric}, + {".MHTML", IconType::kGeneric}, + {".SHTML", IconType::kGeneric}, + {".XHT", IconType::kGeneric}, + {".XHTM", IconType::kGeneric}, + {".XHTML", IconType::kGeneric}, + {".DOC", IconType::kWord}, + {".DOCX", IconType::kWord}, + {".PPT", IconType::kPpt}, + {".PPTX", IconType::kPpt}, + {".XLS", IconType::kExcel}, + {".XLSX", IconType::kExcel}, + {".TINI", IconType::kTini}, + }); + + const auto& icon_it = + extension_to_icon->find(base::ToUpperASCII(filepath.Extension())); + if (icon_it != extension_to_icon->end()) { + return icon_it->second; + } else { + return IconType::kGeneric; + } +} + +IconType GetIconTypeFromString(const std::string& icon_type_string) { + static const base::NoDestructor<std::map<std::string, IconType>> + type_string_to_icon_type({{"archive", IconType::kArchive}, + {"audio", IconType::kAudio}, + {"chart", IconType::kChart}, + {"excel", IconType::kExcel}, + {"drive", IconType::kDrive}, + {"folder", IconType::kFolder}, + {"gdoc", IconType::kGdoc}, + {"gdraw", IconType::kGdraw}, + {"generic", IconType::kGeneric}, + {"gform", IconType::kGform}, + {"gmap", IconType::kGmap}, + {"gsheet", IconType::kGsheet}, + {"gsite", IconType::kGsite}, + {"gslides", IconType::kGslide}, + {"gtable", IconType::kGtable}, + {"image", IconType::kImage}, + {"linux", IconType::kLinux}, + {"pdf", IconType::kPdf}, + {"ppt", IconType::kPpt}, + {"script", IconType::kScript}, + {"shared", IconType::kFolderShared}, + {"sites", IconType::kSites}, + {"tini", IconType::kTini}, + {"video", IconType::kVideo}, + {"word", IconType::kWord}}); + + const auto& icon_it = type_string_to_icon_type->find(icon_type_string); + if (icon_it != type_string_to_icon_type->end()) + return icon_it->second; + return IconType::kGeneric; +} + +gfx::ImageSkia GetVectorIconFromIconType(IconType icon, bool is_chip_icon) { + // Changes to this map should be reflected in + // ui/file_manager/file_manager/common/js/file_type.js. + static const base::NoDestructor<std::map<IconType, gfx::IconDescription>> + icon_type_to_icon_description( + {{IconType::kArchive, + gfx::IconDescription(ash::kFiletypeArchiveIcon, kIconDipSize, + gfx::kGoogleGrey700)}, + {IconType::kAudio, + gfx::IconDescription(ash::kFiletypeAudioIcon, kIconDipSize, + gfx::kGoogleRed500)}, + {IconType::kChart, + gfx::IconDescription(ash::kFiletypeChartIcon, kIconDipSize, + gfx::kGoogleGreen500)}, + {IconType::kDrive, + gfx::IconDescription(ash::kFiletypeTeamDriveIcon, kIconDipSize, + gfx::kGoogleGrey700)}, + {IconType::kExcel, + gfx::IconDescription(ash::kFiletypeExcelIcon, kIconDipSize, + gfx::kGoogleGreen500)}, + {IconType::kFolder, + gfx::IconDescription(ash::kFiletypeFolderIcon, kIconDipSize, + gfx::kGoogleGrey700)}, + {IconType::kFolderShared, + gfx::IconDescription(ash::kFiletypeSharedIcon, kIconDipSize, + gfx::kGoogleGrey700)}, + {IconType::kGdoc, + gfx::IconDescription(ash::kFiletypeGdocIcon, kIconDipSize, + gfx::kGoogleBlue500)}, + {IconType::kGdraw, + gfx::IconDescription(ash::kFiletypeGdrawIcon, kIconDipSize, + gfx::kGoogleRed500)}, + {IconType::kGeneric, + gfx::IconDescription(ash::kFiletypeGenericIcon, kIconDipSize, + gfx::kGoogleGrey700)}, + {IconType::kGform, + gfx::IconDescription(ash::kFiletypeGformIcon, kIconDipSize, + gfx::kGoogleGreen500)}, + {IconType::kGmap, + gfx::IconDescription(ash::kFiletypeGmapIcon, kIconDipSize, + gfx::kGoogleRed500)}, + {IconType::kGsheet, + gfx::IconDescription(ash::kFiletypeGsheetIcon, kIconDipSize, + gfx::kGoogleGreen500)}, + {IconType::kGsite, + gfx::IconDescription(ash::kFiletypeGsiteIcon, kIconDipSize, + kFiletypeGsiteColor)}, + {IconType::kGslide, + gfx::IconDescription(ash::kFiletypeGslidesIcon, kIconDipSize, + gfx::kGoogleYellow500)}, + {IconType::kGtable, + gfx::IconDescription(ash::kFiletypeGtableIcon, kIconDipSize, + gfx::kGoogleGreen500)}, + {IconType::kImage, + gfx::IconDescription(ash::kFiletypeImageIcon, kIconDipSize, + gfx::kGoogleRed500)}, + {IconType::kLinux, + gfx::IconDescription(ash::kFiletypeLinuxIcon, kIconDipSize, + gfx::kGoogleGrey700)}, + {IconType::kPdf, + gfx::IconDescription(ash::kFiletypePdfIcon, kIconDipSize, + gfx::kGoogleRed500)}, + {IconType::kPpt, + gfx::IconDescription(ash::kFiletypePptIcon, kIconDipSize, + kFiletypePptColor)}, + {IconType::kScript, + gfx::IconDescription(ash::kFiletypeScriptIcon, kIconDipSize, + gfx::kGoogleBlue500)}, + {IconType::kSites, + gfx::IconDescription(ash::kFiletypeSitesIcon, kIconDipSize, + kFiletypeSitesColor)}, + {IconType::kTini, + gfx::IconDescription(ash::kFiletypeTiniIcon, kIconDipSize, + gfx::kGoogleBlue500)}, + {IconType::kVideo, + gfx::IconDescription(ash::kFiletypeVideoIcon, kIconDipSize, + gfx::kGoogleRed500)}, + {IconType::kWord, + gfx::IconDescription(ash::kFiletypeWordIcon, kIconDipSize, + gfx::kGoogleBlue500)}}); + + const auto& id_it = icon_type_to_icon_description->find(icon); + DCHECK(id_it != icon_type_to_icon_description->end()); + + // If it is a launcher chip icon, we need to draw 2 icons: a white circle + // background icon (kFiletypeChipBackgroundIcon) and the icon of the file. + if (is_chip_icon) { + return gfx::ImageSkiaOperations::CreateSuperimposedImage( + gfx::CreateVectorIcon(ash::kFiletypeChipBackgroundIcon, kIconDipSize, + kWhiteBackgroundColor), + gfx::CreateVectorIcon(id_it->second)); + } + return gfx::CreateVectorIcon(id_it->second); +} + +} // namespace internal + +gfx::ImageSkia GetIconForPath(const base::FilePath& filepath) { + return internal::GetVectorIconFromIconType( + internal::GetIconTypeForPath(filepath)); +} + +gfx::ImageSkia GetChipIconForPath(const base::FilePath& filepath) { + return internal::GetVectorIconFromIconType( + internal::GetIconTypeForPath(filepath), /*is_chip_icon=*/true); +} + +gfx::ImageSkia GetIconFromType(const std::string& icon_type) { + return GetVectorIconFromIconType(internal::GetIconTypeFromString(icon_type)); +} + +} // namespace ash
diff --git a/ash/public/cpp/file_icon_util.h b/ash/public/cpp/file_icon_util.h new file mode 100644 index 0000000..2fe8858 --- /dev/null +++ b/ash/public/cpp/file_icon_util.h
@@ -0,0 +1,66 @@ +// Copyright 2019 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef ASH_PUBLIC_CPP_FILE_ICON_UTIL_H_ +#define ASH_PUBLIC_CPP_FILE_ICON_UTIL_H_ + +#include "ash/public/cpp/ash_public_export.h" +#include "base/files/file_path.h" +#include "base/macros.h" +#include "ui/gfx/image/image_skia.h" + +namespace ash { +namespace internal { + +enum class IconType { + kAudio, + kArchive, + kChart, + kDrive, + kExcel, + kFolder, + kFolderShared, + kGdoc, + kGdraw, + kGeneric, + kGform, + kGmap, + kGsheet, + kGsite, + kGslide, + kGtable, + kLinux, + kImage, + kPdf, + kPpt, + kScript, + kSites, + kTini, + kVideo, + kWord, +}; + +ASH_PUBLIC_EXPORT IconType +GetIconTypeFromString(const std::string& icon_type_string); + +ASH_PUBLIC_EXPORT IconType GetIconTypeForPath(const base::FilePath& filepath); + +ASH_PUBLIC_EXPORT gfx::ImageSkia GetVectorIconFromIconType( + IconType icon, + bool is_chip_icon = false); + +ASH_PUBLIC_EXPORT int GetChipResourceIdForIconType(IconType icon); + +} // namespace internal + +ASH_PUBLIC_EXPORT gfx::ImageSkia GetIconForPath(const base::FilePath& filepath); + +ASH_PUBLIC_EXPORT gfx::ImageSkia GetChipIconForPath( + const base::FilePath& filepath); + +ASH_PUBLIC_EXPORT gfx::ImageSkia GetIconFromType(const std::string& icon_type); + +} // namespace ash + +#endif // ASH_PUBLIC_CPP_FILE_ICON_UTIL_H_
diff --git a/ash/public/cpp/file_icon_util_unittest.cc b/ash/public/cpp/file_icon_util_unittest.cc new file mode 100644 index 0000000..bba78e1 --- /dev/null +++ b/ash/public/cpp/file_icon_util_unittest.cc
@@ -0,0 +1,36 @@ +// Copyright 2019 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "ash/public/cpp/file_icon_util.h" + +#include <string> +#include <utility> +#include <vector> + +#include "base/files/file_path.h" +#include "base/files/file_util.h" +#include "base/strings/utf_string_conversions.h" +#include "base/test/scoped_feature_list.h" +#include "testing/gmock/include/gmock/gmock.h" +#include "testing/gtest/include/gtest/gtest.h" + +namespace ash { + +TEST(FileIconUtilTest, GetIconTypeForPath) { + const std::vector<std::pair<std::string, internal::IconType>> + file_path_to_icon_type = { + {"/my/test/file.pdf", internal::IconType::kPdf}, + {"/my/test/file.Pdf", internal::IconType::kPdf}, + {"/my/test/file.tar.gz", internal::IconType::kArchive}, + {"/my/test/.gslides", internal::IconType::kGslide}, + {"/my/test/noextension", internal::IconType::kGeneric}, + {"/my/test/file.missing", internal::IconType::kGeneric}}; + + for (const auto& pair : file_path_to_icon_type) { + EXPECT_EQ(internal::GetIconTypeForPath(base::FilePath(pair.first)), + pair.second); + } +} + +} // namespace ash
diff --git a/ash/public/cpp/holding_space/OWNERS b/ash/public/cpp/holding_space/OWNERS index 809ac16a..bbe6fc2 100644 --- a/ash/public/cpp/holding_space/OWNERS +++ b/ash/public/cpp/holding_space/OWNERS
@@ -1 +1,3 @@ -file://ash/holding_space/OWNERS +tbarzic@chromium.org +newcomer@chromium.org +dmblack@chromium.org
diff --git a/ash/public/cpp/holding_space/holding_space_client.h b/ash/public/cpp/holding_space/holding_space_client.h new file mode 100644 index 0000000..8c8b120 --- /dev/null +++ b/ash/public/cpp/holding_space/holding_space_client.h
@@ -0,0 +1,31 @@ +// Copyright 2020 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef ASH_PUBLIC_CPP_HOLDING_SPACE_HOLDING_SPACE_CLIENT_H_ +#define ASH_PUBLIC_CPP_HOLDING_SPACE_HOLDING_SPACE_CLIENT_H_ + +#include "ash/public/cpp/ash_public_export.h" +#include "base/callback_forward.h" + +namespace ash { + +class HoldingSpaceItem; + +// Interface for the holding space browser client. +class ASH_PUBLIC_EXPORT HoldingSpaceClient { + public: + // Attempts to open the specified holding space `item`. Success is returned + // via the supplied `callback`. + using OpenItemCallback = base::OnceCallback<void(bool)>; + virtual void OpenItem(const HoldingSpaceItem& item, + OpenItemCallback callback) = 0; + + protected: + HoldingSpaceClient() = default; + virtual ~HoldingSpaceClient() = default; +}; + +} // namespace ash + +#endif // ASH_PUBLIC_CPP_HOLDING_SPACE_HOLDING_SPACE_CLIENT_H_
diff --git a/ash/public/cpp/holding_space/holding_space_controller.cc b/ash/public/cpp/holding_space/holding_space_controller.cc index eebe7d0..7f4a828 100644 --- a/ash/public/cpp/holding_space/holding_space_controller.cc +++ b/ash/public/cpp/holding_space/holding_space_controller.cc
@@ -26,6 +26,7 @@ HoldingSpaceController::~HoldingSpaceController() { CHECK_EQ(g_instance, this); + SetClient(nullptr); SetModel(nullptr); g_instance = nullptr; @@ -47,11 +48,34 @@ observers_.RemoveObserver(observer); } -void HoldingSpaceController::RegisterModelForUser(const AccountId& account_id, - HoldingSpaceModel* model) { - models_by_account_id_[account_id] = model; - if (account_id == active_user_account_id_) +void HoldingSpaceController::RegisterClientAndModelForUser( + const AccountId& account_id, + HoldingSpaceClient* client, + HoldingSpaceModel* model) { + clients_and_models_by_account_id_[account_id] = std::make_pair(client, model); + if (account_id == active_user_account_id_) { + SetClient(client); SetModel(model); + } +} + +void HoldingSpaceController::OnActiveUserSessionChanged( + const AccountId& account_id) { + active_user_account_id_ = account_id; + + auto client_and_model_it = clients_and_models_by_account_id_.find(account_id); + if (client_and_model_it == clients_and_models_by_account_id_.end()) { + SetClient(nullptr); + SetModel(nullptr); + return; + } + + SetClient(client_and_model_it->second.first); + SetModel(client_and_model_it->second.second); +} + +void HoldingSpaceController::SetClient(HoldingSpaceClient* client) { + client_ = client; } void HoldingSpaceController::SetModel(HoldingSpaceModel* model) { @@ -68,16 +92,4 @@ } } -void HoldingSpaceController::OnActiveUserSessionChanged( - const AccountId& account_id) { - active_user_account_id_ = account_id; - - auto model_it = models_by_account_id_.find(account_id); - if (model_it == models_by_account_id_.end()) { - SetModel(nullptr); - return; - } - SetModel(model_it->second); -} - } // namespace ash
diff --git a/ash/public/cpp/holding_space/holding_space_controller.h b/ash/public/cpp/holding_space/holding_space_controller.h index a5ab404..14ce07af 100644 --- a/ash/public/cpp/holding_space/holding_space_controller.h +++ b/ash/public/cpp/holding_space/holding_space_controller.h
@@ -12,6 +12,7 @@ namespace ash { +class HoldingSpaceClient; class HoldingSpaceControllerObserver; class HoldingSpaceModel; @@ -36,27 +37,33 @@ void AddObserver(HoldingSpaceControllerObserver* observer); void RemoveObserver(HoldingSpaceControllerObserver* observer); - // Adds a model to it's corresponding user account id in a map. - void RegisterModelForUser(const AccountId& account_id, - HoldingSpaceModel* model); + // Adds a client and model to it's corresponding user account id in a map. + void RegisterClientAndModelForUser(const AccountId& account_id, + HoldingSpaceClient* client, + HoldingSpaceModel* model); - // Sets the active model - the caller is expected to maintain the ownership. - void SetModel(HoldingSpaceModel* model); + HoldingSpaceClient* client() { return client_; } HoldingSpaceModel* model() { return model_; } + private: // SessionObserver: void OnActiveUserSessionChanged(const AccountId& account_id) override; - private: - // The currently active holding space model, set by SetModel(). The client - // that sets the model is expected to maintain the model ownership. + void SetClient(HoldingSpaceClient* client); + void SetModel(HoldingSpaceModel* model); + + // The currently active holding space client, set by `SetClient()`. + HoldingSpaceClient* client_ = nullptr; + + // The currently active holding space model, set by `SetModel()`. HoldingSpaceModel* model_ = nullptr; // The currently active user account id. AccountId active_user_account_id_; - std::map<const AccountId, HoldingSpaceModel*> models_by_account_id_; + using ClientAndModel = std::pair<HoldingSpaceClient*, HoldingSpaceModel*>; + std::map<const AccountId, ClientAndModel> clients_and_models_by_account_id_; base::ObserverList<HoldingSpaceControllerObserver> observers_; };
diff --git a/ash/public/cpp/vector_icons/BUILD.gn b/ash/public/cpp/vector_icons/BUILD.gn index d99f938..9215b41 100644 --- a/ash/public/cpp/vector_icons/BUILD.gn +++ b/ash/public/cpp/vector_icons/BUILD.gn
@@ -12,6 +12,32 @@ "assistant.icon", "calculate.icon", "conversion_path.icon", + "filetype_archive.icon", + "filetype_audio.icon", + "filetype_chart.icon", + "filetype_chip_background.icon", + "filetype_excel.icon", + "filetype_folder.icon", + "filetype_gdoc.icon", + "filetype_gdraw.icon", + "filetype_generic.icon", + "filetype_gform.icon", + "filetype_gmap.icon", + "filetype_gsheet.icon", + "filetype_gsite.icon", + "filetype_gslides.icon", + "filetype_gtable.icon", + "filetype_image.icon", + "filetype_linux.icon", + "filetype_pdf.icon", + "filetype_ppt.icon", + "filetype_script.icon", + "filetype_shared.icon", + "filetype_sites.icon", + "filetype_team_drive.icon", + "filetype_tini.icon", + "filetype_video.icon", + "filetype_word.icon", "notification_assistant.icon", "notification_supervised_user.icon", "notification_warning.icon",
diff --git a/ash/public/cpp/app_list/vector_icons/filetype_archive.icon b/ash/public/cpp/vector_icons/filetype_archive.icon similarity index 100% rename from ash/public/cpp/app_list/vector_icons/filetype_archive.icon rename to ash/public/cpp/vector_icons/filetype_archive.icon
diff --git a/ash/public/cpp/app_list/vector_icons/filetype_audio.icon b/ash/public/cpp/vector_icons/filetype_audio.icon similarity index 100% rename from ash/public/cpp/app_list/vector_icons/filetype_audio.icon rename to ash/public/cpp/vector_icons/filetype_audio.icon
diff --git a/ash/public/cpp/app_list/vector_icons/filetype_chart.icon b/ash/public/cpp/vector_icons/filetype_chart.icon similarity index 100% rename from ash/public/cpp/app_list/vector_icons/filetype_chart.icon rename to ash/public/cpp/vector_icons/filetype_chart.icon
diff --git a/ash/public/cpp/app_list/vector_icons/filetype_chip_background.icon b/ash/public/cpp/vector_icons/filetype_chip_background.icon similarity index 100% rename from ash/public/cpp/app_list/vector_icons/filetype_chip_background.icon rename to ash/public/cpp/vector_icons/filetype_chip_background.icon
diff --git a/ash/public/cpp/app_list/vector_icons/filetype_excel.icon b/ash/public/cpp/vector_icons/filetype_excel.icon similarity index 100% rename from ash/public/cpp/app_list/vector_icons/filetype_excel.icon rename to ash/public/cpp/vector_icons/filetype_excel.icon
diff --git a/ash/public/cpp/app_list/vector_icons/filetype_folder.icon b/ash/public/cpp/vector_icons/filetype_folder.icon similarity index 100% rename from ash/public/cpp/app_list/vector_icons/filetype_folder.icon rename to ash/public/cpp/vector_icons/filetype_folder.icon
diff --git a/ash/public/cpp/app_list/vector_icons/filetype_gdoc.icon b/ash/public/cpp/vector_icons/filetype_gdoc.icon similarity index 100% rename from ash/public/cpp/app_list/vector_icons/filetype_gdoc.icon rename to ash/public/cpp/vector_icons/filetype_gdoc.icon
diff --git a/ash/public/cpp/app_list/vector_icons/filetype_gdraw.icon b/ash/public/cpp/vector_icons/filetype_gdraw.icon similarity index 100% rename from ash/public/cpp/app_list/vector_icons/filetype_gdraw.icon rename to ash/public/cpp/vector_icons/filetype_gdraw.icon
diff --git a/ash/public/cpp/app_list/vector_icons/filetype_generic.icon b/ash/public/cpp/vector_icons/filetype_generic.icon similarity index 100% rename from ash/public/cpp/app_list/vector_icons/filetype_generic.icon rename to ash/public/cpp/vector_icons/filetype_generic.icon
diff --git a/ash/public/cpp/app_list/vector_icons/filetype_gform.icon b/ash/public/cpp/vector_icons/filetype_gform.icon similarity index 100% rename from ash/public/cpp/app_list/vector_icons/filetype_gform.icon rename to ash/public/cpp/vector_icons/filetype_gform.icon
diff --git a/ash/public/cpp/app_list/vector_icons/filetype_gmap.icon b/ash/public/cpp/vector_icons/filetype_gmap.icon similarity index 100% rename from ash/public/cpp/app_list/vector_icons/filetype_gmap.icon rename to ash/public/cpp/vector_icons/filetype_gmap.icon
diff --git a/ash/public/cpp/app_list/vector_icons/filetype_gsheet.icon b/ash/public/cpp/vector_icons/filetype_gsheet.icon similarity index 100% rename from ash/public/cpp/app_list/vector_icons/filetype_gsheet.icon rename to ash/public/cpp/vector_icons/filetype_gsheet.icon
diff --git a/ash/public/cpp/app_list/vector_icons/filetype_gsite.icon b/ash/public/cpp/vector_icons/filetype_gsite.icon similarity index 100% rename from ash/public/cpp/app_list/vector_icons/filetype_gsite.icon rename to ash/public/cpp/vector_icons/filetype_gsite.icon
diff --git a/ash/public/cpp/app_list/vector_icons/filetype_gslides.icon b/ash/public/cpp/vector_icons/filetype_gslides.icon similarity index 100% rename from ash/public/cpp/app_list/vector_icons/filetype_gslides.icon rename to ash/public/cpp/vector_icons/filetype_gslides.icon
diff --git a/ash/public/cpp/app_list/vector_icons/filetype_gtable.icon b/ash/public/cpp/vector_icons/filetype_gtable.icon similarity index 100% rename from ash/public/cpp/app_list/vector_icons/filetype_gtable.icon rename to ash/public/cpp/vector_icons/filetype_gtable.icon
diff --git a/ash/public/cpp/app_list/vector_icons/filetype_image.icon b/ash/public/cpp/vector_icons/filetype_image.icon similarity index 100% rename from ash/public/cpp/app_list/vector_icons/filetype_image.icon rename to ash/public/cpp/vector_icons/filetype_image.icon
diff --git a/ash/public/cpp/app_list/vector_icons/filetype_linux.icon b/ash/public/cpp/vector_icons/filetype_linux.icon similarity index 100% rename from ash/public/cpp/app_list/vector_icons/filetype_linux.icon rename to ash/public/cpp/vector_icons/filetype_linux.icon
diff --git a/ash/public/cpp/app_list/vector_icons/filetype_pdf.icon b/ash/public/cpp/vector_icons/filetype_pdf.icon similarity index 100% rename from ash/public/cpp/app_list/vector_icons/filetype_pdf.icon rename to ash/public/cpp/vector_icons/filetype_pdf.icon
diff --git a/ash/public/cpp/app_list/vector_icons/filetype_ppt.icon b/ash/public/cpp/vector_icons/filetype_ppt.icon similarity index 100% rename from ash/public/cpp/app_list/vector_icons/filetype_ppt.icon rename to ash/public/cpp/vector_icons/filetype_ppt.icon
diff --git a/ash/public/cpp/app_list/vector_icons/filetype_script.icon b/ash/public/cpp/vector_icons/filetype_script.icon similarity index 100% rename from ash/public/cpp/app_list/vector_icons/filetype_script.icon rename to ash/public/cpp/vector_icons/filetype_script.icon
diff --git a/ash/public/cpp/app_list/vector_icons/filetype_shared.icon b/ash/public/cpp/vector_icons/filetype_shared.icon similarity index 100% rename from ash/public/cpp/app_list/vector_icons/filetype_shared.icon rename to ash/public/cpp/vector_icons/filetype_shared.icon
diff --git a/ash/public/cpp/app_list/vector_icons/filetype_sites.icon b/ash/public/cpp/vector_icons/filetype_sites.icon similarity index 100% rename from ash/public/cpp/app_list/vector_icons/filetype_sites.icon rename to ash/public/cpp/vector_icons/filetype_sites.icon
diff --git a/ash/public/cpp/app_list/vector_icons/filetype_team_drive.icon b/ash/public/cpp/vector_icons/filetype_team_drive.icon similarity index 100% rename from ash/public/cpp/app_list/vector_icons/filetype_team_drive.icon rename to ash/public/cpp/vector_icons/filetype_team_drive.icon
diff --git a/ash/public/cpp/app_list/vector_icons/filetype_tini.icon b/ash/public/cpp/vector_icons/filetype_tini.icon similarity index 100% rename from ash/public/cpp/app_list/vector_icons/filetype_tini.icon rename to ash/public/cpp/vector_icons/filetype_tini.icon
diff --git a/ash/public/cpp/app_list/vector_icons/filetype_video.icon b/ash/public/cpp/vector_icons/filetype_video.icon similarity index 100% rename from ash/public/cpp/app_list/vector_icons/filetype_video.icon rename to ash/public/cpp/vector_icons/filetype_video.icon
diff --git a/ash/public/cpp/app_list/vector_icons/filetype_word.icon b/ash/public/cpp/vector_icons/filetype_word.icon similarity index 100% rename from ash/public/cpp/app_list/vector_icons/filetype_word.icon rename to ash/public/cpp/vector_icons/filetype_word.icon
diff --git a/ash/strings/ash_strings_af.xtb b/ash/strings/ash_strings_af.xtb index c68783e..fac2033 100644 --- a/ash/strings/ash_strings_af.xtb +++ b/ash/strings/ash_strings_af.xtb
@@ -572,6 +572,7 @@ <translation id="742608627846767349">Goeiemôre</translation> <translation id="743058460480092004">Kamera en mikrofoon word gebruik.</translation> <translation id="7466449121337984263">Raak asseblief die sensor</translation> +<translation id="7477793887173910789">Beheer jou musiek, video's en meer</translation> <translation id="7497767806359279797">Kies taal en sleutelbord</translation> <translation id="7526573455193969409">Netwerk kan gemonitor word</translation> <translation id="7536035074519304529">IP-adres: <ph name="ADDRESS" /></translation>
diff --git a/ash/strings/ash_strings_am.xtb b/ash/strings/ash_strings_am.xtb index 7697aca2..1e36952 100644 --- a/ash/strings/ash_strings_am.xtb +++ b/ash/strings/ash_strings_am.xtb
@@ -571,6 +571,7 @@ <translation id="742608627846767349">ደህና አደሩ፣</translation> <translation id="743058460480092004">ካሜራና ማይክራፎን ስራ ላይ ናቸው።</translation> <translation id="7466449121337984263">እባክዎ ዳሳሹን ይንኩ</translation> +<translation id="7477793887173910789">የእርስዎን ሙዚቃ፣ ቪዲዮዎች እና ተጨማሪ ነገሮች ይቆጣጠሩ</translation> <translation id="7497767806359279797">ቋንቋ እና ቁልፍ ሰሌዳን ይምረጡ</translation> <translation id="7526573455193969409">አውታረ መረብ ክትትል የሚደረግበት ሊሆን ይችላል</translation> <translation id="7536035074519304529">የአይፒ አድራሻ፦ <ph name="ADDRESS" /></translation>
diff --git a/ash/strings/ash_strings_ar.xtb b/ash/strings/ash_strings_ar.xtb index 28dcfa8..18dffbb 100644 --- a/ash/strings/ash_strings_ar.xtb +++ b/ash/strings/ash_strings_ar.xtb
@@ -11,6 +11,7 @@ <translation id="1056775291175587022">ما من شبكات</translation> <translation id="1059194134494239015"><ph name="DISPLAY_NAME" />: <ph name="RESOLUTION" /></translation> <translation id="108486256082349153">خلوي: <ph name="ADDRESS" /></translation> +<translation id="1087110696012418426">مساء الخير <ph name="GIVEN_NAME" />،</translation> <translation id="109942774857561566">أشعر بالملل</translation> <translation id="1104084341931202936">عرض إعدادات إمكانية الوصول</translation> <translation id="1104621072296271835">تعمل أجهزتك بشكل أفضل وهي مرتبطة معًا</translation> @@ -71,6 +72,7 @@ <translation id="1677472565718498478">الوقت المتبقي <ph name="TIME" /></translation> <translation id="1698080062160024910">مؤقت <ph name="TOTAL_TIME" /> <ph name="LABEL" /></translation> <translation id="1698760176351776263">عنوان IPv6: <ph name="ADDRESS" /></translation> +<translation id="1708345662127501511">سطح المكتب: <ph name="DESK_NAME" /></translation> <translation id="1709762881904163296">إعدادات الشبكة</translation> <translation id="1743570585616704562">لم يتم التعرف عليها</translation> <translation id="1746730358044914197">تتم تهيئة طرق الإدخال بواسطة المشرف.</translation> @@ -107,6 +109,7 @@ <translation id="2018630726571919839">أريد سماع نكتة</translation> <translation id="2050339315714019657">رأسي</translation> <translation id="2067602449040652523">سطوع لوحة المفاتيح</translation> +<translation id="2083190527011054446">ليلة سعيدة <ph name="GIVEN_NAME" />،</translation> <translation id="209965399369889474">لا يتوفّر اتصال بالشبكة</translation> <translation id="2126242104232412123">سطح مكتب جديد</translation> <translation id="2127372758936585790">شاحن منخفض الطاقة</translation> @@ -185,6 +188,7 @@ <translation id="3009178788565917040">الإخراج</translation> <translation id="3033545621352269033">مُفعَّلة</translation> <translation id="3038571455154067151">لتسجيل الدخول، يُرجى إدخال رمز الدخول المخصّص للوالدَين في Family Link</translation> +<translation id="3045488863354895414">مساء الخير،</translation> <translation id="3051128274746680507">ستتم إزالة الملف الشخصي للمستخدم تحت الإشراف قريبًا. يمكنك تسجيل الدخول للتعرُّف على مزيد من المعلومات.</translation> <translation id="3055162170959710888">استخدمت هذا الجهاز لمدة <ph name="USED_TIME" /> اليوم</translation> <translation id="3076778413190775903">شريط الحالة، الوقت <ph name="TIME" />، @@ -304,6 +308,7 @@ <translation id="4261870227682513959">عرض إعدادات الإشعارات. تم إيقاف الإشعارات</translation> <translation id="4269883910223712419">يمتلك مشرف هذا الجهاز القدرة على ما يلي:</translation> <translation id="4279490309300973883">النسخ المطابق</translation> +<translation id="4294319844246081198">صباح الخير <ph name="GIVEN_NAME" />،</translation> <translation id="4296136865091727875">محو جميع الإشعارات التي يبلغ عددها <ph name="COUNT" /></translation> <translation id="4303223480529385476">توسيع منطقة الحالة</translation> <translation id="4321179778687042513">ctrl</translation> @@ -320,6 +325,7 @@ <translation id="4421231901400348175">مشاركة التحكم في شاشتك مع <ph name="HELPER_NAME" /> عن طريق المساعدة عن بُعد.</translation> <translation id="4430019312045809116">مستوى الصوت</translation> <translation id="4450893287417543264">عدم الإظهار مرة أخرى</translation> +<translation id="445864333228800152">مساء الخير،</translation> <translation id="4458688154122353284">إيقاف تسجيل الشاشة</translation> <translation id="4477350412780666475">المقطع الصوتي التالي</translation> <translation id="4477892968187500306">يمكن أن يتضمّن هذا الجهاز تطبيقات لم تتحقّق منها Google.</translation> @@ -430,6 +436,7 @@ <translation id="5887866489674258948">الوضع المُعتِم</translation> <translation id="5895138241574237353">إعادة التشغيل</translation> <translation id="5901316534475909376">Shift+Esc</translation> +<translation id="5909862606227538307">سطح مكتب غير نشط</translation> <translation id="5911909173233110115"><ph name="USERNAME" /> (<ph name="MAIL" />)</translation> <translation id="5916664084637901428">مفعّل</translation> <translation id="5920710855273935292">تم كتم صوت الميكروفون.</translation> @@ -562,8 +569,10 @@ <translation id="7405710164030118432">لفتح قفل الجهاز، يُرجى إدخال رمز الدخول الخاص بالوالدين في Family Link.</translation> <translation id="741244894080940828">التحويل</translation> <translation id="742594950370306541">الكاميرا قيد الاستخدام.</translation> +<translation id="742608627846767349">صباح الخير،</translation> <translation id="743058460480092004">الكاميرا والميكروفون قيد الاستخدام.</translation> <translation id="7466449121337984263">يُرجى لمس جهاز الاستشعار.</translation> +<translation id="7477793887173910789">التحكم في الموسيقى والفيديوهات وغير ذلك</translation> <translation id="7497767806359279797">اختيار اللغة ولوحة المفاتيح</translation> <translation id="7526573455193969409">قد تكون الشبكة خاضعة للمراقبة</translation> <translation id="7536035074519304529">عنوان IP: <ph name="ADDRESS" /></translation> @@ -648,11 +657,13 @@ <translation id="8351131234907093545">إنشاء ملاحظة</translation> <translation id="8371779926711439835">نقل للأمام بمقدار حرف واحد</translation> <translation id="8375916635258623388">سيتم الربط تلقائيًا بين جهاز <ph name="DEVICE_NAME" /> هذا وهاتفك.</translation> +<translation id="8380784334203145311">ليلة سعيدة،</translation> <translation id="8388750414311082622">تتعذّر إزالة سطح المكتب الأخير.</translation> <translation id="8392451568018454956">قائمة الخيارات لـ <ph name="USER_EMAIL_ADDRESS" /></translation> <translation id="8394567579869570560">قفّل أحد الوالدين هذا الجهاز</translation> <translation id="8412677897383510995">إظهار إعدادات شاشة العرض</translation> <translation id="8425213833346101688">تغيير</translation> +<translation id="8426708595819210923">مساء الخير <ph name="GIVEN_NAME" />،</translation> <translation id="8427213022735114808">ترسل ميزة "الإملاء" صوتك إلى Google للسماح بالكتابة بالصوت في أي حقل نصي.</translation> <translation id="8428213095426709021">الإعدادات</translation> <translation id="8433186206711564395">إعدادات الشبكة</translation>
diff --git a/ash/strings/ash_strings_as.xtb b/ash/strings/ash_strings_as.xtb index 34d25490..6955e12 100644 --- a/ash/strings/ash_strings_as.xtb +++ b/ash/strings/ash_strings_as.xtb
@@ -561,6 +561,7 @@ <translation id="742594950370306541">কেমেৰা ব্যৱহাৰ কৰি থকা হৈছে।</translation> <translation id="743058460480092004">কেমেৰা আৰু মাইক্ৰ’ফন ব্যৱহাৰ হৈ আছে।</translation> <translation id="7466449121337984263">অনুগ্ৰহ কৰি ছেন্সৰটো স্পৰ্শ কৰক</translation> +<translation id="7477793887173910789">আপোনাৰ সংগীত, ভিডিঅ’সমূহ আৰু অধিক নিয়ন্ত্ৰণ কৰক</translation> <translation id="7497767806359279797">ভাষা আৰু কীব'র্ড বাছনি কৰক</translation> <translation id="7536035074519304529">আইপি ঠিকনা: <ph name="ADDRESS" /></translation> <translation id="7548434653388805669">শুবৰ সময় হ’ল</translation>
diff --git a/ash/strings/ash_strings_az.xtb b/ash/strings/ash_strings_az.xtb index 5ceeb08..bae8a692 100644 --- a/ash/strings/ash_strings_az.xtb +++ b/ash/strings/ash_strings_az.xtb
@@ -11,6 +11,7 @@ <translation id="1056775291175587022">Şəbəkə yoxdur</translation> <translation id="1059194134494239015"><ph name="DISPLAY_NAME" />: <ph name="RESOLUTION" /></translation> <translation id="108486256082349153">Mobil: <ph name="ADDRESS" /></translation> +<translation id="1087110696012418426">Günortanız xeyir, <ph name="GIVEN_NAME" /></translation> <translation id="109942774857561566">Darıxıram</translation> <translation id="1104084341931202936">Əlçatımlılıq ayarlarını göstərin</translation> <translation id="1104621072296271835">Cihazlarınız birlikdə daha yaxşı işləyir</translation> @@ -71,6 +72,7 @@ <translation id="1677472565718498478"><ph name="TIME" /> qaldı</translation> <translation id="1698080062160024910"><ph name="TOTAL_TIME" /> taymeri · <ph name="LABEL" /></translation> <translation id="1698760176351776263">IPv6 ünvanı: <ph name="ADDRESS" /></translation> +<translation id="1708345662127501511">Masa: <ph name="DESK_NAME" /></translation> <translation id="1709762881904163296">Şəbəkə Ayarları</translation> <translation id="1743570585616704562">Tanınmır</translation> <translation id="1746730358044914197">Daxiletmə üsulları administrator tərəfindən konfiqurasiya edilir.</translation> @@ -107,6 +109,7 @@ <translation id="2018630726571919839">Gülməli əhvalat danış</translation> <translation id="2050339315714019657">Portret</translation> <translation id="2067602449040652523">Klaviatura parlaqlığı</translation> +<translation id="2083190527011054446">Gecəniz xeyir, <ph name="GIVEN_NAME" /></translation> <translation id="209965399369889474">Şəbəkəyə qoşulmayıb</translation> <translation id="2126242104232412123">Yeni iş masası</translation> <translation id="2127372758936585790">Gücü az şarjer</translation> @@ -185,6 +188,7 @@ <translation id="3009178788565917040">Çıxış</translation> <translation id="3033545621352269033">Aktiv</translation> <translation id="3038571455154067151">Daxil olmaq üçün Family Link valideyn giriş kodunuzu daxil edin</translation> +<translation id="3045488863354895414">Günortanız xeyir,</translation> <translation id="3051128274746680507">Nəzarət edilən istifadəçi profili tezliklə silinəcək. Ətraflı məlumat üçün daxil olun.</translation> <translation id="3055162170959710888">Bugün <ph name="USED_TIME" /> bu cihazdan istifadə etdiniz</translation> <translation id="3076778413190775903">Vəziyyət bölməsi, vaxt: <ph name="TIME" />, @@ -304,6 +308,7 @@ <translation id="4261870227682513959">Bildiriş ayarlarını göstərin. Bildirişlər deaktivdir</translation> <translation id="4269883910223712419">Bu cihazın admini edə bilər:</translation> <translation id="4279490309300973883">Əks etdirilir</translation> +<translation id="4294319844246081198">Sabahınız xeyir, <ph name="GIVEN_NAME" /></translation> <translation id="4296136865091727875"><ph name="COUNT" /> bildirişin hamısını silin</translation> <translation id="4303223480529385476">Status sahəsini genişləndirin</translation> <translation id="4321179778687042513">ctrl</translation> @@ -320,6 +325,7 @@ <translation id="4421231901400348175">Uzaqdan Yardım vasitəsilə <ph name="HELPER_NAME" /> ilə ekranın kontrolunu paylaşın</translation> <translation id="4430019312045809116">Həcm</translation> <translation id="4450893287417543264">Daha göstərməyin</translation> +<translation id="445864333228800152">Axşamınız xeyir,</translation> <translation id="4458688154122353284">Ekran çəkilişini dayandırın</translation> <translation id="4477350412780666475">Növbəti trek</translation> <translation id="4477892968187500306">Bu cihaz Google tərəfindən doğrulanmamış tətbiqlər ehtiva edə bilər.</translation> @@ -430,6 +436,7 @@ <translation id="5887866489674258948">Qaranlıq rejim</translation> <translation id="5895138241574237353">Yenidən başladın</translation> <translation id="5901316534475909376">Shift+Esc</translation> +<translation id="5909862606227538307">Deaktiv masa.</translation> <translation id="5911909173233110115"><ph name="USERNAME" /> (<ph name="MAIL" />)</translation> <translation id="5916664084637901428">Aktiv</translation> <translation id="5920710855273935292">Mikrofon səssiz edilib.</translation> @@ -561,8 +568,10 @@ <translation id="7405710164030118432">Cihazı kiliddən çıxarmaq üçün Family Link ailə giriş kodunu daxil edin</translation> <translation id="741244894080940828">çevirmə</translation> <translation id="742594950370306541">Kamera istifadə olunur.</translation> +<translation id="742608627846767349">Sabahınız xeyir,</translation> <translation id="743058460480092004">Kamera və mikrofon istifadə olunur.</translation> <translation id="7466449121337984263">Sensora toxunun</translation> +<translation id="7477793887173910789">Musiqi, video və daha çoxuna nəzarət edin</translation> <translation id="7497767806359279797">Dil və klaviatura seçin</translation> <translation id="7526573455193969409">Şəbəkəyə nəzarət edilə bilər</translation> <translation id="7536035074519304529">IP ünvanı: <ph name="ADDRESS" /></translation> @@ -647,11 +656,13 @@ <translation id="8351131234907093545">Qeyd yaradın</translation> <translation id="8371779926711439835">Hərf üzrə irəli keçin</translation> <translation id="8375916635258623388">Bu <ph name="DEVICE_NAME" /> və telefon avtomatik qoşulacaq</translation> +<translation id="8380784334203145311">Gecəniz xeyir,</translation> <translation id="8388750414311082622">Sonuncu masa silinə bilməz.</translation> <translation id="8392451568018454956"><ph name="USER_EMAIL_ADDRESS" /> üçün seçimlər menyusu</translation> <translation id="8394567579869570560">Valideyniniz cihazı kilidləyib</translation> <translation id="8412677897383510995">Displey ayarlarını göstərin</translation> <translation id="8425213833346101688">Dəyişin</translation> +<translation id="8426708595819210923">Axşamınız xeyir, <ph name="GIVEN_NAME" />,</translation> <translation id="8427213022735114808">Diktant istənilən mətn sahəsində səs yazmağa icazə vermək üçün səsinizi Google'a göndərir.</translation> <translation id="8428213095426709021">Ayarlar</translation> <translation id="8433186206711564395">Şəbəkə ayarları</translation>
diff --git a/ash/strings/ash_strings_be.xtb b/ash/strings/ash_strings_be.xtb index dc7193f7..29a501c 100644 --- a/ash/strings/ash_strings_be.xtb +++ b/ash/strings/ash_strings_be.xtb
@@ -11,6 +11,7 @@ <translation id="1056775291175587022">Няма сетак</translation> <translation id="1059194134494239015"><ph name="DISPLAY_NAME" />: <ph name="RESOLUTION" /></translation> <translation id="108486256082349153">Сотавая прылада: <ph name="ADDRESS" /></translation> +<translation id="1087110696012418426">Добры дзень, <ph name="GIVEN_NAME" />!</translation> <translation id="109942774857561566">Мне надакучыла</translation> <translation id="1104084341931202936">Паказаць налады спецыяльных магчымасцей</translation> <translation id="1104621072296271835">Разам вашы прылады працуюць яшчэ лепей</translation> @@ -71,6 +72,7 @@ <translation id="1677472565718498478">Засталося <ph name="TIME" /></translation> <translation id="1698080062160024910">Таймер на <ph name="TOTAL_TIME" /> · <ph name="LABEL" /></translation> <translation id="1698760176351776263">Адрас IPv6: <ph name="ADDRESS" /></translation> +<translation id="1708345662127501511">Працоўны стол: <ph name="DESK_NAME" /></translation> <translation id="1709762881904163296">Налады сеткі</translation> <translation id="1743570585616704562">Не распазнана</translation> <translation id="1746730358044914197">Метады ўводу наладжаны адміністратарам.</translation> @@ -107,6 +109,7 @@ <translation id="2018630726571919839">Раскажы мне жарт</translation> <translation id="2050339315714019657">Кніжная</translation> <translation id="2067602449040652523">Яркасць клавіятуры</translation> +<translation id="2083190527011054446">Добрай ночы, <ph name="GIVEN_NAME" />!</translation> <translation id="209965399369889474">Няма падключэння да сеткі</translation> <translation id="2126242104232412123">Новы стол</translation> <translation id="2127372758936585790">Зарадная прылада малой магутнасці</translation> @@ -185,6 +188,7 @@ <translation id="3009178788565917040">Выхад</translation> <translation id="3033545621352269033">Уключана</translation> <translation id="3038571455154067151">Каб увайсці, увядзіце бацькоўскі код доступу Family Link</translation> +<translation id="3045488863354895414">Добры дзень,</translation> <translation id="3051128274746680507">Ваш профіль падкантрольнага карыстальніка будзе хутка выдалены. Каб даведацца больш, увайдзіце.</translation> <translation id="3055162170959710888">Сёння гэтай прыладай карысталіся <ph name="USED_TIME" /></translation> <translation id="3076778413190775903">Панэль стану, час <ph name="TIME" />, @@ -304,6 +308,7 @@ <translation id="4261870227682513959">Паказаць налады апавяшчэнняў. Апавяшчэнні выключаны</translation> <translation id="4269883910223712419">Адміністратар гэтай прылады мае наступныя магчымасці:</translation> <translation id="4279490309300973883">Адлюстраванне</translation> +<translation id="4294319844246081198">Добрай раніцы, <ph name="GIVEN_NAME" />!</translation> <translation id="4296136865091727875">Выдаліць усе апавяшчэнні (<ph name="COUNT" />)</translation> <translation id="4303223480529385476">Разгарнуць панэль стану</translation> <translation id="4321179778687042513">ctrl</translation> @@ -320,6 +325,7 @@ <translation id="4421231901400348175">Абагульванне кантролю над экранам з карыстальнікам <ph name="HELPER_NAME" /> праз Аддаленую дапамогу.</translation> <translation id="4430019312045809116">Гучнасць</translation> <translation id="4450893287417543264">Больш не паказваць</translation> +<translation id="445864333228800152">Добры вечар,</translation> <translation id="4458688154122353284">Спыніць запіс экрана</translation> <translation id="4477350412780666475">Наступны трэк</translation> <translation id="4477892968187500306">На гэтай прыладзе могуць знаходзіцца праграмы, якія не былі спраўджаны Google.</translation> @@ -430,6 +436,7 @@ <translation id="5887866489674258948">Цёмны рэжым</translation> <translation id="5895138241574237353">Перазапусціць</translation> <translation id="5901316534475909376">Shift+Esc</translation> +<translation id="5909862606227538307">Неактыўны працоўны стол.</translation> <translation id="5911909173233110115"><ph name="USERNAME" /> (<ph name="MAIL" />)</translation> <translation id="5916664084637901428">Уключана</translation> <translation id="5920710855273935292">Мікрафон выключаны.</translation> @@ -561,8 +568,10 @@ <translation id="7405710164030118432">Каб разблакіраваць прыладу, увядзіце бацькоўскі код доступу Family Link.</translation> <translation id="741244894080940828">перавод адзінак вымярэння</translation> <translation id="742594950370306541">Камера выкарыстоўваецца.</translation> +<translation id="742608627846767349">Добрай раніцы,</translation> <translation id="743058460480092004">Камера і мікрафон выкарыстоўваюцца.</translation> <translation id="7466449121337984263">Дакраніцеся да сканера</translation> +<translation id="7477793887173910789">Кіруйце музыкай, відэа і шмат чым іншым</translation> <translation id="7497767806359279797">Выбраць мову і клавіятуру</translation> <translation id="7526573455193969409">За сеткай могуць сачыць</translation> <translation id="7536035074519304529">IP-адрас: <ph name="ADDRESS" /></translation> @@ -647,11 +656,13 @@ <translation id="8351131234907093545">Стварыць нататку</translation> <translation id="8371779926711439835">Уперад на адну літару</translation> <translation id="8375916635258623388">Гэта прылада <ph name="DEVICE_NAME" /> і ваш тэлефон будуць падключацца аўтаматычна</translation> +<translation id="8380784334203145311">Добрай ночы,</translation> <translation id="8388750414311082622">Нельга выдаліць віртуальны стол, які з'яўляецца апошнім.</translation> <translation id="8392451568018454956">Меню параметраў для <ph name="USER_EMAIL_ADDRESS" /></translation> <translation id="8394567579869570560">Бацькі заблакіравалі гэту прыладу</translation> <translation id="8412677897383510995">Паказаць налады дысплэя</translation> <translation id="8425213833346101688">Змяніць</translation> +<translation id="8426708595819210923">Добры вечар, <ph name="GIVEN_NAME" />!</translation> <translation id="8427213022735114808">Функцыя дыктавання адпраўляе запісы вашага голасу сэрвісам Google, што дазваляе вам уводзіць тэкст голасам у тэкставых палях.</translation> <translation id="8428213095426709021">Налады</translation> <translation id="8433186206711564395">Налады сеткі</translation>
diff --git a/ash/strings/ash_strings_bg.xtb b/ash/strings/ash_strings_bg.xtb index b674dfa..e0dfd59 100644 --- a/ash/strings/ash_strings_bg.xtb +++ b/ash/strings/ash_strings_bg.xtb
@@ -11,6 +11,7 @@ <translation id="1056775291175587022">Няма мрежи</translation> <translation id="1059194134494239015"><ph name="DISPLAY_NAME" />: <ph name="RESOLUTION" /></translation> <translation id="108486256082349153">Мобилно устройство: <ph name="ADDRESS" /></translation> +<translation id="1087110696012418426">Добър ден, <ph name="GIVEN_NAME" /></translation> <translation id="109942774857561566">„I’m bored“ („Скучно ми е“)</translation> <translation id="1104084341931202936">Показване на настройките за достъпност</translation> <translation id="1104621072296271835">Устройствата ви работят още по-добре заедно</translation> @@ -71,6 +72,7 @@ <translation id="1677472565718498478">Оставащо време: <ph name="TIME" /></translation> <translation id="1698080062160024910">Таймер за <ph name="TOTAL_TIME" /> · <ph name="LABEL" /></translation> <translation id="1698760176351776263">IPv6 адрес: <ph name="ADDRESS" /></translation> +<translation id="1708345662127501511">Работен кът: <ph name="DESK_NAME" /></translation> <translation id="1709762881904163296">Настройки за мрежата</translation> <translation id="1743570585616704562">Не е разпознато</translation> <translation id="1746730358044914197">Методите на въвеждане са конфигурирани от администратора ви.</translation> @@ -107,6 +109,7 @@ <translation id="2018630726571919839">Tell me a joke</translation> <translation id="2050339315714019657">Вертикално</translation> <translation id="2067602449040652523">Яркост на клавиатурата</translation> +<translation id="2083190527011054446">Добър вечер, <ph name="GIVEN_NAME" /></translation> <translation id="209965399369889474">Няма връзка с мрежа</translation> <translation id="2126242104232412123">Нов работен кът</translation> <translation id="2127372758936585790">Зарядно устройство с малка мощност</translation> @@ -185,6 +188,7 @@ <translation id="3009178788565917040">Изход</translation> <translation id="3033545621352269033">Включено</translation> <translation id="3038571455154067151">За да влезете в профила си, въведете кода си за достъп на родител от Family Link</translation> +<translation id="3045488863354895414">Добър ден,</translation> <translation id="3051128274746680507">Профилът ви на контролиран потребител скоро ще бъде премахнат. Влезте в профила си, за да научите повече.</translation> <translation id="3055162170959710888">Днес използвахте това устройство <ph name="USED_TIME" /></translation> <translation id="3076778413190775903">Лента на състоянието, часът е <ph name="TIME" />, @@ -304,6 +308,7 @@ <translation id="4261870227682513959">Показване на настройките за известия. Известията са изключени</translation> <translation id="4269883910223712419">Администраторът на това устройство може:</translation> <translation id="4279490309300973883">Дублиране</translation> +<translation id="4294319844246081198">Добро утро, <ph name="GIVEN_NAME" /></translation> <translation id="4296136865091727875">Изчистване на всичките <ph name="COUNT" /> известия</translation> <translation id="4303223480529385476">Разгъване на лентата на състоянието</translation> <translation id="4321179778687042513">ctrl</translation> @@ -320,6 +325,7 @@ <translation id="4421231901400348175">Споделяте с/ъс <ph name="HELPER_NAME" /> контрола върху екрана си чрез отдалечено съдействие.</translation> <translation id="4430019312045809116">Звук</translation> <translation id="4450893287417543264">Да не се показва отново</translation> +<translation id="445864333228800152">Добър вечер</translation> <translation id="4458688154122353284">Спиране на записа на екрана</translation> <translation id="4477350412780666475">Следващ запис</translation> <translation id="4477892968187500306">На това устройство може да са инсталирани приложения, които не са потвърдени от Google.</translation> @@ -430,6 +436,7 @@ <translation id="5887866489674258948">Тъмен режим</translation> <translation id="5895138241574237353">Рестартиране</translation> <translation id="5901316534475909376">Shift + Esc</translation> +<translation id="5909862606227538307">Неактивен работен кът.</translation> <translation id="5911909173233110115"><ph name="USERNAME" /> (<ph name="MAIL" />)</translation> <translation id="5916664084637901428">Включено</translation> <translation id="5920710855273935292">Микрофонът е заглушен.</translation> @@ -561,8 +568,10 @@ <translation id="7405710164030118432">За да отключите устройството, въведете кода си за достъп на родител от Family Link</translation> <translation id="741244894080940828">преобразуване</translation> <translation id="742594950370306541">Камерата се използва.</translation> +<translation id="742608627846767349">Добро утро</translation> <translation id="743058460480092004">Камерата и микрофонът се използват.</translation> <translation id="7466449121337984263">Моля, докоснете сензора</translation> +<translation id="7477793887173910789">Управление на музиката, видеоклиповете и др.</translation> <translation id="7497767806359279797">Избор на език и клавиатура</translation> <translation id="7526573455193969409">Мрежата може да е под наблюдение</translation> <translation id="7536035074519304529">IP адрес: <ph name="ADDRESS" /></translation> @@ -647,11 +656,13 @@ <translation id="8351131234907093545">Създаване на бележка</translation> <translation id="8371779926711439835">Придвижване напред с една буква</translation> <translation id="8375916635258623388">Това устройство <ph name="DEVICE_NAME" /> и телефонът ви ще се свържат автоматично</translation> +<translation id="8380784334203145311">Добър вечер,</translation> <translation id="8388750414311082622">Последният работен кът не може да бъде премахнат.</translation> <translation id="8392451568018454956">Меню с опции за <ph name="USER_EMAIL_ADDRESS" /></translation> <translation id="8394567579869570560">Родителят ви заключи това устройство</translation> <translation id="8412677897383510995">Показване на настройките за екрана</translation> <translation id="8425213833346101688">Промяна</translation> +<translation id="8426708595819210923">Добър вечер, <ph name="GIVEN_NAME" /></translation> <translation id="8427213022735114808">Функцията за диктуване изпраща гласа ви до Google, за да даде възможност за гласово въвеждане във всяко текстово поле.</translation> <translation id="8428213095426709021">Настройки</translation> <translation id="8433186206711564395">Настройки на мрежата</translation>
diff --git a/ash/strings/ash_strings_bn.xtb b/ash/strings/ash_strings_bn.xtb index 70894af..f4b6dc6 100644 --- a/ash/strings/ash_strings_bn.xtb +++ b/ash/strings/ash_strings_bn.xtb
@@ -11,6 +11,7 @@ <translation id="1056775291175587022">নেটওয়ার্ক নেই</translation> <translation id="1059194134494239015"><ph name="DISPLAY_NAME" />: <ph name="RESOLUTION" /></translation> <translation id="108486256082349153">সেলুলার: <ph name="ADDRESS" /></translation> +<translation id="1087110696012418426">শুভ অপরাহ্ন <ph name="GIVEN_NAME" />,</translation> <translation id="109942774857561566">আমি বোর হয়ে গেছি</translation> <translation id="1104084341931202936">অ্যাক্সেসেবিলিটি সেটিংস দেখান</translation> <translation id="1104621072296271835">আপনার ডিভাইসগুলি একসাথে আরও ভাল কাজ করে</translation> @@ -71,6 +72,7 @@ <translation id="1677472565718498478"><ph name="TIME" /> বাকি আছে</translation> <translation id="1698080062160024910"><ph name="TOTAL_TIME" />-এর টাইমার · <ph name="LABEL" /></translation> <translation id="1698760176351776263">IPv6 ঠিকানা: <ph name="ADDRESS" /></translation> +<translation id="1708345662127501511">ডেস্ক: <ph name="DESK_NAME" /></translation> <translation id="1709762881904163296">নেটওয়ার্ক সেটিংস</translation> <translation id="1743570585616704562">শনাক্ত করা যায়নি</translation> <translation id="1746730358044914197">আপনার প্রশাসক ইনপুটের পদ্ধতিগুলি কনফিগার করে।</translation> @@ -107,6 +109,7 @@ <translation id="2018630726571919839">একটি জোকস শোনাও</translation> <translation id="2050339315714019657">প্রতিকৃতি</translation> <translation id="2067602449040652523">কীবোর্ডের উজ্জ্বলতা</translation> +<translation id="2083190527011054446">শুভরাত্রি <ph name="GIVEN_NAME" />,</translation> <translation id="209965399369889474">কোনও নেটওয়ার্কে কানেক্ট করা নেই</translation> <translation id="2126242104232412123">নতুন ডেস্ক</translation> <translation id="2127372758936585790">নিম্ন শক্তির চার্জার</translation> @@ -185,6 +188,7 @@ <translation id="3009178788565917040">আউটপুট</translation> <translation id="3033545621352269033">চালু করা আছে</translation> <translation id="3038571455154067151">সাইন-ইন করতে, আপনার Family Link-এর অভিভাবকীয় অ্যাক্সেস কোডটি লিখুন</translation> +<translation id="3045488863354895414">শুভ অপরাহ্ন,</translation> <translation id="3051128274746680507">আপনার তত্ত্বাবধানে থাকা ব্যবহারকারীর প্রোফাইল শীঘ্রই সরিয়ে দেওয়া হবে। আরও জানতে সাইন-ইন করুন।</translation> <translation id="3055162170959710888">এই ডিভাইসটি আজ আপনি <ph name="USED_TIME" /> ব্যবহার করেছেন</translation> <translation id="3076778413190775903">স্ট্যাটাস ট্রে, সময় <ph name="TIME" />, @@ -304,6 +308,7 @@ <translation id="4261870227682513959">বিজ্ঞপ্তি সেটিংস দেখান। বিজ্ঞপ্তি বন্ধ আছে</translation> <translation id="4269883910223712419">এই ডিভাইসের প্রশাসক এগুলি করতে পারেন:</translation> <translation id="4279490309300973883">অনুকরণ করা হচ্ছে</translation> +<translation id="4294319844246081198">সুপ্রভাত <ph name="GIVEN_NAME" />,</translation> <translation id="4296136865091727875"><ph name="COUNT" />টি বিজ্ঞপ্তি মুছে ফেলুন</translation> <translation id="4303223480529385476">স্ট্যাটাস এরিয়া বড় করুন</translation> <translation id="4321179778687042513">ctrl</translation> @@ -320,6 +325,7 @@ <translation id="4421231901400348175">রিমোট সহায়কের মাধ্যমে <ph name="HELPER_NAME" />-এর সাথে আপনার স্ক্রিন নিয়ন্ত্রন ভাগ করুন৷</translation> <translation id="4430019312045809116">ভলিউম</translation> <translation id="4450893287417543264">আর দেখতে চাই না</translation> +<translation id="445864333228800152">শুভ সন্ধ্যা,</translation> <translation id="4458688154122353284">স্ক্রিন রেকর্ডিং বন্ধ করুন</translation> <translation id="4477350412780666475">পরের ট্র্যাক চালান</translation> <translation id="4477892968187500306">Google যাচাই করেনি এমন অ্যাপও এই ডিভাইসে থাকে পারে।</translation> @@ -430,6 +436,7 @@ <translation id="5887866489674258948">ডার্ক মোড</translation> <translation id="5895138241574237353">পুনর্সূচনা</translation> <translation id="5901316534475909376">Shift+Esc</translation> +<translation id="5909862606227538307">ডেস্কটি অ্যাক্টিভ নেই</translation> <translation id="5911909173233110115"><ph name="USERNAME" /> (<ph name="MAIL" />)</translation> <translation id="5916664084637901428">চালু</translation> <translation id="5920710855273935292">মাইক্রোফোন মিউট করা আছে।</translation> @@ -562,8 +569,10 @@ <translation id="7405710164030118432">ডিভাইসটি আনলক করতে আপনার Family Link-এর অভিভাবকীয় অ্যাক্সেস কোডটি লিখুন</translation> <translation id="741244894080940828">রূপান্তর</translation> <translation id="742594950370306541">ক্যামেরা ব্যবহার করা হচ্ছে।</translation> +<translation id="742608627846767349">সুপ্রভাত,</translation> <translation id="743058460480092004">ক্যামেরা এবং মাইক্রোফোন ব্যবহার করা হচ্ছে।</translation> <translation id="7466449121337984263">সেন্সরটি স্পর্শ করুন</translation> +<translation id="7477793887173910789">আপনার মিউজিক, ভিডিও ও আরও অনেক কিছু নিয়ন্ত্রণ করুন</translation> <translation id="7497767806359279797">ভাষা এবং কীবোর্ড বেছে নিন</translation> <translation id="7526573455193969409">নেটওয়ার্কের উপরে নজর রাখা হতে পারে</translation> <translation id="7536035074519304529">আইপি অ্যাড্রেস: <ph name="ADDRESS" /></translation> @@ -648,11 +657,13 @@ <translation id="8351131234907093545">নোট তৈরি করুন</translation> <translation id="8371779926711439835">অক্ষর অনুযায়ী এগিয়ে যান</translation> <translation id="8375916635258623388">এই <ph name="DEVICE_NAME" />টি এবং আপনার ফোন নিজে থেকেই কানেক্ট হয়ে যাবে</translation> +<translation id="8380784334203145311">শুভরাত্রি,</translation> <translation id="8388750414311082622">শেষ ডেস্কটি সরানো যায়নি।</translation> <translation id="8392451568018454956"><ph name="USER_EMAIL_ADDRESS" /> এর জন্য বিকল্পগুলির মেনু</translation> <translation id="8394567579869570560">আপনার অভিভাবক এই ডিভাইসটি লক করে দিয়েছেন</translation> <translation id="8412677897383510995">ডিসপ্লে সেটিংস দেখুন</translation> <translation id="8425213833346101688">পরিবর্তন</translation> +<translation id="8426708595819210923">শুভ সন্ধ্যা <ph name="GIVEN_NAME" />,</translation> <translation id="8427213022735114808">যেকোনও টেক্সট ক্ষেত্রে ভয়েস টাইপিং করার অনুমতি দেওয়ার জন্য ডিকটেশন Google-কে আপনার ভয়েস পাঠায়।</translation> <translation id="8428213095426709021">সেটিংস</translation> <translation id="8433186206711564395">নেটওয়ার্ক সেটিংস</translation>
diff --git a/ash/strings/ash_strings_bs.xtb b/ash/strings/ash_strings_bs.xtb index 1247e7a9..eb1a9e5 100644 --- a/ash/strings/ash_strings_bs.xtb +++ b/ash/strings/ash_strings_bs.xtb
@@ -11,7 +11,7 @@ <translation id="1056775291175587022">Nema mreže</translation> <translation id="1059194134494239015"><ph name="DISPLAY_NAME" />: <ph name="RESOLUTION" /></translation> <translation id="108486256082349153">Mobilna mreža: <ph name="ADDRESS" /></translation> -<translation id="1087110696012418426">Dobar dan, <ph name="GIVEN_NAME" /></translation> +<translation id="1087110696012418426">Dobar dan <ph name="GIVEN_NAME" />,</translation> <translation id="109942774857561566">Dosadno mi je</translation> <translation id="1104084341931202936">Prikaži postavke pristupačnosti</translation> <translation id="1104621072296271835">Uređaji još bolje rade zajedno</translation> @@ -109,7 +109,7 @@ <translation id="2018630726571919839">Ispričaj mi vic</translation> <translation id="2050339315714019657">Uspravno</translation> <translation id="2067602449040652523">Svjetlina tipkovnice</translation> -<translation id="2083190527011054446">Laku noć, <ph name="GIVEN_NAME" /></translation> +<translation id="2083190527011054446">Laku noć <ph name="GIVEN_NAME" />,</translation> <translation id="209965399369889474">Niste povezani na mrežu</translation> <translation id="2126242104232412123">Novi sto</translation> <translation id="2127372758936585790">Punjač niskog napona</translation> @@ -308,7 +308,7 @@ <translation id="4261870227682513959">Prikaz postavki obavještenja. Obavještenja su isključena</translation> <translation id="4269883910223712419">Administrator ovog uređaja može:</translation> <translation id="4279490309300973883">Preslikavanje</translation> -<translation id="4294319844246081198">Dobro jutro, <ph name="GIVEN_NAME" /></translation> +<translation id="4294319844246081198">Dobro jutro <ph name="GIVEN_NAME" />,</translation> <translation id="4296136865091727875">Brisanje svih obavijesti (<ph name="COUNT" />)</translation> <translation id="4303223480529385476">Proširi područje statusa</translation> <translation id="4321179778687042513">ctrl</translation> @@ -325,7 +325,7 @@ <translation id="4421231901400348175">Dijeljenje kontrole nad vašim ekranom s pomoćnikom <ph name="HELPER_NAME" /> putem pomoći na daljinu.</translation> <translation id="4430019312045809116">Jačina zvuka</translation> <translation id="4450893287417543264">Ne prikazuj ponovo</translation> -<translation id="445864333228800152">Dobra večer,</translation> +<translation id="445864333228800152">Dobro veče,</translation> <translation id="4458688154122353284">Zaustavljanje snimanja ekrana</translation> <translation id="4477350412780666475">Sljedeća numera</translation> <translation id="4477892968187500306">Ovaj uređaj može sadržavati aplikacije koje Google nije potvrdio.</translation> @@ -571,6 +571,7 @@ <translation id="742608627846767349">Dobro jutro,</translation> <translation id="743058460480092004">Kamera i mikrofon su u upotrebi.</translation> <translation id="7466449121337984263">Dodirnite senzor</translation> +<translation id="7477793887173910789">Kontrolirajte muziku, videozapise i drugi sadržaj</translation> <translation id="7497767806359279797">Odaberite jezik i tastaturu</translation> <translation id="7526573455193969409">Mreža može biti nadzirana</translation> <translation id="7536035074519304529">IP adresa: <ph name="ADDRESS" /></translation> @@ -655,13 +656,13 @@ <translation id="8351131234907093545">Napravite bilješku</translation> <translation id="8371779926711439835">Slovo unaprijed</translation> <translation id="8375916635258623388">Uređaj <ph name="DEVICE_NAME" /> i vaš telefon će se povezati automatski</translation> -<translation id="8380784334203145311">Laku noć</translation> +<translation id="8380784334203145311">Laku noć,</translation> <translation id="8388750414311082622">Nije moguće ukloniti posljednju radnu površinu.</translation> <translation id="8392451568018454956">Opcije menija za <ph name="USER_EMAIL_ADDRESS" /></translation> <translation id="8394567579869570560">Roditelj je zaključao uređaj</translation> <translation id="8412677897383510995">Prikaz postavki ekrana</translation> <translation id="8425213833346101688">Izmijeni</translation> -<translation id="8426708595819210923">Dobra večer, <ph name="GIVEN_NAME" /></translation> +<translation id="8426708595819210923">Dobro veče <ph name="GIVEN_NAME" />,</translation> <translation id="8427213022735114808">Diktiranje šalje vaš glas Googleu kako bi se omogućilo pisanje glasom u bilo kojoj rubrici za tekst.</translation> <translation id="8428213095426709021">Postavke</translation> <translation id="8433186206711564395">Postavke mreže</translation>
diff --git a/ash/strings/ash_strings_ca.xtb b/ash/strings/ash_strings_ca.xtb index 3c59e07..04d6b185 100644 --- a/ash/strings/ash_strings_ca.xtb +++ b/ash/strings/ash_strings_ca.xtb
@@ -571,6 +571,7 @@ <translation id="742608627846767349">Bon dia,</translation> <translation id="743058460480092004">La càmera i el micròfon s'estan utilitzant.</translation> <translation id="7466449121337984263">Toca el sensor</translation> +<translation id="7477793887173910789">Controla la música, els vídeos i molt més</translation> <translation id="7497767806359279797">Tria l'idioma i el teclat</translation> <translation id="7526573455193969409">És possible que la xarxa estigui supervisada</translation> <translation id="7536035074519304529">Adreça IP: <ph name="ADDRESS" /></translation>
diff --git a/ash/strings/ash_strings_cs.xtb b/ash/strings/ash_strings_cs.xtb index e05c3df..64d7810 100644 --- a/ash/strings/ash_strings_cs.xtb +++ b/ash/strings/ash_strings_cs.xtb
@@ -11,6 +11,7 @@ <translation id="1056775291175587022">Žádné sítě</translation> <translation id="1059194134494239015"><ph name="DISPLAY_NAME" />: <ph name="RESOLUTION" /></translation> <translation id="108486256082349153">Mobilní telefon: <ph name="ADDRESS" /></translation> +<translation id="1087110696012418426">Dobré odpoledne, <ph name="GIVEN_NAME" />,</translation> <translation id="109942774857561566">Nudím se</translation> <translation id="1104084341931202936">Zobrazit nastavení přístupnosti</translation> <translation id="1104621072296271835">Společně budou vaše zařízení fungovat ještě lépe</translation> @@ -71,6 +72,7 @@ <translation id="1677472565718498478">zbývající čas: <ph name="TIME" /></translation> <translation id="1698080062160024910">Časovač na <ph name="TOTAL_TIME" /> · <ph name="LABEL" /></translation> <translation id="1698760176351776263">Adresa IPv6: <ph name="ADDRESS" /></translation> +<translation id="1708345662127501511">Plocha: <ph name="DESK_NAME" /></translation> <translation id="1709762881904163296">Nastavení sítě</translation> <translation id="1743570585616704562">Nerozpoznáno</translation> <translation id="1746730358044914197">Metody zadávání nastavuje váš administrátor.</translation> @@ -107,6 +109,7 @@ <translation id="2018630726571919839">Řekni mi vtip</translation> <translation id="2050339315714019657">Na výšku</translation> <translation id="2067602449040652523">Jas klávesnice</translation> +<translation id="2083190527011054446">Dobrou noc, <ph name="GIVEN_NAME" />,</translation> <translation id="209965399369889474">Nejste připojeni k síti</translation> <translation id="2126242104232412123">Nová plocha</translation> <translation id="2127372758936585790">Nabíječka má příliš nízký výkon</translation> @@ -185,6 +188,7 @@ <translation id="3009178788565917040">Výstup</translation> <translation id="3033545621352269033">Zapnuto</translation> <translation id="3038571455154067151">Pokud se chcete přihlásit, zadejte rodičovský přístupový kód Family Link</translation> +<translation id="3045488863354895414">Dobré odpoledne,</translation> <translation id="3051128274746680507">Váš dozorovaný uživatelský profil bude brzy odstraněn. Chcete-li se dozvědět více, přihlaste se.</translation> <translation id="3055162170959710888">Toto zařízení jsi dnes používal(a) <ph name="USED_TIME" /></translation> <translation id="3076778413190775903">Stavový panel, čas <ph name="TIME" />, @@ -304,6 +308,7 @@ <translation id="4261870227682513959">Zobrazit nastavení oznámení. Oznámení jsou vypnutá</translation> <translation id="4269883910223712419">Administrátor zařízení má následující možnosti:</translation> <translation id="4279490309300973883">Zrcadlení</translation> +<translation id="4294319844246081198">Dobré ráno, <ph name="GIVEN_NAME" />,</translation> <translation id="4296136865091727875">Vymazat všechna oznámení (<ph name="COUNT" />)</translation> <translation id="4303223480529385476">Rozbalit stavovou oblast</translation> <translation id="4321179778687042513">ctrl</translation> @@ -320,6 +325,7 @@ <translation id="4421231901400348175">Ovládání obrazovky je prostřednictvím Vzdálené pomoci sdíleno s uživatelem <ph name="HELPER_NAME" />.</translation> <translation id="4430019312045809116">Hlasitost</translation> <translation id="4450893287417543264">Tuto zprávu již nezobrazovat</translation> +<translation id="445864333228800152">Dobrý večer,</translation> <translation id="4458688154122353284">Zastavit nahrávání obrazovky</translation> <translation id="4477350412780666475">Další skladba</translation> <translation id="4477892968187500306">Toto zařízení může obsahovat aplikace, které nebyly ověřeny Googlem.</translation> @@ -430,6 +436,7 @@ <translation id="5887866489674258948">Tmavý režim</translation> <translation id="5895138241574237353">Restartovat</translation> <translation id="5901316534475909376">Shift+Esc</translation> +<translation id="5909862606227538307">Neaktivní plocha.</translation> <translation id="5911909173233110115"><ph name="USERNAME" /> <ph name="MAIL" /></translation> <translation id="5916664084637901428">Zapnuto</translation> <translation id="5920710855273935292">Mikrofon je ztlumen.</translation> @@ -561,8 +568,10 @@ <translation id="7405710164030118432">Chcete-li zařízení odemknout, zadejte svůj rodičovský přístupový kód služby Family Link</translation> <translation id="741244894080940828">převod</translation> <translation id="742594950370306541">Kamera je používána.</translation> +<translation id="742608627846767349">Dobré ráno,</translation> <translation id="743058460480092004">Kamera a mikrofon jsou používány.</translation> <translation id="7466449121337984263">Dotkněte se senzoru</translation> +<translation id="7477793887173910789">Ovládejte hudbu, videa a další obsah</translation> <translation id="7497767806359279797">Vybrat jazyk a klávesnici</translation> <translation id="7526573455193969409">Síť může být sledována</translation> <translation id="7536035074519304529">IP adresa: <ph name="ADDRESS" /></translation> @@ -647,11 +656,13 @@ <translation id="8351131234907093545">Vytvořit poznámku</translation> <translation id="8371779926711439835">Dopředu o písmeno</translation> <translation id="8375916635258623388">Toto zařízení <ph name="DEVICE_NAME" />a váš telefon se automaticky spojí</translation> +<translation id="8380784334203145311">Dobrou noc,</translation> <translation id="8388750414311082622">Poslední plochu nelze odstranit.</translation> <translation id="8392451568018454956">Nabídka možností pro uživatele <ph name="USER_EMAIL_ADDRESS" /></translation> <translation id="8394567579869570560">Rodič toto zařízení uzamkl</translation> <translation id="8412677897383510995">Zobrazit nastavení displeje</translation> <translation id="8425213833346101688">Změnit</translation> +<translation id="8426708595819210923">Dobrý večer, <ph name="GIVEN_NAME" />,</translation> <translation id="8427213022735114808">Diktování odesílá váš hlas do Googlu, aby bylo možné hlasově zadávat do libovolného textového pole.</translation> <translation id="8428213095426709021">Nastavení</translation> <translation id="8433186206711564395">Nastavení sítě</translation>
diff --git a/ash/strings/ash_strings_da.xtb b/ash/strings/ash_strings_da.xtb index c244e47e..ae00235 100644 --- a/ash/strings/ash_strings_da.xtb +++ b/ash/strings/ash_strings_da.xtb
@@ -11,6 +11,7 @@ <translation id="1056775291175587022">Ingen netværk</translation> <translation id="1059194134494239015"><ph name="DISPLAY_NAME" />: <ph name="RESOLUTION" /></translation> <translation id="108486256082349153">Mobil: <ph name="ADDRESS" /></translation> +<translation id="1087110696012418426">Goddag, <ph name="GIVEN_NAME" /></translation> <translation id="109942774857561566">Jeg keder mig</translation> <translation id="1104084341931202936">Vis indstillinger for hjælpefunktioner</translation> <translation id="1104621072296271835">Dine enheder fungerer endnu bedre sammen</translation> @@ -71,6 +72,7 @@ <translation id="1677472565718498478"><ph name="TIME" /> tilbage</translation> <translation id="1698080062160024910">Timer på <ph name="TOTAL_TIME" /> · <ph name="LABEL" /></translation> <translation id="1698760176351776263">IPv6-adresse: <ph name="ADDRESS" /></translation> +<translation id="1708345662127501511">Skrivebord: <ph name="DESK_NAME" /></translation> <translation id="1709762881904163296">Netværksindstillinger</translation> <translation id="1743570585616704562">Ikke genkendt</translation> <translation id="1746730358044914197">Indtastningsmetoder konfigureres af din administrator.</translation> @@ -107,6 +109,7 @@ <translation id="2018630726571919839">Fortæl en vittighed</translation> <translation id="2050339315714019657">Stående</translation> <translation id="2067602449040652523">Lysstyrke for tastatur</translation> +<translation id="2083190527011054446">Hej <ph name="GIVEN_NAME" /></translation> <translation id="209965399369889474">Der er ingen netværksforbindelse</translation> <translation id="2126242104232412123">Nyt skrivebord</translation> <translation id="2127372758936585790">Oplader ved lav kraft</translation> @@ -185,6 +188,7 @@ <translation id="3009178788565917040">Output</translation> <translation id="3033545621352269033">Til</translation> <translation id="3038571455154067151">Angiv forældreadgangskoden til Family Link for at logge ind</translation> +<translation id="3045488863354895414">Goddag</translation> <translation id="3051128274746680507">Din administrerede brugerprofil fjernes snart. Log ind for at få flere oplysninger.</translation> <translation id="3055162170959710888">Du har brugt denne enhed i <ph name="USED_TIME" /> i dag</translation> <translation id="3076778413190775903">Statusbakke, tid <ph name="TIME" />, @@ -304,6 +308,7 @@ <translation id="4261870227682513959">Vis indstillinger for notifikationer. Notifikationer er slået fra</translation> <translation id="4269883910223712419">Administratoren af denne enhed kan gøre følgende:</translation> <translation id="4279490309300973883">Spejling</translation> +<translation id="4294319844246081198">Godmorgen <ph name="GIVEN_NAME" /></translation> <translation id="4296136865091727875">Ryd alle <ph name="COUNT" /> notifikationer</translation> <translation id="4303223480529385476">Udvid statusområde</translation> <translation id="4321179778687042513">ctrl</translation> @@ -320,6 +325,7 @@ <translation id="4421231901400348175">Skærmdeling med <ph name="HELPER_NAME" /> via Fjernsupport.</translation> <translation id="4430019312045809116">Lydstyrke</translation> <translation id="4450893287417543264">Vis ikke igen</translation> +<translation id="445864333228800152">Godaften</translation> <translation id="4458688154122353284">Stop skærmoptagelse</translation> <translation id="4477350412780666475">Næste nummer</translation> <translation id="4477892968187500306">Denne enhed indeholder muligvis apps, der ikke er blevet bekræftet af Google.</translation> @@ -430,6 +436,7 @@ <translation id="5887866489674258948">Mørk tilstand</translation> <translation id="5895138241574237353">Genstart</translation> <translation id="5901316534475909376">Shift+Esc</translation> +<translation id="5909862606227538307">Inaktivt skrivebord.</translation> <translation id="5911909173233110115"><ph name="USERNAME" /> (<ph name="MAIL" />)</translation> <translation id="5916664084637901428">Til</translation> <translation id="5920710855273935292">Mikrofonen er slået fra.</translation> @@ -562,8 +569,10 @@ <translation id="7405710164030118432">Angiv forældreadgangskoden til Family Link for at låse enheden op</translation> <translation id="741244894080940828">konvertering</translation> <translation id="742594950370306541">Kameraet er i brug.</translation> +<translation id="742608627846767349">Godmorgen</translation> <translation id="743058460480092004">Kamera og mikrofon er i brug.</translation> <translation id="7466449121337984263">Placer fingeren på sensoren</translation> +<translation id="7477793887173910789">Styr din musik, dine videoer og meget mere</translation> <translation id="7497767806359279797">Vælg sprog og tastatur</translation> <translation id="7526573455193969409">Netværket kan være overvåget</translation> <translation id="7536035074519304529">IP-adresse: <ph name="ADDRESS" /></translation> @@ -648,11 +657,13 @@ <translation id="8351131234907093545">Opret note</translation> <translation id="8371779926711439835">Et bogstav frem</translation> <translation id="8375916635258623388">Denne <ph name="DEVICE_NAME" /> og din telefon forbindes automatisk</translation> +<translation id="8380784334203145311">Hej</translation> <translation id="8388750414311082622">Det seneste skrivebord kan ikke fjernes.</translation> <translation id="8392451568018454956">Menuen Indstillinger for <ph name="USER_EMAIL_ADDRESS" /></translation> <translation id="8394567579869570560">Din forælder har låst denne enhed</translation> <translation id="8412677897383510995">Vis skærmindstillinger</translation> <translation id="8425213833346101688">Skift</translation> +<translation id="8426708595819210923">Godaften, <ph name="GIVEN_NAME" /></translation> <translation id="8427213022735114808">Diktering sender din stemme til Google, så du kan indtale tekst i alle tekstfelter.</translation> <translation id="8428213095426709021">Indstillinger</translation> <translation id="8433186206711564395">Netværksindstillinger</translation>
diff --git a/ash/strings/ash_strings_de.xtb b/ash/strings/ash_strings_de.xtb index 94d9800..cebe9b2 100644 --- a/ash/strings/ash_strings_de.xtb +++ b/ash/strings/ash_strings_de.xtb
@@ -11,6 +11,7 @@ <translation id="1056775291175587022">Keine Netzw.</translation> <translation id="1059194134494239015"><ph name="DISPLAY_NAME" />: <ph name="RESOLUTION" /></translation> <translation id="108486256082349153">Mobil: <ph name="ADDRESS" /></translation> +<translation id="1087110696012418426">Guten Tag <ph name="GIVEN_NAME" />,</translation> <translation id="109942774857561566">Mir ist langweilig</translation> <translation id="1104084341931202936">Einstellungen für Bedienungshilfen anzeigen</translation> <translation id="1104621072296271835">Vorteile durch das Verbinden Ihrer Geräte</translation> @@ -71,6 +72,7 @@ <translation id="1677472565718498478">Verbleibende Zeit: <ph name="TIME" /> h</translation> <translation id="1698080062160024910">Timer: <ph name="TOTAL_TIME" /> · <ph name="LABEL" /></translation> <translation id="1698760176351776263">IPv6-Adresse: <ph name="ADDRESS" /></translation> +<translation id="1708345662127501511">Desktop: <ph name="DESK_NAME" /></translation> <translation id="1709762881904163296">Netzwerkeinstellungen</translation> <translation id="1743570585616704562">Nicht erkannt</translation> <translation id="1746730358044914197">Die Eingabemethoden werden von Ihrem Administrator konfiguriert.</translation> @@ -107,6 +109,7 @@ <translation id="2018630726571919839">Erzähl mir einen Witz</translation> <translation id="2050339315714019657">Hochformat</translation> <translation id="2067602449040652523">Tastaturhelligkeit</translation> +<translation id="2083190527011054446">Gute Nacht <ph name="GIVEN_NAME" />,</translation> <translation id="209965399369889474">Keine Netzwerkverbindung</translation> <translation id="2126242104232412123">Neuer Desktop</translation> <translation id="2127372758936585790">Schwaches Ladegerät</translation> @@ -185,6 +188,7 @@ <translation id="3009178788565917040">Ausgang</translation> <translation id="3033545621352269033">An</translation> <translation id="3038571455154067151">Wenn Sie sich anmelden möchten, geben Sie Ihren Eltern-Zugangscode für Family Link ein</translation> +<translation id="3045488863354895414">Guten Tag,</translation> <translation id="3051128274746680507">Ihr Profil für betreute Nutzer wird bald entfernt. Melden Sie sich an, um mehr zu erfahren.</translation> <translation id="3055162170959710888">Du hast das Gerät heute <ph name="USED_TIME" /> verwendet</translation> <translation id="3076778413190775903">Statusleiste, Uhrzeit <ph name="TIME" />, @@ -304,6 +308,7 @@ <translation id="4261870227682513959">Benachrichtigungseinstellungen anzeigen. Benachrichtigungen sind deaktiviert.</translation> <translation id="4269883910223712419">Der Administrator dieses Geräts kann Folgendes tun:</translation> <translation id="4279490309300973883">Spiegelung</translation> +<translation id="4294319844246081198">Guten Morgen <ph name="GIVEN_NAME" />,</translation> <translation id="4296136865091727875">Alle <ph name="COUNT" /> Benachrichtigungen löschen</translation> <translation id="4303223480529385476">Statusbereich maximieren</translation> <translation id="4321179778687042513">Strg</translation> @@ -320,6 +325,7 @@ <translation id="4421231901400348175">Sie teilen sich die Bildschirmsteuerung mit <ph name="HELPER_NAME" /> per Remote-Unterstützung.</translation> <translation id="4430019312045809116">Lautstärke</translation> <translation id="4450893287417543264">Nicht mehr anzeigen</translation> +<translation id="445864333228800152">Guten Abend,</translation> <translation id="4458688154122353284">Bildschirmaufzeichnung beenden</translation> <translation id="4477350412780666475">Nächster Titel</translation> <translation id="4477892968187500306">Auf diesem Gerät befinden sich möglicherweise Apps, die nicht von Google geprüft wurden.</translation> @@ -430,6 +436,7 @@ <translation id="5887866489674258948">Dunkler Modus</translation> <translation id="5895138241574237353">Neu starten</translation> <translation id="5901316534475909376">Umschalttaste + Esc</translation> +<translation id="5909862606227538307">Inaktiver Desktop.</translation> <translation id="5911909173233110115"><ph name="USERNAME" /> (<ph name="MAIL" />)</translation> <translation id="5916664084637901428">An</translation> <translation id="5920710855273935292">Mikrofon ist stummgeschaltet.</translation> @@ -561,8 +568,10 @@ <translation id="7405710164030118432">Wenn Sie das Gerät entsperren möchten, geben Sie Ihren Eltern-Zugangscode für Family Link ein</translation> <translation id="741244894080940828">Umrechnung</translation> <translation id="742594950370306541">Kamera wird verwendet.</translation> +<translation id="742608627846767349">Guten Morgen,</translation> <translation id="743058460480092004">Kamera und Mikrofon werden verwendet.</translation> <translation id="7466449121337984263">Berühren Sie den Sensor</translation> +<translation id="7477793887173910789">Musik, Videos und andere Medien steuern</translation> <translation id="7497767806359279797">Sprache und Tastatur auswählen</translation> <translation id="7526573455193969409">Das Netzwerk wird möglicherweise überwacht</translation> <translation id="7536035074519304529">IP-Adresse: <ph name="ADDRESS" /></translation> @@ -647,11 +656,13 @@ <translation id="8351131234907093545">Notiz erstellen</translation> <translation id="8371779926711439835">Weiter um einen Buchstaben</translation> <translation id="8375916635258623388"><ph name="DEVICE_NAME" /> und Ihr Smartphone werden automatisch miteinander verbunden</translation> +<translation id="8380784334203145311">Gute Nacht,</translation> <translation id="8388750414311082622">Letzter Desktop kann nicht entfernt werden.</translation> <translation id="8392451568018454956">Optionsmenü für <ph name="USER_EMAIL_ADDRESS" /></translation> <translation id="8394567579869570560">Deine Eltern haben dieses Gerät gesperrt</translation> <translation id="8412677897383510995">Displayeinstellungen anzeigen</translation> <translation id="8425213833346101688">Ändern</translation> +<translation id="8426708595819210923">Guten Abend <ph name="GIVEN_NAME" />,</translation> <translation id="8427213022735114808">Die Diktierfunktion sendet Ihre Spracheingaben an Google, damit sie in das entsprechende Textfeld eingetragen werden können.</translation> <translation id="8428213095426709021">Einstellungen</translation> <translation id="8433186206711564395">Netzwerkeinstellungen</translation>
diff --git a/ash/strings/ash_strings_el.xtb b/ash/strings/ash_strings_el.xtb index f18a701..89622c4 100644 --- a/ash/strings/ash_strings_el.xtb +++ b/ash/strings/ash_strings_el.xtb
@@ -571,6 +571,7 @@ <translation id="742608627846767349">Καλημέρα,</translation> <translation id="743058460480092004">Η κάμερα και το μικρόφωνο χρησιμοποιούνται.</translation> <translation id="7466449121337984263">Αγγίξτε τον αισθητήρα.</translation> +<translation id="7477793887173910789">Ελέγξτε τη μουσική σας, τα βίντεο και περισσότερα</translation> <translation id="7497767806359279797">Επιλογή γλώσσας και πληκτρολογίου</translation> <translation id="7526573455193969409">Το δίκτυο ενδέχεται να παρακολουθείται</translation> <translation id="7536035074519304529">Διεύθυνση IP: <ph name="ADDRESS" /></translation>
diff --git a/ash/strings/ash_strings_en-GB.xtb b/ash/strings/ash_strings_en-GB.xtb index aa02e8e..545be5fb 100644 --- a/ash/strings/ash_strings_en-GB.xtb +++ b/ash/strings/ash_strings_en-GB.xtb
@@ -571,6 +571,7 @@ <translation id="742608627846767349">Good morning,</translation> <translation id="743058460480092004">Camera and microphone are in use.</translation> <translation id="7466449121337984263">Please touch the sensor</translation> +<translation id="7477793887173910789">Control your music, videos and more</translation> <translation id="7497767806359279797">Choose language and keyboard</translation> <translation id="7526573455193969409">Network may be monitored</translation> <translation id="7536035074519304529">IP address: <ph name="ADDRESS" /></translation>
diff --git a/ash/strings/ash_strings_es-419.xtb b/ash/strings/ash_strings_es-419.xtb index fe9d0c2..e1a60d3f 100644 --- a/ash/strings/ash_strings_es-419.xtb +++ b/ash/strings/ash_strings_es-419.xtb
@@ -564,6 +564,7 @@ <translation id="742594950370306541">Cámara en uso</translation> <translation id="743058460480092004">Cámara y micrófono en uso</translation> <translation id="7466449121337984263">Toca el sensor</translation> +<translation id="7477793887173910789">Controla tu música, videos y mucho más</translation> <translation id="7497767806359279797">Elegir idioma y teclado</translation> <translation id="7526573455193969409">Es posible que la red esté supervisada</translation> <translation id="7536035074519304529">Dirección IP: <ph name="ADDRESS" /></translation>
diff --git a/ash/strings/ash_strings_es.xtb b/ash/strings/ash_strings_es.xtb index 795b643..bcca38bea 100644 --- a/ash/strings/ash_strings_es.xtb +++ b/ash/strings/ash_strings_es.xtb
@@ -11,6 +11,7 @@ <translation id="1056775291175587022">No hay redes</translation> <translation id="1059194134494239015"><ph name="DISPLAY_NAME" />: <ph name="RESOLUTION" /></translation> <translation id="108486256082349153">Móvil: <ph name="ADDRESS" /></translation> +<translation id="1087110696012418426">Buenas tardes, <ph name="GIVEN_NAME" /></translation> <translation id="109942774857561566">Me aburro</translation> <translation id="1104084341931202936">Muestra configuración de accesibilidad</translation> <translation id="1104621072296271835">Tus dispositivos funcionan aún mejor juntos</translation> @@ -71,6 +72,7 @@ <translation id="1677472565718498478">Queda: <ph name="TIME" /></translation> <translation id="1698080062160024910">Temporizador de <ph name="TOTAL_TIME" /> · <ph name="LABEL" /></translation> <translation id="1698760176351776263">Dirección IPv6: <ph name="ADDRESS" /></translation> +<translation id="1708345662127501511">Escritorio: <ph name="DESK_NAME" /></translation> <translation id="1709762881904163296">Configuración de red</translation> <translation id="1743570585616704562">No se ha reconocido</translation> <translation id="1746730358044914197">El administrador configura los métodos de introducción.</translation> @@ -107,6 +109,7 @@ <translation id="2018630726571919839">Cuéntame un chiste</translation> <translation id="2050339315714019657">Vertical</translation> <translation id="2067602449040652523">Brillo del teclado</translation> +<translation id="2083190527011054446">Buenas noches, <ph name="GIVEN_NAME" /></translation> <translation id="209965399369889474">Sin conexión a la red</translation> <translation id="2126242104232412123">Nuevo escritorio</translation> <translation id="2127372758936585790">Carga lenta</translation> @@ -185,6 +188,7 @@ <translation id="3009178788565917040">Salida</translation> <translation id="3033545621352269033">Activada</translation> <translation id="3038571455154067151">Para iniciar sesión, introduce tu código de acceso parental de Family Link</translation> +<translation id="3045488863354895414">Buenas tardes,</translation> <translation id="3051128274746680507">Tu perfil de usuario supervisado se eliminará pronto. Inicia sesión para obtener más información.</translation> <translation id="3055162170959710888">Hoy has utilizado este dispositivo durante <ph name="USED_TIME" /></translation> <translation id="3076778413190775903">Bandeja de estado: hora <ph name="TIME" />, @@ -305,6 +309,7 @@ <translation id="4261870227682513959">Muestra la configuración de notificaciones. Las notificaciones están desactivadas.</translation> <translation id="4269883910223712419">El administrador de este dispositivo puede hacer lo siguiente:</translation> <translation id="4279490309300973883">Duplicando</translation> +<translation id="4294319844246081198">Buenos días, <ph name="GIVEN_NAME" /></translation> <translation id="4296136865091727875">Borrar las <ph name="COUNT" /> notificaciones</translation> <translation id="4303223480529385476">Ampliar área de estado</translation> <translation id="4321179778687042513">ctrl</translation> @@ -321,6 +326,7 @@ <translation id="4421231901400348175">Compartiendo control de la pantalla con <ph name="HELPER_NAME" /> a través de Asistencia remota.</translation> <translation id="4430019312045809116">Volumen</translation> <translation id="4450893287417543264">No volver a mostrar</translation> +<translation id="445864333228800152">Buenas noches,</translation> <translation id="4458688154122353284">Detener grabación de pantalla</translation> <translation id="4477350412780666475">Pista siguiente</translation> <translation id="4477892968187500306">Es posible que este dispositivo contenga aplicaciones que no han sido verificadas por Google.</translation> @@ -431,6 +437,7 @@ <translation id="5887866489674258948">Modo oscuro</translation> <translation id="5895138241574237353">Reiniciar</translation> <translation id="5901316534475909376">Mayús+Esc</translation> +<translation id="5909862606227538307">Escritorio inactivo.</translation> <translation id="5911909173233110115"><ph name="USERNAME" /> (<ph name="MAIL" />)</translation> <translation id="5916664084637901428">Activado</translation> <translation id="5920710855273935292">El micrófono está silenciado.</translation> @@ -562,8 +569,10 @@ <translation id="7405710164030118432">Para desbloquear el dispositivo, introduce tu código de acceso parental de Family Link</translation> <translation id="741244894080940828">conversión</translation> <translation id="742594950370306541">La cámara se está utilizando.</translation> +<translation id="742608627846767349">Buenos días,</translation> <translation id="743058460480092004">La cámara y el micrófono se están utilizando.</translation> <translation id="7466449121337984263">Toca el sensor</translation> +<translation id="7477793887173910789">Controla tu música, tus vídeos y mucho más</translation> <translation id="7497767806359279797">Seleccionar idioma y teclado</translation> <translation id="7526573455193969409">Es posible que la red esté supervisada</translation> <translation id="7536035074519304529">Dirección IP: <ph name="ADDRESS" /></translation> @@ -648,11 +657,13 @@ <translation id="8351131234907093545">Crear nota</translation> <translation id="8371779926711439835">Avanzar por carácter</translation> <translation id="8375916635258623388">Este <ph name="DEVICE_NAME" /> y tu teléfono se conectarán automáticamente</translation> +<translation id="8380784334203145311">Buenas noches,</translation> <translation id="8388750414311082622">No se puede quitar el último escritorio.</translation> <translation id="8392451568018454956">Menú de opciones de <ph name="USER_EMAIL_ADDRESS" /></translation> <translation id="8394567579869570560">Tu padre, madre o tutor han bloqueado este dispositivo</translation> <translation id="8412677897383510995">Mostrar ajustes de pantalla</translation> <translation id="8425213833346101688">Cambiar</translation> +<translation id="8426708595819210923">Buenas noches, <ph name="GIVEN_NAME" /></translation> <translation id="8427213022735114808">Dictado envía tu voz a Google para que puedas usar el dictado por voz en cualquier campo de texto.</translation> <translation id="8428213095426709021">Configuración</translation> <translation id="8433186206711564395">Configuración de red</translation>
diff --git a/ash/strings/ash_strings_et.xtb b/ash/strings/ash_strings_et.xtb index 99bceaa58..2c3682a 100644 --- a/ash/strings/ash_strings_et.xtb +++ b/ash/strings/ash_strings_et.xtb
@@ -572,6 +572,7 @@ <translation id="742608627846767349">Tere hommikust!</translation> <translation id="743058460480092004">Kaamera ja mikrofon on kasutusel.</translation> <translation id="7466449121337984263">Puudutage andurit</translation> +<translation id="7477793887173910789">Hallake oma muusikat, videoid ja muud</translation> <translation id="7497767806359279797">Valige keel ja klaviatuur</translation> <translation id="7526573455193969409">Võrku võidakse jälgida</translation> <translation id="7536035074519304529">IP-adress: <ph name="ADDRESS" /></translation>
diff --git a/ash/strings/ash_strings_eu.xtb b/ash/strings/ash_strings_eu.xtb index f7bafc79..628816db 100644 --- a/ash/strings/ash_strings_eu.xtb +++ b/ash/strings/ash_strings_eu.xtb
@@ -11,6 +11,7 @@ <translation id="1056775291175587022">Sarerik ez</translation> <translation id="1059194134494239015"><ph name="DISPLAY_NAME" />: <ph name="RESOLUTION" /></translation> <translation id="108486256082349153">Gailu mugikorra: <ph name="ADDRESS" /></translation> +<translation id="1087110696012418426">Arratsalde on, <ph name="GIVEN_NAME" /></translation> <translation id="109942774857561566">Aspertuta nago</translation> <translation id="1104084341931202936">Erakutsi erabilerraztasun-ezarpenak</translation> <translation id="1104621072296271835">Gailuek are hobeto funtzionatzen dute batera</translation> @@ -71,6 +72,7 @@ <translation id="1677472565718498478"><ph name="TIME" /> geratzen dira</translation> <translation id="1698080062160024910">Tenporizadorea: <ph name="TOTAL_TIME" /> · <ph name="LABEL" /></translation> <translation id="1698760176351776263">IPv6 helbidea: <ph name="ADDRESS" /></translation> +<translation id="1708345662127501511">Lan-eremua: <ph name="DESK_NAME" /></translation> <translation id="1709762881904163296">Sarearen ezarpenak</translation> <translation id="1743570585616704562">Ez da ezagutu</translation> <translation id="1746730358044914197">Administratzaileak konfiguratzen ditu idazketa-metodoak.</translation> @@ -107,6 +109,7 @@ <translation id="2018630726571919839">Kontatu txiste bat</translation> <translation id="2050339315714019657">Bertikala</translation> <translation id="2067602449040652523">Teklatuaren distira</translation> +<translation id="2083190527011054446">Gabon, <ph name="GIVEN_NAME" /></translation> <translation id="209965399369889474">Ez zaude sarera konektatuta</translation> <translation id="2126242104232412123">Lan-eremu berria</translation> <translation id="2127372758936585790">Potentzia gutxiko kargagailua</translation> @@ -185,6 +188,7 @@ <translation id="3009178788565917040">Irteera</translation> <translation id="3033545621352269033">Aktibatuta</translation> <translation id="3038571455154067151">Saioa hasteko, idatzi Family Link-eko gurasoen sarbide-kodea</translation> +<translation id="3045488863354895414">Arratsalde on,</translation> <translation id="3051128274746680507">Laster kenduko da erabiltzaile gainbegiratu gisa duzun profila. Hasi saioa informazio gehiago lortzeko.</translation> <translation id="3055162170959710888">Gailua erabiltzen emandako denbora, gaur: <ph name="USED_TIME" /></translation> <translation id="3076778413190775903">Egoera-erretilua. Ordua: <ph name="TIME" />, @@ -305,6 +309,7 @@ <translation id="4261870227682513959">Erakutsi jakinarazpen-ezarpenak. Desaktibatuta daude jakinarazpenak.</translation> <translation id="4269883910223712419">Gailuaren administratzaileak honako hauek egin ditzake:</translation> <translation id="4279490309300973883">Islatzen</translation> +<translation id="4294319844246081198">Egun on, <ph name="GIVEN_NAME" /></translation> <translation id="4296136865091727875">Garbitu <ph name="COUNT" /> jakinarazpenak</translation> <translation id="4303223480529385476">Zabaldu egoeraren eremua</translation> <translation id="4321179778687042513">ktrl</translation> @@ -321,6 +326,7 @@ <translation id="4421231901400348175">Urruneko laguntzaren bidez <ph name="HELPER_NAME" /> laguntzailearekin pantailaren kontrola partekatzen.</translation> <translation id="4430019312045809116">Bolumena</translation> <translation id="4450893287417543264">Ez erakutsi berriro</translation> +<translation id="445864333228800152">Arratsalde on,</translation> <translation id="4458688154122353284">Utzi pantaila grabatzeari</translation> <translation id="4477350412780666475">Hurrengo pista</translation> <translation id="4477892968187500306">Baliteke Google-k egiaztatu ez dituen aplikazioak egotea gailuan.</translation> @@ -431,6 +437,7 @@ <translation id="5887866489674258948">Modu iluna</translation> <translation id="5895138241574237353">Berrabiarazi</translation> <translation id="5901316534475909376">Maius + Ihes</translation> +<translation id="5909862606227538307">Lan-eremu inaktiboa.</translation> <translation id="5911909173233110115"><ph name="USERNAME" /> (<ph name="MAIL" />)</translation> <translation id="5916664084637901428">Aktibatuta</translation> <translation id="5920710855273935292">Mikrofonoa desaktibatuta dago.</translation> @@ -562,8 +569,10 @@ <translation id="7405710164030118432">Gailua desblokeatzeko, idatzi Family Link-eko gurasoen sarbide-kodea.</translation> <translation id="741244894080940828">bihurketa</translation> <translation id="742594950370306541">Kamera abian da.</translation> +<translation id="742608627846767349">Egun on,</translation> <translation id="743058460480092004">Norbait kamera eta mikrofonoa erabiltzen ari da.</translation> <translation id="7466449121337984263">Ukitu sentsorea</translation> +<translation id="7477793887173910789">Kontrolatu musika, bideoak eta beste</translation> <translation id="7497767806359279797">Aukeratu hizkuntza eta teklatua</translation> <translation id="7526573455193969409">Baliteke sarea gainbegiratuta egotea</translation> <translation id="7536035074519304529">IP helbidea: <ph name="ADDRESS" /></translation> @@ -648,11 +657,13 @@ <translation id="8351131234907093545">Sortu oharra</translation> <translation id="8371779926711439835">Joan hurrengo hizkira</translation> <translation id="8375916635258623388"><ph name="DEVICE_NAME" /> hau eta telefonoa automatikoki konektatuko dira</translation> +<translation id="8380784334203145311">Gabon,</translation> <translation id="8388750414311082622">Ezin da kendu azken lan-eremua.</translation> <translation id="8392451568018454956"><ph name="USER_EMAIL_ADDRESS" /> erabiltzailearen aukeren menua</translation> <translation id="8394567579869570560">Guraso batek gailua blokeatu dizu</translation> <translation id="8412677897383510995">Erakutsi bistaratze-ezarpenak</translation> <translation id="8425213833346101688">Aldatu</translation> +<translation id="8426708595819210923">Arratsalde on, <ph name="GIVEN_NAME" /></translation> <translation id="8427213022735114808">Diktaketak ahotsa bidaltzen dio Google-ri, testu-eremuetan diktatu ahal izateko.</translation> <translation id="8428213095426709021">Ezarpenak</translation> <translation id="8433186206711564395">Sarearen ezarpenak</translation>
diff --git a/ash/strings/ash_strings_fa.xtb b/ash/strings/ash_strings_fa.xtb index 9fd30192..79a26179 100644 --- a/ash/strings/ash_strings_fa.xtb +++ b/ash/strings/ash_strings_fa.xtb
@@ -11,6 +11,7 @@ <translation id="1056775291175587022">شبکهای وجود ندارد</translation> <translation id="1059194134494239015"><ph name="DISPLAY_NAME" />: <ph name="RESOLUTION" /></translation> <translation id="108486256082349153">دستگاه تلفن همراه: <ph name="ADDRESS" /></translation> +<translation id="1087110696012418426">بعدازظهر بهخیر <ph name="GIVEN_NAME" />،</translation> <translation id="109942774857561566">I’m bored (حوصلهام سر رفته)</translation> <translation id="1104084341931202936">نشان دادن تنظیمات دسترسپذیری</translation> <translation id="1104621072296271835">دستگاههایتان باهم بهمراتب بهتر کار میکنند</translation> @@ -71,6 +72,7 @@ <translation id="1677472565718498478"><ph name="TIME" /> باقیمانده</translation> <translation id="1698080062160024910">زمانسنج <ph name="TOTAL_TIME" /> · <ph name="LABEL" /></translation> <translation id="1698760176351776263">نشانی IPv6: <ph name="ADDRESS" /></translation> +<translation id="1708345662127501511">میزکار: <ph name="DESK_NAME" /></translation> <translation id="1709762881904163296">«تنظیمات شبکه»</translation> <translation id="1743570585616704562">شناسایی نشد</translation> <translation id="1746730358044914197">روشهای ورودی توسط سرپرستتان پیکربندی میشوند.</translation> @@ -107,6 +109,7 @@ <translation id="2018630726571919839">Tell me a joke (لطیفهای بگو)</translation> <translation id="2050339315714019657">عمودی</translation> <translation id="2067602449040652523">روشنایی صفحهکلید</translation> +<translation id="2083190527011054446">شب بهخیر <ph name="GIVEN_NAME" />،</translation> <translation id="209965399369889474">به شبکه متصل نیست</translation> <translation id="2126242104232412123">فضای کار جدید</translation> <translation id="2127372758936585790">شارژر برق ضعیف</translation> @@ -185,6 +188,7 @@ <translation id="3009178788565917040">خروجی</translation> <translation id="3033545621352269033">روشن</translation> <translation id="3038571455154067151">برای ورود به سیستم، کد دسترسی والدین Family Link خود را وارد کنید</translation> +<translation id="3045488863354895414">بعدازظهر بهخیر،</translation> <translation id="3051128274746680507">نمایه کاربر تحتنظارت بهزودی برداشته میشود. برای اطلاعات بیشتر به سیستم وارد شوید.</translation> <translation id="3055162170959710888">امروز از این دستگاه بهمدت <ph name="USED_TIME" /> استفاده کردید</translation> <translation id="3076778413190775903">سینی وضعیت، زمان <ph name="TIME" />, @@ -304,6 +308,7 @@ <translation id="4261870227682513959">نمایش تنظیمات اعلان. اعلانها خاموش است</translation> <translation id="4269883910223712419">سرپرست این دستگاه میتواند:</translation> <translation id="4279490309300973883">بازتاب میشود</translation> +<translation id="4294319844246081198">صبح بهخیر <ph name="GIVEN_NAME" />،</translation> <translation id="4296136865091727875">پاک کردن همه <ph name="COUNT" /> اعلان</translation> <translation id="4303223480529385476">بزرگ کردن ناحیه نشانگر وضعیت</translation> <translation id="4321179778687042513">مهار</translation> @@ -320,6 +325,7 @@ <translation id="4421231901400348175">همرسانی کنترل صفحهتان با <ph name="HELPER_NAME" /> از طریق راهنمایی ازراهدور.</translation> <translation id="4430019312045809116">میزان صدا</translation> <translation id="4450893287417543264">دیگر نشان داده نشود</translation> +<translation id="445864333228800152">عصر بهخیر،</translation> <translation id="4458688154122353284">توقف ضبط صفحهنمایش</translation> <translation id="4477350412780666475">آهنگ بعدی</translation> <translation id="4477892968187500306">ممکن است این دستگاه حاوی برنامههایی باشد که Google آنها را تأیید نکرده است.</translation> @@ -430,6 +436,7 @@ <translation id="5887866489674258948">حالت تاریک</translation> <translation id="5895138241574237353">راهاندازی مجدد</translation> <translation id="5901316534475909376">Shift+Esc</translation> +<translation id="5909862606227538307">میزکار غیرفعال است.</translation> <translation id="5911909173233110115"><ph name="USERNAME" /> (<ph name="MAIL" />)</translation> <translation id="5916664084637901428">روشن</translation> <translation id="5920710855273935292">میکروفون صامت است.</translation> @@ -561,8 +568,10 @@ <translation id="7405710164030118432">برای باز کردن قفل دستگاه، کد دسترسی والدین را برای Family Link وارد کنید</translation> <translation id="741244894080940828">تبدیل</translation> <translation id="742594950370306541">دوربین در حال استفاده است.</translation> +<translation id="742608627846767349">صبح بهخیر،</translation> <translation id="743058460480092004">دوربین و میکروفن در حال استفاده هستند.</translation> <translation id="7466449121337984263">لطفاً حسگر را لمس کنید</translation> +<translation id="7477793887173910789">کنترل موسیقی، ویدیو و سایر موارد</translation> <translation id="7497767806359279797">انتخاب زبان و صفحهکلید</translation> <translation id="7526573455193969409">ممکن است شبکه پایش شود</translation> <translation id="7536035074519304529">نشانی IP: <ph name="ADDRESS" /></translation> @@ -647,11 +656,13 @@ <translation id="8351131234907093545">یادداشت ایجاد کنید</translation> <translation id="8371779926711439835">جلو رفتن حرفبهحرف</translation> <translation id="8375916635258623388">این <ph name="DEVICE_NAME" /> و تلفنتان بهطور خودکار متصل میشوند</translation> +<translation id="8380784334203145311">شب بهخیر،</translation> <translation id="8388750414311082622">میز آخر را نمیتوان حذف کرد.</translation> <translation id="8392451568018454956">منوی گزینهها برای <ph name="USER_EMAIL_ADDRESS" /></translation> <translation id="8394567579869570560">پدر یا مادرتان این دستگاه را قفل کرده است</translation> <translation id="8412677897383510995">نمایش تنظیمات نمایشگر</translation> <translation id="8425213833346101688">تغییر</translation> +<translation id="8426708595819210923">عصر بهخیر <ph name="GIVEN_NAME" />،</translation> <translation id="8427213022735114808">با دیکته کردن، صدایتان به Google ارسال میشود تا بتوانید در هر فیلد نوشتاری تایپ صوتی انجام دهید.</translation> <translation id="8428213095426709021">تنظیمات</translation> <translation id="8433186206711564395">تنظیمات شبکه</translation>
diff --git a/ash/strings/ash_strings_fi.xtb b/ash/strings/ash_strings_fi.xtb index ebe03d1..1614e0ea 100644 --- a/ash/strings/ash_strings_fi.xtb +++ b/ash/strings/ash_strings_fi.xtb
@@ -573,6 +573,7 @@ <translation id="742608627846767349">Huomenta</translation> <translation id="743058460480092004">Kamera ja mikrofoni ovat käytössä.</translation> <translation id="7466449121337984263">Kosketa tunnistinta</translation> +<translation id="7477793887173910789">Ohjaa musiikkia, videoita ja muuta</translation> <translation id="7497767806359279797">Valitse kieli ja näppäimistö</translation> <translation id="7526573455193969409">Verkkoa saatetaan valvoa</translation> <translation id="7536035074519304529">IP-osoite: <ph name="ADDRESS" /></translation>
diff --git a/ash/strings/ash_strings_fil.xtb b/ash/strings/ash_strings_fil.xtb index d2ffd60..eae84f3 100644 --- a/ash/strings/ash_strings_fil.xtb +++ b/ash/strings/ash_strings_fil.xtb
@@ -11,6 +11,7 @@ <translation id="1056775291175587022">Walang network</translation> <translation id="1059194134494239015"><ph name="DISPLAY_NAME" />: <ph name="RESOLUTION" /></translation> <translation id="108486256082349153">Cellular: <ph name="ADDRESS" /></translation> +<translation id="1087110696012418426">Magandang hapon <ph name="GIVEN_NAME" />,</translation> <translation id="109942774857561566">Naiinip ako</translation> <translation id="1104084341931202936">Ipakita ang mga setting ng pagiging naa-access</translation> <translation id="1104621072296271835">Gagana nang mas maayos ang iyong mga device kung magkakasama</translation> @@ -71,6 +72,7 @@ <translation id="1677472565718498478"><ph name="TIME" /> na lang ang natitira</translation> <translation id="1698080062160024910"><ph name="TOTAL_TIME" /> timer · <ph name="LABEL" /></translation> <translation id="1698760176351776263">IPv6 address: <ph name="ADDRESS" /></translation> +<translation id="1708345662127501511">Desk: <ph name="DESK_NAME" /></translation> <translation id="1709762881904163296">Mga Network Setting</translation> <translation id="1743570585616704562">Hindi nakilala</translation> <translation id="1746730358044914197">Isinasaayos ng iyong administrator ang mga pamamaraan sa pag-input.</translation> @@ -107,6 +109,7 @@ <translation id="2018630726571919839">Pahingi ng joke</translation> <translation id="2050339315714019657">Portrait</translation> <translation id="2067602449040652523">Liwanag ng keyboard</translation> +<translation id="2083190527011054446">Magandang gabi <ph name="GIVEN_NAME" />,</translation> <translation id="209965399369889474">Hindi nakakonekta sa network</translation> <translation id="2126242104232412123">Bagong desk</translation> <translation id="2127372758936585790">Low-power charger</translation> @@ -185,6 +188,7 @@ <translation id="3009178788565917040">Output</translation> <translation id="3033545621352269033">Naka-on</translation> <translation id="3038571455154067151">Para mag-sign in, ilagay ang iyong access code ng magulang sa Family Link</translation> +<translation id="3045488863354895414">Magandang hapon,</translation> <translation id="3051128274746680507">Malapit nang alisin ang iyong profile ng pinangangasiwaang user. Mag-sign in para matuto pa.</translation> <translation id="3055162170959710888">Ginamit mo ang device na ito nang <ph name="USED_TIME" /> ngayong araw</translation> <translation id="3076778413190775903">Status tray, oras <ph name="TIME" />, @@ -304,6 +308,7 @@ <translation id="4261870227682513959">Ipakita ang mga setting ng notification. Naka-off ang mga notification</translation> <translation id="4269883910223712419">May kakayahan ang admin ng device na ito na:</translation> <translation id="4279490309300973883">Nagmi-mirror</translation> +<translation id="4294319844246081198">Magandang umaga <ph name="GIVEN_NAME" />,</translation> <translation id="4296136865091727875">I-clear ang lahat ng <ph name="COUNT" /> (na) notification</translation> <translation id="4303223480529385476">I-expand ang lugar ng status</translation> <translation id="4321179778687042513">ctrl</translation> @@ -320,6 +325,7 @@ <translation id="4421231901400348175">Pagbabahagi ng kontrol sa iyong screen gamit ang <ph name="HELPER_NAME" /> sa pamamagitan ng Remote Assistance.</translation> <translation id="4430019312045809116">Volume</translation> <translation id="4450893287417543264">Huwag ipakitang muli</translation> +<translation id="445864333228800152">Magandang gabi,</translation> <translation id="4458688154122353284">Ihinto ang pag-record ng screen</translation> <translation id="4477350412780666475">Susunod na Track</translation> <translation id="4477892968187500306">Posibleng naglalaman ang device na ito ng mga app na hindi pa nave-verify ng Google.</translation> @@ -430,6 +436,7 @@ <translation id="5887866489674258948">Dark Mode</translation> <translation id="5895138241574237353">I-restart</translation> <translation id="5901316534475909376">Shift+Esc</translation> +<translation id="5909862606227538307">Hindi aktibong desk.</translation> <translation id="5911909173233110115"><ph name="USERNAME" /> (<ph name="MAIL" />)</translation> <translation id="5916664084637901428">Naka-on</translation> <translation id="5920710855273935292">Naka-mute ang mikropono.</translation> @@ -561,8 +568,10 @@ <translation id="7405710164030118432">Para i-unlock ang device, ilagay ang iyong access code ng magulang sa Family Link</translation> <translation id="741244894080940828">conversion</translation> <translation id="742594950370306541">Ginagamit ang camera.</translation> +<translation id="742608627846767349">Magandang umaga,</translation> <translation id="743058460480092004">Ginagamit ang camera at mikropono.</translation> <translation id="7466449121337984263">Pakipindot ang sensor</translation> +<translation id="7477793887173910789">Kontrolin ang iyong musika, mga video, at higit pa</translation> <translation id="7497767806359279797">Pumili ng wika at keyboard</translation> <translation id="7526573455193969409">Maaaring sinusubaybayan ang network</translation> <translation id="7536035074519304529">IP address: <ph name="ADDRESS" /></translation> @@ -647,11 +656,13 @@ <translation id="8351131234907093545">Gumawa ng tala</translation> <translation id="8371779926711439835">Sumulong nang paisa-isang titik</translation> <translation id="8375916635258623388">Awtomatikong kokonekta ang <ph name="DEVICE_NAME" /> na ito at ang iyong telepono</translation> +<translation id="8380784334203145311">Magandang gabi,</translation> <translation id="8388750414311082622">Hindi puwedeng alisin ang huling desk.</translation> <translation id="8392451568018454956">Menu ng mga pagpipilian para sa <ph name="USER_EMAIL_ADDRESS" /></translation> <translation id="8394567579869570560">Ni-lock ng iyong magulang ang device na ito</translation> <translation id="8412677897383510995">Ipakita ang mga setting ng display</translation> <translation id="8425213833346101688">Baguhin</translation> +<translation id="8426708595819210923">Magandang gabi <ph name="GIVEN_NAME" />,</translation> <translation id="8427213022735114808">Ipinapadala ng Dictation ang iyong boses sa Google para mabigyang-daan ang voice-typing sa anumang field ng text.</translation> <translation id="8428213095426709021">Mga Setting</translation> <translation id="8433186206711564395">Mga setting ng network</translation>
diff --git a/ash/strings/ash_strings_fr-CA.xtb b/ash/strings/ash_strings_fr-CA.xtb index 6e64961..aa8234b 100644 --- a/ash/strings/ash_strings_fr-CA.xtb +++ b/ash/strings/ash_strings_fr-CA.xtb
@@ -11,6 +11,7 @@ <translation id="1056775291175587022">Aucun réseau</translation> <translation id="1059194134494239015"><ph name="DISPLAY_NAME" /> : <ph name="RESOLUTION" /></translation> <translation id="108486256082349153">Cellulaire : <ph name="ADDRESS" /></translation> +<translation id="1087110696012418426">Bon après-midi <ph name="GIVEN_NAME" />,</translation> <translation id="109942774857561566">Je m'ennuie</translation> <translation id="1104084341931202936">Afficher les paramètres d'accessibilité</translation> <translation id="1104621072296271835">Vos appareils fonctionnent encore mieux ensemble</translation> @@ -71,6 +72,7 @@ <translation id="1677472565718498478"><ph name="TIME" /> d'autonomie restante</translation> <translation id="1698080062160024910">Minuterie de <ph name="TOTAL_TIME" /> : <ph name="LABEL" /></translation> <translation id="1698760176351776263">Adresse IPv6 : <ph name="ADDRESS" /></translation> +<translation id="1708345662127501511">Bureau : <ph name="DESK_NAME" /></translation> <translation id="1709762881904163296">Paramètres réseau</translation> <translation id="1743570585616704562">Doigt non reconnu</translation> <translation id="1746730358044914197">Les méthodes d'entrée sont configurées par votre administrateur.</translation> @@ -107,6 +109,7 @@ <translation id="2018630726571919839">Raconte-moi une blague</translation> <translation id="2050339315714019657">Portrait</translation> <translation id="2067602449040652523">Luminosité du clavier</translation> +<translation id="2083190527011054446">Bonne nuit <ph name="GIVEN_NAME" />,</translation> <translation id="209965399369889474">Aucune connexion réseau</translation> <translation id="2126242104232412123">Nouveau bureau</translation> <translation id="2127372758936585790">Chargeur de faible puissance</translation> @@ -185,6 +188,7 @@ <translation id="3009178788565917040">Sortie</translation> <translation id="3033545621352269033">Activé</translation> <translation id="3038571455154067151">Pour vous connecter, entrez votre code d'accès parental Family Link</translation> +<translation id="3045488863354895414">Bon après-midi,</translation> <translation id="3051128274746680507">Votre profil d'utilisateur supervisé sera bientôt supprimé. Connectez-vous pour en savoir davantage.</translation> <translation id="3055162170959710888">Tu as utilisé cet appareil pendant <ph name="USED_TIME" /> aujourd'hui</translation> <translation id="3076778413190775903">Barre d'état, heure <ph name="TIME" />, @@ -304,6 +308,7 @@ <translation id="4261870227682513959">Afficher les paramètres de notification. Les notifications sont désactivées</translation> <translation id="4269883910223712419">L'administrateur de cet appareil peut :</translation> <translation id="4279490309300973883">Mise en miroir</translation> +<translation id="4294319844246081198">Bonjour <ph name="GIVEN_NAME" />,</translation> <translation id="4296136865091727875">Effacer les <ph name="COUNT" /> notifications</translation> <translation id="4303223480529385476">Développer la zone de notifications</translation> <translation id="4321179778687042513">ctrl</translation> @@ -320,6 +325,7 @@ <translation id="4421231901400348175">Partage du contrôle de votre écran avec <ph name="HELPER_NAME" /> au moyen de l’assistance à distance.</translation> <translation id="4430019312045809116">Volume</translation> <translation id="4450893287417543264">Ne plus afficher</translation> +<translation id="445864333228800152">Bonsoir,</translation> <translation id="4458688154122353284">Arrêter l'enregistrement de l'écran</translation> <translation id="4477350412780666475">Chanson suivante</translation> <translation id="4477892968187500306">Cet appareil pourrait contenir des applications qui n'ont pas été vérifiées par Google.</translation> @@ -430,6 +436,7 @@ <translation id="5887866489674258948">Mode sombre</translation> <translation id="5895138241574237353">Redémarrer</translation> <translation id="5901316534475909376">Maj+Échap</translation> +<translation id="5909862606227538307">Bureau inactif.</translation> <translation id="5911909173233110115"><ph name="USERNAME" /> (<ph name="MAIL" />)</translation> <translation id="5916664084637901428">Activé</translation> <translation id="5920710855273935292">Le microphone est désactivé.</translation> @@ -561,8 +568,10 @@ <translation id="7405710164030118432">Pour déverrouiller l'appareil, entrez votre code d'accès parental Family Link</translation> <translation id="741244894080940828">conversion</translation> <translation id="742594950370306541">La caméra est en cours d'utilisation.</translation> +<translation id="742608627846767349">Bonjour,</translation> <translation id="743058460480092004">La caméra et le microphone sont actuellement utilisés.</translation> <translation id="7466449121337984263">Veuillez toucher le capteur</translation> +<translation id="7477793887173910789">Commandez votre musique, vos vidéos et plus encore</translation> <translation id="7497767806359279797">Choisir la langue et le clavier</translation> <translation id="7526573455193969409">Le réseau peut être surveillé</translation> <translation id="7536035074519304529">Adresse IP : <ph name="ADDRESS" /></translation> @@ -647,11 +656,13 @@ <translation id="8351131234907093545">Créer une note</translation> <translation id="8371779926711439835">Déplacer une lettre vers l'avant</translation> <translation id="8375916635258623388">Cet appareil <ph name="DEVICE_NAME" /> et votre téléphone se connecteront automatiquement</translation> +<translation id="8380784334203145311">Bonne nuit,</translation> <translation id="8388750414311082622">Impossible de supprimer le dernier bureau.</translation> <translation id="8392451568018454956">Menu d'options pour <ph name="USER_EMAIL_ADDRESS" /></translation> <translation id="8394567579869570560">Ton parent a verrouillé cet appareil</translation> <translation id="8412677897383510995">Afficher les paramètres d'affichage</translation> <translation id="8425213833346101688">Modifier</translation> +<translation id="8426708595819210923">Bonsoir <ph name="GIVEN_NAME" />,</translation> <translation id="8427213022735114808">La fonction de dictée envoie votre voix à Google pour autoriser la saisie vocale dans n'importe quel champ de texte.</translation> <translation id="8428213095426709021">Paramètres</translation> <translation id="8433186206711564395">Paramètres réseau</translation>
diff --git a/ash/strings/ash_strings_fr.xtb b/ash/strings/ash_strings_fr.xtb index 0a5f2c0f..8de88374 100644 --- a/ash/strings/ash_strings_fr.xtb +++ b/ash/strings/ash_strings_fr.xtb
@@ -11,6 +11,7 @@ <translation id="1056775291175587022">Aucun réseau</translation> <translation id="1059194134494239015"><ph name="DISPLAY_NAME" /> : <ph name="RESOLUTION" /></translation> <translation id="108486256082349153">Mobile : <ph name="ADDRESS" /></translation> +<translation id="1087110696012418426">Bonjour <ph name="GIVEN_NAME" />,</translation> <translation id="109942774857561566">Je m'ennuie</translation> <translation id="1104084341931202936">Afficher les paramètres d'accessibilité</translation> <translation id="1104621072296271835">Vos appareils fonctionnent encore mieux ensemble</translation> @@ -71,6 +72,7 @@ <translation id="1677472565718498478">Temps restant : <ph name="TIME" /></translation> <translation id="1698080062160024910">Minuteur de <ph name="TOTAL_TIME" /> – <ph name="LABEL" /></translation> <translation id="1698760176351776263">Adresse IPv6 : <ph name="ADDRESS" /></translation> +<translation id="1708345662127501511">Bureau : <ph name="DESK_NAME" /></translation> <translation id="1709762881904163296">Paramètres du réseau</translation> <translation id="1743570585616704562">Non reconnu</translation> <translation id="1746730358044914197">Les modes de saisie sont configurés par votre administrateur.</translation> @@ -107,6 +109,7 @@ <translation id="2018630726571919839">Raconte-moi une blague</translation> <translation id="2050339315714019657">Portrait</translation> <translation id="2067602449040652523">Luminosité du clavier</translation> +<translation id="2083190527011054446">Bonsoir <ph name="GIVEN_NAME" />,</translation> <translation id="209965399369889474">Aucune connexion réseau</translation> <translation id="2126242104232412123">Nouveau bureau</translation> <translation id="2127372758936585790">Chargeur de faible puissance</translation> @@ -185,6 +188,7 @@ <translation id="3009178788565917040">Sortie</translation> <translation id="3033545621352269033">Activé</translation> <translation id="3038571455154067151">Pour vous connecter, saisissez le code d'accès parental Family Link</translation> +<translation id="3045488863354895414">Bonjour,</translation> <translation id="3051128274746680507">Votre profil d'utilisateur supervisé sera bientôt supprimé. Connectez-vous pour en savoir plus.</translation> <translation id="3055162170959710888">Vous avez utilisé l'appareil pendant <ph name="USED_TIME" /> aujourd'hui</translation> <translation id="3076778413190775903">Barre d'état, il est <ph name="TIME" />, @@ -304,6 +308,7 @@ <translation id="4261870227682513959">Afficher les paramètres de notification. Les notifications sont désactivées</translation> <translation id="4269883910223712419">L'administrateur de cet appareil peut :</translation> <translation id="4279490309300973883">Mise en miroir</translation> +<translation id="4294319844246081198">Bonjour <ph name="GIVEN_NAME" />,</translation> <translation id="4296136865091727875">Effacer les <ph name="COUNT" /> notifications</translation> <translation id="4303223480529385476">Développer la zone d'état</translation> <translation id="4321179778687042513">ctrl</translation> @@ -320,6 +325,7 @@ <translation id="4421231901400348175">Partager le contrôle de votre écran avec <ph name="HELPER_NAME" /> via l'assistance à distance</translation> <translation id="4430019312045809116">Volume</translation> <translation id="4450893287417543264">Ne plus afficher</translation> +<translation id="445864333228800152">Bonsoir,</translation> <translation id="4458688154122353284">Arrêter l'enregistrement de l'écran</translation> <translation id="4477350412780666475">Titre suivant</translation> <translation id="4477892968187500306">Cet appareil peut contenir des applications qui n'ont pas été validées par Google.</translation> @@ -430,6 +436,7 @@ <translation id="5887866489674258948">Mode sombre</translation> <translation id="5895138241574237353">Redémarrer</translation> <translation id="5901316534475909376">Maj+Échap</translation> +<translation id="5909862606227538307">Bureau inactif.</translation> <translation id="5911909173233110115"><ph name="USERNAME" /> (<ph name="MAIL" />)</translation> <translation id="5916664084637901428">Activé</translation> <translation id="5920710855273935292">Le son du micro est coupé.</translation> @@ -561,8 +568,10 @@ <translation id="7405710164030118432">Pour déverrouiller l'appareil, saisissez le code d'accès parental Family Link</translation> <translation id="741244894080940828">conversion</translation> <translation id="742594950370306541">La caméra est en cours d'utilisation.</translation> +<translation id="742608627846767349">Bonjour,</translation> <translation id="743058460480092004">La caméra et le micro sont en cours d'utilisation.</translation> <translation id="7466449121337984263">Veuillez toucher le capteur</translation> +<translation id="7477793887173910789">Contrôler votre musique, vos vidéos et d'autres contenus</translation> <translation id="7497767806359279797">Choisir la langue et le clavier</translation> <translation id="7526573455193969409">Il est possible que le réseau soit surveillé</translation> <translation id="7536035074519304529">Adresse IP : <ph name="ADDRESS" /></translation> @@ -647,11 +656,13 @@ <translation id="8351131234907093545">Créer une note</translation> <translation id="8371779926711439835">Avancer par lettre</translation> <translation id="8375916635258623388">L'appareil <ph name="DEVICE_NAME" /> et votre téléphone seront associés automatiquement</translation> +<translation id="8380784334203145311">Bonsoir,</translation> <translation id="8388750414311082622">Impossible de supprimer le dernier bureau.</translation> <translation id="8392451568018454956">Menu "Options" de l'adresse e-mail <ph name="USER_EMAIL_ADDRESS" /></translation> <translation id="8394567579869570560">Ton parent a verrouillé cet appareil</translation> <translation id="8412677897383510995">Paramètres d'affichage</translation> <translation id="8425213833346101688">Modifier</translation> +<translation id="8426708595819210923">Bonsoir <ph name="GIVEN_NAME" />,</translation> <translation id="8427213022735114808">La fonctionnalité de dictée transmet votre voix à Google et permet d'utiliser ainsi la saisie vocale dans n'importe quelle zone de texte.</translation> <translation id="8428213095426709021">Paramètres</translation> <translation id="8433186206711564395">Paramètres réseau</translation>
diff --git a/ash/strings/ash_strings_gl.xtb b/ash/strings/ash_strings_gl.xtb index 1b46d53..8544b433 100644 --- a/ash/strings/ash_strings_gl.xtb +++ b/ash/strings/ash_strings_gl.xtb
@@ -11,6 +11,7 @@ <translation id="1056775291175587022">Non se atoparon redes</translation> <translation id="1059194134494239015"><ph name="DISPLAY_NAME" />: <ph name="RESOLUTION" /></translation> <translation id="108486256082349153">Móbil: <ph name="ADDRESS" /></translation> +<translation id="1087110696012418426">Boas tardes, <ph name="GIVEN_NAME" />!</translation> <translation id="109942774857561566">Abúrrome</translation> <translation id="1104084341931202936">Mostrar a configuración de accesibilidade</translation> <translation id="1104621072296271835">Os dispositivos funcionan mellor xuntos</translation> @@ -71,6 +72,7 @@ <translation id="1677472565718498478">Tempo restante: <ph name="TIME" /></translation> <translation id="1698080062160024910">Temporizador de <ph name="TOTAL_TIME" /> · <ph name="LABEL" /></translation> <translation id="1698760176351776263">Enderezo IPv6: <ph name="ADDRESS" /></translation> +<translation id="1708345662127501511">Escritorio: <ph name="DESK_NAME" /></translation> <translation id="1709762881904163296">Configuración de rede</translation> <translation id="1743570585616704562">Non se recoñece</translation> <translation id="1746730358044914197">O teu administrador configura os métodos de entrada.</translation> @@ -107,6 +109,7 @@ <translation id="2018630726571919839">Cóntame un chiste</translation> <translation id="2050339315714019657">Vertical</translation> <translation id="2067602449040652523">Brillo do teclado</translation> +<translation id="2083190527011054446">Boas noites, <ph name="GIVEN_NAME" />!</translation> <translation id="209965399369889474">Non hai conexión á rede</translation> <translation id="2126242104232412123">Novo escritorio</translation> <translation id="2127372758936585790">Cargador de baixa potencia</translation> @@ -185,6 +188,7 @@ <translation id="3009178788565917040">Saída</translation> <translation id="3033545621352269033">Activada</translation> <translation id="3038571455154067151">Para iniciar sesión, escribe o teu código de acceso parental de Family Link</translation> +<translation id="3045488863354895414">Boas tardes!</translation> <translation id="3051128274746680507">O teu perfil de usuario supervisado eliminarase en breve. Inicia sesión para obter máis información.</translation> <translation id="3055162170959710888">Hoxe utilizaches este dispositivo durante <ph name="USED_TIME" /></translation> <translation id="3076778413190775903">Bandexa de estado, hora <ph name="TIME" />, @@ -305,6 +309,7 @@ <translation id="4261870227682513959">Mostrar a configuración de notificacións. Están desactivadas</translation> <translation id="4269883910223712419">O administrador deste dispositivo pode facer o seguinte:</translation> <translation id="4279490309300973883">Proxección</translation> +<translation id="4294319844246081198">Bos días, <ph name="GIVEN_NAME" />!</translation> <translation id="4296136865091727875">Borrar as <ph name="COUNT" /> notificacións</translation> <translation id="4303223480529385476">Despregar área de estado</translation> <translation id="4321179778687042513">ctrl</translation> @@ -321,6 +326,7 @@ <translation id="4421231901400348175">Control compartido da túa pantalla con <ph name="HELPER_NAME" /> a través de Asistencia remota.</translation> <translation id="4430019312045809116">Volume</translation> <translation id="4450893287417543264">Non mostrar outra vez</translation> +<translation id="445864333228800152">Bo serán!</translation> <translation id="4458688154122353284">Deter gravación da pantalla</translation> <translation id="4477350412780666475">Pista seguinte</translation> <translation id="4477892968187500306">Este dispositivo pode conter aplicacións non verificadas por Google.</translation> @@ -431,6 +437,7 @@ <translation id="5887866489674258948">Modo escuro</translation> <translation id="5895138241574237353">Reiniciar</translation> <translation id="5901316534475909376">Maiúsculas+Esc</translation> +<translation id="5909862606227538307">Escritorio inactivo.</translation> <translation id="5911909173233110115"><ph name="USERNAME" /> (<ph name="MAIL" />)</translation> <translation id="5916664084637901428">Si</translation> <translation id="5920710855273935292">O micrófono está silenciado.</translation> @@ -562,8 +569,10 @@ <translation id="7405710164030118432">Para desbloquear o dispositivo, introduce o código de acceso parental de Family Link</translation> <translation id="741244894080940828">conversión</translation> <translation id="742594950370306541">Estase utilizando a cámara.</translation> +<translation id="742608627846767349">Bos días!</translation> <translation id="743058460480092004">Estanse utilizando a cámara e o micrófono.</translation> <translation id="7466449121337984263">Toca o sensor</translation> +<translation id="7477793887173910789">Controlar a túa música, os vídeos e moito máis</translation> <translation id="7497767806359279797">Escoller idioma e teclado</translation> <translation id="7526573455193969409">É posible que se controle a rede</translation> <translation id="7536035074519304529">Enderezo IP: <ph name="ADDRESS" /></translation> @@ -648,11 +657,13 @@ <translation id="8351131234907093545">Crear nota</translation> <translation id="8371779926711439835">Avanzar unha letra</translation> <translation id="8375916635258623388">Este <ph name="DEVICE_NAME" /> e o teu teléfono conectaranse automaticamente</translation> +<translation id="8380784334203145311">Boas noites!</translation> <translation id="8388750414311082622">O último escritorio non se pode quitar.</translation> <translation id="8392451568018454956">Menú de opcións para <ph name="USER_EMAIL_ADDRESS" /></translation> <translation id="8394567579869570560">O teu pai ou nai bloqueou este dispositivo</translation> <translation id="8412677897383510995">Mostrar configuración da pantalla</translation> <translation id="8425213833346101688">Cambiar</translation> +<translation id="8426708595819210923">Bo serán, <ph name="GIVEN_NAME" />!</translation> <translation id="8427213022735114808">O Ditado envía a túa voz a Google para que poidas usar a escritura por voz en calquera campo de texto.</translation> <translation id="8428213095426709021">Configuración</translation> <translation id="8433186206711564395">Configuración de rede</translation>
diff --git a/ash/strings/ash_strings_gu.xtb b/ash/strings/ash_strings_gu.xtb index 25b822d..3c6c679 100644 --- a/ash/strings/ash_strings_gu.xtb +++ b/ash/strings/ash_strings_gu.xtb
@@ -563,6 +563,7 @@ <translation id="742594950370306541">કૅમેરો ઉપયોગમાં છે.</translation> <translation id="743058460480092004">કૅમેરો અને માઇક્રોફોન ઉપયોગમાં છે.</translation> <translation id="7466449121337984263">કૃપા કરીને સેન્સરને સ્પર્શ કરો</translation> +<translation id="7477793887173910789">તમારું મ્યુઝિક, વીડિયો અને બીજું ઘણું નિયંત્રિત કરો</translation> <translation id="7497767806359279797">ભાષા અને કીબોર્ડ પસંદ કરો</translation> <translation id="7526573455193969409">નેટવર્કને મોનિટર કરવામાં આવી શકે છે</translation> <translation id="7536035074519304529">IP સરનામું: <ph name="ADDRESS" /></translation>
diff --git a/ash/strings/ash_strings_hi.xtb b/ash/strings/ash_strings_hi.xtb index b0a8a1a..5bcb144 100644 --- a/ash/strings/ash_strings_hi.xtb +++ b/ash/strings/ash_strings_hi.xtb
@@ -11,6 +11,7 @@ <translation id="1056775291175587022">नेटवर्क नहीं है</translation> <translation id="1059194134494239015"><ph name="DISPLAY_NAME" />: <ph name="RESOLUTION" /></translation> <translation id="108486256082349153">मोबाइल (सेल्युलर): <ph name="ADDRESS" /></translation> +<translation id="1087110696012418426">गुड आफ़्टरनून <ph name="GIVEN_NAME" />,</translation> <translation id="109942774857561566">मुझे बोरियत हो रही है</translation> <translation id="1104084341931202936">सुलभता सेटिंग दिखाएं</translation> <translation id="1104621072296271835">साथ मिलकर आपके डिवाइस और बेहतर काम करते हैं</translation> @@ -71,6 +72,7 @@ <translation id="1677472565718498478"><ph name="TIME" /> बाकी</translation> <translation id="1698080062160024910"><ph name="TOTAL_TIME" /> टाइमर · <ph name="LABEL" /></translation> <translation id="1698760176351776263">IPv6 पता: <ph name="ADDRESS" /></translation> +<translation id="1708345662127501511">डेस्क: <ph name="DESK_NAME" /></translation> <translation id="1709762881904163296">नेटवर्क सेटिंग</translation> <translation id="1743570585616704562">उंगली की पहचान नहीं हो सकी</translation> <translation id="1746730358044914197">इनपुट विधियों को आपका व्यवस्थापक कॉन्फ़िगर करता है.</translation> @@ -107,6 +109,7 @@ <translation id="2018630726571919839">मुझे कोई चुटकुला सुनाओ</translation> <translation id="2050339315714019657">पोर्ट्रेट</translation> <translation id="2067602449040652523">कीबोर्ड की रोशनी</translation> +<translation id="2083190527011054446">गुड नाइट <ph name="GIVEN_NAME" />,</translation> <translation id="209965399369889474">नेटवर्क से जुड़ा हुआ नहीं है</translation> <translation id="2126242104232412123">नया डेस्क</translation> <translation id="2127372758936585790">कम-शक्ति वाला चार्जर</translation> @@ -185,6 +188,7 @@ <translation id="3009178788565917040">आउटपुट</translation> <translation id="3033545621352269033">चालू है</translation> <translation id="3038571455154067151">साइन इन करने के लिए, अपने Family Link का अभिभावक ऐक्सेस कोड डालें</translation> +<translation id="3045488863354895414">गुड आफ़्टरनून,</translation> <translation id="3051128274746680507">निगरानी में रखी गई आपकी उपयोगकर्ता प्रोफ़ाइल जल्द ही हटा दी जाएगी. ज़्यादा जानने के लिए साइन इन करें.</translation> <translation id="3055162170959710888">आपने आज इस डिवाइस का <ph name="USED_TIME" /> तक इस्तेमाल कर लिया है</translation> <translation id="3076778413190775903">स्थिति ट्रे, समय <ph name="TIME" />, @@ -305,6 +309,7 @@ <translation id="4261870227682513959">सूचना सेटिंग दिखाएं. सूचनाएं बंद हैं</translation> <translation id="4269883910223712419">इस डिवाइस के एडमिन ये काम कर सकते हैं:</translation> <translation id="4279490309300973883">स्क्रीन शेयर करने की सुविधा चालू है</translation> +<translation id="4294319844246081198">गुड मॉर्निंग <ph name="GIVEN_NAME" />,</translation> <translation id="4296136865091727875">सभी <ph name="COUNT" /> सूचनाएं हटाएं</translation> <translation id="4303223480529385476">स्टेटस बताने वाली जगह को बड़ा करें</translation> <translation id="4321179778687042513">ctrl</translation> @@ -321,6 +326,7 @@ <translation id="4421231901400348175">आपकी स्क्रीन का नियंत्रण दूरस्थ सहायक के द्वारा <ph name="HELPER_NAME" /> से शेयर किया जा रहा है.</translation> <translation id="4430019312045809116">मात्रा</translation> <translation id="4450893287417543264">फिर से न दिखाएं</translation> +<translation id="445864333228800152">गुड ईवनिंग,</translation> <translation id="4458688154122353284">स्क्रीन को रिकॉर्ड करना बंद करें</translation> <translation id="4477350412780666475">अगला ट्रैक</translation> <translation id="4477892968187500306">इस डिवाइस में ऐसे ऐप्लिकेशन हो सकते हैं जिनकी Google ने पुष्टि नहीं की है.</translation> @@ -431,6 +437,7 @@ <translation id="5887866489674258948">गहरे रंग वाला मोड</translation> <translation id="5895138241574237353">फिर से प्रारंभ करें</translation> <translation id="5901316534475909376">Shift+Esc</translation> +<translation id="5909862606227538307">यह डेस्क इस्तेमाल में नहीं है.</translation> <translation id="5911909173233110115"><ph name="USERNAME" /> (<ph name="MAIL" />)</translation> <translation id="5916664084637901428">चालू है</translation> <translation id="5920710855273935292">माइक म्यूट है.</translation> @@ -562,8 +569,10 @@ <translation id="7405710164030118432">यह डिवाइस अनलॉक करने के लिए, अपना Family Link का माता-पिता वाला ऐक्सेस कोड डालें</translation> <translation id="741244894080940828">एक यूनिट से दूसरी यूनिट में बदलना</translation> <translation id="742594950370306541">कैमरे का उपयोग हो रहा है.</translation> +<translation id="742608627846767349">गुड मॉर्निंग,</translation> <translation id="743058460480092004">कैमरे और माइक्रोफ़ोन का उपयोग हो रहा है.</translation> <translation id="7466449121337984263">कृपया सेंसर को छुएं</translation> +<translation id="7477793887173910789">अपने संगीत और वीडियो के साथ दूसरी चीज़ें नियंत्रित करें</translation> <translation id="7497767806359279797">भाषा और कीवर्ड चुनें</translation> <translation id="7526573455193969409">नेटवर्क की निगरानी की जा सकती है</translation> <translation id="7536035074519304529">आईपी पता: <ph name="ADDRESS" /></translation> @@ -648,11 +657,13 @@ <translation id="8351131234907093545">नोट बनाएं</translation> <translation id="8371779926711439835">एक वर्ण आगे जाएं</translation> <translation id="8375916635258623388">यह <ph name="DEVICE_NAME" /> और आपका फ़ोन, अपने आप कनेक्ट हो जाएंगे</translation> +<translation id="8380784334203145311">गुड नाइट,</translation> <translation id="8388750414311082622">आखिरी डेस्क को हटाया नहीं जा सकता.</translation> <translation id="8392451568018454956"><ph name="USER_EMAIL_ADDRESS" /> के लिए विकल्प मेन्यू</translation> <translation id="8394567579869570560">आपके अभिभावक ने यह डिवाइस लॉक कर दिया है</translation> <translation id="8412677897383510995">डिसप्ले की सेटिंग दिखाएं</translation> <translation id="8425213833346101688">बदलें</translation> +<translation id="8426708595819210923">गुड ईवनिंग <ph name="GIVEN_NAME" />,</translation> <translation id="8427213022735114808">'डिक्टेशन (आप जो बोलते हैं उसे लिखना)' सुविधा आपकी आवाज़ Google को भेजती है ताकि किसी भी लेख फ़ील्ड में बोलकर लिखा जा सके.</translation> <translation id="8428213095426709021">सेटिंग</translation> <translation id="8433186206711564395">नेटवर्क सेटिंग</translation>
diff --git a/ash/strings/ash_strings_hr.xtb b/ash/strings/ash_strings_hr.xtb index cf5500a2..b3c6780 100644 --- a/ash/strings/ash_strings_hr.xtb +++ b/ash/strings/ash_strings_hr.xtb
@@ -571,6 +571,7 @@ <translation id="742608627846767349">Dobro jutro,</translation> <translation id="743058460480092004">Fotoaparat i mikrofon su aktivni.</translation> <translation id="7466449121337984263">Dodirnite senzor</translation> +<translation id="7477793887173910789">Upravljate glazbom, videozapisima i drugim medijima</translation> <translation id="7497767806359279797">Odaberite jezik i tipkovnicu</translation> <translation id="7526573455193969409">Mreža se možda nadzire</translation> <translation id="7536035074519304529">IP adresa: <ph name="ADDRESS" /></translation>
diff --git a/ash/strings/ash_strings_hu.xtb b/ash/strings/ash_strings_hu.xtb index 549883fd..345abc8 100644 --- a/ash/strings/ash_strings_hu.xtb +++ b/ash/strings/ash_strings_hu.xtb
@@ -11,6 +11,7 @@ <translation id="1056775291175587022">Nincs hálózat</translation> <translation id="1059194134494239015"><ph name="DISPLAY_NAME" />: <ph name="RESOLUTION" /></translation> <translation id="108486256082349153">Mobil: <ph name="ADDRESS" /></translation> +<translation id="1087110696012418426">Jó napot, <ph name="GIVEN_NAME" />!</translation> <translation id="109942774857561566">Unatkozom</translation> <translation id="1104084341931202936">A kisegítő lehetőségekhez tartozó beállítások megjelenítése</translation> <translation id="1104621072296271835">Eszközei együtt még jobban működnek</translation> @@ -71,6 +72,7 @@ <translation id="1677472565718498478"><ph name="TIME" /> van hátra</translation> <translation id="1698080062160024910">Időzítő a következő időtartamra: <ph name="TOTAL_TIME" /> <ph name="LABEL" /></translation> <translation id="1698760176351776263">IPv6-cím: <ph name="ADDRESS" /></translation> +<translation id="1708345662127501511">Asztal: <ph name="DESK_NAME" /></translation> <translation id="1709762881904163296">Hálózati beállítások</translation> <translation id="1743570585616704562">Nem sikerült felismerni</translation> <translation id="1746730358044914197">A rendszergazda állította be a beviteli módszereket.</translation> @@ -107,6 +109,7 @@ <translation id="2018630726571919839">Mondj egy viccet</translation> <translation id="2050339315714019657">Álló</translation> <translation id="2067602449040652523">Billentyűzet világossága</translation> +<translation id="2083190527011054446">Jó éjszakát, <ph name="GIVEN_NAME" />!</translation> <translation id="209965399369889474">Nincs hálózati kapcsolat</translation> <translation id="2126242104232412123">Új asztal</translation> <translation id="2127372758936585790">Kis teljesítményű töltő</translation> @@ -185,6 +188,7 @@ <translation id="3009178788565917040">Kimenet</translation> <translation id="3033545621352269033">Be</translation> <translation id="3038571455154067151">A bejelentkezéshez adja meg a Family Link szülői hozzáférési kódot</translation> +<translation id="3045488863354895414">Jó napot!</translation> <translation id="3051128274746680507">Az Ön által felügyelt felhasználói profil hamarosan eltávolításra kerül. További információért jelentkezzen be.</translation> <translation id="3055162170959710888">Az eszköz mai használatának teljes időtartama: <ph name="USED_TIME" /></translation> <translation id="3076778413190775903">Állapottálca, idő <ph name="TIME" />, @@ -305,6 +309,7 @@ <translation id="4261870227682513959">Az értesítési beállítások megjelenítése. Az értesítések ki vannak kapcsolva</translation> <translation id="4269883910223712419">Az eszköz rendszergazdája a következőket végezheti el:</translation> <translation id="4279490309300973883">Tükrözés</translation> +<translation id="4294319844246081198">Jó reggelt, <ph name="GIVEN_NAME" />!</translation> <translation id="4296136865091727875">Az összes (<ph name="COUNT" />) értesítés törlése</translation> <translation id="4303223480529385476">Állapotsor kibontása</translation> <translation id="4321179778687042513">ctrl</translation> @@ -321,6 +326,7 @@ <translation id="4421231901400348175">A képernyő irányításának megosztása <ph name="HELPER_NAME" /> segítővel a Távsegítség szolgáltatás keretein belül.</translation> <translation id="4430019312045809116">Hangerő</translation> <translation id="4450893287417543264">Ne jelenjen meg többé</translation> +<translation id="445864333228800152">Jó estét!</translation> <translation id="4458688154122353284">Képernyőfelvétel leállítása</translation> <translation id="4477350412780666475">Következő szám</translation> <translation id="4477892968187500306">Ez az eszköz olyan alkalmazásokat tartalmazhat, amelyeket nem hagyott jóvá a Google.</translation> @@ -431,6 +437,7 @@ <translation id="5887866489674258948">Sötét mód</translation> <translation id="5895138241574237353">Újraindítás</translation> <translation id="5901316534475909376">Shift+Esc</translation> +<translation id="5909862606227538307">Inaktív asztal.</translation> <translation id="5911909173233110115"><ph name="USERNAME" /> (<ph name="MAIL" />)</translation> <translation id="5916664084637901428">Be</translation> <translation id="5920710855273935292">A mikrofon le van némítva.</translation> @@ -562,8 +569,10 @@ <translation id="7405710164030118432">Az eszköz zárolásának feloldásához adja meg a Family Link szülői hozzáférési kódot</translation> <translation id="741244894080940828">Átváltás</translation> <translation id="742594950370306541">A kamera épp használatban van.</translation> +<translation id="742608627846767349">Jó reggelt!</translation> <translation id="743058460480092004">A kamera és a mikrofon épp használatban van.</translation> <translation id="7466449121337984263">Érintse meg az érzékelőt</translation> +<translation id="7477793887173910789">Zeneszámok, videók és további tartalmak vezérlése</translation> <translation id="7497767806359279797">Nyelv és billentyűzet kiválasztása</translation> <translation id="7526573455193969409">Elképzelhető, hogy figyelik a hálózatot</translation> <translation id="7536035074519304529">IP-cím: <ph name="ADDRESS" /></translation> @@ -648,11 +657,13 @@ <translation id="8351131234907093545">Jegyzet létrehozása</translation> <translation id="8371779926711439835">Előrelépés betűnként</translation> <translation id="8375916635258623388">A(z) <ph name="DEVICE_NAME" /> eszköz és a telefon automatikusan csatlakozik majd egymáshoz</translation> +<translation id="8380784334203145311">Jó éjszakát!</translation> <translation id="8388750414311082622">Nem lehetséges a legutóbbi asztal eltávolítása.</translation> <translation id="8392451568018454956"><ph name="USER_EMAIL_ADDRESS" /> beállításainak menüje</translation> <translation id="8394567579869570560">A szülőd zárolta az eszközt</translation> <translation id="8412677897383510995">Kijelzőbeállítások megjelenítése</translation> <translation id="8425213833346101688">Módosítás</translation> +<translation id="8426708595819210923">Jó estét, <ph name="GIVEN_NAME" />!</translation> <translation id="8427213022735114808">A diktálás elküldi a hangját a Google számára, hogy bármely szövegmezőbe írhasson hangvezérléssel.</translation> <translation id="8428213095426709021">Beállítások</translation> <translation id="8433186206711564395">Hálózati beállítások</translation>
diff --git a/ash/strings/ash_strings_hy.xtb b/ash/strings/ash_strings_hy.xtb index 1763ce8a..821fa7b 100644 --- a/ash/strings/ash_strings_hy.xtb +++ b/ash/strings/ash_strings_hy.xtb
@@ -11,6 +11,7 @@ <translation id="1056775291175587022">Ցանց չկա</translation> <translation id="1059194134494239015"><ph name="DISPLAY_NAME" />՝ <ph name="RESOLUTION" /></translation> <translation id="108486256082349153">Բջջային՝ <ph name="ADDRESS" /></translation> +<translation id="1087110696012418426">Բարի օր, <ph name="GIVEN_NAME" /></translation> <translation id="109942774857561566">Ձանձրանում եմ</translation> <translation id="1104084341931202936">Ցուցադրել հատուկ գործառույթների կարգավորումները</translation> <translation id="1104621072296271835">Միասին ձեր սարքերն ավելի լավ կաշխատեն</translation> @@ -71,6 +72,7 @@ <translation id="1677472565718498478">Մնացել է <ph name="TIME" /></translation> <translation id="1698080062160024910">Ժամաչափ՝ <ph name="TOTAL_TIME" /> · <ph name="LABEL" /></translation> <translation id="1698760176351776263">IPv6 հասցե՝ <ph name="ADDRESS" /></translation> +<translation id="1708345662127501511">Աշխատասեղան՝ <ph name="DESK_NAME" /></translation> <translation id="1709762881904163296">Ցանցի կարգավորումներ</translation> <translation id="1743570585616704562">Չճանաչվեց</translation> <translation id="1746730358044914197">Ներածման եղանակները կարգավորվում են ձեր ադմինիստրատորի կողմից:</translation> @@ -107,6 +109,7 @@ <translation id="2018630726571919839">Անեկդոտ պատմիր</translation> <translation id="2050339315714019657">Ուղղաձիգ</translation> <translation id="2067602449040652523">Ստեղնաշարի պայծառություն</translation> +<translation id="2083190527011054446">Բարի գիշեր, <ph name="GIVEN_NAME" /></translation> <translation id="209965399369889474">Սարքը միացած չէ ցանցին</translation> <translation id="2126242104232412123">Նոր աշխատանքային տարածք</translation> <translation id="2127372758936585790">Մարտկոցի լիցքը սպառվում է</translation> @@ -185,6 +188,7 @@ <translation id="3009178788565917040">Ելք</translation> <translation id="3033545621352269033">Միացված է</translation> <translation id="3038571455154067151">Մուտք գործելու համար մուտքագրեք Family Link-ի ծնողի մուտքի կոդը։</translation> +<translation id="3045488863354895414">Բարի օր,</translation> <translation id="3051128274746680507">Ձեր վերահսկվող պրոֆիլը շուտով կհեռացվի։ Մանրամասներին ծանոթանալու համար մտեք հաշիվ:</translation> <translation id="3055162170959710888">Այս սարքն այսօր օգտագործվել է <ph name="USED_TIME" /></translation> <translation id="3076778413190775903">Կարգավիճակի տող, ժամը՝ <ph name="TIME" />, @@ -304,6 +308,7 @@ <translation id="4261870227682513959">Ցուցադրել ծանուցումների կարգավորումները: Ծանուցումներն անջատած են:</translation> <translation id="4269883910223712419">Այս սարքի ադմինիստրատորը կարող է՝</translation> <translation id="4279490309300973883">Հայելապատճենում</translation> +<translation id="4294319844246081198">Բարի լույս, <ph name="GIVEN_NAME" /></translation> <translation id="4296136865091727875">Մաքրել բոլոր <ph name="COUNT" /> ծանուցումները</translation> <translation id="4303223480529385476">Ծավալել կարգավիճակի տարածքը</translation> <translation id="4321179778687042513">ctrl</translation> @@ -320,6 +325,7 @@ <translation id="4421231901400348175">Էկրանի կառավարման համօգտագործում <ph name="HELPER_NAME" />-ի հետ Հեռակա օգնության միջոցով:</translation> <translation id="4430019312045809116">Ձայնի ուժգնություն</translation> <translation id="4450893287417543264">Այլևս ցույց չտալ</translation> +<translation id="445864333228800152">Բարի երեկո,</translation> <translation id="4458688154122353284">Դադարեցնել էկրանի տեսագրումը</translation> <translation id="4477350412780666475">Հաջորդ կատարումը</translation> <translation id="4477892968187500306">Այս սարքում կարող են լինել հավելվածներ, որոնք չեն ստուգվել Google-ի կողմից։</translation> @@ -430,6 +436,7 @@ <translation id="5887866489674258948">Մուգ ռեժիմ</translation> <translation id="5895138241574237353">Վերագործարկել</translation> <translation id="5901316534475909376">Shift+Esc</translation> +<translation id="5909862606227538307">Անջատված աշխատասեղան</translation> <translation id="5911909173233110115"><ph name="USERNAME" /> (<ph name="MAIL" />)</translation> <translation id="5916664084637901428">Միացնել</translation> <translation id="5920710855273935292">Խոսափողի ձայնն անջատված է։</translation> @@ -561,8 +568,10 @@ <translation id="7405710164030118432">Սարքն ապակողպելու համար մուտքագրեք Family Link-ի ծնողի մուտքի կոդը</translation> <translation id="741244894080940828">փոխարկում</translation> <translation id="742594950370306541">Տեսախցիկն օգտագործվում է:</translation> +<translation id="742608627846767349">Բարի լույս,</translation> <translation id="743058460480092004">Տեսախցիկն ու խոսափողը օգտագործվում են:</translation> <translation id="7466449121337984263">Մատը դրեք տվիչին</translation> +<translation id="7477793887173910789">Վերահսկեք երաժշտությունը, տեսանյութերը և այլն</translation> <translation id="7497767806359279797">Ընտրել լեզու և ստեղնաշար</translation> <translation id="7526573455193969409">Ցանցը կարող է վերահսկվել</translation> <translation id="7536035074519304529">IP հասցե՝ <ph name="ADDRESS" /></translation> @@ -647,11 +656,13 @@ <translation id="8351131234907093545">Գրառման ստեղծում</translation> <translation id="8371779926711439835">Մեկ տառով առաջ</translation> <translation id="8375916635258623388">Այս <ph name="DEVICE_NAME" /> սարքը և ձեր հեռախոսը ավտոմատ կկապվեն</translation> +<translation id="8380784334203145311">Բարի գիշեր,</translation> <translation id="8388750414311082622">Վերջին աշխատասեղանը չի կարող հեռացվել:</translation> <translation id="8392451568018454956"><ph name="USER_EMAIL_ADDRESS" />-ի ընտրանքների ցանկ</translation> <translation id="8394567579869570560">Ձեր ծնողը կողպել է սարքը</translation> <translation id="8412677897383510995">Ցույց տալ էկրանի կարգավորումները</translation> <translation id="8425213833346101688">Փոխել</translation> +<translation id="8426708595819210923">Բարի երեկո, <ph name="GIVEN_NAME" /></translation> <translation id="8427213022735114808">Թելադրելու գործառույթն ուղարկում է ձեր ձայնը Google-ին, ինչը թույլ է տալիս թելադրելով լրացնել տեքստային դաշտերը։</translation> <translation id="8428213095426709021">Կարգավորումներ</translation> <translation id="8433186206711564395">Ցանցային կարգավորումներ</translation>
diff --git a/ash/strings/ash_strings_id.xtb b/ash/strings/ash_strings_id.xtb index c0dcc80..00d5a09a 100644 --- a/ash/strings/ash_strings_id.xtb +++ b/ash/strings/ash_strings_id.xtb
@@ -11,6 +11,7 @@ <translation id="1056775291175587022">Jaringan nihil</translation> <translation id="1059194134494239015"><ph name="DISPLAY_NAME" />: <ph name="RESOLUTION" /></translation> <translation id="108486256082349153">Seluler: <ph name="ADDRESS" /></translation> +<translation id="1087110696012418426">Selamat siang <ph name="GIVEN_NAME" />,</translation> <translation id="109942774857561566">Saya bosan</translation> <translation id="1104084341931202936">Tampilkan setelan aksesibilitas</translation> <translation id="1104621072296271835">Perangkat berfungsi lebih baik jika digunakan bersama</translation> @@ -71,6 +72,7 @@ <translation id="1677472565718498478">Sisa waktu <ph name="TIME" /></translation> <translation id="1698080062160024910">Timer <ph name="TOTAL_TIME" /> · <ph name="LABEL" /></translation> <translation id="1698760176351776263">Alamat IPv6: <ph name="ADDRESS" /></translation> +<translation id="1708345662127501511">Desktop: <ph name="DESK_NAME" /></translation> <translation id="1709762881904163296">Setelan Jaringan</translation> <translation id="1743570585616704562">Tidak dikenali</translation> <translation id="1746730358044914197">Metode masukan dikonfigurasi oleh administrator.</translation> @@ -107,6 +109,7 @@ <translation id="2018630726571919839">Ceritakan lelucon</translation> <translation id="2050339315714019657">Potret</translation> <translation id="2067602449040652523">Kecerahan keyboard</translation> +<translation id="2083190527011054446">Selamat malam <ph name="GIVEN_NAME" />,</translation> <translation id="209965399369889474">Tidak terhubung ke jaringan</translation> <translation id="2126242104232412123">Desktop baru</translation> <translation id="2127372758936585790">Pengisi daya rendah</translation> @@ -185,6 +188,7 @@ <translation id="3009178788565917040">Keluaran</translation> <translation id="3033545621352269033">Aktif</translation> <translation id="3038571455154067151">Untuk login, masukkan kode akses orang tua Family Link</translation> +<translation id="3045488863354895414">Selamat siang,</translation> <translation id="3051128274746680507">Profil pengguna yang dilindungi akan segera dihapus. Login untuk mempelajari lebih lanjut.</translation> <translation id="3055162170959710888">Anda menggunakan perangkat ini selama <ph name="USED_TIME" /> hari ini</translation> <translation id="3076778413190775903">Menu status, waktu <ph name="TIME" />, @@ -304,6 +308,7 @@ <translation id="4261870227682513959">Tampilkan setelan notifikasi. Notifikasi nonaktif.</translation> <translation id="4269883910223712419">Admin perangkat ini memiliki kemampuan untuk:</translation> <translation id="4279490309300973883">Mencerminkan</translation> +<translation id="4294319844246081198">Selamat pagi <ph name="GIVEN_NAME" />,</translation> <translation id="4296136865091727875">Hapus semua (<ph name="COUNT" />) notifikasi</translation> <translation id="4303223480529385476">Luaskan area status</translation> <translation id="4321179778687042513">ctrl</translation> @@ -320,6 +325,7 @@ <translation id="4421231901400348175">Berbagi kontrol layar dengan <ph name="HELPER_NAME" /> via Remote Assistance.</translation> <translation id="4430019312045809116">Volume</translation> <translation id="4450893287417543264">Jangan tampilkan lagi</translation> +<translation id="445864333228800152">Selamat sore,</translation> <translation id="4458688154122353284">Hentikan perekaman layar</translation> <translation id="4477350412780666475">Lagu Berikutnya</translation> <translation id="4477892968187500306">Perangkat ini dapat memuat aplikasi yang belum diverifikasi oleh Google.</translation> @@ -430,6 +436,7 @@ <translation id="5887866489674258948">Mode Gelap</translation> <translation id="5895138241574237353">Mulai Ulang</translation> <translation id="5901316534475909376">Shift+Esc</translation> +<translation id="5909862606227538307">Desktop yang tidak aktif.</translation> <translation id="5911909173233110115"><ph name="USERNAME" /> (<ph name="MAIL" />)</translation> <translation id="5916664084637901428">Aktif</translation> <translation id="5920710855273935292">Mikrofon dibisukan.</translation> @@ -561,8 +568,10 @@ <translation id="7405710164030118432">Untuk membuka kunci perangkat, masukkan kode akses orang tua Family Link</translation> <translation id="741244894080940828">konversi</translation> <translation id="742594950370306541">Kamera sedang digunakan.</translation> +<translation id="742608627846767349">Selamat pagi,</translation> <translation id="743058460480092004">Kamera dan mikrofon sedang digunakan.</translation> <translation id="7466449121337984263">Sentuh sensor</translation> +<translation id="7477793887173910789">Kontrol musik, video, dan banyak lagi</translation> <translation id="7497767806359279797">Pilih bahasa dan keyboard</translation> <translation id="7526573455193969409">Jaringan mungkin dipantau</translation> <translation id="7536035074519304529">Alamat IP: <ph name="ADDRESS" /></translation> @@ -647,11 +656,13 @@ <translation id="8351131234907093545">Buat catatan</translation> <translation id="8371779926711439835">Maju per huruf</translation> <translation id="8375916635258623388"><ph name="DEVICE_NAME" /> ini dan ponsel Anda akan terhubung otomatis</translation> +<translation id="8380784334203145311">Selamat malam,</translation> <translation id="8388750414311082622">Halaman kerja terakhir tidak dapat dihapus.</translation> <translation id="8392451568018454956">Menu opsi untuk <ph name="USER_EMAIL_ADDRESS" /></translation> <translation id="8394567579869570560">Orang tuamu mengunci perangkat ini</translation> <translation id="8412677897383510995">Tampilkan setelan layar</translation> <translation id="8425213833346101688">Ubah</translation> +<translation id="8426708595819210923">Selamat sore <ph name="GIVEN_NAME" />,</translation> <translation id="8427213022735114808">Fitur Pengetikan suara mengirimkan suara Anda ke Google untuk memungkinkan pengetikan menggunakan suara ke kolom teks.</translation> <translation id="8428213095426709021">Setelan</translation> <translation id="8433186206711564395">Setelan jaringan</translation>
diff --git a/ash/strings/ash_strings_is.xtb b/ash/strings/ash_strings_is.xtb index c66123d..be6edd6 100644 --- a/ash/strings/ash_strings_is.xtb +++ b/ash/strings/ash_strings_is.xtb
@@ -11,6 +11,7 @@ <translation id="1056775291175587022">Engin net</translation> <translation id="1059194134494239015"><ph name="DISPLAY_NAME" />: <ph name="RESOLUTION" /></translation> <translation id="108486256082349153">Farsímakerfi: <ph name="ADDRESS" /></translation> +<translation id="1087110696012418426">Góðan dag <ph name="GIVEN_NAME" />,</translation> <translation id="109942774857561566">Mér leiðist</translation> <translation id="1104084341931202936">Sýna aðgengisstillingar</translation> <translation id="1104621072296271835">Tækin þín virka enn betur saman</translation> @@ -71,6 +72,7 @@ <translation id="1677472565718498478"><ph name="TIME" /> eftir</translation> <translation id="1698080062160024910"><ph name="TOTAL_TIME" /> teljari · <ph name="LABEL" /></translation> <translation id="1698760176351776263">IPv6-vistfang: <ph name="ADDRESS" /></translation> +<translation id="1708345662127501511">Skjár: <ph name="DESK_NAME" /></translation> <translation id="1709762881904163296">Netkerfisstillingar</translation> <translation id="1743570585616704562">Þekktist ekki</translation> <translation id="1746730358044914197">Kerfisstjóri stillti innfærsluaðferðir.</translation> @@ -107,6 +109,7 @@ <translation id="2018630726571919839">Segðu mér brandara</translation> <translation id="2050339315714019657">Skammsnið</translation> <translation id="2067602449040652523">Birtustig lyklaborðs</translation> +<translation id="2083190527011054446">Góða nótt <ph name="GIVEN_NAME" />,</translation> <translation id="209965399369889474">Engin nettenging</translation> <translation id="2126242104232412123">Nýtt svæði</translation> <translation id="2127372758936585790">Afllítið hleðslutæki</translation> @@ -185,6 +188,7 @@ <translation id="3009178788565917040">Úttak</translation> <translation id="3033545621352269033">Kveikt</translation> <translation id="3038571455154067151">Til að skrá þig inn skaltu slá inn aðgangskóða foreldris fyrir Family Link</translation> +<translation id="3045488863354895414">Góðan dag,</translation> <translation id="3051128274746680507">Prófíll stýrða notandans þíns verður brátt fjarlægður. Skráðu þig inn til að fá frekari upplýsingar.</translation> <translation id="3055162170959710888">Þú hefur notað þetta tæki í <ph name="USED_TIME" /> í dag</translation> <translation id="3076778413190775903">Stöðubakki, klukkan er <ph name="TIME" />, @@ -304,6 +308,7 @@ <translation id="4261870227682513959">Sýna tilkynningastillingar. Slökkt er á tilkynningum</translation> <translation id="4269883910223712419">Stjórnandi þessa tækis getur:</translation> <translation id="4279490309300973883">Speglun</translation> +<translation id="4294319844246081198">Góðan dag <ph name="GIVEN_NAME" />,</translation> <translation id="4296136865091727875">Hreinsa <ph name="COUNT" /> tilkynningar</translation> <translation id="4303223480529385476">Stækka stöðusvæði</translation> <translation id="4321179778687042513">ctrl</translation> @@ -320,6 +325,7 @@ <translation id="4421231901400348175"><ph name="HELPER_NAME" /> deilir stjórn yfir skjánum þínum í gegnum fjaraðstoð.</translation> <translation id="4430019312045809116">Hljóðstyrkur</translation> <translation id="4450893287417543264">Ekki sýna þetta aftur</translation> +<translation id="445864333228800152">Gott kvöld,</translation> <translation id="4458688154122353284">Stöðva skjáupptöku</translation> <translation id="4477350412780666475">Næsta lag</translation> <translation id="4477892968187500306">Þetta tæki kann að innihalda forrit sem hafa ekki verið staðfest af Google.</translation> @@ -430,6 +436,7 @@ <translation id="5887866489674258948">Dökk stilling</translation> <translation id="5895138241574237353">Endurræsa</translation> <translation id="5901316534475909376">Shift+Esc</translation> +<translation id="5909862606227538307">Óvirkur skjár.</translation> <translation id="5911909173233110115"><ph name="USERNAME" /> (<ph name="MAIL" />)</translation> <translation id="5916664084637901428">Kveikt</translation> <translation id="5920710855273935292">Slökkt er á hljóðnemanum.</translation> @@ -561,8 +568,10 @@ <translation id="7405710164030118432">Til að opna tækið skaltu slá inn aðgangskóða foreldris fyrir Family Link</translation> <translation id="741244894080940828">umreikningur</translation> <translation id="742594950370306541">Myndavélin er í notkun.</translation> +<translation id="742608627846767349">Góðan dag,</translation> <translation id="743058460480092004">Myndavél og hljóðnemi eru í notkun.</translation> <translation id="7466449121337984263">Snertu fingrafaralesarann</translation> +<translation id="7477793887173910789">Stjórnaðu tónlistinni, myndskeiðunum og fleiru</translation> <translation id="7497767806359279797">Velja tungumál og lyklaborð</translation> <translation id="7526573455193969409">Hugsanlega er fylgst með netinu</translation> <translation id="7536035074519304529">IP-tala: <ph name="ADDRESS" /></translation> @@ -647,11 +656,13 @@ <translation id="8351131234907093545">Búa til glósu</translation> <translation id="8371779926711439835">Áfram um staf</translation> <translation id="8375916635258623388">Þetta <ph name="DEVICE_NAME" /> og síminn þinn tengjast sjálfkrafa</translation> +<translation id="8380784334203145311">Gott kvöld,</translation> <translation id="8388750414311082622">Ekki er hægt að fjarlægja fyrra skjáborð.</translation> <translation id="8392451568018454956">Valmynd valkosta fyrir <ph name="USER_EMAIL_ADDRESS" /></translation> <translation id="8394567579869570560">Foreldri þitt læsti þessu tæki</translation> <translation id="8412677897383510995">Sýna skjástillingar</translation> <translation id="8425213833346101688">Breyta</translation> +<translation id="8426708595819210923">Gott kvöld <ph name="GIVEN_NAME" />,</translation> <translation id="8427213022735114808">Upplestur sendir rödd þína til Google til að gera raddinnslátt mögulegan í hvaða textareit sem er.</translation> <translation id="8428213095426709021">Stillingar</translation> <translation id="8433186206711564395">Netstillingar</translation>
diff --git a/ash/strings/ash_strings_it.xtb b/ash/strings/ash_strings_it.xtb index a3f3a2d..d7d50b8f 100644 --- a/ash/strings/ash_strings_it.xtb +++ b/ash/strings/ash_strings_it.xtb
@@ -11,6 +11,7 @@ <translation id="1056775291175587022">Nessuna rete</translation> <translation id="1059194134494239015"><ph name="DISPLAY_NAME" />: <ph name="RESOLUTION" /></translation> <translation id="108486256082349153">Cellulare: <ph name="ADDRESS" /></translation> +<translation id="1087110696012418426">Buon pomeriggio <ph name="GIVEN_NAME" />,</translation> <translation id="109942774857561566">Mi annoio</translation> <translation id="1104084341931202936">Mostra impostazioni di accessibilità</translation> <translation id="1104621072296271835">I tuoi dispositivi funzionano ancora meglio insieme</translation> @@ -71,6 +72,7 @@ <translation id="1677472565718498478"><ph name="TIME" /> rimanenti</translation> <translation id="1698080062160024910">Timer: <ph name="TOTAL_TIME" /> · <ph name="LABEL" /></translation> <translation id="1698760176351776263">Indirizzo IPv6: <ph name="ADDRESS" /></translation> +<translation id="1708345662127501511">Scrivania: <ph name="DESK_NAME" /></translation> <translation id="1709762881904163296">Impostazioni di rete</translation> <translation id="1743570585616704562">Non riconosciuta</translation> <translation id="1746730358044914197">I metodi di immissione vengono configurati dall'amministratore.</translation> @@ -107,6 +109,7 @@ <translation id="2018630726571919839">Raccontami una barzelletta</translation> <translation id="2050339315714019657">Verticale</translation> <translation id="2067602449040652523">Luminosità della tastiera</translation> +<translation id="2083190527011054446">Buona notte <ph name="GIVEN_NAME" />,</translation> <translation id="209965399369889474">Nessuna connessione alla rete</translation> <translation id="2126242104232412123">Nuova scrivania</translation> <translation id="2127372758936585790">Caricabatterie a basso consumo</translation> @@ -185,6 +188,7 @@ <translation id="3009178788565917040">Uscita</translation> <translation id="3033545621352269033">On</translation> <translation id="3038571455154067151">Per accedere, inserisci il codice accesso genitori di Family Link</translation> +<translation id="3045488863354895414">Buon pomeriggio,</translation> <translation id="3051128274746680507">Il profilo dell'utente supervisionato verrà rimosso a breve. Accedi per avere ulteriori informazioni.</translation> <translation id="3055162170959710888">Oggi hai utilizzato questo dispositivo per <ph name="USED_TIME" /></translation> <translation id="3076778413190775903">Barra di stato, ora <ph name="TIME" />, @@ -305,6 +309,7 @@ <translation id="4261870227682513959">Mostra impostazioni di notifica. Le notifiche sono disattivate</translation> <translation id="4269883910223712419">L'amministratore di questo dispositivo ha la possibilità di:</translation> <translation id="4279490309300973883">Mirroring</translation> +<translation id="4294319844246081198">Buongiorno <ph name="GIVEN_NAME" />,</translation> <translation id="4296136865091727875">Cancella tutte e <ph name="COUNT" /> le notifiche</translation> <translation id="4303223480529385476">Espandi area di stato</translation> <translation id="4321179778687042513">ctrl</translation> @@ -321,6 +326,7 @@ <translation id="4421231901400348175">Condividi il controllo dello schermo con <ph name="HELPER_NAME" /> tramite Assistenza remota.</translation> <translation id="4430019312045809116">Volume</translation> <translation id="4450893287417543264">Non mostrare più</translation> +<translation id="445864333228800152">Buona sera,</translation> <translation id="4458688154122353284">Interrompi registrazione dello schermo</translation> <translation id="4477350412780666475">Traccia successiva</translation> <translation id="4477892968187500306">Questo dispositivo potrebbe contenere app che non sono state verificate da Google.</translation> @@ -431,6 +437,7 @@ <translation id="5887866489674258948">Modalità Buio</translation> <translation id="5895138241574237353">Riavvia</translation> <translation id="5901316534475909376">MAIUSC+ESC</translation> +<translation id="5909862606227538307">Scrivania inattiva.</translation> <translation id="5911909173233110115"><ph name="USERNAME" /> (<ph name="MAIL" />)</translation> <translation id="5916664084637901428">On</translation> <translation id="5920710855273935292">L'audio del microfono è disattivato.</translation> @@ -562,8 +569,10 @@ <translation id="7405710164030118432">Per sbloccare il dispositivo, inserisci il codice di accesso genitore di Family Link</translation> <translation id="741244894080940828">conversione</translation> <translation id="742594950370306541">La videocamera è in uso.</translation> +<translation id="742608627846767349">Buongiorno,</translation> <translation id="743058460480092004">Videocamera e microfono sono in uso.</translation> <translation id="7466449121337984263">Tocca il sensore</translation> +<translation id="7477793887173910789">Gestisci la tua musica, i tuoi video e altro ancora</translation> <translation id="7497767806359279797">Scegli la lingua e la tastiera</translation> <translation id="7526573455193969409">La rete potrebbe essere monitorata</translation> <translation id="7536035074519304529">Indirizzo IP: <ph name="ADDRESS" /></translation> @@ -648,11 +657,13 @@ <translation id="8351131234907093545">Crea nota</translation> <translation id="8371779926711439835">Avanti per lettera</translation> <translation id="8375916635258623388">Questo dispositivo <ph name="DEVICE_NAME" /> e il telefono si connetteranno automaticamente</translation> +<translation id="8380784334203145311">Buonanotte,</translation> <translation id="8388750414311082622">Impossibile rimuovere l'ultima scrivania.</translation> <translation id="8392451568018454956">Menu Opzioni per <ph name="USER_EMAIL_ADDRESS" /></translation> <translation id="8394567579869570560">Uno dei tuoi genitori ha bloccato questo dispositivo</translation> <translation id="8412677897383510995">Mostra impostazioni di visualizzazione</translation> <translation id="8425213833346101688">Cambia</translation> +<translation id="8426708595819210923">Buona sera <ph name="GIVEN_NAME" />,</translation> <translation id="8427213022735114808">La dettatura invia i tuoi dati audio a Google per consentire la digitazione vocale in tutti i campi di testo.</translation> <translation id="8428213095426709021">Impostazioni</translation> <translation id="8433186206711564395">Impostazioni di rete</translation>
diff --git a/ash/strings/ash_strings_iw.xtb b/ash/strings/ash_strings_iw.xtb index 90bf6b7..fc7e6e4 100644 --- a/ash/strings/ash_strings_iw.xtb +++ b/ash/strings/ash_strings_iw.xtb
@@ -11,6 +11,7 @@ <translation id="1056775291175587022">אין רשתות</translation> <translation id="1059194134494239015"><ph name="DISPLAY_NAME" />: <ph name="RESOLUTION" /></translation> <translation id="108486256082349153">סלולרי: <ph name="ADDRESS" /></translation> +<translation id="1087110696012418426">אחה"צ טובים <ph name="GIVEN_NAME" />,</translation> <translation id="109942774857561566">משעמם לי</translation> <translation id="1104084341931202936">צפייה בהגדרות הנגישות</translation> <translation id="1104621072296271835">ביחד, המכשירים שלך יוכלו לעבוד עוד יותר טוב</translation> @@ -71,6 +72,7 @@ <translation id="1677472565718498478">זמן נותר - <ph name="TIME" /></translation> <translation id="1698080062160024910">טיימר של <ph name="TOTAL_TIME" /> · <ph name="LABEL" /></translation> <translation id="1698760176351776263">כתובת IPv6: <ph name="ADDRESS" /></translation> +<translation id="1708345662127501511">שולחן עבודה וירטואלי: <ph name="DESK_NAME" /></translation> <translation id="1709762881904163296">הגדרות רשת</translation> <translation id="1743570585616704562">לא מזוהה</translation> <translation id="1746730358044914197">מנהל המערכת שלך מגדיר את שיטות הקלט.</translation> @@ -107,6 +109,7 @@ <translation id="2018630726571919839">אני רוצה לשמוע בדיחה</translation> <translation id="2050339315714019657">לאורך</translation> <translation id="2067602449040652523">בהירות מקלדת</translation> +<translation id="2083190527011054446">לילה טוב <ph name="GIVEN_NAME" />,</translation> <translation id="209965399369889474">לא מחובר לרשת</translation> <translation id="2126242104232412123">שולחן עבודה חדש</translation> <translation id="2127372758936585790">מטען בעל מתח נמוך</translation> @@ -185,6 +188,7 @@ <translation id="3009178788565917040">פלט</translation> <translation id="3033545621352269033">מופעל</translation> <translation id="3038571455154067151">כדי להיכנס יש להזין את קוד הגישה להורים (הקוד מ-Family Link)</translation> +<translation id="3045488863354895414">אחה"צ טובים,</translation> <translation id="3051128274746680507">פרופיל המשתמש בפיקוח שלך יוסר בקרוב. יש להיכנס לחשבון כדי לקבל מידע נוסף.</translation> <translation id="3055162170959710888">השתמשת היום במכשיר הזה במשך <ph name="USED_TIME" /></translation> <translation id="3076778413190775903">מגש סטטוס, זמן <ph name="TIME" />, @@ -304,6 +308,7 @@ <translation id="4261870227682513959">צפייה בהגדרות של הודעות. ההודעות מושבתות</translation> <translation id="4269883910223712419">מנהל המכשיר הזה יכול:</translation> <translation id="4279490309300973883">שיקוף</translation> +<translation id="4294319844246081198">בוקר טוב <ph name="GIVEN_NAME" />,</translation> <translation id="4296136865091727875">ניקוי כל <ph name="COUNT" /> ההתראות</translation> <translation id="4303223480529385476">הרחבה של אזור הסטטוס</translation> <translation id="4321179778687042513">ctrl</translation> @@ -320,6 +325,7 @@ <translation id="4421231901400348175">שיתוף השליטה במסך עם <ph name="HELPER_NAME" /> דרך סיוע מרחוק.</translation> <translation id="4430019312045809116">עוצמת קול</translation> <translation id="4450893287417543264">אין להציג שוב</translation> +<translation id="445864333228800152">ערב טוב,</translation> <translation id="4458688154122353284">הפסקה של הקלטת המסך</translation> <translation id="4477350412780666475">הטראק הבא</translation> <translation id="4477892968187500306">המכשיר הזה עשוי להכיל אפליקציות שלא אומתו על-ידי Google.</translation> @@ -430,6 +436,7 @@ <translation id="5887866489674258948">מצב כהה</translation> <translation id="5895138241574237353">הפעל מחדש</translation> <translation id="5901316534475909376">Shift+Esc</translation> +<translation id="5909862606227538307">שולחן עבודה וירטואלי לא פעיל.</translation> <translation id="5911909173233110115"><ph name="USERNAME" /> (<ph name="MAIL" />)</translation> <translation id="5916664084637901428">פועל</translation> <translation id="5920710855273935292">המיקרופון מושתק.</translation> @@ -561,8 +568,10 @@ <translation id="7405710164030118432">כדי לבטל את נעילת המכשיר, יש להזין את קוד גישת ההורה של Family Link</translation> <translation id="741244894080940828">המרה</translation> <translation id="742594950370306541">המצלמה נמצאת בשימוש.</translation> +<translation id="742608627846767349">בוקר טוב,</translation> <translation id="743058460480092004">המצלמה והמיקרופון נמצאים בשימוש.</translation> <translation id="7466449121337984263">יש לגעת בחיישן</translation> +<translation id="7477793887173910789">שליטה במוזיקה, בסרטונים ועוד</translation> <translation id="7497767806359279797">בחירת שפה ומקלדת</translation> <translation id="7526573455193969409">ייתכן שהרשת מנוטרת</translation> <translation id="7536035074519304529">כתובת IP: <ph name="ADDRESS" /></translation> @@ -649,11 +658,13 @@ <translation id="8351131234907093545">יצירת הערה</translation> <translation id="8371779926711439835">אות אחת קדימה</translation> <translation id="8375916635258623388">מכשיר <ph name="DEVICE_NAME" /> זה והטלפון יחוברו באופן אוטומטי</translation> +<translation id="8380784334203145311">לילה טוב,</translation> <translation id="8388750414311082622">לא ניתן להסיר את שולחן העבודה האחרון.</translation> <translation id="8392451568018454956">תפריט אפשרויות עבור <ph name="USER_EMAIL_ADDRESS" /></translation> <translation id="8394567579869570560">הורה נעל את המכשיר הזה</translation> <translation id="8412677897383510995">הצגת הגדרות התצוגה</translation> <translation id="8425213833346101688">שנה</translation> +<translation id="8426708595819210923">ערב טוב <ph name="GIVEN_NAME" />,</translation> <translation id="8427213022735114808">הכתבה שולחת הקלטה של הקול שלך אל Google כדי לאפשר הקלדה קולית בתיבת טקסט כלשהי.</translation> <translation id="8428213095426709021">הגדרות</translation> <translation id="8433186206711564395">הגדרות רשת</translation>
diff --git a/ash/strings/ash_strings_ja.xtb b/ash/strings/ash_strings_ja.xtb index 0dcc2f2..c6c32d4 100644 --- a/ash/strings/ash_strings_ja.xtb +++ b/ash/strings/ash_strings_ja.xtb
@@ -11,6 +11,7 @@ <translation id="1056775291175587022">なし</translation> <translation id="1059194134494239015"><ph name="DISPLAY_NAME" />: <ph name="RESOLUTION" /></translation> <translation id="108486256082349153">携帯電話: <ph name="ADDRESS" /></translation> +<translation id="1087110696012418426">こんにちは、<ph name="GIVEN_NAME" /> さん</translation> <translation id="109942774857561566">退屈だな</translation> <translation id="1104084341931202936">ユーザー補助機能の設定を表示</translation> <translation id="1104621072296271835">デバイスを連携させると活用の幅が広がります</translation> @@ -71,6 +72,7 @@ <translation id="1677472565718498478">残り <ph name="TIME" /></translation> <translation id="1698080062160024910"><ph name="TOTAL_TIME" /> タイマー · <ph name="LABEL" /></translation> <translation id="1698760176351776263">IPv6 アドレス: <ph name="ADDRESS" /></translation> +<translation id="1708345662127501511">デスク: <ph name="DESK_NAME" /></translation> <translation id="1709762881904163296">ネットワーク設定</translation> <translation id="1743570585616704562">認識されませんでした</translation> <translation id="1746730358044914197">入力方法は管理者によって設定されています。</translation> @@ -107,6 +109,7 @@ <translation id="2018630726571919839">面白いこと言って</translation> <translation id="2050339315714019657">縦</translation> <translation id="2067602449040652523">キーボードの明るさ</translation> +<translation id="2083190527011054446">おやすみなさい、<ph name="GIVEN_NAME" /> さん</translation> <translation id="209965399369889474">ネットワークに接続されていません</translation> <translation id="2126242104232412123">新しいデスク</translation> <translation id="2127372758936585790">低電力の充電器</translation> @@ -185,6 +188,7 @@ <translation id="3009178788565917040">出力</translation> <translation id="3033545621352269033">オン</translation> <translation id="3038571455154067151">ログインするには、ファミリー リンクの保護者のアクセスコードを入力してください</translation> +<translation id="3045488863354895414">こんにちは</translation> <translation id="3051128274746680507">管理対象のユーザー プロフィールはまもなく削除されます。ログインして詳細をご確認ください。</translation> <translation id="3055162170959710888">あなたは今日、このデバイスを <ph name="USED_TIME" />使用しました</translation> <translation id="3076778413190775903">ステータス トレイ、時間 <ph name="TIME" />、 @@ -304,6 +308,7 @@ <translation id="4261870227682513959">通知設定を表示します。通知はオフです</translation> <translation id="4269883910223712419">このデバイスの管理者は以下を行うことができます。</translation> <translation id="4279490309300973883">ミラーリング</translation> +<translation id="4294319844246081198">おはようございます、<ph name="GIVEN_NAME" /> さん</translation> <translation id="4296136865091727875"><ph name="COUNT" /> 件の通知をすべて消去</translation> <translation id="4303223480529385476">ステータス領域を拡大</translation> <translation id="4321179778687042513">ctrl</translation> @@ -320,6 +325,7 @@ <translation id="4421231901400348175">リモート サポート経由で <ph name="HELPER_NAME" /> と画面の制御を共有しています。</translation> <translation id="4430019312045809116">音量</translation> <translation id="4450893287417543264">次回から表示しない</translation> +<translation id="445864333228800152">こんばんは</translation> <translation id="4458688154122353284">画面の録画を停止</translation> <translation id="4477350412780666475">次の曲</translation> <translation id="4477892968187500306">このデバイスには Google が確認していないアプリがインストールされている可能性があります。</translation> @@ -430,6 +436,7 @@ <translation id="5887866489674258948">ダークモード</translation> <translation id="5895138241574237353">再起動</translation> <translation id="5901316534475909376">Shift+Esc</translation> +<translation id="5909862606227538307">アクティブでないデスクです。</translation> <translation id="5911909173233110115"><ph name="USERNAME" />(<ph name="MAIL" />)</translation> <translation id="5916664084637901428">オン</translation> <translation id="5920710855273935292">マイクはミュートです。</translation> @@ -562,8 +569,10 @@ <translation id="7405710164030118432">このデバイスのロックを解除するには、ファミリー リンクの保護者のアクセスコードを入力してください</translation> <translation id="741244894080940828">単位変換</translation> <translation id="742594950370306541">カメラが使用中です。</translation> +<translation id="742608627846767349">おはようございます</translation> <translation id="743058460480092004">カメラとマイクが使用中です。</translation> <translation id="7466449121337984263">センサーをタッチしてください</translation> +<translation id="7477793887173910789">音楽、動画、その他のメディアを操作します</translation> <translation id="7497767806359279797">言語とキーボードを選択</translation> <translation id="7526573455193969409">ネットワークが監視されている可能性があります</translation> <translation id="7536035074519304529">IP アドレス: <ph name="ADDRESS" /></translation> @@ -648,11 +657,13 @@ <translation id="8351131234907093545">メモを作成</translation> <translation id="8371779926711439835">1 字進む</translation> <translation id="8375916635258623388">この <ph name="DEVICE_NAME" /> とお使いのスマートフォンは自動的に接続されます</translation> +<translation id="8380784334203145311">おやすみなさい</translation> <translation id="8388750414311082622">最後のデスクは削除できません。</translation> <translation id="8392451568018454956"><ph name="USER_EMAIL_ADDRESS" /> のオプション メニュー</translation> <translation id="8394567579869570560">保護者の方がこのデバイスをロックしました</translation> <translation id="8412677897383510995">ディスプレイの設定を表示</translation> <translation id="8425213833346101688">変更</translation> +<translation id="8426708595819210923">こんばんは、<ph name="GIVEN_NAME" /> さん</translation> <translation id="8427213022735114808">音声入力では、テキスト欄で音声入力できるように Google に音声を送信します。</translation> <translation id="8428213095426709021">設定</translation> <translation id="8433186206711564395">ネットワーク設定</translation>
diff --git a/ash/strings/ash_strings_ka.xtb b/ash/strings/ash_strings_ka.xtb index 2c96e07..044d99b4 100644 --- a/ash/strings/ash_strings_ka.xtb +++ b/ash/strings/ash_strings_ka.xtb
@@ -11,6 +11,7 @@ <translation id="1056775291175587022">ქსელები არ არის</translation> <translation id="1059194134494239015"><ph name="DISPLAY_NAME" />: <ph name="RESOLUTION" /></translation> <translation id="108486256082349153">ფიჭური: <ph name="ADDRESS" /></translation> +<translation id="1087110696012418426">შუადღე მშვიდობის, <ph name="GIVEN_NAME" />!</translation> <translation id="109942774857561566">მოვიწყინე</translation> <translation id="1104084341931202936">მარტივი წვდომის პარამეტრების ჩვენება</translation> <translation id="1104621072296271835">თქვენი მოწყობილობები ერთად უკეთესად იმუშავებს</translation> @@ -71,6 +72,7 @@ <translation id="1677472565718498478">დარჩენილია <ph name="TIME" /></translation> <translation id="1698080062160024910"><ph name="TOTAL_TIME" />-იანი ტაიმერი · <ph name="LABEL" /></translation> <translation id="1698760176351776263">IPv6 მისამართი: <ph name="ADDRESS" /></translation> +<translation id="1708345662127501511">სამუშაო მაგიდა: <ph name="DESK_NAME" /></translation> <translation id="1709762881904163296">ქსელის პარამეტრები</translation> <translation id="1743570585616704562">არ არის ამოცნობილი</translation> <translation id="1746730358044914197">შეყვანის მეთოდები კონფიგურირებულია თქვენი ადმინისტრატორის მიერ.</translation> @@ -107,6 +109,7 @@ <translation id="2018630726571919839">მომიყევი ანეკდოტი</translation> <translation id="2050339315714019657">პორტრეტი</translation> <translation id="2067602449040652523">კლავიატურის სიკაშკაშე</translation> +<translation id="2083190527011054446">ღამე მშვიდობის, <ph name="GIVEN_NAME" />!</translation> <translation id="209965399369889474">ქსელთან კავშირი არ არის</translation> <translation id="2126242104232412123">ახალი სამუშაო მაგიდა</translation> <translation id="2127372758936585790">დამტენის დაბალი მუხტი</translation> @@ -185,6 +188,7 @@ <translation id="3009178788565917040">გამოტანა</translation> <translation id="3033545621352269033">ჩართვა</translation> <translation id="3038571455154067151">სისტემაში შესასვლელად შეიყვანეთ Family Link-ის წვდომის კოდი მშობლებისთვის</translation> +<translation id="3045488863354895414">შუადღე მშვიდობის,</translation> <translation id="3051128274746680507">თქვენი კონტროლის ქვეშ მყოფი მომხმარებლის პროფილი მალე ამოიშლება. დამატებითი ინფორმაციისთვის შედით სისტემაში.</translation> <translation id="3055162170959710888">ამ მოწყობილობას დღეს <ph name="USED_TIME" /> იყენებდით</translation> <translation id="3076778413190775903">სტატუსის პანელი, დრო: <ph name="TIME" />, @@ -304,6 +308,7 @@ <translation id="4261870227682513959">შეტყობინების პარამეტრების ჩვენება. შეტყობინებები გამორთულია</translation> <translation id="4269883910223712419">ამ მოწყობილობის ადმინისტრატორს შეუძლია:</translation> <translation id="4279490309300973883">არეკვლა</translation> +<translation id="4294319844246081198">დილა მშვიდობის, <ph name="GIVEN_NAME" />!</translation> <translation id="4296136865091727875"><ph name="COUNT" />-ვე შეტყობინების გასუფთავება</translation> <translation id="4303223480529385476">სტატუსის არის გაშლა</translation> <translation id="4321179778687042513">ctrl</translation> @@ -320,6 +325,7 @@ <translation id="4421231901400348175">თქვენი ეკრანის მართვის გაზიარება <ph name="HELPER_NAME" /> დისტანციური დამხმარეს მეშვეობით.</translation> <translation id="4430019312045809116">ხმა</translation> <translation id="4450893287417543264">აღარ გამოჩნდეს</translation> +<translation id="445864333228800152">საღამო მშვიდობის,</translation> <translation id="4458688154122353284">ეკრანის ჩაწერის შეწყვეტა</translation> <translation id="4477350412780666475">შემდეგი ჩანაწერი</translation> <translation id="4477892968187500306">ამ მოწყობილობაზე შეიძლება იყოს Google-ის მიერ შეუმოწმებელი აპები.</translation> @@ -430,6 +436,7 @@ <translation id="5887866489674258948">მუქი რეჟიმი</translation> <translation id="5895138241574237353">გადატვირთვა</translation> <translation id="5901316534475909376">Shift+Esc</translation> +<translation id="5909862606227538307">არააქტიური სამუშაო მაგიდა.</translation> <translation id="5911909173233110115"><ph name="USERNAME" /> (<ph name="MAIL" />)</translation> <translation id="5916664084637901428">ჩართვა</translation> <translation id="5920710855273935292">მიკროფონი დადუმებულია.</translation> @@ -561,8 +568,10 @@ <translation id="7405710164030118432">მოწყობილობის განსაბლოკად შეიყვანეთ Family Link-ის წვდომის კოდი მშობლებისთვის</translation> <translation id="741244894080940828">გარდაქმნა</translation> <translation id="742594950370306541">კამერა გამოიყენება.</translation> +<translation id="742608627846767349">დილა მშვიდობის,</translation> <translation id="743058460480092004">კამერა და მიკროფონი გამოიყენება.</translation> <translation id="7466449121337984263">შეეხეთ სენსორს</translation> +<translation id="7477793887173910789">მართეთ თქვენი მუსიკა, ვიდეოები და სხვა</translation> <translation id="7497767806359279797">აირჩიეთ ენა და კლავიატურა</translation> <translation id="7526573455193969409">ქსელზე შესაძლოა ხორციელდებოდეს მონიტორინგი</translation> <translation id="7536035074519304529">IP მისამართი: <ph name="ADDRESS" /></translation> @@ -647,11 +656,13 @@ <translation id="8351131234907093545">ჩანიშვნის შექმნა</translation> <translation id="8371779926711439835">ერთი ასოთი წინ</translation> <translation id="8375916635258623388">ეს <ph name="DEVICE_NAME" /> და თქვენი ტელეფონი ავტომატურად დაკავშირდება</translation> +<translation id="8380784334203145311">ღამე მშვიდობის,</translation> <translation id="8388750414311082622">ბოლო სამუშაო მაგიდის ამოშლა ვერ მოხერხდა.</translation> <translation id="8392451568018454956">პარამეტრების მენიუ მომხმარებლისთვის: <ph name="USER_EMAIL_ADDRESS" /></translation> <translation id="8394567579869570560">თქვენმა მშობელმა ჩაკეტა ეს მოწყობილობა</translation> <translation id="8412677897383510995">ჩვენების პარამეტრების ჩვენება</translation> <translation id="8425213833346101688">შეცვლა</translation> +<translation id="8426708595819210923">საღამო მშვიდობის, <ph name="GIVEN_NAME" />!</translation> <translation id="8427213022735114808">ნებისმიერი ტექსტური ველის ხმით შესავსებად თქვენი ხმა კარნახის ფუნქციის მიერ გაიგზავნება Google-ში.</translation> <translation id="8428213095426709021">პარამეტრები</translation> <translation id="8433186206711564395">ქსელის პარამეტრები</translation>
diff --git a/ash/strings/ash_strings_kk.xtb b/ash/strings/ash_strings_kk.xtb index 0e531a8..e1abf87 100644 --- a/ash/strings/ash_strings_kk.xtb +++ b/ash/strings/ash_strings_kk.xtb
@@ -11,6 +11,7 @@ <translation id="1056775291175587022">Желі табылмады</translation> <translation id="1059194134494239015"><ph name="DISPLAY_NAME" />: <ph name="RESOLUTION" /></translation> <translation id="108486256082349153">Ұялы құрылғының MAC мекенжайы: <ph name="ADDRESS" /></translation> +<translation id="1087110696012418426">Қайырлы күн, <ph name="GIVEN_NAME" />!</translation> <translation id="109942774857561566">Ішім пысты</translation> <translation id="1104084341931202936">Арнайы мүмкіндіктер параметрлерін көрсету</translation> <translation id="1104621072296271835">Құрылғылар бірігіп жақсы жұмыс істейді</translation> @@ -71,6 +72,7 @@ <translation id="1677472565718498478"><ph name="TIME" /> қалды</translation> <translation id="1698080062160024910"><ph name="TOTAL_TIME" /> таймер · <ph name="LABEL" /></translation> <translation id="1698760176351776263">IPv6 мекенжайы: <ph name="ADDRESS" /></translation> +<translation id="1708345662127501511">Жұмыс үстелі: <ph name="DESK_NAME" /></translation> <translation id="1709762881904163296">Желі параметрлері</translation> <translation id="1743570585616704562">Анықталмады</translation> <translation id="1746730358044914197">Енгізу әдістерін әкімші конфигурациялайды.</translation> @@ -107,6 +109,7 @@ <translation id="2018630726571919839">Әзіл айтып бер</translation> <translation id="2050339315714019657">Портреттік</translation> <translation id="2067602449040652523">Пернетақта ашықтығы</translation> +<translation id="2083190527011054446">Қайырлы түн, <ph name="GIVEN_NAME" />!</translation> <translation id="209965399369889474">Желіге жалғанбаған.</translation> <translation id="2126242104232412123">Жаңа жұмыс үстелі</translation> <translation id="2127372758936585790">Төмен қуатты зарядтағыш</translation> @@ -185,6 +188,7 @@ <translation id="3009178788565917040">Шығыс</translation> <translation id="3033545621352269033">Қосулы</translation> <translation id="3038571455154067151">Есептік жазбаға кіру үшін Family Link ата-ананың рұқсат кодын енгізіңіз.</translation> +<translation id="3045488863354895414">Қайырлы күн!</translation> <translation id="3051128274746680507">Бақыланатын пайдаланушы профиліңіз жақында өшіріледі. Толығырақ ақпарат алу үшін есептік жазбаға кіріңіз.</translation> <translation id="3055162170959710888">Бүгін бұл құрылғыны <ph name="USED_TIME" /> рет пайдаландыңыз</translation> <translation id="3076778413190775903">Күй жолағы, уақыты: <ph name="TIME" />, @@ -304,6 +308,7 @@ <translation id="4261870227682513959">Хабарландыру параметрлерін көрсету. Хабарландырулар өшірулі</translation> <translation id="4269883910223712419">Құрылғының әкімшісі мына әрекеттерді орындай алады:</translation> <translation id="4279490309300973883">Экран көшірмесін көрсету</translation> +<translation id="4294319844246081198">Қайырлы таң, <ph name="GIVEN_NAME" />!</translation> <translation id="4296136865091727875">Барлық <ph name="COUNT" /> хабарландыруды өшіру</translation> <translation id="4303223480529385476">Күй аумағын жаю</translation> <translation id="4321179778687042513">ctrl</translation> @@ -320,6 +325,7 @@ <translation id="4421231901400348175">Remote Assistance арқылы <ph name="HELPER_NAME" /> пайдаланушысымен экранды бөлісіп басқару.</translation> <translation id="4430019312045809116">Дыбыс деңгейі</translation> <translation id="4450893287417543264">Қайта көрсетілмесін</translation> +<translation id="445864333228800152">Қайырлы кеш!</translation> <translation id="4458688154122353284">Экран жазуды тоқтату</translation> <translation id="4477350412780666475">Келесі аудиотрек</translation> <translation id="4477892968187500306">Құрылғыда Google растамаған қолданбалар болуы мүмкін.</translation> @@ -430,6 +436,7 @@ <translation id="5887866489674258948">Қараңғы режим</translation> <translation id="5895138241574237353">Қайта іске қосу</translation> <translation id="5901316534475909376">Shift+Esc</translation> +<translation id="5909862606227538307">Жұмыс үстелі белсенді емес.</translation> <translation id="5911909173233110115"><ph name="USERNAME" /> (<ph name="MAIL" />)</translation> <translation id="5916664084637901428">Қосулы</translation> <translation id="5920710855273935292">Микрофон дыбысы өшірулі.</translation> @@ -561,8 +568,10 @@ <translation id="7405710164030118432">Құрылғының құлпын ашу үшін Family Link ата-анаға арналған кіру кодын енгізіңіз.</translation> <translation id="741244894080940828">түрлендіру</translation> <translation id="742594950370306541">Камера пайдаланылуда.</translation> +<translation id="742608627846767349">Қайырлы таң!</translation> <translation id="743058460480092004">Камера және микрофон пайдаланылуда.</translation> <translation id="7466449121337984263">Саусақ ізін оқу сканерін түртіңіз.</translation> +<translation id="7477793887173910789">Музыканы, бейнелерді және т.б. басқарыңыз.</translation> <translation id="7497767806359279797">Тілді және пернетақтаны таңдау</translation> <translation id="7526573455193969409">Желі бақылануы мүмкін</translation> <translation id="7536035074519304529">IP мекенжайы: <ph name="ADDRESS" /></translation> @@ -647,11 +656,13 @@ <translation id="8351131234907093545">Ескертпе жасау</translation> <translation id="8371779926711439835">Бір әріпке алға жылжу</translation> <translation id="8375916635258623388"><ph name="DEVICE_NAME" /> және телефоныңыз автоматты түрде жалғанады</translation> +<translation id="8380784334203145311">Қайырлы түн!</translation> <translation id="8388750414311082622">Соңғы жұмыс үстелін өшіру мүмкін емес.</translation> <translation id="8392451568018454956"><ph name="USER_EMAIL_ADDRESS" /> үшін опциялар мәзірі</translation> <translation id="8394567579869570560">Ата-анаңыз бұл құрылғыны құлыптады</translation> <translation id="8412677897383510995">Дисплей параметрлерін көрсету</translation> <translation id="8425213833346101688">Өзгерту</translation> +<translation id="8426708595819210923">Қайырлы кеш, <ph name="GIVEN_NAME" />!</translation> <translation id="8427213022735114808">Дауыспен теруге рұқсат ету үшін мәтінді дауыспен енгізу функциясы даусыңызды Google жүйесіне жібереді.</translation> <translation id="8428213095426709021">Параметрлер</translation> <translation id="8433186206711564395">Желі параметрлері</translation>
diff --git a/ash/strings/ash_strings_km.xtb b/ash/strings/ash_strings_km.xtb index 8fb25a1b..f4bfe990 100644 --- a/ash/strings/ash_strings_km.xtb +++ b/ash/strings/ash_strings_km.xtb
@@ -11,6 +11,7 @@ <translation id="1056775291175587022">មិនមានបណ្ដាញទេ</translation> <translation id="1059194134494239015"><ph name="DISPLAY_NAME" />៖ <ph name="RESOLUTION" /></translation> <translation id="108486256082349153">បណ្ដាញទូរសព្ទចល័ត៖ <ph name="ADDRESS" /></translation> +<translation id="1087110696012418426">ទិវាសួស្ដី <ph name="GIVEN_NAME" /></translation> <translation id="109942774857561566">ខ្ញុំធុញ</translation> <translation id="1104084341931202936">បង្ហាញការកំណត់ភាពងាយស្រួល</translation> <translation id="1104621072296271835">ឧបករណ៍របស់អ្នកដំណើរការកាន់តែល្អពេលប្រើរួមគ្នា</translation> @@ -71,6 +72,7 @@ <translation id="1677472565718498478">នៅសល់ <ph name="TIME" /></translation> <translation id="1698080062160024910">កម្មវិធីកំណត់ម៉ោង <ph name="TOTAL_TIME" /> · <ph name="LABEL" /></translation> <translation id="1698760176351776263">អាសយដ្ឋាន IPv6 ៖ <ph name="ADDRESS" /></translation> +<translation id="1708345662127501511">តុ៖ <ph name="DESK_NAME" /></translation> <translation id="1709762881904163296">ការកំណត់បណ្ដាញ</translation> <translation id="1743570585616704562">មិនស្គាល់ទេ</translation> <translation id="1746730358044914197">វិធីសាស្ត្របញ្ចូលត្រូវបានកំណត់រចនាសម្ព័ន្ធដោយអ្នកគ្រប់គ្រងរបស់អ្នក។</translation> @@ -107,6 +109,7 @@ <translation id="2018630726571919839">និយាយរឿងកំប្លែងឱ្យខ្ញុំស្ដាប់</translation> <translation id="2050339315714019657">បញ្ឈរ</translation> <translation id="2067602449040652523">ពន្លឺកា្តរចុច</translation> +<translation id="2083190527011054446">រាត្រីសួស្ដី <ph name="GIVEN_NAME" /></translation> <translation id="209965399369889474">មិនបានភ្ជាប់ទៅបណ្ដាញទេ</translation> <translation id="2126242104232412123">តុធ្វើការថ្មី</translation> <translation id="2127372758936585790">ឆ្នាំងសាកផ្តល់ថាមពលទាប</translation> @@ -185,6 +188,7 @@ <translation id="3009178788565917040">ទិន្នផល</translation> <translation id="3033545621352269033">បើក</translation> <translation id="3038571455154067151">ដើម្បីចូលគណនី សូមបញ្ចូលលេខកូដចូលប្រើប្រាស់របស់មាតាបិតារបស់ Family Link អ្នក</translation> +<translation id="3045488863354895414">ទិវាសួស្ដី</translation> <translation id="3051128274746680507">កម្រងព័ត៌មានអ្នកប្រើប្រាស់ដែលស្ថិតក្រោមការមើលការខុសត្រូវរបស់អ្នកនឹងត្រូវបានលុបចេញនាពេលឆាប់ៗនេះ។ ចូលគណនីដើម្បីស្វែងយល់បន្ថែម។</translation> <translation id="3055162170959710888">អ្នកបានប្រើឧបករណ៍នេះរយៈពេល <ph name="USED_TIME" /> នៅថ្ងៃនេះ</translation> <translation id="3076778413190775903">របារស្ថានភាព ម៉ោង <ph name="TIME" />, @@ -304,6 +308,7 @@ <translation id="4261870227682513959">បង្ហាញការកំណត់ការជូនដំណឹង។ ការជូនដំណឹងត្រូវបានបិទ</translation> <translation id="4269883910223712419">អ្នកគ្រប់គ្រងឧបករណ៍នេះមានលទ្ធភាព៖</translation> <translation id="4279490309300973883">កំពុងឆ្លុះ</translation> +<translation id="4294319844246081198">អរុណសួស្ដី <ph name="GIVEN_NAME" /></translation> <translation id="4296136865091727875">សម្អាតការជូនដំណឹងទាំង <ph name="COUNT" /></translation> <translation id="4303223480529385476">ពង្រីកតំបន់ស្ថានភាព</translation> <translation id="4321179778687042513">ctrl</translation> @@ -320,6 +325,7 @@ <translation id="4421231901400348175">ចែករំលែកការបញ្ជាអេក្រង់របស់អ្នកជាមួយ <ph name="HELPER_NAME" /> តាមរយៈជំនួយការពីចម្ងាយ។</translation> <translation id="4430019312045809116">សម្លេង</translation> <translation id="4450893287417543264">កុំបង្ហាញម្ដងទៀត</translation> +<translation id="445864333228800152">សាយណ្ហសួស្ដី</translation> <translation id="4458688154122353284">បញ្ឈប់ការថតអេក្រង់</translation> <translation id="4477350412780666475">សំនៀងបន្ទាប់</translation> <translation id="4477892968187500306">ឧបករណ៍នេះអាចមានកម្មវិធីដែលមិនត្រូវបានផ្ទៀងផ្ទាត់ដោយ Google។</translation> @@ -430,6 +436,7 @@ <translation id="5887866489674258948">មុខងារងងឹត</translation> <translation id="5895138241574237353">ចាប់ផ្តើមឡើងវិញ</translation> <translation id="5901316534475909376">Shift+Esc</translation> +<translation id="5909862606227538307">តុអសកម្ម។</translation> <translation id="5911909173233110115"><ph name="USERNAME" /> (<ph name="MAIL" />)</translation> <translation id="5916664084637901428">បើក</translation> <translation id="5920710855273935292">បានបិទសំឡេងមីក្រូហ្វូន។</translation> @@ -561,8 +568,10 @@ <translation id="7405710164030118432">ដើម្បីដោះសោឧបករណ៍ សូមបញ្ចូលលេខកូដចូលប្រើប្រាស់របស់មាតាបិតាសម្រាប់ Family Link របស់អ្នក</translation> <translation id="741244894080940828">ការបំប្លែង</translation> <translation id="742594950370306541">កាមេរ៉ាស្ថិតនៅក្នុងការប្រើ។</translation> +<translation id="742608627846767349">អរុណសួស្ដី</translation> <translation id="743058460480092004">កាមេរ៉ា និងម៉ៃក្រូហ្វូនស្ថិតក្នុងការប្រើ។</translation> <translation id="7466449121337984263">សូមប៉ះឧបករណ៍ចាប់សញ្ញា</translation> +<translation id="7477793887173910789">គ្រប់គ្រងតន្ត្រី វីដេអូរបស់អ្នក និងអ្វីៗជាច្រើនទៀត</translation> <translation id="7497767806359279797">ជ្រើសរើសភាសា និងក្ដារចុច</translation> <translation id="7526573455193969409">បណ្ដាញអាចត្រូវបានត្រួតពិនិត្យ</translation> <translation id="7536035074519304529">អាសយដ្ឋាន IP ៖ <ph name="ADDRESS" /></translation> @@ -647,11 +656,13 @@ <translation id="8351131234907093545">បង្កើតកំណត់ចំណាំ</translation> <translation id="8371779926711439835">ទៅមុខមួយតួអក្សរ</translation> <translation id="8375916635258623388"><ph name="DEVICE_NAME" /> នេះ និងទូរសព្ទរបស់អ្នកនឹងភ្ជាប់ដោយស្វ័យប្រវត្តិ</translation> +<translation id="8380784334203145311">រាត្រីសួស្ដី</translation> <translation id="8388750414311082622">មិនអាចលុបតុចុងក្រោយបានទេ។</translation> <translation id="8392451568018454956">ម៉ឺនុយជម្រើសសម្រាប់ <ph name="USER_EMAIL_ADDRESS" /></translation> <translation id="8394567579869570560">មាតាបិតារបស់អ្នកបានចាក់សោឧបករណ៍នេះ</translation> <translation id="8412677897383510995">បង្ហាញការកំណត់ផ្ទាំងអេក្រង់</translation> <translation id="8425213833346101688">ប្តូរ</translation> +<translation id="8426708595819210923">សាយណ្ហសួស្ដី <ph name="GIVEN_NAME" /></translation> <translation id="8427213022735114808">ការសរសេរតាមអានបញ្ជូនសំឡេងរបស់អ្នកទៅ Google ដើម្បីអនុញ្ញាតឱ្យប្រើការវាយបញ្ចូលដោយសំឡេងទៅក្នុងកន្លែងបញ្ចូលអក្សរ។</translation> <translation id="8428213095426709021">ការកំណត់</translation> <translation id="8433186206711564395">ការកំណត់បណ្ដាញ</translation>
diff --git a/ash/strings/ash_strings_kn.xtb b/ash/strings/ash_strings_kn.xtb index f5402e9..715c5b9 100644 --- a/ash/strings/ash_strings_kn.xtb +++ b/ash/strings/ash_strings_kn.xtb
@@ -11,6 +11,7 @@ <translation id="1056775291175587022">ನೆಟ್ವರ್ಕ್ ಇಲ್ಲ</translation> <translation id="1059194134494239015"><ph name="DISPLAY_NAME" />: <ph name="RESOLUTION" /></translation> <translation id="108486256082349153">ಸೆಲ್ಯುಲಾರ್: <ph name="ADDRESS" /></translation> +<translation id="1087110696012418426">ಶುಭ ಮಧ್ಯಾಹ್ನ <ph name="GIVEN_NAME" /> ಅವರೇ,</translation> <translation id="109942774857561566">ನನಗೆ ಬೇಜಾರಾಗಿದೆ</translation> <translation id="1104084341931202936">ಪ್ರವೇಶಿಸುವಿಕೆ ಸೆಟ್ಟಿಂಗ್ಗಳನ್ನು ತೋರಿಸಿ</translation> <translation id="1104621072296271835">ನಿಮ್ಮ ಸಾಧನಗಳು ಜೊತೆಯಲ್ಲಿ ಇನ್ನೂ ಚೆನ್ನಾಗಿ ಕೆಲಸ ಮಾಡುತ್ತವೆ</translation> @@ -71,6 +72,7 @@ <translation id="1677472565718498478"><ph name="TIME" /> ಬಾಕಿ ಉಳಿದಿದೆ</translation> <translation id="1698080062160024910"><ph name="TOTAL_TIME" /> ಟೈಮರ್ · <ph name="LABEL" /></translation> <translation id="1698760176351776263">IPv6 ವಿಳಾಸ: <ph name="ADDRESS" /></translation> +<translation id="1708345662127501511">ಡೆಸ್ಕ್: <ph name="DESK_NAME" /></translation> <translation id="1709762881904163296">ನೆಟ್ವರ್ಕ್ ಸೆಟ್ಟಿಂಗ್ಗಳು</translation> <translation id="1743570585616704562">ಗುರುತಿಸಲಾಗಿಲ್ಲ</translation> <translation id="1746730358044914197">ನಿಮ್ಮ ಇನ್ಪುಟ್ ವಿಧಾನಗಳನ್ನು ನಿರ್ವಾಹಕರ ಸಹಾಯದಿಂದ ಕಾನ್ಫಿಗರ್ ಮಾಡಲಾಗಿದೆ.</translation> @@ -107,6 +109,7 @@ <translation id="2018630726571919839">ನನಗೊಂದು ಜೋಕ್ ಹೇಳಿ</translation> <translation id="2050339315714019657">ಪೋರ್ಟ್ರೇಟ್</translation> <translation id="2067602449040652523">ಕೀಬೋರ್ಡ್ ಪ್ರಖರತೆ</translation> +<translation id="2083190527011054446">ಶುಭ ರಾತ್ರಿ <ph name="GIVEN_NAME" /> ಅವರೇ,</translation> <translation id="209965399369889474">ನೆಟ್ವರ್ಕ್ಗೆ ಸಂಪರ್ಕಗೊಂಡಿಲ್ಲ</translation> <translation id="2126242104232412123">ಹೊಸ ಡೆಸ್ಕ್</translation> <translation id="2127372758936585790">ಕಡಿಮೆ ವಿದ್ಯುತ್ ಚಾರ್ಜರ್</translation> @@ -185,6 +188,7 @@ <translation id="3009178788565917040">ಔಟ್ಪುಟ್</translation> <translation id="3033545621352269033">ಆನ್</translation> <translation id="3038571455154067151">ಸೈನ್ ಇನ್ ಮಾಡಲು, ನಿಮ್ಮ Family Link ಪೋಷಕರ ಪ್ರವೇಶ ಕೋಡ್ ಅನ್ನು ನಮೂದಿಸಿ</translation> +<translation id="3045488863354895414">ಶುಭ ಮಧ್ಯಾಹ್ನ,</translation> <translation id="3051128274746680507">ನಿಮ್ಮ ಮೇಲ್ವಿಚಾರಣೆಯ ಬಳಕೆದಾರರ ಪ್ರೊಫೈಲ್ ಅನ್ನು ಶೀಘ್ರವೇ ತೆಗೆದುಹಾಕಲಾಗುತ್ತದೆ. ಇನ್ನಷ್ಟು ತಿಳಿದುಕೊಳ್ಳಲು ಸೈನ್ ಇನ್ ಮಾಡಿ.</translation> <translation id="3055162170959710888">ನೀವು ಇಂದು <ph name="USED_TIME" /> ರಷ್ಟು ಸಮಯ ಈ ಸಾಧನವನ್ನು ಬಳಸಿದ್ದೀರಿ</translation> <translation id="3076778413190775903">ಸ್ಥಿತಿ ಟ್ರೇ, ಸಮಯ <ph name="TIME" />, @@ -304,6 +308,7 @@ <translation id="4261870227682513959">ಅಧಿಸೂಚನೆ ಸೆಟ್ಟಿಂಗ್ಗಳನ್ನು ತೋರಿಸಿ. ಅಧಿಸೂಚನೆಗಳು ಆಫ್ ಆಗಿವೆ</translation> <translation id="4269883910223712419">ಈ ಸಾಧನದ ನಿರ್ವಾಹಕರು ಈ ಕೆಳಗಿನ ಸಾಮರ್ಥ್ಯಗಳನ್ನು ಹೊಂದಿದ್ದಾರೆ:</translation> <translation id="4279490309300973883">ಪ್ರತಿಬಿಂಬಿಸುವಿಕೆ</translation> +<translation id="4294319844246081198">ಶುಭೋದಯ <ph name="GIVEN_NAME" /> ಅವರೇ,</translation> <translation id="4296136865091727875">ಎಲ್ಲಾ <ph name="COUNT" /> ಅಧಿಸೂಚನೆಗಳನ್ನು ತೆರವುಗೊಳಿಸಿ</translation> <translation id="4303223480529385476">ಸ್ಥಿತಿ ಪ್ರದೇಶವನ್ನು ಹಿಗ್ಗಿಸಿ</translation> <translation id="4321179778687042513">ctrl</translation> @@ -320,6 +325,7 @@ <translation id="4421231901400348175">ರಿಮೋಟ್ ಸಹಾಯದ ಮೂಲಕ <ph name="HELPER_NAME" /> ಜೊತೆಗೆ ನಿಮ್ಮ ಪರದೆಯ ನಿಯಂತ್ರಣವನ್ನು ಹಂಚಲಾಗುತ್ತಿದೆ.</translation> <translation id="4430019312045809116">ವಾಲ್ಯೂಮ್</translation> <translation id="4450893287417543264">ಮತ್ತೊಮ್ಮೆ ತೋರಿಸಬೇಡಿ</translation> +<translation id="445864333228800152">ಶುಭ ಸಂಜೆ,</translation> <translation id="4458688154122353284">ಸ್ಕ್ರೀನ್ ರೆಕಾರ್ಡಿಂಗ್ ನಿಲ್ಲಿಸಿ</translation> <translation id="4477350412780666475">ಮುಂದಿನ ಟ್ರ್ಯಾಕ್</translation> <translation id="4477892968187500306">Google ನಿಂದ ದೃಢೀಕರಿಸದ ಆ್ಯಪ್ಗಳನ್ನು ಈ ಸಾಧನವು ಒಳಗೊಂಡಿರಬಹುದು.</translation> @@ -430,6 +436,7 @@ <translation id="5887866489674258948">ಕತ್ತಲೆ ಮೋಡ್</translation> <translation id="5895138241574237353">ಮರುಪ್ರಾರಂಭಿಸಿ</translation> <translation id="5901316534475909376">Shift+Esc</translation> +<translation id="5909862606227538307">ನಿಷ್ಕ್ರಿಯ ಡೆಸ್ಕ್.</translation> <translation id="5911909173233110115"><ph name="USERNAME" /> (<ph name="MAIL" />)</translation> <translation id="5916664084637901428">ಆನ್</translation> <translation id="5920710855273935292">ಮೈಕ್ ಅನ್ನು ಮ್ಯೂಟ್ ಮಾಡಲಾಗಿದೆ.</translation> @@ -562,8 +569,10 @@ <translation id="7405710164030118432">ಸಾಧನವನ್ನು ಅನ್ಲಾಕ್ ಮಾಡಲು, ನಿಮ್ಮ Family Link ಪೋಷಕ ಪ್ರವೇಶದ ಕೋಡ್ ಅನ್ನು ನಮೂದಿಸಿ</translation> <translation id="741244894080940828">ಪರಿವರ್ತನೆ</translation> <translation id="742594950370306541">ಕ್ಯಾಮರಾ ಬಳಕೆಯಲ್ಲಿದೆ.</translation> +<translation id="742608627846767349">ಶುಭೋದಯ,</translation> <translation id="743058460480092004">ಕ್ಯಾಮರಾ ಮತ್ತು ಮೈಕ್ರೋಫೋನ್ ಬಳಕೆಯಲ್ಲಿವೆ.</translation> <translation id="7466449121337984263">ಸೆನ್ಸರ್ ಅನ್ನು ಸ್ಪರ್ಶಿಸಿ</translation> +<translation id="7477793887173910789">ನಿಮ್ಮ ಸಂಗೀತ, ವೀಡಿಯೊಗಳು ಹಾಗೂ ಇತ್ಯಾದಿಗಳನ್ನು ನಿಯಂತ್ರಿಸಿ</translation> <translation id="7497767806359279797">ಭಾಷೆ ಮತ್ತು ಕೀಬೋರ್ಡ್ ಆರಿಸಿ</translation> <translation id="7526573455193969409">ನೆಟ್ವರ್ಕ್ನ ಮೇಲ್ವಿಚಾರಣೆ ಮಾಡಬಹುದಾಗಿದೆ</translation> <translation id="7536035074519304529">ಐಪಿ ವಿಳಾಸ: <ph name="ADDRESS" /></translation> @@ -648,11 +657,13 @@ <translation id="8351131234907093545">ಟಿಪ್ಪಣಿ ರಚಿಸಿ</translation> <translation id="8371779926711439835">ಅಕ್ಷರದ ಮೂಲಕ ಫಾರ್ವರ್ಡ್ ಮಾಡಿ</translation> <translation id="8375916635258623388">ಈ <ph name="DEVICE_NAME" /> ಸಾಧನ ಮತ್ತು ನಿಮ್ಮ ಫೋನ್ ಸ್ವಯಂಚಾಲಿತವಾಗಿ ಸಂಪರ್ಕಗೊಳ್ಳುತ್ತವೆ</translation> +<translation id="8380784334203145311">ಶುಭ ರಾತ್ರಿ,</translation> <translation id="8388750414311082622">ಕೊನೆಯ ಡೆಸ್ಕ್ ಅನ್ನು ತೆಗೆದುಹಾಕುವಂತಿಲ್ಲ.</translation> <translation id="8392451568018454956"><ph name="USER_EMAIL_ADDRESS" /> ಅವರಿಗಾಗಿ ಆಯ್ಕೆಗಳ ಮೆನು</translation> <translation id="8394567579869570560">ನಿಮ್ಮ ಪೋಷಕರು ಈ ಸಾಧನವನ್ನು ಲಾಕ್ ಮಾಡಿದ್ದಾರೆ</translation> <translation id="8412677897383510995">ಡಿಸ್ಪ್ಲೇ ಸೆಟ್ಟಿಂಗ್ಗಳನ್ನು ತೋರಿಸಿ</translation> <translation id="8425213833346101688">ಬದಲಿಸಿ</translation> +<translation id="8426708595819210923">ಶುಭ ಸಂಜೆ <ph name="GIVEN_NAME" /> ಅವರೇ,</translation> <translation id="8427213022735114808">ಯಾವುದೇ ಪಠ್ಯ ಕ್ಷೇತ್ರದಲ್ಲಿ ಧ್ವನಿ ಟೈಪಿಂಗ್ ಅನ್ನು ಅನುಮತಿಸಲು ಡಿಕ್ಟೇಷನ್ Google ಗೆ ನಿಮ್ಮ ಧ್ವನಿಯನ್ನು ಕಳುಹಿಸುತ್ತದೆ.</translation> <translation id="8428213095426709021">ಸೆಟ್ಟಿಂಗ್ಗಳು</translation> <translation id="8433186206711564395">ನೆಟ್ವರ್ಕ್ ಸೆಟ್ಟಿಂಗ್ಗಳು</translation>
diff --git a/ash/strings/ash_strings_ko.xtb b/ash/strings/ash_strings_ko.xtb index 48fe7d6..1d8f6947 100644 --- a/ash/strings/ash_strings_ko.xtb +++ b/ash/strings/ash_strings_ko.xtb
@@ -11,6 +11,7 @@ <translation id="1056775291175587022">네트워크 없음</translation> <translation id="1059194134494239015"><ph name="DISPLAY_NAME" />: <ph name="RESOLUTION" /></translation> <translation id="108486256082349153">셀룰러: <ph name="ADDRESS" /></translation> +<translation id="1087110696012418426">즐거운 오후 보내세요, <ph name="GIVEN_NAME" />님</translation> <translation id="109942774857561566">나 심심해</translation> <translation id="1104084341931202936">접근성 설정 표시</translation> <translation id="1104621072296271835">기기가 연결되면 더욱 원활하게 작동합니다</translation> @@ -71,6 +72,7 @@ <translation id="1677472565718498478"><ph name="TIME" /> 남음</translation> <translation id="1698080062160024910"><ph name="TOTAL_TIME" /> 타이머 · <ph name="LABEL" /></translation> <translation id="1698760176351776263">IPv6 주소: <ph name="ADDRESS" /></translation> +<translation id="1708345662127501511">데스크: <ph name="DESK_NAME" /></translation> <translation id="1709762881904163296">네트워크 설정</translation> <translation id="1743570585616704562">인식할 수 없음</translation> <translation id="1746730358044914197">입력 방법은 관리자가 설정합니다.</translation> @@ -107,6 +109,7 @@ <translation id="2018630726571919839">재미있는 이야기 듣기</translation> <translation id="2050339315714019657">세로 방향</translation> <translation id="2067602449040652523">키보드 밝기</translation> +<translation id="2083190527011054446">편안한 밤 보내세요, <ph name="GIVEN_NAME" />님</translation> <translation id="209965399369889474">네트워크에 연결되어 있지 않음</translation> <translation id="2126242104232412123">새 데스크</translation> <translation id="2127372758936585790">저출력 충전기</translation> @@ -185,6 +188,7 @@ <translation id="3009178788565917040">출력</translation> <translation id="3033545621352269033">사용</translation> <translation id="3038571455154067151">로그인하려면 Family Link 부모 액세스 코드를 입력하세요</translation> +<translation id="3045488863354895414">즐거운 오후 보내세요</translation> <translation id="3051128274746680507">관리 대상 사용자 프로필이 곧 삭제됩니다. 자세히 알아보려면 로그인하세요.</translation> <translation id="3055162170959710888">오늘 이 기기를 <ph name="USED_TIME" /> 동안 사용했습니다.</translation> <translation id="3076778413190775903">상태 표시줄, 시간 <ph name="TIME" />, @@ -304,6 +308,7 @@ <translation id="4261870227682513959">알림 설정을 표시합니다. 알림이 사용 중지되어 있습니다.</translation> <translation id="4269883910223712419">이 기기의 관리자는 다음과 같은 작업을 할 수 있습니다.</translation> <translation id="4279490309300973883">미러링</translation> +<translation id="4294319844246081198">좋은 아침이에요, <ph name="GIVEN_NAME" />님</translation> <translation id="4296136865091727875">알림 <ph name="COUNT" />개 모두 지우기</translation> <translation id="4303223480529385476">상태 영역 확장</translation> <translation id="4321179778687042513">ctrl</translation> @@ -320,6 +325,7 @@ <translation id="4421231901400348175">원격 지원을 통해 <ph name="HELPER_NAME" />와(과) 화면 제어 공유</translation> <translation id="4430019312045809116">볼륨</translation> <translation id="4450893287417543264">다시 표시하지 않음</translation> +<translation id="445864333228800152">편안한 저녁 보내세요</translation> <translation id="4458688154122353284">화면 녹화 중지</translation> <translation id="4477350412780666475">다음 트랙</translation> <translation id="4477892968187500306">이 기기에는 Google에서 확인하지 않은 앱이 설치되어 있을 수 있습니다.</translation> @@ -430,6 +436,7 @@ <translation id="5887866489674258948">어두운 모드</translation> <translation id="5895138241574237353">다시 시작</translation> <translation id="5901316534475909376">Shift+Esc</translation> +<translation id="5909862606227538307">비활성 데스크입니다.</translation> <translation id="5911909173233110115"><ph name="USERNAME" />(<ph name="MAIL" />)</translation> <translation id="5916664084637901428">사용</translation> <translation id="5920710855273935292">마이크가 음소거되어 있습니다.</translation> @@ -561,8 +568,10 @@ <translation id="7405710164030118432">기기의 잠금을 해제하려면 Family Link 부모 액세스 코드를 입력하세요.</translation> <translation id="741244894080940828">변환</translation> <translation id="742594950370306541">카메라가 사용 중입니다.</translation> +<translation id="742608627846767349">좋은 아침이에요</translation> <translation id="743058460480092004">카메라와 마이크가 사용 중입니다.</translation> <translation id="7466449121337984263">센서를 터치하세요.</translation> +<translation id="7477793887173910789">음악, 동영상 등의 항목 제어하기</translation> <translation id="7497767806359279797">언어 및 키보드 선택</translation> <translation id="7526573455193969409">네트워크가 모니터링될 수 있음</translation> <translation id="7536035074519304529">IP 주소: <ph name="ADDRESS" /></translation> @@ -647,11 +656,13 @@ <translation id="8351131234907093545">메모 만들기</translation> <translation id="8371779926711439835">한 글자 앞으로 이동</translation> <translation id="8375916635258623388">이 <ph name="DEVICE_NAME" />과(와) 휴대전화가 자동으로 연결됩니다.</translation> +<translation id="8380784334203145311">편안한 밤 보내세요</translation> <translation id="8388750414311082622">마지막 데스크는 삭제할 수 없습니다.</translation> <translation id="8392451568018454956"><ph name="USER_EMAIL_ADDRESS" />의 옵션 메뉴</translation> <translation id="8394567579869570560">부모님이 이 기기를 잠갔습니다.</translation> <translation id="8412677897383510995">디스플레이 설정 표시</translation> <translation id="8425213833346101688">변경</translation> +<translation id="8426708595819210923">편안한 저녁 보내세요, <ph name="GIVEN_NAME" />님</translation> <translation id="8427213022735114808">음성기록을 사용하면 모든 텍스트 입력란에서 음성 입력 기능을 지원하기 위해 Google에 음성이 전송됩니다.</translation> <translation id="8428213095426709021">설정</translation> <translation id="8433186206711564395">네트워크 설정</translation>
diff --git a/ash/strings/ash_strings_ky.xtb b/ash/strings/ash_strings_ky.xtb index 846ff93..1bc9029 100644 --- a/ash/strings/ash_strings_ky.xtb +++ b/ash/strings/ash_strings_ky.xtb
@@ -11,6 +11,7 @@ <translation id="1056775291175587022">Тармактар жок</translation> <translation id="1059194134494239015"><ph name="DISPLAY_NAME" />: <ph name="RESOLUTION" /></translation> <translation id="108486256082349153">Мобилдик: <ph name="ADDRESS" /></translation> +<translation id="1087110696012418426">Кутман күнүңүз менен, <ph name="GIVEN_NAME" />,</translation> <translation id="109942774857561566">Зеригип жатам</translation> <translation id="1104084341931202936">Атайын мүмкүнчүлүктөрдүн жөндөөлөрүн көрсөтүү</translation> <translation id="1104621072296271835">Түзмөктөрүңүз бирге мындан да жакшы иштейт</translation> @@ -71,6 +72,7 @@ <translation id="1677472565718498478"><ph name="TIME" /> калды</translation> <translation id="1698080062160024910"><ph name="TOTAL_TIME" /> таймер · <ph name="LABEL" /></translation> <translation id="1698760176351776263">IPv6 дареги: <ph name="ADDRESS" /></translation> +<translation id="1708345662127501511">Иш такта: <ph name="DESK_NAME" /></translation> <translation id="1709762881904163296">Тармак жөндөөлөрү</translation> <translation id="1743570585616704562">Таанылган жок</translation> <translation id="1746730358044914197">Киргизүү ыкмасы администратор тарабынан конфигурацияланат.</translation> @@ -107,6 +109,7 @@ <translation id="2018630726571919839">Мага тамаша айтып бер</translation> <translation id="2050339315714019657">Тигинен</translation> <translation id="2067602449040652523">Баскычтоптун жарыктыгы</translation> +<translation id="2083190527011054446">Түнүңүз бейпил болсун, <ph name="GIVEN_NAME" />,</translation> <translation id="209965399369889474">Тармакка туташпай турат</translation> <translation id="2126242104232412123">Жаңы иш такта</translation> <translation id="2127372758936585790">Кубаты төмөн кубаттагыч</translation> @@ -185,6 +188,7 @@ <translation id="3009178788565917040">Чыгаруу</translation> <translation id="3033545621352269033">Күйүк</translation> <translation id="3038571455154067151">Кирүү үчүн, Family Link'теги ата-эненин кирүү кодун териңиз</translation> +<translation id="3045488863354895414">Кутман күнүңүз менен,</translation> <translation id="3051128274746680507">Көзөмөлдөнгөн колдонуучунун профили жакында өчүрүлөт. Кененирээк маалымат алуу үчүн, аккаунтуңузга кириңиз.</translation> <translation id="3055162170959710888">Бүгүн бул түзмөктү <ph name="USED_TIME" /> колдондуңуз</translation> <translation id="3076778413190775903">Статус түпкүчү, убакыт <ph name="TIME" />, @@ -304,6 +308,7 @@ <translation id="4261870227682513959">Билдирмелердин жөндөөлөрүн көрсөтүү. Билдирмелер өчүк</translation> <translation id="4269883910223712419">Бул түзмөктүн администратору төмөнкүлөрдү аткара алат:</translation> <translation id="4279490309300973883">Чагылыштыруу</translation> +<translation id="4294319844246081198">Кутмандуу таңыңыз менен, <ph name="GIVEN_NAME" />,</translation> <translation id="4296136865091727875"><ph name="COUNT" /> билдирменин баарын өчүрүү</translation> <translation id="4303223480529385476">Статус аймагын жайып көрсөтүү</translation> <translation id="4321179778687042513">Ctrl</translation> @@ -320,6 +325,7 @@ <translation id="4421231901400348175">Алыскы жардамчы аркылуу экраныңыздын көзөмөлү <ph name="HELPER_NAME" /> менен бөлүшүүдө.</translation> <translation id="4430019312045809116">Үндүн катуулугу</translation> <translation id="4450893287417543264">Экинчи көрүнбөсүн</translation> +<translation id="445864333228800152">Кутмандуу кечиңиз менен,</translation> <translation id="4458688154122353284">Экрандан видео жаздырууну токтотуу</translation> <translation id="4477350412780666475">Кийинки трек</translation> <translation id="4477892968187500306">Бул түзмөктө Google текшербеген колдонмолор болушу мүмкүн.</translation> @@ -430,6 +436,7 @@ <translation id="5887866489674258948">Караңгы тема</translation> <translation id="5895138241574237353">Өчүрүп күйгүзүү</translation> <translation id="5901316534475909376">Shift + Esc</translation> +<translation id="5909862606227538307">Жигерсиз иш такта.</translation> <translation id="5911909173233110115"><ph name="USERNAME" /> (<ph name="MAIL" />)</translation> <translation id="5916664084637901428">Күйүк</translation> <translation id="5920710855273935292">Микрофондун үнү өчүрүлдү.</translation> @@ -561,8 +568,10 @@ <translation id="7405710164030118432">Бул түзмөктүн кулпусун ачуу үчүн, Family Link'теги ата-эненин кирүү кодун териңиз</translation> <translation id="741244894080940828">которуу</translation> <translation id="742594950370306541">Камера колдонулууда.</translation> +<translation id="742608627846767349">Кутмандуу таңыңыз менен,</translation> <translation id="743058460480092004">Камера менен микрофон колдонулууда.</translation> <translation id="7466449121337984263">Сенсорго тийиңиз, сураныч</translation> +<translation id="7477793887173910789">Музыканы, видеолорду жана башкаларды көзөмөлдөңүз</translation> <translation id="7497767806359279797">Тилди жана баскычтопту тандоо</translation> <translation id="7526573455193969409">Тармак көзөмөлдөнүшү мүмкүн</translation> <translation id="7536035074519304529">IP дареги: <ph name="ADDRESS" /></translation> @@ -647,11 +656,13 @@ <translation id="8351131234907093545">Эскертүү түзүү</translation> <translation id="8371779926711439835">Бир тамга алдыга өтүү</translation> <translation id="8375916635258623388">Бул <ph name="DEVICE_NAME" /> түзмөгү телефонуңузга автоматтык түрдө туташат</translation> +<translation id="8380784334203145311">Түнүңүз бейпил болсун,</translation> <translation id="8388750414311082622">Акыркы иш тактаны өчүрүүгө болбойт.</translation> <translation id="8392451568018454956"><ph name="USER_EMAIL_ADDRESS" /> үчүн параметрлер менюсу</translation> <translation id="8394567579869570560">Ата-энеңиз бул түзмөктү кулпулап койду</translation> <translation id="8412677897383510995">Дисплейдин жөндөөлөрүн көрсөтүү</translation> <translation id="8425213833346101688">Өзгөртүү</translation> +<translation id="8426708595819210923">Кутмандуу кечиңиз менен, <ph name="GIVEN_NAME" />,</translation> <translation id="8427213022735114808">Текстти каалаган талаага үн менен жазуу үчүн үнүңүздүн үлгүсү Google'га жөнөтүлөт.</translation> <translation id="8428213095426709021">Жөндөөлөр</translation> <translation id="8433186206711564395">Тармак жөндөөлөрү</translation>
diff --git a/ash/strings/ash_strings_lo.xtb b/ash/strings/ash_strings_lo.xtb index 1bb47fa..7a24a37 100644 --- a/ash/strings/ash_strings_lo.xtb +++ b/ash/strings/ash_strings_lo.xtb
@@ -11,6 +11,7 @@ <translation id="1056775291175587022">ບໍ່ມີເຄືອຂ່າຍ</translation> <translation id="1059194134494239015"><ph name="DISPLAY_NAME" />: <ph name="RESOLUTION" /></translation> <translation id="108486256082349153">ເຊວລູລາ: <ph name="ADDRESS" /></translation> +<translation id="1087110696012418426">ສະບາຍດີຕອນບ່າຍ <ph name="GIVEN_NAME" />,</translation> <translation id="109942774857561566">ຂ້ອຍເບື່ອຫຼາຍ</translation> <translation id="1104084341931202936">ສະແດງການຕັ້ງຄ່າການຊ່ວຍເຂົ້າເຖິງ</translation> <translation id="1104621072296271835">ອຸປະກອນຂອງທ່ານໃຊ້ໄດ້ດີຍິ່ງຂຶ້ນຮ່ວມກັນ</translation> @@ -71,6 +72,7 @@ <translation id="1677472565718498478">ຍັງເຫຼືອ <ph name="TIME" /></translation> <translation id="1698080062160024910">ໂມງນັບຖອຍຫຼັງ <ph name="TOTAL_TIME" /> · <ph name="LABEL" /></translation> <translation id="1698760176351776263">ທີ່ຢູ່ IPv6: <ph name="ADDRESS" /></translation> +<translation id="1708345662127501511">ໂຕະ: <ph name="DESK_NAME" /></translation> <translation id="1709762881904163296">ການຕັ້ງຄ່າເຄືອຂ່າຍ</translation> <translation id="1743570585616704562">ບໍ່ຮັບຮູ້</translation> <translation id="1746730358044914197">ວິທີການປ້ອນຂໍ້ມູນຖືກກຳນົດຄ່າໂດຍຜູ້ເບິ່ງແຍງລະບົບຂອງທ່ານ.</translation> @@ -107,6 +109,7 @@ <translation id="2018630726571919839">ເລົ່າເລື່ອງຕະຫຼົກໃຫ້ຂ້ອຍຟັງ</translation> <translation id="2050339315714019657">ລວງຕັ້ງ</translation> <translation id="2067602449040652523">ຄວາມແຈ້ງຂອງແປ້ນພິມ</translation> +<translation id="2083190527011054446">ຝັນດີ <ph name="GIVEN_NAME" />,</translation> <translation id="209965399369889474">ບໍ່ເຊື່ອມຕໍ່ກັບເຄືອຂ່າຍ</translation> <translation id="2126242104232412123">ພື້ນທີ່ເຮັດວຽກໃໝ່</translation> <translation id="2127372758936585790">ເຄື່ອງສາກໄຟຕໍ່າ</translation> @@ -185,6 +188,7 @@ <translation id="3009178788565917040">ຜົນອອກມາ</translation> <translation id="3033545621352269033">ເປີດ</translation> <translation id="3038571455154067151">ເພື່ອເຂົ້າສູ່ລະບົບ, ກະລຸນາປ້ອນ ລະຫັດການເຂົ້າເຖິງຂອງພໍ່ແມ່ໃນ Family Link ຂອງທ່ານ</translation> +<translation id="3045488863354895414">ສະບາຍດີຕອນບ່າຍ,</translation> <translation id="3051128274746680507">ລະບົບຈະລຶບໂປຣໄຟລ໌ຜູ້ໃຊ້ທີ່ມີການຄວບຄຸມເບິ່ງແຍງອອກ ເຂົ້າສູ່ລະບົບເພື່ອຮຽນຮູ້ເພີ່ມເຕີມ.</translation> <translation id="3055162170959710888">ທ່ານໄດ້ໃຊ້ອຸປະກອນນີ້ເປັນເວລາ <ph name="USED_TIME" /> ໃນມື້ນີ້</translation> <translation id="3076778413190775903">ຖາດສະຖານະ, ເວລາ <ph name="TIME" />, @@ -304,6 +308,7 @@ <translation id="4261870227682513959">ສະແດງການຕັ້ງຄ່າການແຈ້ງເຕືອນ. ການແຈ້ງເຕືອນປິດຢູ່</translation> <translation id="4269883910223712419">ຜູ້ເບິ່ງແແຍງລະບົບຂອງອຸປະກອນີ້ສາມາດ:</translation> <translation id="4279490309300973883">ການສ່ອງ</translation> +<translation id="4294319844246081198">ສະບາຍດີຕອນເຊົ້າ <ph name="GIVEN_NAME" />,</translation> <translation id="4296136865091727875">ລຶບລ້າງການແຈ້ງເຕືອນທັງໝົດ <ph name="COUNT" /> ລາຍການ</translation> <translation id="4303223480529385476">ຂະຫຍາຍພື້ນທີ່ສະແດງສະຖານະ</translation> <translation id="4321179778687042513">Ctrl</translation> @@ -320,6 +325,7 @@ <translation id="4421231901400348175">ການແບ່ງປັນການຄວບຄຸມໜ້າຈໍຂອງທ່ານກັບ <ph name="HELPER_NAME" /> ຜ່ານຕົວຊ່ວຍທາງໄກ.</translation> <translation id="4430019312045809116">ລະດັບສຽງ</translation> <translation id="4450893287417543264">ຢ່າສະແດງອີກ</translation> +<translation id="445864333228800152">ສະບາຍດີຕອນແລງ,</translation> <translation id="4458688154122353284">ຢຸດການບັນທຶກໜ້າຈໍ</translation> <translation id="4477350412780666475">ເພງຕໍ່ໄປ</translation> <translation id="4477892968187500306">ອຸປະກອນນີ້ອາດຈະປະກອບມີແອັບທີ່ບໍ່ໄດ້ຜ່ານການຢັ້ງຢືນຈາກ Google.</translation> @@ -430,6 +436,7 @@ <translation id="5887866489674258948">ໂໝດມືດ</translation> <translation id="5895138241574237353">ເລີ່ມຕົ້ນໃໝ່</translation> <translation id="5901316534475909376">Shift+Esc</translation> +<translation id="5909862606227538307">ໂຕະທີ່ບໍ່ໄດ້ນຳໃຊ້</translation> <translation id="5911909173233110115"><ph name="USERNAME" /> (<ph name="MAIL" />)</translation> <translation id="5916664084637901428">ເປີດ</translation> <translation id="5920710855273935292">ໄມປິດສຽງຢູ່.</translation> @@ -561,8 +568,10 @@ <translation id="7405710164030118432">ເພື່ອປົດລັອກອຸປະກອນ, ກະລຸນາປ້ອນລະຫັດການເຂົ້າເຖິງຂອງພໍ່ແມ່ສຳລັບ Family Link ຂອງທ່ານ</translation> <translation id="741244894080940828">ການປ່ຽນ</translation> <translation id="742594950370306541">ກ້ອງຖ່າຍຮູບໃຊ້ງານຢູ່.</translation> +<translation id="742608627846767349">ສະບາຍດີຕອນເຊົ້າ,</translation> <translation id="743058460480092004">ກ້ອງຖ່າຍຮູບ ແລະໄມໂຄຣໂຟນໃຊ້ງານຢູ່.</translation> <translation id="7466449121337984263">ກະລຸນາແຕະເຊັນເຊີ</translation> +<translation id="7477793887173910789">ຄວບຄຸມເພງ, ວິດີໂອຂອງທ່ານ ແລະ ອື່ນໆອີກ</translation> <translation id="7497767806359279797">ເລືອກພາສາ ແລະ ແປ້ນພິມ</translation> <translation id="7526573455193969409">ອາດມີການຕິດຕາມເບິ່ງເຄືອຂ່າຍ</translation> <translation id="7536035074519304529">ທີ່ຢູ່ IP: <ph name="ADDRESS" /></translation> @@ -647,11 +656,13 @@ <translation id="8351131234907093545">ສ້າງບັນທຶກ</translation> <translation id="8371779926711439835">ໄປໜ້າເທື່ອລະຕົວໜັງສື</translation> <translation id="8375916635258623388"><ph name="DEVICE_NAME" />ນີ້ ແລະ ໂທລະສັບຂອງທ່ານຈະເຊື່ອມຕໍ່ໂດຍອັດຕະໂນມັດ</translation> +<translation id="8380784334203145311">ຝັນດີ,</translation> <translation id="8388750414311082622">ບໍ່ສາມາດລຶບພື້ນທີ່ເຮັດວຽກສຸດທ້າຍອອກໄດ້.</translation> <translation id="8392451568018454956">ເມນູທາງເລືອກສໍາລັບ <ph name="USER_EMAIL_ADDRESS" /></translation> <translation id="8394567579869570560">ພໍ່ແມ່ຂອງທ່ານໄດ້ລັອກອຸປະກອນນີ້ໄວ້ແລ້ວ</translation> <translation id="8412677897383510995">ສະແດງການຕັ້ງຄ່າຈໍສະແດງຜົນ</translation> <translation id="8425213833346101688">ປ່ຽນແປງ</translation> +<translation id="8426708595819210923">ສະບາຍດີຕອນແລງ <ph name="GIVEN_NAME" />,</translation> <translation id="8427213022735114808">ການຂຽນຕາມຄຳບອກສົ່ງສຽງຂອງທ່ານໃຫ້ Google ເພື່ອອະນຸຍາດການພິມດ້ວຍສຽງໃນຊ່ອງໃສ່ຂໍ້ຄວາມຕ່າງໆ.</translation> <translation id="8428213095426709021">ການຕັ້ງຄ່າ</translation> <translation id="8433186206711564395">ການຕັ້ງຄ່າເຄືອຂ່າຍ</translation>
diff --git a/ash/strings/ash_strings_lt.xtb b/ash/strings/ash_strings_lt.xtb index 499f0284..f00801e 100644 --- a/ash/strings/ash_strings_lt.xtb +++ b/ash/strings/ash_strings_lt.xtb
@@ -11,6 +11,7 @@ <translation id="1056775291175587022">Nėra tinklų</translation> <translation id="1059194134494239015"><ph name="DISPLAY_NAME" />: <ph name="RESOLUTION" /></translation> <translation id="108486256082349153">Mobilusis: <ph name="ADDRESS" /></translation> +<translation id="1087110696012418426">Laba diena, <ph name="GIVEN_NAME" />,</translation> <translation id="109942774857561566">„I’m bored“ (Man nuobodu)</translation> <translation id="1104084341931202936">Rodyti pritaikymo neįgaliesiems nustatymus</translation> <translation id="1104621072296271835">Jūsų įrenginiai kartu veikia dar geriau</translation> @@ -71,6 +72,7 @@ <translation id="1677472565718498478">Liko <ph name="TIME" /></translation> <translation id="1698080062160024910"><ph name="TOTAL_TIME" /> laikmatis · <ph name="LABEL" /></translation> <translation id="1698760176351776263">„IPv6“ adresas: <ph name="ADDRESS" /></translation> +<translation id="1708345662127501511">Darbalaukis: <ph name="DESK_NAME" /></translation> <translation id="1709762881904163296">Tinklo nustatymai</translation> <translation id="1743570585616704562">Neatpažinta</translation> <translation id="1746730358044914197">Įvesties metodus konfigūruoja jūsų administratorius.</translation> @@ -107,6 +109,7 @@ <translation id="2018630726571919839">Papasakok pokštą</translation> <translation id="2050339315714019657">Stačias</translation> <translation id="2067602449040652523">Klaviatūros šviesumas</translation> +<translation id="2083190527011054446">Labanakt, <ph name="GIVEN_NAME" />,</translation> <translation id="209965399369889474">Neprisijungta prie tinklo</translation> <translation id="2126242104232412123">Naujas darbalaukis</translation> <translation id="2127372758936585790">Mažos galios įkroviklis</translation> @@ -185,6 +188,7 @@ <translation id="3009178788565917040">Išvestis</translation> <translation id="3033545621352269033">Įjungta</translation> <translation id="3038571455154067151">Norėdami prisijungti, įveskite „Family Link“ tėvų prieigos kodą.</translation> +<translation id="3045488863354895414">Laba diena,</translation> <translation id="3051128274746680507">Jūsų prižiūrimo naudotojo profilis netrukus bus pašalintas. Prisijunkite, kad sužinotumėte daugiau.</translation> <translation id="3055162170959710888">Šį įrenginį šiandien naudojote <ph name="USED_TIME" /></translation> <translation id="3076778413190775903">Būsenos dėklas, laikas <ph name="TIME" />, @@ -304,6 +308,7 @@ <translation id="4261870227682513959">Rodyti pranešimų nustatymus. Pranešimai išjungti</translation> <translation id="4269883910223712419">Šio įrenginio administratorius gali atlikti nurodytus veiksmus.</translation> <translation id="4279490309300973883">Dubliuojama</translation> +<translation id="4294319844246081198">Labas rytas, <ph name="GIVEN_NAME" />,</translation> <translation id="4296136865091727875">Išvalykite visus pranešimus (<ph name="COUNT" />)</translation> <translation id="4303223480529385476">Išskleisti būsenos sritį</translation> <translation id="4321179778687042513">ctrl</translation> @@ -320,6 +325,7 @@ <translation id="4421231901400348175"><ph name="HELPER_NAME" /> gali valdyti jūsų ekraną naudodamas (-a) Nuotolinę pagalbą.</translation> <translation id="4430019312045809116">Apimtis</translation> <translation id="4450893287417543264">Daugiau neberodyti</translation> +<translation id="445864333228800152">Labas vakaras,</translation> <translation id="4458688154122353284">Sustabdyti ekrano įrašymą</translation> <translation id="4477350412780666475">Kitas takelis</translation> <translation id="4477892968187500306">Šiame įrenginyje gali būti programų, kurių „Google“ nepatvirtino.</translation> @@ -430,6 +436,7 @@ <translation id="5887866489674258948">Tamsus režimas</translation> <translation id="5895138241574237353">Paleisti iš naujo</translation> <translation id="5901316534475909376">„Shift“ + „Esc“</translation> +<translation id="5909862606227538307">Neaktyvus darbalaukis.</translation> <translation id="5911909173233110115"><ph name="USERNAME" /> (<ph name="MAIL" />)</translation> <translation id="5916664084637901428">Įjungta</translation> <translation id="5920710855273935292">Mikrofonas nutildytas.</translation> @@ -561,8 +568,10 @@ <translation id="7405710164030118432">Jei norite atrakinti įrenginį, įveskite „Family Link“ tėvų prieigos kodą</translation> <translation id="741244894080940828">konversija</translation> <translation id="742594950370306541">Kamera naudojama.</translation> +<translation id="742608627846767349">Labas rytas,</translation> <translation id="743058460480092004">Kamera ir mikrofonas naudojami.</translation> <translation id="7466449121337984263">Palieskite jutiklį</translation> +<translation id="7477793887173910789">Valdykite savo muziką, vaizdo įrašus ir žaidimus</translation> <translation id="7497767806359279797">Pasirinkti kalbą ir klaviatūros išdėstymą</translation> <translation id="7526573455193969409">Tinklas gali būti stebimas</translation> <translation id="7536035074519304529">IP adresas: <ph name="ADDRESS" /></translation> @@ -647,11 +656,13 @@ <translation id="8351131234907093545">Sukurti užrašą</translation> <translation id="8371779926711439835">Eiti pirmyn per vieną raidę</translation> <translation id="8375916635258623388">Šis „<ph name="DEVICE_NAME" />“ įrenginys ir telefonas bus susieti automatiškai</translation> +<translation id="8380784334203145311">Labanakt,</translation> <translation id="8388750414311082622">Negalima pašalinti paskutinio pulto.</translation> <translation id="8392451568018454956"><ph name="USER_EMAIL_ADDRESS" /> skirtų parinkčių meniu</translation> <translation id="8394567579869570560">Vienas iš tėvų užrakino šį įrenginį</translation> <translation id="8412677897383510995">Rodyti ekrano nustatymus</translation> <translation id="8425213833346101688">Keisti</translation> +<translation id="8426708595819210923">Labas vakaras, <ph name="GIVEN_NAME" />,</translation> <translation id="8427213022735114808">Naudojant diktavimo funkciją balsas siunčiamas į sistemą „Google“, kad bet kuriame teksto lauke būtų galima rašyti balsu.</translation> <translation id="8428213095426709021">Nustatymai</translation> <translation id="8433186206711564395">Tinklo nustatymai</translation>
diff --git a/ash/strings/ash_strings_lv.xtb b/ash/strings/ash_strings_lv.xtb index f7803e1..006e200 100644 --- a/ash/strings/ash_strings_lv.xtb +++ b/ash/strings/ash_strings_lv.xtb
@@ -571,6 +571,7 @@ <translation id="742608627846767349">Labrīt!</translation> <translation id="743058460480092004">Kamera un mikrofons tiek lietoti.</translation> <translation id="7466449121337984263">Lūdzu, pieskarieties sensoram.</translation> +<translation id="7477793887173910789">Pārvaldiet savu mūziku, videoklipus un citu saturu</translation> <translation id="7497767806359279797">Izvēlēties valodu un tastatūru</translation> <translation id="7526573455193969409">Var tikt pārraudzītas tīklā veiktās darbības</translation> <translation id="7536035074519304529">IP adrese: <ph name="ADDRESS" /></translation>
diff --git a/ash/strings/ash_strings_mk.xtb b/ash/strings/ash_strings_mk.xtb index bf62d3b..7aac620 100644 --- a/ash/strings/ash_strings_mk.xtb +++ b/ash/strings/ash_strings_mk.xtb
@@ -572,6 +572,7 @@ <translation id="742608627846767349">Добро утро,</translation> <translation id="743058460480092004">Се користат фотоапаратот и микрофонот.</translation> <translation id="7466449121337984263">Допрете го сензорот</translation> +<translation id="7477793887173910789">Контролирајте ја музиката, видеата и др.</translation> <translation id="7497767806359279797">Изберете јазик и тастатура</translation> <translation id="7526573455193969409">Мрежата можеби се следи</translation> <translation id="7536035074519304529">IP адреса: <ph name="ADDRESS" /></translation>
diff --git a/ash/strings/ash_strings_ml.xtb b/ash/strings/ash_strings_ml.xtb index 4819b28..4ca19cc6 100644 --- a/ash/strings/ash_strings_ml.xtb +++ b/ash/strings/ash_strings_ml.xtb
@@ -571,6 +571,7 @@ <translation id="742608627846767349">ഗുഡ്മോണിംഗ്,</translation> <translation id="743058460480092004">ക്യാമറയും മൈക്രോഫോണും ഉപയോഗത്തിലാണ്.</translation> <translation id="7466449121337984263">സെൻസറിൽ സ്പർശിക്കുക</translation> +<translation id="7477793887173910789">നിങ്ങളുടെ സംഗീതവും വീഡിയോകളും മറ്റും നിയന്ത്രിക്കുക</translation> <translation id="7497767806359279797">ഭാഷയും കീബോഡും തിരഞ്ഞെടുക്കുക</translation> <translation id="7526573455193969409">നെറ്റ്വർക്ക് നിരീക്ഷിക്കപ്പെടാം</translation> <translation id="7536035074519304529">IP വിലാസം: <ph name="ADDRESS" /></translation>
diff --git a/ash/strings/ash_strings_mn.xtb b/ash/strings/ash_strings_mn.xtb index c5e8f74..d7e589a 100644 --- a/ash/strings/ash_strings_mn.xtb +++ b/ash/strings/ash_strings_mn.xtb
@@ -11,6 +11,7 @@ <translation id="1056775291175587022">Сүлжээ алга</translation> <translation id="1059194134494239015"><ph name="DISPLAY_NAME" />: <ph name="RESOLUTION" /></translation> <translation id="108486256082349153">Үүрэн холбоо: <ph name="ADDRESS" /></translation> +<translation id="1087110696012418426">Өдрийн мэнд <ph name="GIVEN_NAME" />,</translation> <translation id="109942774857561566">Би уйдаж байна</translation> <translation id="1104084341931202936">Нэвтрэлтийн тохиргоог харуулах</translation> <translation id="1104621072296271835">Таны төхөөрөмжүүд хамтдаа илүү сайн ажилладаг</translation> @@ -71,6 +72,7 @@ <translation id="1677472565718498478"><ph name="TIME" /> үлдсэн</translation> <translation id="1698080062160024910"><ph name="TOTAL_TIME" /> цаг хэмжигч · <ph name="LABEL" /></translation> <translation id="1698760176351776263">IPv6 хаяг: <ph name="ADDRESS" /></translation> +<translation id="1708345662127501511">Дэлгэц: <ph name="DESK_NAME" /></translation> <translation id="1709762881904163296">Сүлжээний тохиргоо</translation> <translation id="1743570585616704562">Танихгүй байна</translation> <translation id="1746730358044914197">Оролтын аргыг таны админ тохируулсан.</translation> @@ -107,6 +109,7 @@ <translation id="2018630726571919839">Надад онигоо ярьж өгөөч</translation> <translation id="2050339315714019657">Хөрөг зураг</translation> <translation id="2067602449040652523">Гарын гэрэлтүүлэг</translation> +<translation id="2083190527011054446">Сайхан амраарай <ph name="GIVEN_NAME" />,</translation> <translation id="209965399369889474">Сүлжээнд холбогдоогүй байна</translation> <translation id="2126242104232412123">Шинэ ширээ</translation> <translation id="2127372758936585790">Бага эрчим хүчээр цэнэглэгч</translation> @@ -185,6 +188,7 @@ <translation id="3009178788565917040">Гаралт</translation> <translation id="3033545621352269033">Асаалттай</translation> <translation id="3038571455154067151">Нэвтрэхийн тулд Family Link-н эцэг эхийн хандалтын кодоо оруулна уу</translation> +<translation id="3045488863354895414">Өдрийн мэнд,</translation> <translation id="3051128274746680507">Таны хяналттай хэрэглэгчийн профайлыг удахгүй устгана. Нэмэлт мэдээлэл авахын тулд нэвтэрнэ үү.</translation> <translation id="3055162170959710888">Та энэ төхөөрөмжийг өнөөдөр <ph name="USED_TIME" /> ашигласан</translation> <translation id="3076778413190775903">Төлөвийн мэдээллийн хэсэг, цаг <ph name="TIME" />, @@ -305,6 +309,7 @@ <translation id="4261870227682513959">Мэдэгдлийн тохиргоог харуулна уу. Мэдэгдлийг унтраасан байна</translation> <translation id="4269883910223712419">Энэ төхөөрөмжийн админ дараах зүйлсийг хийх боломжтой:</translation> <translation id="4279490309300973883">Толин тусгал үүсгэх</translation> +<translation id="4294319844246081198">Өглөөний мэнд <ph name="GIVEN_NAME" />,</translation> <translation id="4296136865091727875">Бүх <ph name="COUNT" /> мэдэгдлийг устгах</translation> <translation id="4303223480529385476">Төлөв байдал илэрхийлэгчийг дэлгэх</translation> <translation id="4321179778687042513">Ctrl</translation> @@ -321,6 +326,7 @@ <translation id="4421231901400348175">Remote Assistance ашиглан <ph name="HELPER_NAME" /> -тэй хамт өөрийн дэлгэцийн хяналтыг хуваалцах.</translation> <translation id="4430019312045809116">Хэмжээ</translation> <translation id="4450893287417543264">Дахиж бүү харуул</translation> +<translation id="445864333228800152">Оройн мэнд,</translation> <translation id="4458688154122353284">Дэлгэцийн үйлдэл бичихийг зогсоох</translation> <translation id="4477350412780666475">Дараагийн бичлэг</translation> <translation id="4477892968187500306">Энэ төхөөрөмж нь Google-н баталгаажуулаагүй аппыг агуулж болзошгүй.</translation> @@ -431,6 +437,7 @@ <translation id="5887866489674258948">Бараан горим</translation> <translation id="5895138241574237353">Дахин асаах</translation> <translation id="5901316534475909376">Shift+Esc</translation> +<translation id="5909862606227538307">Идэвхгүй дэлгэц.</translation> <translation id="5911909173233110115"><ph name="USERNAME" /> (<ph name="MAIL" />)</translation> <translation id="5916664084637901428">Асаах</translation> <translation id="5920710855273935292">Микрофоны дууг хаасан.</translation> @@ -562,8 +569,10 @@ <translation id="7405710164030118432">Энэ төхөөрөмжийн түгжээг тайлахын тулд Family Link-н эцэг эхийн нэвтрэх кодоо оруулна уу</translation> <translation id="741244894080940828">хөрвүүлэлт</translation> <translation id="742594950370306541">Камерыг ашиглаж байна.</translation> +<translation id="742608627846767349">Өглөөний мэнд,</translation> <translation id="743058460480092004">Камер болон микрофоныг ашиглаж байна.</translation> <translation id="7466449121337984263">Мэдрэгчид хүрнэ үү</translation> +<translation id="7477793887173910789">Хөгжим, видео болон бусад зүйлээ хянах</translation> <translation id="7497767806359279797">Хэл болон гарыг сонгох</translation> <translation id="7526573455193969409">Сүлжээг хянаж байж болзошгүй</translation> <translation id="7536035074519304529">IP хаяг: <ph name="ADDRESS" /></translation> @@ -648,11 +657,13 @@ <translation id="8351131234907093545">Тэмдэглэл үүсгэх</translation> <translation id="8371779926711439835">Нэг үсгээр урагшлуулах</translation> <translation id="8375916635258623388">Энэ <ph name="DEVICE_NAME" /> болон таны утас автоматаар холбогдоно</translation> +<translation id="8380784334203145311">Сайхан амраарай,</translation> <translation id="8388750414311082622">Сүүлийн дэлгэцийг устгах боломжгүй байна.</translation> <translation id="8392451568018454956"><ph name="USER_EMAIL_ADDRESS" />-ын сонголтын цэс</translation> <translation id="8394567579869570560">Таны эцэг эх энэ төхөөрөмжийг түгжсэн</translation> <translation id="8412677897383510995">Дэлгэцийн тохиргоог харуулах</translation> <translation id="8425213833346101688">Өөрчлөлт</translation> +<translation id="8426708595819210923">Оройн мэнд <ph name="GIVEN_NAME" />,</translation> <translation id="8427213022735114808">Диктафон дуу хоолойгоор дурын текстийн талбарт бичихийг зөвшөөрөхийн тулд таны дуу хоолойг Google-д илгээдэг.</translation> <translation id="8428213095426709021">Тохиргоо</translation> <translation id="8433186206711564395">Сүлжээний тохиргоо</translation>
diff --git a/ash/strings/ash_strings_mr.xtb b/ash/strings/ash_strings_mr.xtb index 36553cc..22898413 100644 --- a/ash/strings/ash_strings_mr.xtb +++ b/ash/strings/ash_strings_mr.xtb
@@ -11,6 +11,7 @@ <translation id="1056775291175587022">नेटवर्क नाहीत</translation> <translation id="1059194134494239015"><ph name="DISPLAY_NAME" />: <ph name="RESOLUTION" /></translation> <translation id="108486256082349153">सेल्युलर: <ph name="ADDRESS" /></translation> +<translation id="1087110696012418426">शुभ दुपार <ph name="GIVEN_NAME" />,</translation> <translation id="109942774857561566">मला कंटाळा आला आहे</translation> <translation id="1104084341931202936">ॲक्सेसिबिलिटी सेटिंग्ज दाखवा</translation> <translation id="1104621072296271835">तुमची डिव्हाइस एकत्र आणखी चांगले काम करतात</translation> @@ -71,6 +72,7 @@ <translation id="1677472565718498478"><ph name="TIME" /> शिल्लक</translation> <translation id="1698080062160024910"><ph name="TOTAL_TIME" /> टायमर· <ph name="LABEL" /></translation> <translation id="1698760176351776263">IPv6 पत्ता: <ph name="ADDRESS" /></translation> +<translation id="1708345662127501511">डेस्क: <ph name="DESK_NAME" /></translation> <translation id="1709762881904163296">नेटवर्क सेटिंग्ज</translation> <translation id="1743570585616704562">ओळखले नाही</translation> <translation id="1746730358044914197">तुमच्या ॲडमिनिस्ट्रेटरद्वारे कॉन्फिगर केलेल्या इनपुट पद्धती.</translation> @@ -107,6 +109,7 @@ <translation id="2018630726571919839">मला एक विनोद सांगा</translation> <translation id="2050339315714019657">पोर्ट्रेट</translation> <translation id="2067602449040652523">कीबोर्डची चमक</translation> +<translation id="2083190527011054446">शुभ रात्री <ph name="GIVEN_NAME" />,</translation> <translation id="209965399369889474">नेटवर्कशी कनेक्ट केलेले नाही</translation> <translation id="2126242104232412123">नवीन डेस्क</translation> <translation id="2127372758936585790">निम्न-उर्जेचे चार्जर</translation> @@ -185,6 +188,7 @@ <translation id="3009178788565917040">आउटपुट</translation> <translation id="3033545621352269033">सुरू</translation> <translation id="3038571455154067151">साइन इन करण्यासाठी, तुमचा Family Link पालक ॲक्सेस कोड एंटर करा</translation> +<translation id="3045488863354895414">शुभ दुपार,</translation> <translation id="3051128274746680507">तुमचे व्यवस्थापित वापरकर्ता प्रोफाइल लवकरच काढले जाईल. अधिक जाणून घेण्यासाठी साइन इन करा.</translation> <translation id="3055162170959710888">तुम्ही हे डिव्हाइस आज <ph name="USED_TIME" /> साठी वापरले</translation> <translation id="3076778413190775903">स्थिती ट्रे, वेळ <ph name="TIME" />, @@ -304,6 +308,7 @@ <translation id="4261870227682513959">सूचना सेटिंग्ज दाखवा. सूचना बंद आहेत</translation> <translation id="4269883910223712419">या डिव्हाइसचे प्रशासन पुढील गोष्टी करू शकते:</translation> <translation id="4279490309300973883">मिररिंग</translation> +<translation id="4294319844246081198">शुभ प्रभात <ph name="GIVEN_NAME" />,</translation> <translation id="4296136865091727875">सर्व <ph name="COUNT" /> सूचना साफ करा</translation> <translation id="4303223480529385476">स्थिती क्षेत्राचा विस्तार करा</translation> <translation id="4321179778687042513">ctrl</translation> @@ -320,6 +325,7 @@ <translation id="4421231901400348175">दूरस्त सहाय्याद्वारे <ph name="HELPER_NAME" /> सह आपल्या स्क्रीनचे नियंत्रण शेअर करत आहे.</translation> <translation id="4430019312045809116">व्हॉल्यूम</translation> <translation id="4450893287417543264">पुन्हा दाखवू नका</translation> +<translation id="445864333228800152">शुभ संध्याकाळ,</translation> <translation id="4458688154122353284">स्क्रीन रेकॉर्डिंग थांबवा</translation> <translation id="4477350412780666475">पुढील ट्रॅक</translation> <translation id="4477892968187500306">या डिव्हाइसवर कदाचित Google ने पडताळणी न केलेल्या ॲप्सचा समावेश असू शकतो.</translation> @@ -430,6 +436,7 @@ <translation id="5887866489674258948">गडद मोड</translation> <translation id="5895138241574237353">रीस्टार्ट करा</translation> <translation id="5901316534475909376">Shift+Esc</translation> +<translation id="5909862606227538307">इनॅक्टिव्ह डेस्क.</translation> <translation id="5911909173233110115"><ph name="USERNAME" /> (<ph name="MAIL" />)</translation> <translation id="5916664084637901428">सुरू</translation> <translation id="5920710855273935292">माइक म्यूट केलेला आहे.</translation> @@ -561,8 +568,10 @@ <translation id="7405710164030118432">डिव्हाइस अनलॉक करण्यासाठी, तुमचा Family Link पालक ॲक्सेस कोड एंटर करा</translation> <translation id="741244894080940828">रूपांतर</translation> <translation id="742594950370306541">कॅमेरा वापरात आहे.</translation> +<translation id="742608627846767349">शुभ प्रभात,</translation> <translation id="743058460480092004">कॅमेरा आणि मायक्रोफोन वापरात आहेत.</translation> <translation id="7466449121337984263">कृपया सेन्सरला स्पर्श करा</translation> +<translation id="7477793887173910789">व्हिडिओ पाहा आणि बरेच काही नियंत्रित करा</translation> <translation id="7497767806359279797">भाषा आणि कीबोर्ड निवडा</translation> <translation id="7526573455193969409">नेटवर्कचे परीक्षण केले जाऊ शकते</translation> <translation id="7536035074519304529">IP पत्ता: <ph name="ADDRESS" /></translation> @@ -647,11 +656,13 @@ <translation id="8351131234907093545">टीप तयार करा</translation> <translation id="8371779926711439835">एक अक्षर पुढे जा</translation> <translation id="8375916635258623388">हे <ph name="DEVICE_NAME" />आणि तुमचा फोन आपोआप कनेक्ट होतील</translation> +<translation id="8380784334203145311">शुभ रात्री,</translation> <translation id="8388750414311082622">शेवटचा डेस्क काढून टाकू शकत नाही.</translation> <translation id="8392451568018454956"><ph name="USER_EMAIL_ADDRESS" /> साठी पर्याय मेनू</translation> <translation id="8394567579869570560">तुमच्या पालकाने हे डिव्हाइस लॉक केले</translation> <translation id="8412677897383510995">डिस्प्ले सेटिंग्ज दाखवा</translation> <translation id="8425213833346101688">बदल करा</translation> +<translation id="8426708595819210923">शुभ संध्याकाळ <ph name="GIVEN_NAME" />,</translation> <translation id="8427213022735114808">कोणत्याही मजकूर फील्डमध्ये व्हॉइस टायपिंगची अनुमती देण्यासाठी डिक्टेशन तुमचा व्हॉइस Google ला पाठवेल.</translation> <translation id="8428213095426709021">सेटिंग्ज</translation> <translation id="8433186206711564395">नेटवर्क सेटिंग्ज</translation>
diff --git a/ash/strings/ash_strings_ms.xtb b/ash/strings/ash_strings_ms.xtb index b67758e..82052877 100644 --- a/ash/strings/ash_strings_ms.xtb +++ b/ash/strings/ash_strings_ms.xtb
@@ -11,6 +11,7 @@ <translation id="1056775291175587022">0 rangkaian</translation> <translation id="1059194134494239015"><ph name="DISPLAY_NAME" />: <ph name="RESOLUTION" /></translation> <translation id="108486256082349153">Selular: <ph name="ADDRESS" /></translation> +<translation id="1087110696012418426">Selamat tengah hari <ph name="GIVEN_NAME" />,</translation> <translation id="109942774857561566">Saya bosan</translation> <translation id="1104084341931202936">Tunjukkan tetapan kebolehaksesan</translation> <translation id="1104621072296271835">Peranti anda akan berfungsi lebih baik bersama-sama</translation> @@ -71,6 +72,7 @@ <translation id="1677472565718498478">Berbaki <ph name="TIME" /></translation> <translation id="1698080062160024910">Pemasa <ph name="TOTAL_TIME" /> · <ph name="LABEL" /></translation> <translation id="1698760176351776263">Alamat IPv6: <ph name="ADDRESS" /></translation> +<translation id="1708345662127501511">Meja: <ph name="DESK_NAME" /></translation> <translation id="1709762881904163296">Tetapan Rangkaian</translation> <translation id="1743570585616704562">Tidak dikenali</translation> <translation id="1746730358044914197">Kaedah masukan dikonfigurasi oleh pentadbir anda.</translation> @@ -107,6 +109,7 @@ <translation id="2018630726571919839">Beritahu saya jenaka</translation> <translation id="2050339315714019657">Potret</translation> <translation id="2067602449040652523">Kecerahan papan kekunci</translation> +<translation id="2083190527011054446">Selamat malam <ph name="GIVEN_NAME" />,</translation> <translation id="209965399369889474">Tidak bersambung ke rangkaian</translation> <translation id="2126242104232412123">Meja baharu</translation> <translation id="2127372758936585790">Pengecas berkuasa rendah</translation> @@ -185,6 +188,7 @@ <translation id="3009178788565917040">Output</translation> <translation id="3033545621352269033">Dihidupkan</translation> <translation id="3038571455154067151">Untuk log masuk, masukkan kod akses ibu bapa Family Link anda</translation> +<translation id="3045488863354895414">Selamat tengah hari,</translation> <translation id="3051128274746680507">Profil pengguna di bawah seliaan anda akan dialih keluar tidak lama lagi. Log masuk untuk mengetahui lebih lanjut.</translation> <translation id="3055162170959710888">Anda menggunakan peranti ini selama <ph name="USED_TIME" /> hari ini</translation> <translation id="3076778413190775903">Dulang status, masa <ph name="TIME" />, @@ -305,6 +309,7 @@ <translation id="4261870227682513959">Tunjukkan tetapan pemberitahuan. Pemberitahuan dimatikan</translation> <translation id="4269883910223712419">Pentadbir peranti ini berkeupayaan untuk:</translation> <translation id="4279490309300973883">Pencerminan</translation> +<translation id="4294319844246081198">Selamat pagi <ph name="GIVEN_NAME" />,</translation> <translation id="4296136865091727875">Kosongkan kesemua <ph name="COUNT" /> pemberitahuan</translation> <translation id="4303223480529385476">Kembangkan area status</translation> <translation id="4321179778687042513">ctrl</translation> @@ -321,6 +326,7 @@ <translation id="4421231901400348175">Berkongsi kawalan skrin anda dengan <ph name="HELPER_NAME" /> melalui Bantuan Jauh.</translation> <translation id="4430019312045809116">Kelantangan</translation> <translation id="4450893287417543264">Jangan tunjukkan lagi</translation> +<translation id="445864333228800152">Selamat petang,</translation> <translation id="4458688154122353284">Hentikan rakaman skrin</translation> <translation id="4477350412780666475">Lagu Seterusnya</translation> <translation id="4477892968187500306">Peranti ini mungkin mengandungi apl yang belum disahkan oleh Google.</translation> @@ -431,6 +437,7 @@ <translation id="5887866489674258948">Mod Gelap</translation> <translation id="5895138241574237353">Mulakan Semula</translation> <translation id="5901316534475909376">Shift+Esc</translation> +<translation id="5909862606227538307">Meja tidak aktif.</translation> <translation id="5911909173233110115"><ph name="USERNAME" /> (<ph name="MAIL" />)</translation> <translation id="5916664084637901428">Hidupkan</translation> <translation id="5920710855273935292">Mikrofon diredamkan.</translation> @@ -562,8 +569,10 @@ <translation id="7405710164030118432">Untuk membuka kunci peranti, masukkan kod akses ibu bapa Family Link anda</translation> <translation id="741244894080940828">penukaran</translation> <translation id="742594950370306541">Kamera sedang digunakan.</translation> +<translation id="742608627846767349">Selamat pagi,</translation> <translation id="743058460480092004">Kamera dan mikrofon sedang digunakan.</translation> <translation id="7466449121337984263">Sila sentuh penderia</translation> +<translation id="7477793887173910789">Kawal muzik, video anda dan banyak lagi</translation> <translation id="7497767806359279797">Pilih bahasa dan papan kekunci</translation> <translation id="7526573455193969409">Rangkaian mungkin dipantau</translation> <translation id="7536035074519304529">Alamat IP: <ph name="ADDRESS" /></translation> @@ -648,11 +657,13 @@ <translation id="8351131234907093545">Buat nota</translation> <translation id="8371779926711439835">Maju satu huruf</translation> <translation id="8375916635258623388"><ph name="DEVICE_NAME" /> ini dan telefon anda akan disambungkan secara automatik</translation> +<translation id="8380784334203145311">Selamat malam,</translation> <translation id="8388750414311082622">Meja terakhir tidak boleh dialih keluar.</translation> <translation id="8392451568018454956">Menu pilihan untuk <ph name="USER_EMAIL_ADDRESS" /></translation> <translation id="8394567579869570560">Ibu/bapa anda mengunci peranti ini</translation> <translation id="8412677897383510995">Tunjukkan tetapan paparan</translation> <translation id="8425213833346101688">Tukar</translation> +<translation id="8426708595819210923">Selamat petang <ph name="GIVEN_NAME" />,</translation> <translation id="8427213022735114808">Pengimlakan menghantar suara anda kepada Google untuk membolehkan penaipan suara dalam mana-mana medan teks.</translation> <translation id="8428213095426709021">Tetapan</translation> <translation id="8433186206711564395">Tetapan rangkaian</translation>
diff --git a/ash/strings/ash_strings_my.xtb b/ash/strings/ash_strings_my.xtb index 458f8bf8..247c7fc 100644 --- a/ash/strings/ash_strings_my.xtb +++ b/ash/strings/ash_strings_my.xtb
@@ -11,6 +11,7 @@ <translation id="1056775291175587022">ကွန်ရက် မရှိပါ</translation> <translation id="1059194134494239015"><ph name="DISPLAY_NAME" />− <ph name="RESOLUTION" /></translation> <translation id="108486256082349153">ဆယ်လူလာ− <ph name="ADDRESS" /></translation> +<translation id="1087110696012418426">မင်္ဂလာ နေ့လယ်ခင်းပါ <ph name="GIVEN_NAME" />၊</translation> <translation id="109942774857561566">ပျင်းနေတယ်</translation> <translation id="1104084341931202936">အများသုံးစွဲနိုင်မှု ဆက်တင်များကို ပြရန်</translation> <translation id="1104621072296271835">သင်၏စက်ပစ္စည်းများကို အတူတကွအသုံးပြုလျှင် ပိုမိုကောင်းမွန်ပါသည်</translation> @@ -71,6 +72,7 @@ <translation id="1677472565718498478"><ph name="TIME" /> ကျန်ပါသည်</translation> <translation id="1698080062160024910"><ph name="TOTAL_TIME" /> တိုင်မာ · <ph name="LABEL" /></translation> <translation id="1698760176351776263">IPv6 လိပ်စာ− <ph name="ADDRESS" /></translation> +<translation id="1708345662127501511">မျက်နှာပြင်နေရာ - <ph name="DESK_NAME" /></translation> <translation id="1709762881904163296">ကွန်ရက်ဆက်တင်များ</translation> <translation id="1743570585616704562">မသိပါ</translation> <translation id="1746730358044914197">ထည့်သွင်းရန်နည်းလမ်းများကို သင်၏ စီမံခန့်ခွဲသူက စီစဉ်သတ်မှတ်ထားခြင်းဖြစ်သည်။</translation> @@ -107,6 +109,7 @@ <translation id="2018630726571919839">ဟာသတစ်ခု ပြောပါ</translation> <translation id="2050339315714019657">ဒေါင်လိုက်</translation> <translation id="2067602449040652523">ကီးဘုတ် တောက်ပမှု</translation> +<translation id="2083190527011054446">မင်္ဂလာ ညချမ်းပါ <ph name="GIVEN_NAME" />၊</translation> <translation id="209965399369889474">ကွန်ရက်ချိတ်ဆက်မထားပါ</translation> <translation id="2126242104232412123">မျက်နှာပြင်နေရာ အသစ်</translation> <translation id="2127372758936585790">ပါဝါနိမ့် အားသွင်းစက်</translation> @@ -185,6 +188,7 @@ <translation id="3009178788565917040">အထွက်</translation> <translation id="3033545621352269033">ဖွင့်ရန်</translation> <translation id="3038571455154067151">လက်မှတ်ထိုးဝင်ရန် သင့် Family Link မိဘသုံးကုဒ် ထည့်ပါ</translation> +<translation id="3045488863354895414">မင်္ဂလာ နေ့လယ်ခင်းပါ၊</translation> <translation id="3051128274746680507">သင်၏ ကြီးကြပ်ခံအသုံးပြုသူပရိုဖိုင်ကို မကြာမီ ဖယ်ရှားလိုက်ပါမည်။ ပိုမိုလေ့လာရန် လက်မှတ်ထိုးဝင်ပါ။</translation> <translation id="3055162170959710888">သင်သည် ယနေ့အဖို့ ဤစက်ကို <ph name="USED_TIME" /> သုံးထားပါသည်</translation> <translation id="3076778413190775903">အခြေအနေပြ ဗန်း၊ အချိန် <ph name="TIME" />၊ @@ -304,6 +308,7 @@ <translation id="4261870227682513959">အကြောင်းကြားချက်ဆက်တင်များကို ပြရန်။ အကြောင်းကြားချက်များကို ပိတ်ထားသည်</translation> <translation id="4269883910223712419">ဤစက်ပစ္စည်း၏ စီမံခန့်ခွဲသူသည် အောက်ပါတို့ကို လုပ်နိုင်သည်−</translation> <translation id="4279490309300973883">ထင်ဟပ်ပေးနေ</translation> +<translation id="4294319844246081198">မင်္ဂလာ နံနက်ခင်းပါ <ph name="GIVEN_NAME" />၊</translation> <translation id="4296136865091727875">သတိပေးချက် <ph name="COUNT" /> ခုလုံးကို ဖယ်ရှားပါ</translation> <translation id="4303223480529385476">အခြေအနေပြ နေရာကို ချဲ့ရန်</translation> <translation id="4321179778687042513">ctrl</translation> @@ -320,6 +325,7 @@ <translation id="4421231901400348175">အဝေးမှ ထောက်ကူခြင်း ဆိုသည်မှ တဆင့် သင့်ဖန်သားပြင်အား <ph name="HELPER_NAME" /> နှင့် မျှဝေသုံးစွဲခြင်း။</translation> <translation id="4430019312045809116">ပမာဏ</translation> <translation id="4450893287417543264">ထပ်မပြပါနှင့်</translation> +<translation id="445864333228800152">မင်္ဂလာ ညနေခင်းပါ၊</translation> <translation id="4458688154122353284">ဖန်သားပြင်ရိုက်ကူးမှု ရပ်ရန်</translation> <translation id="4477350412780666475">နောက်တစ်ပုဒ်</translation> <translation id="4477892968187500306">ဤစက်တွင် Google က အတည်ပြုမထားသော အက်ပ်များ ပါဝင်နိုင်သည်။</translation> @@ -430,6 +436,7 @@ <translation id="5887866489674258948">အမှောင်မုဒ်</translation> <translation id="5895138241574237353">ပြန်စတင်မည</translation> <translation id="5901316534475909376">Shift+Esc</translation> +<translation id="5909862606227538307">အသုံးမပြုသော မျက်နှာပြင်နေရာ။</translation> <translation id="5911909173233110115"><ph name="USERNAME" /> (<ph name="MAIL" />)</translation> <translation id="5916664084637901428">ဖွင့်ရန်</translation> <translation id="5920710855273935292">မိုက်ပိတ်ထားသည်။</translation> @@ -561,8 +568,10 @@ <translation id="7405710164030118432">စက်ပစ္စည်းကို လော့ခ်ဖွင့်ရန် သင်၏ Family Link မိဘသုံးခွင့်ကုဒ်ကို ထည့်ပါ</translation> <translation id="741244894080940828">ပြောင်းလဲခြင်း</translation> <translation id="742594950370306541">ကင်မရာကို အသုံးပြုနေသည်။</translation> +<translation id="742608627846767349">မင်္ဂလာ နံနက်ခင်းပါ၊</translation> <translation id="743058460480092004">ကင်မရာ နှင့် မိုက်ခရိုဖုန်းကို အသုံးပြုနေသည်။</translation> <translation id="7466449121337984263">အာရုံခံကိရိယာကို ထိပါ</translation> +<translation id="7477793887173910789">သင့်သီချင်း၊ ဗီဒီယိုနှင့် အခြားအရာများ ထိန်းချုပ်ရန်</translation> <translation id="7497767806359279797">ဘာသာစကားနှင့် ကီးဘုတ်ကို ရွေးရန်</translation> <translation id="7526573455193969409">ကွန်ရက်ကို စောင့်ကြည့်နိုင်ပါသည်</translation> <translation id="7536035074519304529">အိုင်ပီလိပ်စာ− <ph name="ADDRESS" /></translation> @@ -647,11 +656,13 @@ <translation id="8351131234907093545">မှတ်စုရေးရန်</translation> <translation id="8371779926711439835">အက္ခရာအလိုက် ရှေ့သို့သွားရန်</translation> <translation id="8375916635258623388">ဤ <ph name="DEVICE_NAME" /> နှင့် သင့်ဖုန်းတို့ အလိုအလျောက် ချိတ်ဆက်ပါမည်</translation> +<translation id="8380784334203145311">မင်္ဂလာ ညချမ်းပါ၊</translation> <translation id="8388750414311082622">နောက်ဆုံးစားပွဲကို ဖယ်ရှား၍မရပါ။</translation> <translation id="8392451568018454956"><ph name="USER_EMAIL_ADDRESS" /> အတွက် မီနျူး ရွေးချယ်စရာများ</translation> <translation id="8394567579869570560">ဤစက်ကို သင့်မိဘက လော့ခ်ချထားသည်</translation> <translation id="8412677897383510995">ဖန်သားပြင်ပြသမှုဆက်တင်များကို ပြရန်</translation> <translation id="8425213833346101688">ပြောင်းရန်</translation> +<translation id="8426708595819210923">မင်္ဂလာ ညနေခင်းပါ <ph name="GIVEN_NAME" />၊</translation> <translation id="8427213022735114808">စာရိုက်ရန်အကွက်များတွင် စကားသံဖြင့်စာရိုက်ခြင်းကို ခွင့်ပြုရန် Dictation သည် သင့်အသံကို Google သို့ ပို့သည်။</translation> <translation id="8428213095426709021">ဆက်တင်များ</translation> <translation id="8433186206711564395">ကွန်ရက် ဆက်တင်များ</translation>
diff --git a/ash/strings/ash_strings_ne.xtb b/ash/strings/ash_strings_ne.xtb index 27c1ed4..8cdc6659 100644 --- a/ash/strings/ash_strings_ne.xtb +++ b/ash/strings/ash_strings_ne.xtb
@@ -563,6 +563,7 @@ <translation id="742594950370306541">क्यामेरा प्रयोगमा छ।</translation> <translation id="743058460480092004">क्यामेरा र माइक्रोफोन प्रयोगमा छ।</translation> <translation id="7466449121337984263">कृपया फिंगरप्रिन्ट सेन्सरमा छुनुहोस्</translation> +<translation id="7477793887173910789">आफ्नो सङ्गीत, भिडियो र थप कुराहरू नियन्त्रण गर्नुहोस्</translation> <translation id="7497767806359279797">भाषा तथा किबोर्ड छनौट गर्नुहोस्</translation> <translation id="7526573455193969409">नेटवर्कको अनुगमन गरिने सम्भावना छ</translation> <translation id="7536035074519304529">IP ठेगाना: <ph name="ADDRESS" /></translation>
diff --git a/ash/strings/ash_strings_nl.xtb b/ash/strings/ash_strings_nl.xtb index 215cc727..dd2b5c6f 100644 --- a/ash/strings/ash_strings_nl.xtb +++ b/ash/strings/ash_strings_nl.xtb
@@ -11,6 +11,7 @@ <translation id="1056775291175587022">Geen netwerken</translation> <translation id="1059194134494239015"><ph name="DISPLAY_NAME" />: <ph name="RESOLUTION" /></translation> <translation id="108486256082349153">Mobiel: <ph name="ADDRESS" /></translation> +<translation id="1087110696012418426">Goedemiddag <ph name="GIVEN_NAME" />,</translation> <translation id="109942774857561566">Ik verveel me</translation> <translation id="1104084341931202936">Toegankelijkheidsinstellingen weergeven</translation> <translation id="1104621072296271835">Je apparaten werken samen nog beter</translation> @@ -71,6 +72,7 @@ <translation id="1677472565718498478"><ph name="TIME" /> resterend</translation> <translation id="1698080062160024910">Timer van <ph name="TOTAL_TIME" /> · <ph name="LABEL" /></translation> <translation id="1698760176351776263">IPv6-adres: <ph name="ADDRESS" /></translation> +<translation id="1708345662127501511">Bureau: <ph name="DESK_NAME" /></translation> <translation id="1709762881904163296">Netwerkinstellingen</translation> <translation id="1743570585616704562">Niet herkend</translation> <translation id="1746730358044914197">Invoermethoden worden ingesteld door je beheerder.</translation> @@ -107,6 +109,7 @@ <translation id="2018630726571919839">Vertel me een grap</translation> <translation id="2050339315714019657">Staand</translation> <translation id="2067602449040652523">Toetsenbordhelderheid</translation> +<translation id="2083190527011054446">Goedenacht <ph name="GIVEN_NAME" />,</translation> <translation id="209965399369889474">Niet verbonden met netwerk</translation> <translation id="2126242104232412123">Nieuw bureau</translation> <translation id="2127372758936585790">Laag-vermogen-lader</translation> @@ -185,6 +188,7 @@ <translation id="3009178788565917040">Uitgang</translation> <translation id="3033545621352269033">Aan</translation> <translation id="3038571455154067151">Voer je Family Link-toegangscode voor ouders in om in te loggen</translation> +<translation id="3045488863354895414">Goedemiddag,</translation> <translation id="3051128274746680507">Je gebruikersprofiel met beperkte rechten wordt binnenkort verwijderd. Log in voor meer informatie.</translation> <translation id="3055162170959710888">Je hebt dit apparaat vandaag <ph name="USED_TIME" /> gebruikt</translation> <translation id="3076778413190775903">Statusvak, tijd <ph name="TIME" />, @@ -304,6 +308,7 @@ <translation id="4261870227682513959">Instellingen voor meldingen weergeven. Meldingen zijn uitgeschakeld</translation> <translation id="4269883910223712419">De beheerder van dit apparaat kan het volgende doen:</translation> <translation id="4279490309300973883">Mirroring</translation> +<translation id="4294319844246081198">Goedemorgen <ph name="GIVEN_NAME" />,</translation> <translation id="4296136865091727875">Alle <ph name="COUNT" /> meldingen wissen</translation> <translation id="4303223480529385476">Statusgedeelte uitvouwen</translation> <translation id="4321179778687042513">ctrl</translation> @@ -320,6 +325,7 @@ <translation id="4421231901400348175">De controle over je scherm wordt gedeeld met <ph name="HELPER_NAME" /> via externe ondersteuning.</translation> <translation id="4430019312045809116">Volume</translation> <translation id="4450893287417543264">Niet meer tonen</translation> +<translation id="445864333228800152">Goedenavond,</translation> <translation id="4458688154122353284">Schermopname stoppen</translation> <translation id="4477350412780666475">Volgend nummer</translation> <translation id="4477892968187500306">Dit apparaat bevat mogelijk apps die niet zijn geverifieerd door Google.</translation> @@ -430,6 +436,7 @@ <translation id="5887866489674258948">Donkere modus</translation> <translation id="5895138241574237353">Opnieuw starten</translation> <translation id="5901316534475909376">Shift+Esc</translation> +<translation id="5909862606227538307">Inactief bureau.</translation> <translation id="5911909173233110115"><ph name="USERNAME" /> (<ph name="MAIL" />)</translation> <translation id="5916664084637901428">Aan</translation> <translation id="5920710855273935292">Microfoon is gedempt.</translation> @@ -561,8 +568,10 @@ <translation id="7405710164030118432">Geef je Family Link-toegangscode voor ouders op om het apparaat te ontgrendelen</translation> <translation id="741244894080940828">conversie</translation> <translation id="742594950370306541">Camera is in gebruik.</translation> +<translation id="742608627846767349">Goedemorgen,</translation> <translation id="743058460480092004">Camera en microfoon zijn in gebruik.</translation> <translation id="7466449121337984263">Raak de sensor aan</translation> +<translation id="7477793887173910789">Je muziek, video's en meer bedienen</translation> <translation id="7497767806359279797">Taal en toetsenbord kiezen</translation> <translation id="7526573455193969409">Netwerk kan worden bijgehouden</translation> <translation id="7536035074519304529">IP-adres: <ph name="ADDRESS" /></translation> @@ -647,11 +656,13 @@ <translation id="8351131234907093545">Notitie maken</translation> <translation id="8371779926711439835">Vooruit per letter</translation> <translation id="8375916635258623388">Deze <ph name="DEVICE_NAME" /> en je telefoon maken automatisch verbinding</translation> +<translation id="8380784334203145311">Goedenacht,</translation> <translation id="8388750414311082622">Het laatste bureaublad kan niet worden verwijderd.</translation> <translation id="8392451568018454956">Optiemenu voor <ph name="USER_EMAIL_ADDRESS" /></translation> <translation id="8394567579869570560">Je ouder heeft dit apparaat vergrendeld</translation> <translation id="8412677897383510995">Scherminstellingen weergeven</translation> <translation id="8425213833346101688">Wijzigen</translation> +<translation id="8426708595819210923">Goedenavond <ph name="GIVEN_NAME" />,</translation> <translation id="8427213022735114808">Bij dicteren wordt je stem verzonden naar Google, waardoor spraakgestuurd typen in tekstvelden mogelijk wordt.</translation> <translation id="8428213095426709021">Instellingen</translation> <translation id="8433186206711564395">Netwerkinstellingen</translation>
diff --git a/ash/strings/ash_strings_no.xtb b/ash/strings/ash_strings_no.xtb index fed2c70..c954652 100644 --- a/ash/strings/ash_strings_no.xtb +++ b/ash/strings/ash_strings_no.xtb
@@ -11,6 +11,7 @@ <translation id="1056775291175587022">Ingen nettverk</translation> <translation id="1059194134494239015"><ph name="DISPLAY_NAME" />: <ph name="RESOLUTION" /></translation> <translation id="108486256082349153">Mobil: <ph name="ADDRESS" /></translation> +<translation id="1087110696012418426">God ettermiddag, <ph name="GIVEN_NAME" /></translation> <translation id="109942774857561566">Jeg kjeder meg</translation> <translation id="1104084341931202936">Vis innstillinger for tilgjengelighet</translation> <translation id="1104621072296271835">Enhetene fungerer enda bedre sammen</translation> @@ -71,6 +72,7 @@ <translation id="1677472565718498478"><ph name="TIME" /> igjen</translation> <translation id="1698080062160024910">Nedtelling på <ph name="TOTAL_TIME" /> · <ph name="LABEL" /></translation> <translation id="1698760176351776263">IPv6-adresse: <ph name="ADDRESS" /></translation> +<translation id="1708345662127501511">Skrivebord: <ph name="DESK_NAME" /></translation> <translation id="1709762881904163296">Nettverksinnstillinger</translation> <translation id="1743570585616704562">Ikke gjenkjent</translation> <translation id="1746730358044914197">Inndatametoder konfigureres av administratoren din.</translation> @@ -107,6 +109,7 @@ <translation id="2018630726571919839">Fortell meg en vits</translation> <translation id="2050339315714019657">Stående</translation> <translation id="2067602449040652523">Lysstyrke på tastaturet</translation> +<translation id="2083190527011054446">God natt, <ph name="GIVEN_NAME" /></translation> <translation id="209965399369889474">Ikke koblet til nettverket</translation> <translation id="2126242104232412123">Nytt skrivebord</translation> <translation id="2127372758936585790">Lading med lav effekt</translation> @@ -185,6 +188,7 @@ <translation id="3009178788565917040">Utdata</translation> <translation id="3033545621352269033">På</translation> <translation id="3038571455154067151">For å logge på, skriv inn koden din for foreldretilgang til Family Link</translation> +<translation id="3045488863354895414">God ettermiddag</translation> <translation id="3051128274746680507">Den administrerte brukerprofilen din fjernes snart. Logg på for å finne ut mer.</translation> <translation id="3055162170959710888">Du har brukt denne enheten i <ph name="USED_TIME" /> i dag</translation> <translation id="3076778413190775903">Statusfelt, kl. <ph name="TIME" />, @@ -304,6 +308,7 @@ <translation id="4261870227682513959">Vis innstillinger for varsler. Varsler er av</translation> <translation id="4269883910223712419">Administratoren av denne enheten kan</translation> <translation id="4279490309300973883">Speiling</translation> +<translation id="4294319844246081198">God morgen, <ph name="GIVEN_NAME" /></translation> <translation id="4296136865091727875">Fjern alle <ph name="COUNT" /> varsler</translation> <translation id="4303223480529385476">Vis statusområdet</translation> <translation id="4321179778687042513">ctrl</translation> @@ -320,6 +325,7 @@ <translation id="4421231901400348175">Deler kontroll av skjermen med <ph name="HELPER_NAME" /> via fjernhjelp.</translation> <translation id="4430019312045809116">Volum</translation> <translation id="4450893287417543264">Ikke vis igjen</translation> +<translation id="445864333228800152">God kveld</translation> <translation id="4458688154122353284">Avslutt skjermopptak</translation> <translation id="4477350412780666475">Neste spor</translation> <translation id="4477892968187500306">Denne enheten kan ha apper som ikke er verifisert av Google.</translation> @@ -430,6 +436,7 @@ <translation id="5887866489674258948">Mørk modus</translation> <translation id="5895138241574237353">Start på nytt</translation> <translation id="5901316534475909376">Shift+Esc</translation> +<translation id="5909862606227538307">Inaktivt skrivebord.</translation> <translation id="5911909173233110115"><ph name="USERNAME" /> (<ph name="MAIL" />)</translation> <translation id="5916664084637901428">På</translation> <translation id="5920710855273935292">Lyden for mikrofonen er kuttet.</translation> @@ -561,8 +568,10 @@ <translation id="7405710164030118432">For å låse opp enheten, skriv inn koden din for foreldretilgang til Family Link</translation> <translation id="741244894080940828">omregning</translation> <translation id="742594950370306541">Kameraet er i bruk.</translation> +<translation id="742608627846767349">God morgen</translation> <translation id="743058460480092004">Kameraet og mikrofonen er i bruk.</translation> <translation id="7466449121337984263">Trykk på sensoren</translation> +<translation id="7477793887173910789">Styr musikk, video og mer</translation> <translation id="7497767806359279797">Velg språk og tastatur</translation> <translation id="7526573455193969409">Nettverket kan være overvåket</translation> <translation id="7536035074519304529">IP-adresse: <ph name="ADDRESS" /></translation> @@ -647,11 +656,13 @@ <translation id="8351131234907093545">Opprett et notat</translation> <translation id="8371779926711439835">Én bokstav frem</translation> <translation id="8375916635258623388"><ph name="DEVICE_NAME" /> og telefonen din kobles sammen automatisk</translation> +<translation id="8380784334203145311">God natt</translation> <translation id="8388750414311082622">Det siste skrivebordet kan ikke fjernes.</translation> <translation id="8392451568018454956">Alternativmenyen for <ph name="USER_EMAIL_ADDRESS" /></translation> <translation id="8394567579869570560">Forelderen din har låst denne enheten</translation> <translation id="8412677897383510995">Vis skjerminnstillinger</translation> <translation id="8425213833346101688">Endre</translation> +<translation id="8426708595819210923">God kveld, <ph name="GIVEN_NAME" /></translation> <translation id="8427213022735114808">Diktat sender stemmen din til Google for å muliggjøre stemmestyrt skriving i alle tekstfelt.</translation> <translation id="8428213095426709021">Innstillinger</translation> <translation id="8433186206711564395">Nettverksinnstillinger</translation>
diff --git a/ash/strings/ash_strings_or.xtb b/ash/strings/ash_strings_or.xtb index 4d1c2e4..f2df2d73 100644 --- a/ash/strings/ash_strings_or.xtb +++ b/ash/strings/ash_strings_or.xtb
@@ -563,6 +563,7 @@ <translation id="742594950370306541">କ୍ୟାମେରା ବ୍ୟବହାରରେ ଅଛି।</translation> <translation id="743058460480092004">କ୍ୟାମେରା ଓ ମାଇକ୍ରୋଫୋନ୍ ବ୍ୟବହାରରେ ଅଛି।</translation> <translation id="7466449121337984263">ଦୟାକରି ସେନସରକୁ ସ୍ପର୍ଶ କରନ୍ତୁ</translation> +<translation id="7477793887173910789">ଆପଣଙ୍କର ସଙ୍ଗୀତ, ଭିଡିଓଗୁଡ଼ିକ ଏବଂ ଆହୁରି ଅନେକ କିଛିକୁ ନିୟନ୍ତ୍ରଣ କରନ୍ତୁ</translation> <translation id="7497767806359279797">ଭାଷା ଏବଂ କୀବୋର୍ଡ ବାଛନ୍ତୁ</translation> <translation id="7526573455193969409">ନେଟ୍ୱର୍କ ଉପରେ ହୁଏତ ନଜର ରଖାଯାଇପାରେ</translation> <translation id="7536035074519304529">IP ଠିକଣା: <ph name="ADDRESS" /></translation>
diff --git a/ash/strings/ash_strings_pa.xtb b/ash/strings/ash_strings_pa.xtb index 0237bc1d..62bf1b67 100644 --- a/ash/strings/ash_strings_pa.xtb +++ b/ash/strings/ash_strings_pa.xtb
@@ -11,6 +11,7 @@ <translation id="1056775291175587022">ਕੋਈ ਨੈੱਟਵਰਕ ਨਹੀਂ</translation> <translation id="1059194134494239015"><ph name="DISPLAY_NAME" />: <ph name="RESOLUTION" /></translation> <translation id="108486256082349153">ਸੈਲਿਊਲਰ: <ph name="ADDRESS" /></translation> +<translation id="1087110696012418426">ਸਤਿ ਸ੍ਰੀ ਅਕਾਲ <ph name="GIVEN_NAME" />,</translation> <translation id="109942774857561566">ਮੈਂ ਬੋਰ ਹੋ ਚੁੱਕਾ/ਚੁੱਕੀ ਹਾਂ</translation> <translation id="1104084341931202936">ਪਹੁੰਚਯੋਗਤਾ ਸੈਟਿੰਗਾਂ ਦਿਖਾਓ</translation> <translation id="1104621072296271835">ਰਲ ਕੇ ਤੁਹਾਡੇ ਡੀਵਾਈਸ ਹੋਰ ਵੀ ਬਿਹਤਰ ਕੰਮ ਕਰਦੇ ਹਨ</translation> @@ -71,6 +72,7 @@ <translation id="1677472565718498478"><ph name="TIME" /> ਬਾਕੀ</translation> <translation id="1698080062160024910"><ph name="TOTAL_TIME" /> ਟਾਈਮਰ · <ph name="LABEL" /></translation> <translation id="1698760176351776263">IPv6 ਪਤਾ: <ph name="ADDRESS" /></translation> +<translation id="1708345662127501511">ਡੈਸਕ: <ph name="DESK_NAME" /></translation> <translation id="1709762881904163296">ਨੈੱਟਵਰਕ ਸੈਟਿੰਗਾਂ</translation> <translation id="1743570585616704562">ਪਛਾਣ ਨਹੀਂ ਹੋਈ</translation> <translation id="1746730358044914197">ਤੁਹਾਡੇ ਪ੍ਰਸ਼ਾਸਕ ਵੱਲੋਂ ਇਨਪੁੱਟ ਵਿਧੀਆਂ ਦਾ ਸੰਰੂਪਣ ਕੀਤਾ ਗਿਆ ਹੈ।</translation> @@ -107,6 +109,7 @@ <translation id="2018630726571919839">ਮੈਨੂੰ ਕੋਈ ਚੁਟਕਲਾ ਸੁਣਾਓ</translation> <translation id="2050339315714019657">ਪੋਰਟਰੇਟ</translation> <translation id="2067602449040652523">ਕੀ-ਬੋਰਡ ਚਮਕ</translation> +<translation id="2083190527011054446">ਸਤਿ ਸ੍ਰੀ ਅਕਾਲ <ph name="GIVEN_NAME" />,</translation> <translation id="209965399369889474">ਨੈੱਟਵਰਕ ਨਾਲ ਕਨੈਕਟ ਨਹੀਂ</translation> <translation id="2126242104232412123">ਨਵਾਂ ਡੈਸਕ</translation> <translation id="2127372758936585790">ਘੱਟ-ਪਾਵਰ ਦਾ ਚਾਰਜਰ</translation> @@ -185,6 +188,7 @@ <translation id="3009178788565917040">ਆਉਟਪੁਟ</translation> <translation id="3033545621352269033">ਚਾਲੂ</translation> <translation id="3038571455154067151">ਸਾਈਨ-ਇਨ ਕਰਨ ਲਈ, ਆਪਣਾ Family Link ਮਾਂ-ਪਿਓ ਪਹੁੰਚ ਕੋਡ ਦਾਖਲ ਕਰੋ</translation> +<translation id="3045488863354895414">ਸਤਿ ਸ੍ਰੀ ਅਕਾਲ,</translation> <translation id="3051128274746680507">ਤੁਹਾਡਾ ਨਿਗਰਾਨੀ ਕੀਤਾ ਵਰਤੋਂਕਾਰ ਪ੍ਰੋਫਾਈਲ ਜਲਦੀ ਹੀ ਹਟਾ ਦਿੱਤਾ ਜਾਵੇਗਾ। ਹੋਰ ਜਾਣਨ ਲਈ ਸਾਈਨ-ਇਨ ਕਰੋ।</translation> <translation id="3055162170959710888">ਤੁਸੀਂ ਅੱਜ ਇਸ ਡੀਵਾਈਸ ਨੂੰ <ph name="USED_TIME" /> ਤੱਕ ਵਰਤਿਆ</translation> <translation id="3076778413190775903">ਸਥਿਤੀ ਟ੍ਰੇ, ਸਮਾਂ <ph name="TIME" />, @@ -304,6 +308,7 @@ <translation id="4261870227682513959">ਸੂਚਨਾ ਸੈਟਿੰਗਾਂ ਦਿਖਾਓ। ਸੂਚਨਾਵਾਂ ਬੰਦ ਹਨ</translation> <translation id="4269883910223712419">ਇਸ ਡੀਵਾਈਸ ਦੇ ਪ੍ਰਸ਼ਾਸਕ ਕੋਲ ਇਹ ਕਰਨ ਦੀ ਸਮਰੱਥਾ ਹੈ:</translation> <translation id="4279490309300973883">ਪ੍ਰਤਿਬਿੰਬੀਕਰਨ</translation> +<translation id="4294319844246081198">ਸਤਿ ਸ੍ਰੀ ਅਕਾਲ <ph name="GIVEN_NAME" />,</translation> <translation id="4296136865091727875">ਸਾਰੀਆਂ <ph name="COUNT" /> ਸੂਚਨਾਵਾਂ ਕਲੀਅਰ ਕਰੋ</translation> <translation id="4303223480529385476">ਸਥਿਤੀ ਖੇਤਰ ਦਾ ਵਿਸਤਾਰ ਕਰੋ</translation> <translation id="4321179778687042513">ctrl</translation> @@ -320,6 +325,7 @@ <translation id="4421231901400348175">ਰਿਮੋਟ ਸਹਾਇਤਾ ਰਾਹੀਂ <ph name="HELPER_NAME" /> ਨਾਲ ਤੁਹਾਡੀ ਸਕ੍ਰੀਨ ਦਾ ਨਿਯੰਤਰਣ ਸ਼ੇਅਰ ਕਰ ਰਿਹਾ ਹੈ।</translation> <translation id="4430019312045809116">ਵੌਲਿਊਮ</translation> <translation id="4450893287417543264">ਦੁਬਾਰਾ ਨਾ ਦਿਖਾਓ</translation> +<translation id="445864333228800152">ਸਤਿ ਸ੍ਰੀ ਅਕਾਲ,</translation> <translation id="4458688154122353284">ਸਕ੍ਰੀਨ ਰਿਕਾਰਡਿੰਗ ਬੰਦ ਕਰੋ</translation> <translation id="4477350412780666475">ਅਗਲਾ ਟਰੈਕ</translation> <translation id="4477892968187500306">ਇਸ ਡੀਵਾਈਸ ਵਿੱਚ ਸ਼ਾਇਦ ਅਜਿਹੀਆਂ ਐਪਾਂ ਹੋਣ ਜਿਨ੍ਹਾਂ ਦੀ ਪੁਸ਼ਟੀ Google ਨੇ ਨਹੀਂ ਕੀਤੀ ਹੈ।</translation> @@ -430,6 +436,7 @@ <translation id="5887866489674258948">ਗੂੜ੍ਹਾ ਮੋਡ</translation> <translation id="5895138241574237353">ਰੀਸਟਾਰਟ ਕਰੋ</translation> <translation id="5901316534475909376">Shift+Esc</translation> +<translation id="5909862606227538307">ਅਕਿਰਿਆਸ਼ੀਲ ਡੈਸਕ।</translation> <translation id="5911909173233110115"><ph name="USERNAME" /> (<ph name="MAIL" />)</translation> <translation id="5916664084637901428">ਚਾਲੂ</translation> <translation id="5920710855273935292">ਮਾਈਕ ਨੂੰ ਮਿਊਟ ਕੀਤਾ ਹੋਇਆ ਹੈ।</translation> @@ -561,8 +568,10 @@ <translation id="7405710164030118432">ਡੀਵਾਈਸ ਨੂੰ ਅਣਲਾਕ ਕਰਨ ਲਈ, ਆਪਣਾ Family Link ਮਾਂ-ਪਿਓ ਪਹੁੰਚ ਕੋਡ ਦਾਖਲ ਕਰੋ</translation> <translation id="741244894080940828">ਰੂਪਾਂਤਰਨ</translation> <translation id="742594950370306541">ਕੈਮਰਾ ਵਰਤੋਂ ਵਿੱਚ ਹੈ।</translation> +<translation id="742608627846767349">ਸਤਿ ਸ੍ਰੀ ਅਕਾਲ,</translation> <translation id="743058460480092004">ਕੈਮਰਾ ਅਤੇ ਮਾਈਕ੍ਰੋਫੋਨ ਵਰਤੋਂ ਵਿੱਚ ਹਨ।</translation> <translation id="7466449121337984263">ਕਿਰਪਾ ਕਰਕੇ ਸੈਂਸਰ ਨੂੰ ਸਪਰਸ਼ ਕਰੋ</translation> +<translation id="7477793887173910789">ਆਪਣਾ ਸੰਗੀਤ, ਵੀਡੀਓ ਕੰਟਰੋਲ ਕਰੋ ਅਤੇ ਹੋਰ ਬਹੁਤ ਕੁਝ</translation> <translation id="7497767806359279797">ਭਾਸ਼ਾ ਅਤੇ ਕੀ-ਬੋਰਡ ਚੁਣੋ</translation> <translation id="7526573455193969409">ਹੋ ਸਕਦਾ ਹੈ ਕਿ ਨੈੱਟਵਰਕ ਦੀ ਨਿਗਰਾਨੀ ਹੋ ਰਹੀ ਹੋਵੇ</translation> <translation id="7536035074519304529">IP ਪਤਾ: <ph name="ADDRESS" /></translation> @@ -647,11 +656,13 @@ <translation id="8351131234907093545">ਨੋਟ-ਕਥਨ ਬਣਾਓ</translation> <translation id="8371779926711439835">ਇੱਕ ਅੱਖਰ ਅੱਗੇ ਜਾਓ</translation> <translation id="8375916635258623388">ਇਹ <ph name="DEVICE_NAME" /> ਅਤੇ ਤੁਹਾਡਾ ਫ਼ੋਨ ਸਵੈਚਲਿਤ ਤੌਰ 'ਤੇ ਕਨੈਕਟ ਹੋ ਜਾਣਗੇ</translation> +<translation id="8380784334203145311">ਸਤਿ ਸ੍ਰੀ ਅਕਾਲ,</translation> <translation id="8388750414311082622">ਆਖਰੀ ਡੈਸਕ ਨੂੰ ਹਟਾਇਆ ਨਹੀਂ ਜਾ ਸਕਦਾ।</translation> <translation id="8392451568018454956"><ph name="USER_EMAIL_ADDRESS" /> ਲਈ ਚੋਣਾਂ ਮੀਨੂ</translation> <translation id="8394567579869570560">ਤੁਹਾਡੇ ਮਾਂ-ਪਿਓ ਨੇ ਇਸ ਡੀਵਾਈਸ ਨੂੰ ਲਾਕ ਕਰ ਦਿੱਤਾ ਹੈ</translation> <translation id="8412677897383510995">ਡਿਸਪਲੇ ਸੈਟਿੰਗਾਂ ਦਿਖਾਓ</translation> <translation id="8425213833346101688">ਬਦਲੋ</translation> +<translation id="8426708595819210923">ਸਤਿ ਸ੍ਰੀ ਅਕਾਲ <ph name="GIVEN_NAME" />,</translation> <translation id="8427213022735114808">ਕਿਸੇ ਵੀ ਲਿਖਤ ਖੇਤਰ ਵਿੱਚ ਅਵਾਜ਼ ਨੂੰ ਟਾਈਪ ਕਰਨ ਲਈ ਬੋਲ ਕੇ ਲਿਖਵਾਉਣ ਰਾਹੀਂ ਤੁਹਾਡੀ ਅਵਾਜ਼ Google ਨੂੰ ਭੇਜੀ ਜਾਵੇਗੀ।</translation> <translation id="8428213095426709021">ਸੈਟਿੰਗਾਂ</translation> <translation id="8433186206711564395">ਨੈੱਟਵਰਕ ਸੈਟਿੰਗਾਂ</translation>
diff --git a/ash/strings/ash_strings_pl.xtb b/ash/strings/ash_strings_pl.xtb index 65499bb1f..9a55941 100644 --- a/ash/strings/ash_strings_pl.xtb +++ b/ash/strings/ash_strings_pl.xtb
@@ -571,6 +571,7 @@ <translation id="742608627846767349">Dzień dobry,</translation> <translation id="743058460480092004">Aparat i mikrofon są używane.</translation> <translation id="7466449121337984263">Dotknij czytnika</translation> +<translation id="7477793887173910789">Steruj filmami, muzyką i innymi multimediami</translation> <translation id="7497767806359279797">Wybierz język i klawiaturę</translation> <translation id="7526573455193969409">Sieć może być monitorowana</translation> <translation id="7536035074519304529">Adres IP: <ph name="ADDRESS" /></translation>
diff --git a/ash/strings/ash_strings_pt-BR.xtb b/ash/strings/ash_strings_pt-BR.xtb index 8d20f59..5e5a9fc 100644 --- a/ash/strings/ash_strings_pt-BR.xtb +++ b/ash/strings/ash_strings_pt-BR.xtb
@@ -572,6 +572,7 @@ <translation id="742608627846767349">Bom dia,</translation> <translation id="743058460480092004">A câmera e o microfone estão em uso.</translation> <translation id="7466449121337984263">Toque no sensor</translation> +<translation id="7477793887173910789">Controle suas músicas, seus vídeos e muito mais</translation> <translation id="7497767806359279797">Escolher idioma e teclado</translation> <translation id="7526573455193969409">A rede pode ser monitorada</translation> <translation id="7536035074519304529">Endereço IP: <ph name="ADDRESS" /></translation>
diff --git a/ash/strings/ash_strings_pt-PT.xtb b/ash/strings/ash_strings_pt-PT.xtb index c3baf82..100840f 100644 --- a/ash/strings/ash_strings_pt-PT.xtb +++ b/ash/strings/ash_strings_pt-PT.xtb
@@ -11,6 +11,7 @@ <translation id="1056775291175587022">Nenhuma rede</translation> <translation id="1059194134494239015"><ph name="DISPLAY_NAME" />: <ph name="RESOLUTION" /></translation> <translation id="108486256082349153">Telemóvel: <ph name="ADDRESS" /></translation> +<translation id="1087110696012418426">Boa tarde, <ph name="GIVEN_NAME" />,</translation> <translation id="109942774857561566">Estou aborrecido</translation> <translation id="1104084341931202936">Mostrar definições de acessibilidade</translation> <translation id="1104621072296271835">Os seus dispositivos funcionam ainda melhor juntos</translation> @@ -71,6 +72,7 @@ <translation id="1677472565718498478"><ph name="TIME" /> restante(s)</translation> <translation id="1698080062160024910">Temporizador de <ph name="TOTAL_TIME" /> · <ph name="LABEL" /></translation> <translation id="1698760176351776263">Endereço IPv6: <ph name="ADDRESS" /></translation> +<translation id="1708345662127501511">Espaço de trabalho: <ph name="DESK_NAME" /></translation> <translation id="1709762881904163296">Definições de rede</translation> <translation id="1743570585616704562">Não reconhecida</translation> <translation id="1746730358044914197">Os métodos de introdução são configurados pelo gestor.</translation> @@ -107,6 +109,7 @@ <translation id="2018630726571919839">Conta-me uma anedota</translation> <translation id="2050339315714019657">Vertical</translation> <translation id="2067602449040652523">Brilho do teclado</translation> +<translation id="2083190527011054446">Boa noite, <ph name="GIVEN_NAME" />,</translation> <translation id="209965399369889474">Não está ligado à rede.</translation> <translation id="2126242104232412123">Novo espaço de trabalho</translation> <translation id="2127372758936585790">Carregador de baixo consumo</translation> @@ -185,6 +188,7 @@ <translation id="3009178788565917040">Saída</translation> <translation id="3033545621352269033">Ativada</translation> <translation id="3038571455154067151">Para iniciar sessão, introduza o código de acesso parental do Family Link</translation> +<translation id="3045488863354895414">Boa tarde,</translation> <translation id="3051128274746680507">O seu perfil de utilizador supervisionado será removido brevemente. Inicie sessão para saber mais.</translation> <translation id="3055162170959710888">Utilizou este dispositivo durante <ph name="USED_TIME" /> hoje.</translation> <translation id="3076778413190775903">Tabuleiro do estado, hora <ph name="TIME" />, @@ -304,6 +308,7 @@ <translation id="4261870227682513959">Mostrar definições de notificação. As notificações estão desativadas</translation> <translation id="4269883910223712419">O administrador deste dispositivo pode:</translation> <translation id="4279490309300973883">Espelhamento</translation> +<translation id="4294319844246081198">Bom dia, <ph name="GIVEN_NAME" />,</translation> <translation id="4296136865091727875">Limpar todas as <ph name="COUNT" /> notificações</translation> <translation id="4303223480529385476">Expandir área de estado</translation> <translation id="4321179778687042513">ctrl</translation> @@ -320,6 +325,7 @@ <translation id="4421231901400348175">A partilhar o controlo do seu ecrã com <ph name="HELPER_NAME" /> através da Assistência remota.</translation> <translation id="4430019312045809116">Volume</translation> <translation id="4450893287417543264">Não mostrar de novo</translation> +<translation id="445864333228800152">Boa noite,</translation> <translation id="4458688154122353284">Parar gravação de ecrã</translation> <translation id="4477350412780666475">Faixa seguinte</translation> <translation id="4477892968187500306">Este dispositivo pode conter aplicações que não foram validadas pela Google.</translation> @@ -430,6 +436,7 @@ <translation id="5887866489674258948">Modo escuro</translation> <translation id="5895138241574237353">Reiniciar</translation> <translation id="5901316534475909376">Shift+Esc</translation> +<translation id="5909862606227538307">Espaço de trabalho inativo.</translation> <translation id="5911909173233110115"><ph name="USERNAME" /> (<ph name="MAIL" />)</translation> <translation id="5916664084637901428">Ativado</translation> <translation id="5920710855273935292">O som do microfone está desativado.</translation> @@ -561,8 +568,10 @@ <translation id="7405710164030118432">Para desbloquear este dispositivo, introduza o código de acesso parental do seu Family Link.</translation> <translation id="741244894080940828">conversão</translation> <translation id="742594950370306541">A câmara está a ser utilizada.</translation> +<translation id="742608627846767349">Bom dia,</translation> <translation id="743058460480092004">A câmara e o microfone estão a ser utilizados.</translation> <translation id="7466449121337984263">Toque no sensor.</translation> +<translation id="7477793887173910789">Controle a sua música, vídeos e muito mais.</translation> <translation id="7497767806359279797">Escolher idioma e teclado</translation> <translation id="7526573455193969409">A rede pode ser monitorizada</translation> <translation id="7536035074519304529">Endereço IP: <ph name="ADDRESS" /></translation> @@ -647,11 +656,13 @@ <translation id="8351131234907093545">Criar nota</translation> <translation id="8371779926711439835">Avançar por letra</translation> <translation id="8375916635258623388">Este <ph name="DEVICE_NAME" /> e o telemóvel serão associados automaticamente.</translation> +<translation id="8380784334203145311">Boa noite,</translation> <translation id="8388750414311082622">Não é possível remover o último espaço de trabalho.</translation> <translation id="8392451568018454956">Menu de opções para <ph name="USER_EMAIL_ADDRESS" /></translation> <translation id="8394567579869570560">Os teus pais bloquearam este dispositivo</translation> <translation id="8412677897383510995">Mostrar definições de visualização</translation> <translation id="8425213833346101688">Alterar</translation> +<translation id="8426708595819210923">Boa noite, <ph name="GIVEN_NAME" />,</translation> <translation id="8427213022735114808">A introdução por voz envia a sua voz para o Google para permitir a digitação por voz em qualquer campo de texto.</translation> <translation id="8428213095426709021">Definições</translation> <translation id="8433186206711564395">Definições de rede</translation>
diff --git a/ash/strings/ash_strings_ro.xtb b/ash/strings/ash_strings_ro.xtb index 5dd6447e..026120f5 100644 --- a/ash/strings/ash_strings_ro.xtb +++ b/ash/strings/ash_strings_ro.xtb
@@ -11,6 +11,7 @@ <translation id="1056775291175587022">Nicio rețea</translation> <translation id="1059194134494239015"><ph name="DISPLAY_NAME" />: <ph name="RESOLUTION" /></translation> <translation id="108486256082349153">Celular: <ph name="ADDRESS" /></translation> +<translation id="1087110696012418426">Bună ziua, <ph name="GIVEN_NAME" />!</translation> <translation id="109942774857561566">M-am plictisit</translation> <translation id="1104084341931202936">Afișează setările de accesibilitate</translation> <translation id="1104621072296271835">Dispozitivele funcționează și mai bine împreună</translation> @@ -71,6 +72,7 @@ <translation id="1677472565718498478">Timp rămas: <ph name="TIME" /></translation> <translation id="1698080062160024910">Temporizator de <ph name="TOTAL_TIME" /> · <ph name="LABEL" /></translation> <translation id="1698760176351776263">Adresă IPv6: <ph name="ADDRESS" /></translation> +<translation id="1708345662127501511">Desktop: <ph name="DESK_NAME" /></translation> <translation id="1709762881904163296">Setări de rețea</translation> <translation id="1743570585616704562">Nu este recunoscută</translation> <translation id="1746730358044914197">Metodele de introducere a textului sunt configurate de administratorul tău.</translation> @@ -107,6 +109,7 @@ <translation id="2018630726571919839">Spune-mi o glumă</translation> <translation id="2050339315714019657">Portret</translation> <translation id="2067602449040652523">Luminozitatea tastaturii</translation> +<translation id="2083190527011054446">Bună seara, <ph name="GIVEN_NAME" />!</translation> <translation id="209965399369889474">Fără conexiune la rețea</translation> <translation id="2126242104232412123">Desktop nou</translation> <translation id="2127372758936585790">Încărcător de putere joasă</translation> @@ -185,6 +188,7 @@ <translation id="3009178788565917040">Ieșiri</translation> <translation id="3033545621352269033">Activat</translation> <translation id="3038571455154067151">Pentru a te conecta, introdu codul de acces pentru părinte Family Link</translation> +<translation id="3045488863354895414">Bună!</translation> <translation id="3051128274746680507">Profilul tău de utilizator monitorizat va fi eliminat în curând. Conectează-te pentru a afla mai multe.</translation> <translation id="3055162170959710888">Ai folosit acest dispozitiv <ph name="USED_TIME" /> astăzi</translation> <translation id="3076778413190775903">Bară de stare, durată <ph name="TIME" />, @@ -304,6 +308,7 @@ <translation id="4261870227682513959">Afișează setările pentru notificări. Notificările sunt dezactivate</translation> <translation id="4269883910223712419">Administratorul acestui dispozitiv poate:</translation> <translation id="4279490309300973883">Oglindire</translation> +<translation id="4294319844246081198">Bună dimineața, <ph name="GIVEN_NAME" />!</translation> <translation id="4296136865091727875">Șterge toate cele <ph name="COUNT" /> notificări</translation> <translation id="4303223480529385476">Extinde zona de stare</translation> <translation id="4321179778687042513">ctrl</translation> @@ -320,6 +325,7 @@ <translation id="4421231901400348175">În prezent, <ph name="HELPER_NAME" /> îți poate controla ecranul prin Asistență la distanță.</translation> <translation id="4430019312045809116">Volum</translation> <translation id="4450893287417543264">Nu mai afișa</translation> +<translation id="445864333228800152">Bună seara!</translation> <translation id="4458688154122353284">Oprește înregistrarea ecranului</translation> <translation id="4477350412780666475">Melodia următoare</translation> <translation id="4477892968187500306">Dispozitivul poate conține aplicații care nu au fost verificate de Google.</translation> @@ -430,6 +436,7 @@ <translation id="5887866489674258948">Mod întunecat</translation> <translation id="5895138241574237353">Reîncepe</translation> <translation id="5901316534475909376">Shift + Esc</translation> +<translation id="5909862606227538307">Desktop inactiv.</translation> <translation id="5911909173233110115"><ph name="USERNAME" /> (<ph name="MAIL" />)</translation> <translation id="5916664084637901428">Activat</translation> <translation id="5920710855273935292">Microfonul este dezactivat.</translation> @@ -561,8 +568,10 @@ <translation id="7405710164030118432">Pentru a debloca dispozitivul, introdu codul de acces parental pentru Family Link</translation> <translation id="741244894080940828">conversie</translation> <translation id="742594950370306541">Camera foto este în uz.</translation> +<translation id="742608627846767349">Bună dimineața!</translation> <translation id="743058460480092004">Camera foto și microfonul sunt în uz.</translation> <translation id="7466449121337984263">Atinge senzorul</translation> +<translation id="7477793887173910789">Gestionează muzica, videoclipurile și altele</translation> <translation id="7497767806359279797">Alege limba și tastatura</translation> <translation id="7526573455193969409">Este posibil ca rețeaua să fie monitorizată</translation> <translation id="7536035074519304529">Adresă IP: <ph name="ADDRESS" /></translation> @@ -647,11 +656,13 @@ <translation id="8351131234907093545">Creează o notă</translation> <translation id="8371779926711439835">Înainte cu o literă</translation> <translation id="8375916635258623388"><ph name="DEVICE_NAME" /> și telefonul se vor conecta automat</translation> +<translation id="8380784334203145311">Bună seara!</translation> <translation id="8388750414311082622">Ultimul desktop nu poate fi eliminat.</translation> <translation id="8392451568018454956">Meniu cu opțiuni pentru <ph name="USER_EMAIL_ADDRESS" /></translation> <translation id="8394567579869570560">Părintele tău a blocat dispozitivul</translation> <translation id="8412677897383510995">Afișează setările de afișare</translation> <translation id="8425213833346101688">Modificați</translation> +<translation id="8426708595819210923">Bună seara, <ph name="GIVEN_NAME" />!</translation> <translation id="8427213022735114808">Dictarea îți trimite vocea la Google pentru a permite tastarea vocală în orice câmp de text.</translation> <translation id="8428213095426709021">Setări</translation> <translation id="8433186206711564395">Setări de rețea</translation>
diff --git a/ash/strings/ash_strings_ru.xtb b/ash/strings/ash_strings_ru.xtb index d0d56f2..32ad9c0 100644 --- a/ash/strings/ash_strings_ru.xtb +++ b/ash/strings/ash_strings_ru.xtb
@@ -563,6 +563,7 @@ <translation id="742594950370306541">Камера используется.</translation> <translation id="743058460480092004">Камера и микрофон используются.</translation> <translation id="7466449121337984263">Приложите палец к сканеру.</translation> +<translation id="7477793887173910789">Управляйте воспроизведением музыки, видео и других медиафайлов</translation> <translation id="7497767806359279797">Выберите язык и клавиатуру</translation> <translation id="7526573455193969409">Сеть может отслеживаться</translation> <translation id="7536035074519304529">IP-адрес: <ph name="ADDRESS" /></translation>
diff --git a/ash/strings/ash_strings_si.xtb b/ash/strings/ash_strings_si.xtb index 2fd752c1..b251aeebf 100644 --- a/ash/strings/ash_strings_si.xtb +++ b/ash/strings/ash_strings_si.xtb
@@ -571,6 +571,7 @@ <translation id="742608627846767349">සුබ උදෑසනක්,</translation> <translation id="743058460480092004">කැමරාව හා මයික්රෆෝනය භාවිතයේ.</translation> <translation id="7466449121337984263">සංවේදකය ස්පර්ශ කරන්න</translation> +<translation id="7477793887173910789">ඔබේ සංගීත, වීඩියෝ, සහ තවත් ඒවා පාලන කරන්න</translation> <translation id="7497767806359279797">භාෂාව සහ යතුරු පුවරුව තෝරන්න</translation> <translation id="7526573455193969409">ජාලය නිරීක්ෂණය විය හැක</translation> <translation id="7536035074519304529">IP ලිපිනය: <ph name="ADDRESS" /></translation>
diff --git a/ash/strings/ash_strings_sk.xtb b/ash/strings/ash_strings_sk.xtb index 6d13215..2785236 100644 --- a/ash/strings/ash_strings_sk.xtb +++ b/ash/strings/ash_strings_sk.xtb
@@ -11,6 +11,7 @@ <translation id="1056775291175587022">Žiadne siete</translation> <translation id="1059194134494239015"><ph name="DISPLAY_NAME" />: <ph name="RESOLUTION" /></translation> <translation id="108486256082349153">Mobilné zariadenie: <ph name="ADDRESS" /></translation> +<translation id="1087110696012418426">Dobré popoludnie, <ph name="GIVEN_NAME" />,</translation> <translation id="109942774857561566">Nudím sa</translation> <translation id="1104084341931202936">Zobraziť nastavenia dostupnosti</translation> <translation id="1104621072296271835">Vaše zariadenia fungujú spoločne ešte lepšie</translation> @@ -71,6 +72,7 @@ <translation id="1677472565718498478">Zostávajúci čas: <ph name="TIME" /></translation> <translation id="1698080062160024910">Časovač na <ph name="TOTAL_TIME" /> · <ph name="LABEL" /></translation> <translation id="1698760176351776263">Adresa IPv6: <ph name="ADDRESS" /></translation> +<translation id="1708345662127501511">Plocha: <ph name="DESK_NAME" /></translation> <translation id="1709762881904163296">Nastavenia siete</translation> <translation id="1743570585616704562">Nerozpoznané</translation> <translation id="1746730358044914197">Metódy vstupu sú nakonfigurované vaším správcom.</translation> @@ -107,6 +109,7 @@ <translation id="2018630726571919839">Povedz mi vtip</translation> <translation id="2050339315714019657">Na výšku</translation> <translation id="2067602449040652523">Jas klávesnice</translation> +<translation id="2083190527011054446">Dobrú noc, <ph name="GIVEN_NAME" />,</translation> <translation id="209965399369889474">Nemáte pripojenie k sieti</translation> <translation id="2126242104232412123">Nová plocha</translation> <translation id="2127372758936585790">Nabíjačka s nízkym výkonom</translation> @@ -185,6 +188,7 @@ <translation id="3009178788565917040">Výstup</translation> <translation id="3033545621352269033">Zapnuté</translation> <translation id="3038571455154067151">Ak sa chcete prihlásiť, zadajte prístupový kód rodiča Family Link</translation> +<translation id="3045488863354895414">Dobré popoludnie,</translation> <translation id="3051128274746680507">Váš profil kontrolovaného používateľa bude čoskoro odstránený. Ak chcete získať ďalšie informácie, prihláste sa.</translation> <translation id="3055162170959710888">Toto zariadenie si dnes používal(a) <ph name="USED_TIME" /></translation> <translation id="3076778413190775903">Stavový panel, čas <ph name="TIME" />, @@ -304,6 +308,7 @@ <translation id="4261870227682513959">Zobraziť nastavenia upozornení. Upozornenia sú vypnuté</translation> <translation id="4269883910223712419">Správca tohto zariadenia môže:</translation> <translation id="4279490309300973883">Zrkadlenie</translation> +<translation id="4294319844246081198">Dobré ráno, <ph name="GIVEN_NAME" />,</translation> <translation id="4296136865091727875">Vymazať všetky upozornenia (počet: <ph name="COUNT" />)</translation> <translation id="4303223480529385476">Rozbaliť stavovú oblasť</translation> <translation id="4321179778687042513">ctrl</translation> @@ -320,6 +325,7 @@ <translation id="4421231901400348175">Ovládanie obrazovky sa prostredníctvom Vzdialenej pomoci zdieľa s používateľom <ph name="HELPER_NAME" />.</translation> <translation id="4430019312045809116">Hlasitosť</translation> <translation id="4450893287417543264">Nabudúce nezobrazovať</translation> +<translation id="445864333228800152">Dobrý večer,</translation> <translation id="4458688154122353284">Zastaviť nahrávanie obrazovky</translation> <translation id="4477350412780666475">Ďalšia stopa</translation> <translation id="4477892968187500306">Toto zariadenie môže obsahovať aplikácie, ktoré neboli overené Googlom.</translation> @@ -430,6 +436,7 @@ <translation id="5887866489674258948">Tmavý režim</translation> <translation id="5895138241574237353">Reštartovať</translation> <translation id="5901316534475909376">Shift+Esc</translation> +<translation id="5909862606227538307">Plocha je neaktívna.</translation> <translation id="5911909173233110115"><ph name="USERNAME" /> (<ph name="MAIL" />)</translation> <translation id="5916664084637901428">Zapnuté</translation> <translation id="5920710855273935292">Mikrofón je vypnutý.</translation> @@ -561,8 +568,10 @@ <translation id="7405710164030118432">Ak chcete toto zariadenie odomknúť, zadajte prístupový kód rodiča Family Link</translation> <translation id="741244894080940828">prevod</translation> <translation id="742594950370306541">Fotoaparát sa používa.</translation> +<translation id="742608627846767349">Dobré ráno,</translation> <translation id="743058460480092004">Fotoaparát a mikrofón sa používajú.</translation> <translation id="7466449121337984263">Dotknite sa senzora</translation> +<translation id="7477793887173910789">Ovládajte svoju hudbu, videá a ďalší obsah</translation> <translation id="7497767806359279797">Vybrať jazyk a klávesnicu</translation> <translation id="7526573455193969409">Sieť môže byť sledovaná</translation> <translation id="7536035074519304529">Adresa IP: <ph name="ADDRESS" /></translation> @@ -647,11 +656,13 @@ <translation id="8351131234907093545">Vytvoriť poznámku</translation> <translation id="8371779926711439835">Dopredu o písmeno</translation> <translation id="8375916635258623388">Toto zariadenie <ph name="DEVICE_NAME" /> a váš telefón sa automaticky pripoja</translation> +<translation id="8380784334203145311">Dobrú noc,</translation> <translation id="8388750414311082622">Posledná plocha sa nedá odstrániť.</translation> <translation id="8392451568018454956">Ponuka možností pre používateľa <ph name="USER_EMAIL_ADDRESS" /></translation> <translation id="8394567579869570560">Tvoj rodič uzamkol toto zariadenie</translation> <translation id="8412677897383510995">Zobraziť nastavenia obrazovky</translation> <translation id="8425213833346101688">Zmeniť</translation> +<translation id="8426708595819210923">Dobrý večer, <ph name="GIVEN_NAME" />,</translation> <translation id="8427213022735114808">Diktovanie odosiela váš hlas do Googlu a umožňuje tak hlasové zadávanie do všetkých textových polí.</translation> <translation id="8428213095426709021">Nastavenia</translation> <translation id="8433186206711564395">Nastavenia siete</translation>
diff --git a/ash/strings/ash_strings_sl.xtb b/ash/strings/ash_strings_sl.xtb index a4a0f51..dc2c0e2 100644 --- a/ash/strings/ash_strings_sl.xtb +++ b/ash/strings/ash_strings_sl.xtb
@@ -571,6 +571,7 @@ <translation id="742608627846767349">Dobro jutro,</translation> <translation id="743058460480092004">Kamera in mikrofon sta v uporabi.</translation> <translation id="7466449121337984263">Dotaknite se tipala</translation> +<translation id="7477793887173910789">Upravljanje glasbe, videoposnetkov in drugega</translation> <translation id="7497767806359279797">Izbira jezika in tipkovnice</translation> <translation id="7526573455193969409">Omrežje je morda nadzorovano</translation> <translation id="7536035074519304529">Naslov IP: <ph name="ADDRESS" /></translation>
diff --git a/ash/strings/ash_strings_sq.xtb b/ash/strings/ash_strings_sq.xtb index 0aabbb95..d3009dd2 100644 --- a/ash/strings/ash_strings_sq.xtb +++ b/ash/strings/ash_strings_sq.xtb
@@ -11,6 +11,7 @@ <translation id="1056775291175587022">Nuk ka rrjete</translation> <translation id="1059194134494239015"><ph name="DISPLAY_NAME" />: <ph name="RESOLUTION" /></translation> <translation id="108486256082349153">Celulare: <ph name="ADDRESS" /></translation> +<translation id="1087110696012418426">Mirëdita <ph name="GIVEN_NAME" />,</translation> <translation id="109942774857561566">Jam i mërzitur</translation> <translation id="1104084341931202936">Shfaq cilësimet e qasshmërisë</translation> <translation id="1104621072296271835">Pajisjet e tua punojnë edhe më mirë së bashku</translation> @@ -71,6 +72,7 @@ <translation id="1677472565718498478">Koha e mbetur <ph name="TIME" /></translation> <translation id="1698080062160024910">Kohëmatësi: <ph name="TOTAL_TIME" /> · <ph name="LABEL" /></translation> <translation id="1698760176351776263">Adresa IPv6: <ph name="ADDRESS" /></translation> +<translation id="1708345662127501511">Tavolina e punës: <ph name="DESK_NAME" /></translation> <translation id="1709762881904163296">Cilësimet e rrjetit</translation> <translation id="1743570585616704562">Nuk njihet</translation> <translation id="1746730358044914197">Metodat e hyrjes konfigurohen nga administratori yt.</translation> @@ -107,6 +109,7 @@ <translation id="2018630726571919839">Më trego një barsoletë</translation> <translation id="2050339315714019657">Portret (vertikal</translation> <translation id="2067602449040652523">Ndriçimi i tastierës</translation> +<translation id="2083190527011054446">Natën e mirë <ph name="GIVEN_NAME" />,</translation> <translation id="209965399369889474">Nuk është lidhur në rrjet</translation> <translation id="2126242104232412123">Tavolinë e re</translation> <translation id="2127372758936585790">Ngarkues me fuqi të ulët</translation> @@ -185,6 +188,7 @@ <translation id="3009178788565917040">Dalja</translation> <translation id="3033545621352269033">Aktiv</translation> <translation id="3038571455154067151">Për t'u identifikuar, fut kodin e qasjes së prindit për Family Link</translation> +<translation id="3045488863354895414">Mirëdita,</translation> <translation id="3051128274746680507">Profili yt i përdoruesit të kontrolluar do të hiqet së shpejti. Identifikohu për të mësuar më shumë.</translation> <translation id="3055162170959710888">Sot e ke përdorur këtë pajisje për <ph name="USED_TIME" /></translation> <translation id="3076778413190775903">Tabakaja e statusit, ora <ph name="TIME" />, @@ -304,6 +308,7 @@ <translation id="4261870227682513959">Shfaq cilësimet e njoftimeve. Njoftimet janë joaktive</translation> <translation id="4269883910223712419">Administratori i kësaj pajisjeje ka aftësinë që:</translation> <translation id="4279490309300973883">Pasqyrim</translation> +<translation id="4294319844246081198">Mirëmëngjesi <ph name="GIVEN_NAME" />,</translation> <translation id="4296136865091727875">Pastro të <ph name="COUNT" /> njoftimet</translation> <translation id="4303223480529385476">Zgjero zonën e statusit</translation> <translation id="4321179778687042513">ctrl</translation> @@ -320,6 +325,7 @@ <translation id="4421231901400348175">Po ndan kontrollin e ekranit me <ph name="HELPER_NAME" /> përmes "Ndihmës në distancë".</translation> <translation id="4430019312045809116">Volumi</translation> <translation id="4450893287417543264">Mos e shfaq përsëri</translation> +<translation id="445864333228800152">Mirëmbrëma,</translation> <translation id="4458688154122353284">Ndalo regjistrimin e ekranit</translation> <translation id="4477350412780666475">Kënga tjetër</translation> <translation id="4477892968187500306">Kjo pajisje mund të përmbajë aplikacione që nuk janë verifikuar nga Google.</translation> @@ -430,6 +436,7 @@ <translation id="5887866489674258948">Modaliteti i errët</translation> <translation id="5895138241574237353">Rinis</translation> <translation id="5901316534475909376">Shift+Esc</translation> +<translation id="5909862606227538307">Tavolinë pune joaktive.</translation> <translation id="5911909173233110115"><ph name="USERNAME" /> (<ph name="MAIL" />)</translation> <translation id="5916664084637901428">Aktiv</translation> <translation id="5920710855273935292">Mikrofoni është i çaktivizuar.</translation> @@ -561,8 +568,10 @@ <translation id="7405710164030118432">Për të shkyçur pajisjen, fut kodin e qasjes së prindit për Family Link</translation> <translation id="741244894080940828">konvertimi</translation> <translation id="742594950370306541">Kamera është në përdorim.</translation> +<translation id="742608627846767349">Mirëmëngjesi,</translation> <translation id="743058460480092004">Kamera dhe mikrofoni janë në përdorim</translation> <translation id="7466449121337984263">Prek sensorin</translation> +<translation id="7477793887173910789">Kontrollo muzikën, videot e tua etj.</translation> <translation id="7497767806359279797">Zgjidh gjuhën dhe tastierën</translation> <translation id="7526573455193969409">Rrjeti mund të jetë i monitoruar</translation> <translation id="7536035074519304529">Adresa IP: <ph name="ADDRESS" /></translation> @@ -647,11 +656,13 @@ <translation id="8351131234907093545">Krijo një shënim</translation> <translation id="8371779926711439835">Përpara një shkronjë</translation> <translation id="8375916635258623388">Kjo pajisje <ph name="DEVICE_NAME" /> dhe telefoni yt do të lidhen automatikisht</translation> +<translation id="8380784334203145311">Natën e mirë,</translation> <translation id="8388750414311082622">Tavolina e fundit e punës nuk mund të hiqet.</translation> <translation id="8392451568018454956">Menyja e opsioneve për <ph name="USER_EMAIL_ADDRESS" /></translation> <translation id="8394567579869570560">Prindi yt e kyçi këtë pajisje</translation> <translation id="8412677897383510995">Shfaq cilësimet e ekranit</translation> <translation id="8425213833346101688">Ndrysho</translation> +<translation id="8426708595819210923">Mirëmbrëma <ph name="GIVEN_NAME" />,</translation> <translation id="8427213022735114808">Diktimi ia dërgon zërin tënd Google për të lejuar shkrimin me zë në çfarëdo fushe teksti.</translation> <translation id="8428213095426709021">Cilësimet</translation> <translation id="8433186206711564395">Cilësimet e rrjetit</translation>
diff --git a/ash/strings/ash_strings_sr-Latn.xtb b/ash/strings/ash_strings_sr-Latn.xtb index ab49c2a..8745f2c 100644 --- a/ash/strings/ash_strings_sr-Latn.xtb +++ b/ash/strings/ash_strings_sr-Latn.xtb
@@ -571,6 +571,7 @@ <translation id="742608627846767349">Dobro jutro,</translation> <translation id="743058460480092004">Kamera i mikrofon se koriste.</translation> <translation id="7466449121337984263">Dodirnite senzor</translation> +<translation id="7477793887173910789">Kontrolišite muziku, video snimke i drugo</translation> <translation id="7497767806359279797">Odaberite jezik i tastaturu</translation> <translation id="7526573455193969409">Mreža se možda nadgleda</translation> <translation id="7536035074519304529">IP adresa: <ph name="ADDRESS" /></translation>
diff --git a/ash/strings/ash_strings_sr.xtb b/ash/strings/ash_strings_sr.xtb index 11475e2..ab2df61 100644 --- a/ash/strings/ash_strings_sr.xtb +++ b/ash/strings/ash_strings_sr.xtb
@@ -571,6 +571,7 @@ <translation id="742608627846767349">Добро јутро,</translation> <translation id="743058460480092004">Камера и микрофон се користе.</translation> <translation id="7466449121337984263">Додирните сензор</translation> +<translation id="7477793887173910789">Контролишите музику, видео снимке и друго</translation> <translation id="7497767806359279797">Одаберите језик и тастатуру</translation> <translation id="7526573455193969409">Мрежа се можда надгледа</translation> <translation id="7536035074519304529">IP адреса: <ph name="ADDRESS" /></translation>
diff --git a/ash/strings/ash_strings_sv.xtb b/ash/strings/ash_strings_sv.xtb index abdd48ed..f25970e 100644 --- a/ash/strings/ash_strings_sv.xtb +++ b/ash/strings/ash_strings_sv.xtb
@@ -11,6 +11,7 @@ <translation id="1056775291175587022">Inga nätverk</translation> <translation id="1059194134494239015"><ph name="DISPLAY_NAME" />: <ph name="RESOLUTION" /></translation> <translation id="108486256082349153">Mobil: <ph name="ADDRESS" /></translation> +<translation id="1087110696012418426">Hej <ph name="GIVEN_NAME" />!</translation> <translation id="109942774857561566">Jag har tråkigt</translation> <translation id="1104084341931202936">Visa tillgänglighetsinställningar</translation> <translation id="1104621072296271835">Dina enheter fungerar ännu bättre tillsammans</translation> @@ -71,6 +72,7 @@ <translation id="1677472565718498478"><ph name="TIME" /> kvar</translation> <translation id="1698080062160024910">Timer på <ph name="TOTAL_TIME" /> · <ph name="LABEL" /></translation> <translation id="1698760176351776263">IPv6-adress: <ph name="ADDRESS" /></translation> +<translation id="1708345662127501511">Skrivbord: <ph name="DESK_NAME" /></translation> <translation id="1709762881904163296">Nätverksinställningar</translation> <translation id="1743570585616704562">Identifierades inte</translation> <translation id="1746730358044914197">Inmatningsmetoderna konfigureras av administratören.</translation> @@ -107,6 +109,7 @@ <translation id="2018630726571919839">Dra ett skämt</translation> <translation id="2050339315714019657">Stående</translation> <translation id="2067602449040652523">Ljusstyrka för tangentbordet</translation> +<translation id="2083190527011054446">Hej <ph name="GIVEN_NAME" />!</translation> <translation id="209965399369889474">Ingen nätverksanslutning</translation> <translation id="2126242104232412123">Ny arbetsyta</translation> <translation id="2127372758936585790">Laddning med låg effekt</translation> @@ -185,6 +188,7 @@ <translation id="3009178788565917040">Utgång</translation> <translation id="3033545621352269033">På</translation> <translation id="3038571455154067151">Ange föräldraåtkomstkoden för Family Link om du vill logga in</translation> +<translation id="3045488863354895414">Hej!</translation> <translation id="3051128274746680507">Din profil som kontrollerad användare tas snart bort. Logga in och läs mer.</translation> <translation id="3055162170959710888">Du har använt den här enheten i <ph name="USED_TIME" /> i dag</translation> <translation id="3076778413190775903">Statusfältet, tid <ph name="TIME" />, @@ -304,6 +308,7 @@ <translation id="4261870227682513959">Visa aviseringsinställningar. Aviseringar har inaktiverats</translation> <translation id="4269883910223712419">Enhetens administratör kan</translation> <translation id="4279490309300973883">Spegling</translation> +<translation id="4294319844246081198">Hej <ph name="GIVEN_NAME" />!</translation> <translation id="4296136865091727875">Rensa alla <ph name="COUNT" /> aviseringar</translation> <translation id="4303223480529385476">Utöka statusfält</translation> <translation id="4321179778687042513">ctrl</translation> @@ -320,6 +325,7 @@ <translation id="4421231901400348175">Dela kontroll över skärmen med <ph name="HELPER_NAME" /> via Fjärrhjälp.</translation> <translation id="4430019312045809116">Volym</translation> <translation id="4450893287417543264">Visa inte igen</translation> +<translation id="445864333228800152">Hej!</translation> <translation id="4458688154122353284">Stoppa skärminspelningen</translation> <translation id="4477350412780666475">Nästa spår</translation> <translation id="4477892968187500306">Den här enheten kan innehålla appar som inte har verifierats av Google.</translation> @@ -430,6 +436,7 @@ <translation id="5887866489674258948">Mörkt läge</translation> <translation id="5895138241574237353">Starta om</translation> <translation id="5901316534475909376">Skift+Escape</translation> +<translation id="5909862606227538307">Inaktivt skrivbord.</translation> <translation id="5911909173233110115"><ph name="USERNAME" /> (<ph name="MAIL" />)</translation> <translation id="5916664084637901428">På</translation> <translation id="5920710855273935292">Mikrofonen är av.</translation> @@ -561,8 +568,10 @@ <translation id="7405710164030118432">Lås upp enheten genom att ange föräldraåtkomstkoden för Family Link</translation> <translation id="741244894080940828">Räkna om</translation> <translation id="742594950370306541">Kameran används.</translation> +<translation id="742608627846767349">Hej!</translation> <translation id="743058460480092004">Kameran och mikrofonen används.</translation> <translation id="7466449121337984263">Tryck på sensorn</translation> +<translation id="7477793887173910789">Styr uppspelningen av musik, videor med mera</translation> <translation id="7497767806359279797">Välj språk och tangentbord</translation> <translation id="7526573455193969409">Nätverket kan vara övervakat</translation> <translation id="7536035074519304529">IP-adress: <ph name="ADDRESS" /></translation> @@ -647,11 +656,13 @@ <translation id="8351131234907093545">Skapa anteckning</translation> <translation id="8371779926711439835">Framåt tecken för tecken</translation> <translation id="8375916635258623388">Denna <ph name="DEVICE_NAME" /> ansluts automatiskt till din mobil</translation> +<translation id="8380784334203145311">Hej!</translation> <translation id="8388750414311082622">Det sista skrivbordet går inte att ta bort.</translation> <translation id="8392451568018454956">Alternativmenyn för <ph name="USER_EMAIL_ADDRESS" /></translation> <translation id="8394567579869570560">Din förälder har låst enheten</translation> <translation id="8412677897383510995">Visa skärminställningar</translation> <translation id="8425213833346101688">Ändra</translation> +<translation id="8426708595819210923">Hej <ph name="GIVEN_NAME" />!</translation> <translation id="8427213022735114808">Med diktering skickas det du säger till Google så att du kan tala in text i vilket textfält som helst.</translation> <translation id="8428213095426709021">Inställningar</translation> <translation id="8433186206711564395">Nätverksinställningar</translation>
diff --git a/ash/strings/ash_strings_sw.xtb b/ash/strings/ash_strings_sw.xtb index fbb2618b..1e8fc15 100644 --- a/ash/strings/ash_strings_sw.xtb +++ b/ash/strings/ash_strings_sw.xtb
@@ -571,6 +571,7 @@ <translation id="742608627846767349">Habari za asubuhi,</translation> <translation id="743058460480092004">Kamera na maikrofoni zinatumiwa.</translation> <translation id="7466449121337984263">Tafadhali gusa kitambuzi</translation> +<translation id="7477793887173910789">Dhibiti muziki, video na vipengee vyako vingine</translation> <translation id="7497767806359279797">Chagua lugha na kibodi</translation> <translation id="7526573455193969409">Huenda mtandao unafuatiliwa</translation> <translation id="7536035074519304529">Anwani ya IP: <ph name="ADDRESS" /></translation>
diff --git a/ash/strings/ash_strings_ta.xtb b/ash/strings/ash_strings_ta.xtb index 1bdac04..55e7663 100644 --- a/ash/strings/ash_strings_ta.xtb +++ b/ash/strings/ash_strings_ta.xtb
@@ -563,6 +563,7 @@ <translation id="742594950370306541">கேமரா பயன்பாட்டில் உள்ளது.</translation> <translation id="743058460480092004">கேமராவும் மைக்ரோஃபோனும் பயன்பாட்டில் உள்ளன.</translation> <translation id="7466449121337984263">சென்சாரைத் தொடவும்</translation> +<translation id="7477793887173910789">உங்கள் இசை, வீடியோக்கள் மற்றும் பலவற்றைக் கட்டுப்படுத்தலாம்</translation> <translation id="7497767806359279797">மொழியையும் கீபோர்ட்டையும் தேர்வுசெய்யவும்</translation> <translation id="7526573455193969409">நெட்வொர்க் கண்காணிக்கப்படலாம்</translation> <translation id="7536035074519304529">IP முகவரி: <ph name="ADDRESS" /></translation>
diff --git a/ash/strings/ash_strings_te.xtb b/ash/strings/ash_strings_te.xtb index 1c8e859..d047806e8 100644 --- a/ash/strings/ash_strings_te.xtb +++ b/ash/strings/ash_strings_te.xtb
@@ -11,6 +11,7 @@ <translation id="1056775291175587022">నెట్వ. లేవు</translation> <translation id="1059194134494239015"><ph name="DISPLAY_NAME" />: <ph name="RESOLUTION" /></translation> <translation id="108486256082349153">సెల్యులార్: <ph name="ADDRESS" /></translation> +<translation id="1087110696012418426">గుడ్ ఆఫ్టర్నూన్ <ph name="GIVEN_NAME" />,</translation> <translation id="109942774857561566">నాకు ఏమీ తోచడం లేదు</translation> <translation id="1104084341931202936">యాక్సెసిబిలిటీ సెట్టింగ్లను చూపుతుంది</translation> <translation id="1104621072296271835">మీ పరికరాలు కలిసికట్టుగా మరింత బాగా పనిచేస్తాయి</translation> @@ -71,6 +72,7 @@ <translation id="1677472565718498478"><ph name="TIME" /> మిగిలి ఉంది</translation> <translation id="1698080062160024910"><ph name="TOTAL_TIME" /> టైమర్ · <ph name="LABEL" /></translation> <translation id="1698760176351776263">IPv6 చిరునామా: <ph name="ADDRESS" /></translation> +<translation id="1708345662127501511">డెస్క్: <ph name="DESK_NAME" /></translation> <translation id="1709762881904163296">నెట్వర్క్ సెట్టింగ్లు</translation> <translation id="1743570585616704562">గుర్తించలేదు</translation> <translation id="1746730358044914197">ఇన్పుట్ పద్ధతులు మీ నిర్వాహకుల ద్వారా కాన్ఫిగర్ చేయబడ్డాయి.</translation> @@ -107,6 +109,7 @@ <translation id="2018630726571919839">ఒక జోక్ చెప్పు</translation> <translation id="2050339315714019657">పోర్ట్రెయిట్</translation> <translation id="2067602449040652523">కీబోర్డ్ ప్రకాశం</translation> +<translation id="2083190527011054446">శుభరాత్రి <ph name="GIVEN_NAME" />,</translation> <translation id="209965399369889474">నెట్వర్క్కు కనెక్ట్ కాలేదు</translation> <translation id="2126242104232412123">కొత్త డెస్క్</translation> <translation id="2127372758936585790">తక్కువ-పవర్ గల ఛార్జర్</translation> @@ -185,6 +188,7 @@ <translation id="3009178788565917040">అవుట్పుట్</translation> <translation id="3033545621352269033">ఆన్</translation> <translation id="3038571455154067151">సైన్ ఇన్ చేయడానికి, మీ Family Link తల్లిదండ్రుల యాక్సెస్ కోడ్ను ఎంటర్ చేయండి</translation> +<translation id="3045488863354895414">గుడ్ ఆఫ్టర్నూన్,</translation> <translation id="3051128274746680507">మీ పర్యవేక్షిత వినియోగదారు ప్రొఫైల్ త్వరలో తీసివేయబడుతుంది. మరింత తెలుసుకోవడానికి సైన్ ఇన్ చేయండి.</translation> <translation id="3055162170959710888">మీరు ఈ పరికరాన్ని ఈ రోజు <ph name="USED_TIME" /> పాటు ఉపయోగించారు</translation> <translation id="3076778413190775903">స్టేటస్ ట్రే, సమయం <ph name="TIME" />, @@ -305,6 +309,7 @@ <translation id="4261870227682513959">నోటిఫికేషన్ సెట్టింగ్లను చూపుతుంది. నోటిఫికేషన్లు ఆఫ్ చేయబడి ఉన్నాయి</translation> <translation id="4269883910223712419">ఈ పరికర నిర్వాహకుడికి వీటిని చేయగల సామర్థ్యం ఉంది:</translation> <translation id="4279490309300973883">మిర్రరింగ్</translation> +<translation id="4294319844246081198">శుభోదయం <ph name="GIVEN_NAME" />,</translation> <translation id="4296136865091727875">మొత్తం <ph name="COUNT" /> నోటిఫికేషన్లను క్లియర్ చేస్తుంది</translation> <translation id="4303223480529385476">స్టేటస్ ప్రాంతాన్ని విస్తరించండి</translation> <translation id="4321179778687042513">ctrl</translation> @@ -321,6 +326,7 @@ <translation id="4421231901400348175">రిమోట్ సహాయం విధానంలో మీ స్క్రీన్ నియంత్రణ <ph name="HELPER_NAME" />కి భాగస్వామ్యం చేయబడుతోంది.</translation> <translation id="4430019312045809116">వాల్యూమ్</translation> <translation id="4450893287417543264">మళ్లీ చూపవద్దు</translation> +<translation id="445864333228800152">గుడ్ ఈవెనింగ్,</translation> <translation id="4458688154122353284">స్క్రీన్ రికార్డింగ్ను ఆపివేయి</translation> <translation id="4477350412780666475">తర్వాతి ట్రాక్</translation> <translation id="4477892968187500306">ఈ పరికరంలో Google ధృవీకరించని యాప్లు ఉండవచ్చు.</translation> @@ -431,6 +437,7 @@ <translation id="5887866489674258948">డార్క్ మోడ్</translation> <translation id="5895138241574237353">మళ్ళీ ప్రారంభించు</translation> <translation id="5901316534475909376">Shift+Esc</translation> +<translation id="5909862606227538307">ఇన్యాక్టివ్ డెస్క్.</translation> <translation id="5911909173233110115"><ph name="USERNAME" /> (<ph name="MAIL" />)</translation> <translation id="5916664084637901428">ఆన్ చేయి</translation> <translation id="5920710855273935292">మైక్ మ్యూట్ చేయబడింది.</translation> @@ -562,8 +569,10 @@ <translation id="7405710164030118432">పరికరాన్ని అన్లాక్ చేయడానికి, మీ Family Link తల్లి/తండ్రి యాక్సెస్ కోడ్ను నమోదు చేయండి</translation> <translation id="741244894080940828">మార్పిడి</translation> <translation id="742594950370306541">కెమెరా ఉపయోగంలో ఉంది.</translation> +<translation id="742608627846767349">శుభోదయం,</translation> <translation id="743058460480092004">కెమెరా మరియు మైక్రోఫోన్ ఉపయోగంలో ఉన్నాయి.</translation> <translation id="7466449121337984263">దయచేసి సెన్సార్ను తాకండి</translation> +<translation id="7477793887173910789">మీ సంగీతం, వీడియోలు అలాగే ఇంకా మరిన్నింటిని నియంత్రించండి</translation> <translation id="7497767806359279797">భాషను మరియు కీబోర్డ్ను ఎంచుకోండి</translation> <translation id="7526573455193969409">నెట్వర్క్పై పర్యవేక్షణ ఉండవచ్చు</translation> <translation id="7536035074519304529">IP చిరునామా: <ph name="ADDRESS" /></translation> @@ -648,11 +657,13 @@ <translation id="8351131234907093545">గమనికను సృష్టించండి</translation> <translation id="8371779926711439835">ఒక అక్షరం ముందుకు</translation> <translation id="8375916635258623388">ఈ <ph name="DEVICE_NAME" /> మరియు మీ ఫోన్ ఆటోమెటిక్గా కనెక్ట్ చేయబడతాయి</translation> +<translation id="8380784334203145311">శుభరాత్రి,</translation> <translation id="8388750414311082622">చివరి డెస్క్ను తీసివేయలేరు.</translation> <translation id="8392451568018454956"><ph name="USER_EMAIL_ADDRESS" /> కోసం ఎంపికల మెను</translation> <translation id="8394567579869570560">మీ తల్లి/తండ్రి ఈ పరికరాన్ని లాక్ చేసి ఉంచారు</translation> <translation id="8412677897383510995">ప్రదర్శన సెట్టింగ్లను చూపు</translation> <translation id="8425213833346101688">మార్చు</translation> +<translation id="8426708595819210923">గుడ్ ఈవెనింగ్ <ph name="GIVEN_NAME" />,</translation> <translation id="8427213022735114808">మీరు రాయాలనుకునేది Googleకి చెబితే చాలు వెంటనే వచన రూపంలోకి మారుస్తుంది.</translation> <translation id="8428213095426709021">సెట్టింగ్లు</translation> <translation id="8433186206711564395">నెట్వర్క్ సెట్టింగ్లు</translation>
diff --git a/ash/strings/ash_strings_th.xtb b/ash/strings/ash_strings_th.xtb index dbae751..2145040 100644 --- a/ash/strings/ash_strings_th.xtb +++ b/ash/strings/ash_strings_th.xtb
@@ -11,6 +11,7 @@ <translation id="1056775291175587022">ไม่พบเครือข่าย</translation> <translation id="1059194134494239015"><ph name="DISPLAY_NAME" />: <ph name="RESOLUTION" /></translation> <translation id="108486256082349153">โทรศัพท์มือถือ: <ph name="ADDRESS" /></translation> +<translation id="1087110696012418426">สวัสดียามบ่าย <ph name="GIVEN_NAME" /></translation> <translation id="109942774857561566">ฉันเบื่อจัง</translation> <translation id="1104084341931202936">แสดงการตั้งค่าการเข้าถึงพิเศษ</translation> <translation id="1104621072296271835">อุปกรณ์จะทำงานได้ดียิ่งขึ้นเมื่อใช้ร่วมกัน</translation> @@ -71,6 +72,7 @@ <translation id="1677472565718498478">ใช้ได้อีก <ph name="TIME" /></translation> <translation id="1698080062160024910">ตัวจับเวลา <ph name="TOTAL_TIME" /> · <ph name="LABEL" /></translation> <translation id="1698760176351776263">ที่อยู่ IPv6: <ph name="ADDRESS" /></translation> +<translation id="1708345662127501511">โต๊ะ: <ph name="DESK_NAME" /></translation> <translation id="1709762881904163296">การตั้งค่าเครือข่าย</translation> <translation id="1743570585616704562">ไม่รู้จัก</translation> <translation id="1746730358044914197">ผู้ดูแลระบบเป็นคนกำหนดค่าวิธีการป้อนข้อมูล</translation> @@ -107,6 +109,7 @@ <translation id="2018630726571919839">เล่าเรื่องตลกให้ฟังหน่อย</translation> <translation id="2050339315714019657">แนวตั้ง</translation> <translation id="2067602449040652523">ความสว่างของแป้นพิมพ์</translation> +<translation id="2083190527011054446">ราตรีสวัสดิ์ <ph name="GIVEN_NAME" /></translation> <translation id="209965399369889474">ไม่ได้เชื่อมต่อกับเครือข่าย</translation> <translation id="2126242104232412123">โต๊ะทำงานใหม่</translation> <translation id="2127372758936585790">ที่ชาร์จพลังงานต่ำ</translation> @@ -185,6 +188,7 @@ <translation id="3009178788565917040">เอาต์พุต</translation> <translation id="3033545621352269033">เปิด</translation> <translation id="3038571455154067151">โปรดป้อนรหัสการเข้าถึง Family Link ของผู้ปกครองเพื่อลงชื่อเข้าใช้</translation> +<translation id="3045488863354895414">สวัสดียามบ่าย</translation> <translation id="3051128274746680507">ระบบจะนำโปรไฟล์ผู้ใช้ภายใต้การควบคุมดูแลออกในเร็วๆ นี้ ลงชื่อเข้าใช้เพื่อดูข้อมูลเพิ่มเติม</translation> <translation id="3055162170959710888">วันนี้คุณใช้อุปกรณ์เครื่องนี้ไป <ph name="USED_TIME" /></translation> <translation id="3076778413190775903">ถาดสถานะ เวลา <ph name="TIME" /> @@ -304,6 +308,7 @@ <translation id="4261870227682513959">แสดงการตั้งค่าการแจ้งเตือน การแจ้งเตือนปิดอยู่</translation> <translation id="4269883910223712419">ผู้ดูแลระบบของอุปกรณ์เครื่องนี้ทำสิ่งต่อไปนี้ได้</translation> <translation id="4279490309300973883">กำลังแสดงผล</translation> +<translation id="4294319844246081198">สวัสดียามเช้า <ph name="GIVEN_NAME" /></translation> <translation id="4296136865091727875">ล้างการแจ้งเตือนทั้งหมด <ph name="COUNT" /> รายการ</translation> <translation id="4303223480529385476">ขยายพื้นที่แสดงสถานะ</translation> <translation id="4321179778687042513">ctrl</translation> @@ -320,6 +325,7 @@ <translation id="4421231901400348175">กำลังแชร์การควบคุมหน้าจอกับ <ph name="HELPER_NAME" /> ผ่านความช่วยเหลือระยะไกล</translation> <translation id="4430019312045809116">ระดับเสียง</translation> <translation id="4450893287417543264">ไม่ต้องแสดงอีก</translation> +<translation id="445864333228800152">สวัสดียามเย็น</translation> <translation id="4458688154122353284">หยุดการอัดหน้าจอ</translation> <translation id="4477350412780666475">แทร็กถัดไป</translation> <translation id="4477892968187500306">อุปกรณ์นี้อาจมีแอปที่ยังไม่ได้รับการยืนยันจาก Google</translation> @@ -430,6 +436,7 @@ <translation id="5887866489674258948">โหมดมืด</translation> <translation id="5895138241574237353">ปิดแล้วเปิดอีกครั้ง</translation> <translation id="5901316534475909376">Shift+Esc</translation> +<translation id="5909862606227538307">โต๊ะที่ไม่ได้ใช้งาน</translation> <translation id="5911909173233110115"><ph name="USERNAME" /> (<ph name="MAIL" />)</translation> <translation id="5916664084637901428">เปิด</translation> <translation id="5920710855273935292">ปิดเสียงไมค์อยู่</translation> @@ -561,8 +568,10 @@ <translation id="7405710164030118432">ป้อนรหัสการเข้าถึง Family Link ของผู้ปกครองเพื่อปลดล็อกอุปกรณ์</translation> <translation id="741244894080940828">การแปลง</translation> <translation id="742594950370306541">ใช้กล้องถ่ายรูปอยู่</translation> +<translation id="742608627846767349">สวัสดียามเช้า</translation> <translation id="743058460480092004">ใช้กล้องถ่ายรูปและไมโครโฟนอยู่</translation> <translation id="7466449121337984263">โปรดแตะเซ็นเซอร์</translation> +<translation id="7477793887173910789">ควบคุมเพลง วิดีโอ และอื่นๆ</translation> <translation id="7497767806359279797">เลือกภาษาและแป้นพิมพ์</translation> <translation id="7526573455193969409">อาจมีการตรวจสอบเครือข่าย</translation> <translation id="7536035074519304529">ที่อยู่ IP: <ph name="ADDRESS" /></translation> @@ -647,11 +656,13 @@ <translation id="8351131234907093545">สร้างโน้ต</translation> <translation id="8371779926711439835">ไปข้างหน้าทีละตัวอักษร</translation> <translation id="8375916635258623388"><ph name="DEVICE_NAME" /> นี้และโทรศัพท์จะเชื่อมต่อกันโดยอัตโนมัติ</translation> +<translation id="8380784334203145311">ราตรีสวัสดิ์</translation> <translation id="8388750414311082622">นำพื้นที่ทำงานสุดท้ายออกไม่ได้</translation> <translation id="8392451568018454956">เมนูตัวเลือกสำหรับ <ph name="USER_EMAIL_ADDRESS" /></translation> <translation id="8394567579869570560">ผู้ปกครองของคุณล็อกอุปกรณ์นี้ไว้</translation> <translation id="8412677897383510995">แสดงการตั้งค่าการแสดงผล</translation> <translation id="8425213833346101688">เปลี่ยน</translation> +<translation id="8426708595819210923">สวัสดียามเย็น <ph name="GIVEN_NAME" /></translation> <translation id="8427213022735114808">การพิมพ์ตามคำบอกจะส่งเสียงของคุณไปยัง Google เพื่อให้พิมพ์ด้วยเสียงในช่องข้อความต่างๆ</translation> <translation id="8428213095426709021">การตั้งค่า</translation> <translation id="8433186206711564395">การตั้งค่าเครือข่าย</translation>
diff --git a/ash/strings/ash_strings_tr.xtb b/ash/strings/ash_strings_tr.xtb index b4e5cb9c..68745924 100644 --- a/ash/strings/ash_strings_tr.xtb +++ b/ash/strings/ash_strings_tr.xtb
@@ -564,6 +564,7 @@ <translation id="742594950370306541">Kamera kullanımda.</translation> <translation id="743058460480092004">Kamera ve mikrofon kullanımda.</translation> <translation id="7466449121337984263">Lütfen sensöre dokunun</translation> +<translation id="7477793887173910789">Müzik, video ve diğer içeriklerinizi kontrol edin</translation> <translation id="7497767806359279797">Dil ve klavye seçin</translation> <translation id="7526573455193969409">Ağ trafiği izleniyor olabilir</translation> <translation id="7536035074519304529">IP adresi: <ph name="ADDRESS" /></translation>
diff --git a/ash/strings/ash_strings_uk.xtb b/ash/strings/ash_strings_uk.xtb index 332b8942..24f3589 100644 --- a/ash/strings/ash_strings_uk.xtb +++ b/ash/strings/ash_strings_uk.xtb
@@ -11,6 +11,7 @@ <translation id="1056775291175587022">Немає мереж</translation> <translation id="1059194134494239015"><ph name="DISPLAY_NAME" />: <ph name="RESOLUTION" /></translation> <translation id="108486256082349153">Мобільний пристрій: <ph name="ADDRESS" /></translation> +<translation id="1087110696012418426">Доброго дня, <ph name="GIVEN_NAME" />!</translation> <translation id="109942774857561566">Мені нудно</translation> <translation id="1104084341931202936">Показати налаштування спеціальних можливостей</translation> <translation id="1104621072296271835">Ваші пристрої працюватимуть разом ще краще</translation> @@ -71,6 +72,7 @@ <translation id="1677472565718498478">Залишилося <ph name="TIME" /></translation> <translation id="1698080062160024910">Таймер на <ph name="TOTAL_TIME" /> · <ph name="LABEL" /></translation> <translation id="1698760176351776263">Адреса IPv6: <ph name="ADDRESS" /></translation> +<translation id="1708345662127501511">Робочий стіл: "<ph name="DESK_NAME" />"</translation> <translation id="1709762881904163296">Мережеві налаштування</translation> <translation id="1743570585616704562">Не розпізнано</translation> <translation id="1746730358044914197">Адміністратор налаштував методи введення.</translation> @@ -107,6 +109,7 @@ <translation id="2018630726571919839">Розкажи жарт</translation> <translation id="2050339315714019657">Портретна</translation> <translation id="2067602449040652523">Яскравість клавіатури</translation> +<translation id="2083190527011054446">Доброї ночі, <ph name="GIVEN_NAME" />!</translation> <translation id="209965399369889474">Немає з’єднання з мережею</translation> <translation id="2126242104232412123">Новий робочий стіл</translation> <translation id="2127372758936585790">Зарядний пристрій низької потужності</translation> @@ -185,6 +188,7 @@ <translation id="3009178788565917040">Вихід</translation> <translation id="3033545621352269033">Увімкнено</translation> <translation id="3038571455154067151">Щоб увійти, введіть свій батьківський код доступу з Family Link</translation> +<translation id="3045488863354895414">Доброго дня!</translation> <translation id="3051128274746680507">Профіль контрольованого користувача незабаром буде видалено. Увійдіть, щоб дізнатися більше.</translation> <translation id="3055162170959710888">Сьогодні цей пристрій працював <ph name="USED_TIME" /></translation> <translation id="3076778413190775903">Панель статусу, час: <ph name="TIME" />, @@ -304,6 +308,7 @@ <translation id="4261870227682513959">Показати налаштування сповіщень. Сповіщення вимкнено</translation> <translation id="4269883910223712419">Адміністратор цього пристрою може:</translation> <translation id="4279490309300973883">Дзеркальне відображення</translation> +<translation id="4294319844246081198">Доброго ранку, <ph name="GIVEN_NAME" />!</translation> <translation id="4296136865091727875">Видаліть усі сповіщення (<ph name="COUNT" />)</translation> <translation id="4303223480529385476">Розгорнути панель стану</translation> <translation id="4321179778687042513">ctrl</translation> @@ -320,6 +325,7 @@ <translation id="4421231901400348175">Спільний доступ до екрана для користувача <ph name="HELPER_NAME" /> через віддалену допомогу.</translation> <translation id="4430019312045809116">Гучність</translation> <translation id="4450893287417543264">Більше не показувати</translation> +<translation id="445864333228800152">Доброго вечора!</translation> <translation id="4458688154122353284">Зупинити запис екрана</translation> <translation id="4477350412780666475">Наступна композиція</translation> <translation id="4477892968187500306">На цьому пристрої можуть бути додатки, які не були перевірені Google.</translation> @@ -430,6 +436,7 @@ <translation id="5887866489674258948">Темний режим</translation> <translation id="5895138241574237353">Перезапустити</translation> <translation id="5901316534475909376">Shift+Esc</translation> +<translation id="5909862606227538307">Неактивний робочий стіл.</translation> <translation id="5911909173233110115"><ph name="USERNAME" /> (<ph name="MAIL" />)</translation> <translation id="5916664084637901428">Увімкнено</translation> <translation id="5920710855273935292">Мікрофон вимкнено.</translation> @@ -561,8 +568,10 @@ <translation id="7405710164030118432">Щоб розблокувати пристрій, введіть код доступу батьків із Family Link</translation> <translation id="741244894080940828">конвертація</translation> <translation id="742594950370306541">Камера використовується.</translation> +<translation id="742608627846767349">Доброго ранку!</translation> <translation id="743058460480092004">Камера та мікрофон використовуються.</translation> <translation id="7466449121337984263">Торкніться сканера</translation> +<translation id="7477793887173910789">Керуйте музикою, відео й іншим контентом</translation> <translation id="7497767806359279797">Вибрати мову та клавіатуру</translation> <translation id="7526573455193969409">Мережевий трафік може відстежуватися</translation> <translation id="7536035074519304529">ІР-адреса: <ph name="ADDRESS" /></translation> @@ -647,11 +656,13 @@ <translation id="8351131234907093545">Створити нотатку</translation> <translation id="8371779926711439835">Уперед на одну літеру</translation> <translation id="8375916635258623388"><ph name="DEVICE_NAME" /> і ваш телефон під’єднуватимуться автоматично</translation> +<translation id="8380784334203145311">Доброї ночі!</translation> <translation id="8388750414311082622">Останній робочий стіл не можна видалити.</translation> <translation id="8392451568018454956">Меню параметрів для <ph name="USER_EMAIL_ADDRESS" /></translation> <translation id="8394567579869570560">Батьки заблокували цей пристрій</translation> <translation id="8412677897383510995">Показати налаштування дисплея</translation> <translation id="8425213833346101688">Змінити</translation> +<translation id="8426708595819210923">Доброго вечора, <ph name="GIVEN_NAME" />!</translation> <translation id="8427213022735114808">Диктування надсилає зразок вашого голосу в Google, щоб дозволити голосовий ввід у будь-якому текстовому полі.</translation> <translation id="8428213095426709021">Налаштування</translation> <translation id="8433186206711564395">Налаштування мережі</translation>
diff --git a/ash/strings/ash_strings_ur.xtb b/ash/strings/ash_strings_ur.xtb index fe1a6bbc..28c72b0f 100644 --- a/ash/strings/ash_strings_ur.xtb +++ b/ash/strings/ash_strings_ur.xtb
@@ -11,6 +11,7 @@ <translation id="1056775291175587022">نیٹ ورک نہیں</translation> <translation id="1059194134494239015"><ph name="DISPLAY_NAME" />: <ph name="RESOLUTION" /></translation> <translation id="108486256082349153">سیلولر: <ph name="ADDRESS" /></translation> +<translation id="1087110696012418426">سہ پہر بخیر <ph name="GIVEN_NAME" />،</translation> <translation id="109942774857561566">مجھے بوریت ہو رہی ہے</translation> <translation id="1104084341931202936">ایکسیسبیلٹی کی ترتیبات دکھائیں</translation> <translation id="1104621072296271835">آپ کے آلات مل کر اور بہتر کام کرتے ہیں</translation> @@ -71,6 +72,7 @@ <translation id="1677472565718498478"><ph name="TIME" /> باقی</translation> <translation id="1698080062160024910"><ph name="TOTAL_TIME" /> ٹائمر · <ph name="LABEL" /></translation> <translation id="1698760176351776263">IPv6 پتہ: <ph name="ADDRESS" /></translation> +<translation id="1708345662127501511">ڈیسک: <ph name="DESK_NAME" /></translation> <translation id="1709762881904163296">نیٹ ورک کی ترتیبات</translation> <translation id="1743570585616704562">تسلیم شدہ نہیں ہے</translation> <translation id="1746730358044914197">ان پٹ کے طریقے آپ کے منتظم کے ذریعے کنفیگر کئے جاتے ہیں۔</translation> @@ -107,6 +109,7 @@ <translation id="2018630726571919839">مجھے کوئی لطیفہ سنائيں</translation> <translation id="2050339315714019657">پورٹریٹ</translation> <translation id="2067602449040652523">کی بورڈ کی چمک</translation> +<translation id="2083190527011054446">شب بخیر <ph name="GIVEN_NAME" />،</translation> <translation id="209965399369889474">نیٹ ورک سے منسلک نہیں ہے</translation> <translation id="2126242104232412123">نیا ڈیسک</translation> <translation id="2127372758936585790">کم پاور والا چارجر</translation> @@ -185,6 +188,7 @@ <translation id="3009178788565917040">آؤٹ پٹ</translation> <translation id="3033545621352269033">آن</translation> <translation id="3038571455154067151">سائن ان کرنے کے لیے، اپنی Family Link کا والدین کا رسائی کوڈ درج کریں</translation> +<translation id="3045488863354895414">سہ پہر بخیر،</translation> <translation id="3051128274746680507">آپ کے تحفظ یافتہ صارف کے پروفائل کو جلد ہی ہٹا دیا جائے گا۔ مزید جاننے کیلئے سائن ان کریں۔</translation> <translation id="3055162170959710888">آپ نے اس آلہ کو آج <ph name="USED_TIME" /> تک استعمال کیا ہے</translation> <translation id="3076778413190775903">صورتحال کی ٹرے، وقت <ph name="TIME" />، @@ -304,6 +308,7 @@ <translation id="4261870227682513959">اطلاع کی ترتیبات دکھائیں۔ اطلاعات آف ہیں</translation> <translation id="4269883910223712419">اس آلہ کا منتظم یہ کام کر سکتا ہے:</translation> <translation id="4279490309300973883">مررنگ</translation> +<translation id="4294319844246081198">صبح بخیر <ph name="GIVEN_NAME" />،</translation> <translation id="4296136865091727875">تمام <ph name="COUNT" /> اطلاعات صاف کریں</translation> <translation id="4303223480529385476">اسٹیٹس ایریا کو پھیلائیں</translation> <translation id="4321179778687042513">ctrl</translation> @@ -320,6 +325,7 @@ <translation id="4421231901400348175">ریموٹ اسسٹنس کے ذریعے <ph name="HELPER_NAME" /> کے ساتھ آپ کی اسکرین کے کنٹرول کا اشتراک کیا جا رہا ہے۔</translation> <translation id="4430019312045809116">والیوم</translation> <translation id="4450893287417543264">دوبارہ نہ دکھائیں</translation> +<translation id="445864333228800152">شام بخیر،</translation> <translation id="4458688154122353284">اسکرین ریکارڈنگ روکیں</translation> <translation id="4477350412780666475">اگلا ٹریک</translation> <translation id="4477892968187500306">یہ آلہ ایسی ایپس پر مشتمل ہو سکتا ہے جو Google کے ذریعے تصدیق شدہ نہیں ہیں۔</translation> @@ -430,6 +436,7 @@ <translation id="5887866489674258948">تاریک وضع</translation> <translation id="5895138241574237353">دوبارہ شروع کریں</translation> <translation id="5901316534475909376">Shift+Esc</translation> +<translation id="5909862606227538307">غیر فعال ڈیسک۔</translation> <translation id="5911909173233110115"><ph name="USERNAME" /> (<ph name="MAIL" />)</translation> <translation id="5916664084637901428">آن</translation> <translation id="5920710855273935292">مائیک خاموش کیا ہوا ہے۔</translation> @@ -561,8 +568,10 @@ <translation id="7405710164030118432">آلہ کو غیر مقفل کرنے کیلئے، اپنے Family Link کا والدین کا رسائی کا کوڈ درج کریں</translation> <translation id="741244894080940828">تبدیلی</translation> <translation id="742594950370306541">کیمرا زیر استعمال ہے۔</translation> +<translation id="742608627846767349">صبح بخیر،</translation> <translation id="743058460480092004">کیمرا اور مائیکروفون زیر استعمال ہیں۔</translation> <translation id="7466449121337984263">براہ کرم سینسر کو ٹچ کریں</translation> +<translation id="7477793887173910789">اپنی موسیقی، ویڈیوز اور بھی بہت کچھ کنٹرول کریں</translation> <translation id="7497767806359279797">زبان اور کی بورڈ منتخب کریں</translation> <translation id="7526573455193969409">ممکن ہے نیٹ ورک کو مانیٹر کیا جا رہا ہو</translation> <translation id="7536035074519304529">IP پتہ: <ph name="ADDRESS" /></translation> @@ -647,11 +656,13 @@ <translation id="8351131234907093545">نوٹ بنائیں</translation> <translation id="8371779926711439835">ایک حرف آگے جائیں</translation> <translation id="8375916635258623388">یہ <ph name="DEVICE_NAME" /> اور آپ کا فون خود کار طور پر منسلک ہو جائیں گے</translation> +<translation id="8380784334203145311">شب بخیر،</translation> <translation id="8388750414311082622">آخری ڈیسک ہٹایا نہیں جا سکا۔</translation> <translation id="8392451568018454956"><ph name="USER_EMAIL_ADDRESS" /> کیلئے اختیارات مینو</translation> <translation id="8394567579869570560">آپ کے والد/والدہ نے اس آلے کو مقفل کر دیا</translation> <translation id="8412677897383510995">ڈسپلے کی ترتیبات دکھائیں</translation> <translation id="8425213833346101688">تبدیل کریں</translation> +<translation id="8426708595819210923">شام بخیر <ph name="GIVEN_NAME" />،</translation> <translation id="8427213022735114808">کسی بھی متنی فیلڈ میں آواز کے ذریعے ٹائپنگ کی اجازت دینے کیلئے املا آپ کی آواز Google کو بھیجتا ہے۔</translation> <translation id="8428213095426709021">ترتیبات</translation> <translation id="8433186206711564395">نیٹ ورک کی ترتیبات</translation>
diff --git a/ash/strings/ash_strings_uz.xtb b/ash/strings/ash_strings_uz.xtb index f3ec11a..2b0c6444 100644 --- a/ash/strings/ash_strings_uz.xtb +++ b/ash/strings/ash_strings_uz.xtb
@@ -571,6 +571,7 @@ <translation id="742608627846767349">Xayrli tong,</translation> <translation id="743058460480092004">Kamera va mikrofon ishlatilmoqda.</translation> <translation id="7466449121337984263">Sensorga tegining</translation> +<translation id="7477793887173910789">Multimedia boshqaruvi</translation> <translation id="7497767806359279797">Til va klaviaturani tanlang</translation> <translation id="7526573455193969409">Tarmoq kuzatilishi mumkin</translation> <translation id="7536035074519304529">IP manzil: <ph name="ADDRESS" /></translation>
diff --git a/ash/strings/ash_strings_vi.xtb b/ash/strings/ash_strings_vi.xtb index 1d99079..b80395a 100644 --- a/ash/strings/ash_strings_vi.xtb +++ b/ash/strings/ash_strings_vi.xtb
@@ -11,6 +11,7 @@ <translation id="1056775291175587022">Không có mạng</translation> <translation id="1059194134494239015"><ph name="DISPLAY_NAME" />: <ph name="RESOLUTION" /></translation> <translation id="108486256082349153">Thiết bị di động: <ph name="ADDRESS" /></translation> +<translation id="1087110696012418426">Xin chào <ph name="GIVEN_NAME" />!</translation> <translation id="109942774857561566">Tôi chán quá</translation> <translation id="1104084341931202936">Hiển thị các tùy chọn cài đặt hỗ trợ tiếp cận</translation> <translation id="1104621072296271835">Các thiết bị của bạn hoạt động hiệu quả hơn khi kết nối với nhau</translation> @@ -71,6 +72,7 @@ <translation id="1677472565718498478">Còn <ph name="TIME" /></translation> <translation id="1698080062160024910">Đồng hồ hẹn giờ <ph name="TOTAL_TIME" /> · <ph name="LABEL" /></translation> <translation id="1698760176351776263">Địa chỉ IPv6: <ph name="ADDRESS" /></translation> +<translation id="1708345662127501511">Không gian làm việc: <ph name="DESK_NAME" /></translation> <translation id="1709762881904163296">Cài đặt mạng</translation> <translation id="1743570585616704562">Không nhận dạng được</translation> <translation id="1746730358044914197">Các phương thức nhập do quản trị viên của bạn định cấu hình.</translation> @@ -107,6 +109,7 @@ <translation id="2018630726571919839">Kể truyện cười cho tôi</translation> <translation id="2050339315714019657">Khổ dọc</translation> <translation id="2067602449040652523">Độ sáng bàn phím</translation> +<translation id="2083190527011054446">Xin chào <ph name="GIVEN_NAME" />!</translation> <translation id="209965399369889474">Chưa kết nối với mạng</translation> <translation id="2126242104232412123">Không gian làm việc mới</translation> <translation id="2127372758936585790">Bộ sạc công suất thấp</translation> @@ -185,6 +188,7 @@ <translation id="3009178788565917040">Thiết bị ra</translation> <translation id="3033545621352269033">Đang bật</translation> <translation id="3038571455154067151">Để đăng nhập, hãy nhập mã truy cập dành cho cha mẹ của Family Link</translation> +<translation id="3045488863354895414">Xin chào!</translation> <translation id="3051128274746680507">Hồ sơ người dùng được giám sát của bạn sẽ sớm bị xóa. Đăng nhập để tìm hiểu thêm.</translation> <translation id="3055162170959710888">Bạn đã dùng thiết bị này trong <ph name="USED_TIME" /> hôm nay</translation> <translation id="3076778413190775903">Khay trạng thái, thời gian <ph name="TIME" />, @@ -304,6 +308,7 @@ <translation id="4261870227682513959">Hiển thị các tùy chọn cài đặt thông báo. Thông báo hiện đang tắt</translation> <translation id="4269883910223712419">Quản trị viên của thiết bị này có thể:</translation> <translation id="4279490309300973883">Đang phản chiếu</translation> +<translation id="4294319844246081198">Xin chào <ph name="GIVEN_NAME" />!</translation> <translation id="4296136865091727875">Xóa tất cả <ph name="COUNT" /> thông báo</translation> <translation id="4303223480529385476">Mở rộng khu vực trạng thái</translation> <translation id="4321179778687042513">ctrl</translation> @@ -320,6 +325,7 @@ <translation id="4421231901400348175">Chia sẻ quyền kiểm soát màn hình của bạn với <ph name="HELPER_NAME" /> qua Trợ giúp từ xa.</translation> <translation id="4430019312045809116">Âm lượng</translation> <translation id="4450893287417543264">Không hiển thị lại</translation> +<translation id="445864333228800152">Xin chào!</translation> <translation id="4458688154122353284">Dừng ghi màn hình</translation> <translation id="4477350412780666475">Bản nhạc tiếp theo</translation> <translation id="4477892968187500306">Thiết bị này có thể chứa những ứng dụng mà Google chưa xác minh.</translation> @@ -430,6 +436,7 @@ <translation id="5887866489674258948">Chế độ tối</translation> <translation id="5895138241574237353">Khởi động lại</translation> <translation id="5901316534475909376">Shift+Esc</translation> +<translation id="5909862606227538307">Không gian làm việc không hoạt động.</translation> <translation id="5911909173233110115"><ph name="USERNAME" /> (<ph name="MAIL" />)</translation> <translation id="5916664084637901428">Bật</translation> <translation id="5920710855273935292">Micrô đang tắt.</translation> @@ -561,8 +568,10 @@ <translation id="7405710164030118432">Để mở khóa thiết bị này, hãy nhập mã truy cập Family Link dành cho cha mẹ của bạn</translation> <translation id="741244894080940828">chuyển đổi</translation> <translation id="742594950370306541">Máy ảnh đang được sử dụng.</translation> +<translation id="742608627846767349">Xin chào!</translation> <translation id="743058460480092004">Máy ảnh và micrô đang được sử dụng.</translation> <translation id="7466449121337984263">Vui lòng chạm vào cảm biến</translation> +<translation id="7477793887173910789">Điều khiển nhạc, video và nhiều nội dung khác</translation> <translation id="7497767806359279797">Chọn ngôn ngữ và bàn phím</translation> <translation id="7526573455193969409">Mạng có thể được giám sát</translation> <translation id="7536035074519304529">Địa chỉ IP: <ph name="ADDRESS" /></translation> @@ -647,11 +656,13 @@ <translation id="8351131234907093545">Tạo ghi chú</translation> <translation id="8371779926711439835">Tiến một ký tự</translation> <translation id="8375916635258623388"><ph name="DEVICE_NAME" /> này và điện thoại của bạn sẽ tự động kết nối</translation> +<translation id="8380784334203145311">Xin chào!</translation> <translation id="8388750414311082622">Không thể xóa không gian làm việc gần đây nhất.</translation> <translation id="8392451568018454956">Menu tùy chọn dành cho <ph name="USER_EMAIL_ADDRESS" /></translation> <translation id="8394567579869570560">Cha mẹ của bạn đã khóa thiết bị này</translation> <translation id="8412677897383510995">Hiển thị các tùy chọn cài đặt màn hình</translation> <translation id="8425213833346101688">Thay đổi</translation> +<translation id="8426708595819210923">Xin chào <ph name="GIVEN_NAME" />!</translation> <translation id="8427213022735114808">Tính năng nhập bằng giọng nói gửi giọng nói của bạn tới Google để cho phép nhập liệu bằng giọng nói vào bất kỳ trường văn bản nào.</translation> <translation id="8428213095426709021">Cài đặt</translation> <translation id="8433186206711564395">Cài đặt mạng</translation>
diff --git a/ash/strings/ash_strings_zh-CN.xtb b/ash/strings/ash_strings_zh-CN.xtb index 1b205e7..51aff5f 100644 --- a/ash/strings/ash_strings_zh-CN.xtb +++ b/ash/strings/ash_strings_zh-CN.xtb
@@ -563,6 +563,7 @@ <translation id="742594950370306541">摄像头处于使用状态。</translation> <translation id="743058460480092004">摄像头和麦克风处于使用状态。</translation> <translation id="7466449121337984263">请轻触传感器</translation> +<translation id="7477793887173910789">控制您的音乐、视频等媒体内容</translation> <translation id="7497767806359279797">选择语言和键盘布局</translation> <translation id="7526573455193969409">网络可能受到了监控</translation> <translation id="7536035074519304529">IP 地址:<ph name="ADDRESS" /></translation>
diff --git a/ash/strings/ash_strings_zh-HK.xtb b/ash/strings/ash_strings_zh-HK.xtb index 3137e3c..2a193ca 100644 --- a/ash/strings/ash_strings_zh-HK.xtb +++ b/ash/strings/ash_strings_zh-HK.xtb
@@ -11,6 +11,7 @@ <translation id="1056775291175587022">沒有網絡</translation> <translation id="1059194134494239015"><ph name="DISPLAY_NAME" />:<ph name="RESOLUTION" /></translation> <translation id="108486256082349153">流動裝置:<ph name="ADDRESS" /></translation> +<translation id="1087110696012418426"><ph name="GIVEN_NAME" />,午安:</translation> <translation id="109942774857561566">我好悶</translation> <translation id="1104084341931202936">顯示無障礙功能設定</translation> <translation id="1104621072296271835">連結您的裝置,以獲得更佳的體驗</translation> @@ -71,6 +72,7 @@ <translation id="1677472565718498478">電量尚餘 <ph name="TIME" /></translation> <translation id="1698080062160024910"><ph name="TOTAL_TIME" /> 計時器 · <ph name="LABEL" /></translation> <translation id="1698760176351776263">IPv6 位址:<ph name="ADDRESS" /></translation> +<translation id="1708345662127501511">桌面:<ph name="DESK_NAME" /></translation> <translation id="1709762881904163296">網絡設定</translation> <translation id="1743570585616704562">無法識別</translation> <translation id="1746730358044914197">您的管理員已設定輸入方法。</translation> @@ -107,6 +109,7 @@ <translation id="2018630726571919839">講笑話</translation> <translation id="2050339315714019657">直向</translation> <translation id="2067602449040652523">鍵盤亮度</translation> +<translation id="2083190527011054446"><ph name="GIVEN_NAME" />,晚安:</translation> <translation id="209965399369889474">未連接網絡</translation> <translation id="2126242104232412123">新增虛擬桌面</translation> <translation id="2127372758936585790">低功率充電器</translation> @@ -185,6 +188,7 @@ <translation id="3009178788565917040">輸出</translation> <translation id="3033545621352269033">已開啟</translation> <translation id="3038571455154067151">如要登入帳戶,請輸入 Family Link 家長存取碼</translation> +<translation id="3045488863354895414">午安,</translation> <translation id="3051128274746680507">您的受管使用者檔案即將被移除。登入即可瞭解詳情。</translation> <translation id="3055162170959710888">您今天的裝置使用時間:<ph name="USED_TIME" /></translation> <translation id="3076778413190775903">狀態列,時間 <ph name="TIME" />, @@ -304,6 +308,7 @@ <translation id="4261870227682513959">顯示通知設定。通知已關閉</translation> <translation id="4269883910223712419">此裝置的管理員擁有下列權限:</translation> <translation id="4279490309300973883">鏡像</translation> +<translation id="4294319844246081198"><ph name="GIVEN_NAME" />,早晨:</translation> <translation id="4296136865091727875">清除全部 <ph name="COUNT" /> 個通知</translation> <translation id="4303223480529385476">展開狀態區</translation> <translation id="4321179778687042513">ctrl</translation> @@ -320,6 +325,7 @@ <translation id="4421231901400348175">透過「遠端協助」與 <ph name="HELPER_NAME" /> 共用螢幕控制權。</translation> <translation id="4430019312045809116">音量</translation> <translation id="4450893287417543264">不要再顯示</translation> +<translation id="445864333228800152">晚安,</translation> <translation id="4458688154122353284">停止螢幕錄影</translation> <translation id="4477350412780666475">下一首曲目</translation> <translation id="4477892968187500306">此裝置可能包含未經 Google 驗證的的應用程式。</translation> @@ -430,6 +436,7 @@ <translation id="5887866489674258948">暗光模式</translation> <translation id="5895138241574237353">重新啟動</translation> <translation id="5901316534475909376">Shift + Esc 鍵</translation> +<translation id="5909862606227538307">唔係用緊嘅桌面。</translation> <translation id="5911909173233110115"><ph name="USERNAME" /> (<ph name="MAIL" />)</translation> <translation id="5916664084637901428">開啟</translation> <translation id="5920710855273935292">咪高風校咗靜音。</translation> @@ -561,8 +568,10 @@ <translation id="7405710164030118432">如要解鎖裝置,請輸入您的 Family Link 家長存取碼</translation> <translation id="741244894080940828">轉換</translation> <translation id="742594950370306541">相機正在使用中。</translation> +<translation id="742608627846767349">早晨,</translation> <translation id="743058460480092004">相機和麥克風正在使用中。</translation> <translation id="7466449121337984263">請輕觸感應器</translation> +<translation id="7477793887173910789">控制音樂、影片及其他內容</translation> <translation id="7497767806359279797">選擇語言和鍵盤配置</translation> <translation id="7526573455193969409">網絡可能會受到監控</translation> <translation id="7536035074519304529">IP 位址:<ph name="ADDRESS" /></translation> @@ -647,11 +656,13 @@ <translation id="8351131234907093545">建立筆記</translation> <translation id="8371779926711439835">往前一個字母</translation> <translation id="8375916635258623388">此 <ph name="DEVICE_NAME" /> 和手機將會自動連接</translation> +<translation id="8380784334203145311">晚安,</translation> <translation id="8388750414311082622">無法移除最後一個桌面。</translation> <translation id="8392451568018454956"><ph name="USER_EMAIL_ADDRESS" /> 的選項選單</translation> <translation id="8394567579869570560">您的家長已鎖定此裝置</translation> <translation id="8412677897383510995">顯示螢幕設定</translation> <translation id="8425213833346101688">變更</translation> +<translation id="8426708595819210923"><ph name="GIVEN_NAME" />,晚安:</translation> <translation id="8427213022735114808">「語音聽寫」將您的語音傳送給 Google,以便透過語音輸入填寫任何文字欄位。</translation> <translation id="8428213095426709021">設定</translation> <translation id="8433186206711564395">網絡設定</translation>
diff --git a/ash/strings/ash_strings_zh-TW.xtb b/ash/strings/ash_strings_zh-TW.xtb index ca442fe..4461866 100644 --- a/ash/strings/ash_strings_zh-TW.xtb +++ b/ash/strings/ash_strings_zh-TW.xtb
@@ -11,10 +11,11 @@ <translation id="1056775291175587022">沒有網路</translation> <translation id="1059194134494239015"><ph name="DISPLAY_NAME" />:<ph name="RESOLUTION" /></translation> <translation id="108486256082349153">行動裝置:<ph name="ADDRESS" /></translation> +<translation id="1087110696012418426">午安,<ph name="GIVEN_NAME" />:</translation> <translation id="109942774857561566">我好無聊</translation> <translation id="1104084341931202936">顯示無障礙設定</translation> <translation id="1104621072296271835">完成連結可進一步提升裝置效能</translation> -<translation id="1119348796022671382">主題色彩模式會使用從桌布擷取的色彩為介面簡單上色。</translation> +<translation id="1119348796022671382">主題色彩模式會使用從桌布擷取的色彩,在介面上套用相對應的色調。</translation> <translation id="112308213915226829">自動隱藏檔案櫃</translation> <translation id="1153356358378277386">配對裝置</translation> <translation id="1175572348579024023">捲動</translation> @@ -71,6 +72,7 @@ <translation id="1677472565718498478"><ph name="TIME" /> 後用盡</translation> <translation id="1698080062160024910"><ph name="TOTAL_TIME" />的計時器 · <ph name="LABEL" /></translation> <translation id="1698760176351776263">IPv6 位址:<ph name="ADDRESS" /></translation> +<translation id="1708345662127501511">桌面:<ph name="DESK_NAME" /></translation> <translation id="1709762881904163296">網路設定</translation> <translation id="1743570585616704562">無法識別</translation> <translation id="1746730358044914197">輸入法是由你的管理員所設定。</translation> @@ -107,6 +109,7 @@ <translation id="2018630726571919839">講個笑話</translation> <translation id="2050339315714019657">直向</translation> <translation id="2067602449040652523">鍵盤亮度</translation> +<translation id="2083190527011054446">晚安,<ph name="GIVEN_NAME" />:</translation> <translation id="209965399369889474">未連上網路</translation> <translation id="2126242104232412123">新增虛擬桌面</translation> <translation id="2127372758936585790">低功率充電器</translation> @@ -185,6 +188,7 @@ <translation id="3009178788565917040">輸出</translation> <translation id="3033545621352269033">開啟</translation> <translation id="3038571455154067151">如要登入帳戶,請輸入 Family Link 家長存取碼</translation> +<translation id="3045488863354895414">午安,</translation> <translation id="3051128274746680507">系統即將移除你的受監管使用者個人資料。登入即可瞭解詳情。</translation> <translation id="3055162170959710888">你今天的裝置使用時間:<ph name="USED_TIME" /></translation> <translation id="3076778413190775903">狀態匣,時間 <ph name="TIME" />, @@ -304,6 +308,7 @@ <translation id="4261870227682513959">顯示通知設定。已關閉所有通知</translation> <translation id="4269883910223712419">這部裝置的管理員擁有下列權限:</translation> <translation id="4279490309300973883">鏡像</translation> +<translation id="4294319844246081198">早安,<ph name="GIVEN_NAME" />:</translation> <translation id="4296136865091727875">清除全部 <ph name="COUNT" /> 則通知</translation> <translation id="4303223480529385476">展開狀態區</translation> <translation id="4321179778687042513">Ctrl</translation> @@ -320,6 +325,7 @@ <translation id="4421231901400348175">透過遠端協助與<ph name="HELPER_NAME" />分享螢幕控制功能。</translation> <translation id="4430019312045809116">音量</translation> <translation id="4450893287417543264">不要再顯示</translation> +<translation id="445864333228800152">晚安,</translation> <translation id="4458688154122353284">停止錄製螢幕畫面</translation> <translation id="4477350412780666475">下一首曲目</translation> <translation id="4477892968187500306">這個裝置可能包含尚未經 Google 驗證的應用程式。</translation> @@ -430,6 +436,7 @@ <translation id="5887866489674258948">深色模式</translation> <translation id="5895138241574237353">重新啟動</translation> <translation id="5901316534475909376">Shift + Esc 鍵</translation> +<translation id="5909862606227538307">非使用中的桌面。</translation> <translation id="5911909173233110115"><ph name="USERNAME" /> (<ph name="MAIL" />)</translation> <translation id="5916664084637901428">開啟</translation> <translation id="5920710855273935292">麥克風已設為靜音。</translation> @@ -561,8 +568,10 @@ <translation id="7405710164030118432">如要將這部裝置解鎖,請輸入你的 Family Link 家長存取碼</translation> <translation id="741244894080940828">轉換</translation> <translation id="742594950370306541">攝影機正在使用中。</translation> +<translation id="742608627846767349">早安,</translation> <translation id="743058460480092004">攝影機和麥克風正在使用中。</translation> <translation id="7466449121337984263">請輕觸感應器</translation> +<translation id="7477793887173910789">控管你的音樂、影片等項目</translation> <translation id="7497767806359279797">選擇語言和鍵盤配置</translation> <translation id="7526573455193969409">網路可能會受到監控</translation> <translation id="7536035074519304529">IP 位址:<ph name="ADDRESS" /></translation> @@ -647,11 +656,13 @@ <translation id="8351131234907093545">寫筆記</translation> <translation id="8371779926711439835">移至下一個字母</translation> <translation id="8375916635258623388">這部 <ph name="DEVICE_NAME" /> 會自動連結到你的手機</translation> +<translation id="8380784334203145311">晚安,</translation> <translation id="8388750414311082622">無法移除最後一個桌面。</translation> <translation id="8392451568018454956"><ph name="USER_EMAIL_ADDRESS" /> 的選項選單</translation> <translation id="8394567579869570560">你的家長已鎖定這部裝置</translation> <translation id="8412677897383510995">顯示螢幕設定</translation> <translation id="8425213833346101688">變更</translation> +<translation id="8426708595819210923">晚安,<ph name="GIVEN_NAME" />:</translation> <translation id="8427213022735114808">語音輸入功能會將你的語音資料傳送給 Google,讓你使用自己的語音在任何文字欄位中輸入內容。</translation> <translation id="8428213095426709021">設定</translation> <translation id="8433186206711564395">網路設定</translation>
diff --git a/ash/strings/ash_strings_zu.xtb b/ash/strings/ash_strings_zu.xtb index eef38a46..574b7bc6 100644 --- a/ash/strings/ash_strings_zu.xtb +++ b/ash/strings/ash_strings_zu.xtb
@@ -571,6 +571,7 @@ <translation id="742608627846767349">Sawubona,</translation> <translation id="743058460480092004">Ikhamela nemakrofoni kuyasetshenziswa.</translation> <translation id="7466449121337984263">Sicela uthinte inzwa</translation> +<translation id="7477793887173910789">Lawula umculo wakho, amavidiyo, nokuningi</translation> <translation id="7497767806359279797">Khetha ulimi nekhibhodi</translation> <translation id="7526573455193969409">Inethiwekhi kungenzeka iqashiwe</translation> <translation id="7536035074519304529">Ikheli le-IP: <ph name="ADDRESS" /></translation>
diff --git a/ash/style/ash_color_provider.cc b/ash/style/ash_color_provider.cc index 00cc541..9af199a 100644 --- a/ash/style/ash_color_provider.cc +++ b/ash/style/ash_color_provider.cc
@@ -6,11 +6,9 @@ #include <math.h> -#include "ash/public/cpp/ash_switches.h" #include "ash/shell.h" #include "ash/wallpaper/wallpaper_controller_impl.h" #include "base/check_op.h" -#include "base/command_line.h" #include "base/stl_util.h" #include "base/strings/string_number_conversions.h" #include "ui/chromeos/colors/cros_colors.h" @@ -57,35 +55,12 @@ // The spacing between a pill button's icon and label, if it has both. constexpr int kPillButtonImageLabelSpacingDp = 8; -// Gets the color mode value from feature flag "--ash-color-mode". -AshColorProvider::AshColorMode GetColorModeFromCommandLine() { - const base::CommandLine* cl = base::CommandLine::ForCurrentProcess(); - - if (!cl->HasSwitch(switches::kAshColorMode)) - return AshColorProvider::AshColorMode::kDefault; - - const std::string switch_value = - cl->GetSwitchValueASCII(switches::kAshColorMode); - if (switch_value == switches::kAshColorModeDark) - return AshColorProvider::AshColorMode::kDark; - - if (switch_value == switches::kAshColorModeLight) - return AshColorProvider::AshColorMode::kLight; - - return AshColorProvider::AshColorMode::kDefault; -} - bool IsLightMode(AshColorProvider::AshColorMode color_mode) { return color_mode == AshColorProvider::AshColorMode::kLight; } } // namespace -AshColorProvider::AshColorProvider() - : color_mode_(GetColorModeFromCommandLine()) {} - -AshColorProvider::~AshColorProvider() = default; - // static AshColorProvider* AshColorProvider::Get() { return Shell::Get()->ash_color_provider();
diff --git a/ash/style/ash_color_provider.h b/ash/style/ash_color_provider.h index 6c67d438..1ef95c0 100644 --- a/ash/style/ash_color_provider.h +++ b/ash/style/ash_color_provider.h
@@ -6,7 +6,6 @@ #define ASH_STYLE_ASH_COLOR_PROVIDER_H_ #include "ash/ash_export.h" -#include "base/macros.h" #include "third_party/skia/include/core/SkColor.h" #include "ui/gfx/vector_icon_types.h" @@ -143,8 +142,10 @@ const float highlight_opacity; }; - AshColorProvider(); - ~AshColorProvider(); + AshColorProvider() = default; + AshColorProvider(const AshColorProvider& other) = delete; + AshColorProvider operator=(const AshColorProvider& other) = delete; + ~AshColorProvider() = default; static AshColorProvider* Get(); @@ -255,8 +256,6 @@ // Whether the system color mode is themed, by default is true. If true, the // background color will be calculated based on extracted wallpaper color. bool is_themed_ = true; - - DISALLOW_COPY_AND_ASSIGN(AshColorProvider); }; } // namespace ash
diff --git a/ash/system/unified/unified_system_tray_controller.cc b/ash/system/unified/unified_system_tray_controller.cc index ce37969..7a7da611 100644 --- a/ash/system/unified/unified_system_tray_controller.cc +++ b/ash/system/unified/unified_system_tray_controller.cc
@@ -22,6 +22,7 @@ #include "ash/system/cast/cast_feature_pod_controller.h" #include "ash/system/cast/unified_cast_detailed_view_controller.h" #include "ash/system/dark_mode/dark_mode_detailed_view_controller.h" +#include "ash/system/dark_mode/dark_mode_feature_pod_controller.h" #include "ash/system/ime/ime_feature_pod_controller.h" #include "ash/system/ime/unified_ime_detailed_view_controller.h" #include "ash/system/locale/locale_feature_pod_controller.h" @@ -420,6 +421,8 @@ AddFeaturePodItem(std::make_unique<LocaleFeaturePodController>(this)); if (features::IsCaptureModeEnabled()) AddFeaturePodItem(std::make_unique<CaptureModeFeaturePodController>()); + if (features::IsDarkLightModeEnabled()) + AddFeaturePodItem(std::make_unique<DarkModeFeaturePodController>(this)); // If you want to add a new feature pod item, add here.
diff --git a/base/BUILD.gn b/base/BUILD.gn index 101c61a3..6e82a458 100644 --- a/base/BUILD.gn +++ b/base/BUILD.gn
@@ -715,6 +715,7 @@ "task_runner_util.h", "template_util.h", "test/malloc_wrapper.h", + "test/scoped_logging_settings.h", "test/spin_wait.h", "third_party/cityhash/city.cc", "third_party/cityhash/city.h", @@ -1514,6 +1515,7 @@ # Chromeos. if (is_chromeos) { sources += [ + "logging_chromeos.cc", "power_monitor/power_monitor_device_source_chromeos.cc", "system/sys_info_chromeos.cc", ] @@ -2876,6 +2878,7 @@ "test/metrics/user_action_tester_unittest.cc", "test/mock_callback_unittest.cc", "test/scoped_feature_list_unittest.cc", + "test/scoped_logging_settings.h", "test/scoped_mock_clock_override_unittest.cc", "test/scoped_mock_time_message_loop_task_runner_unittest.cc", "test/scoped_run_loop_timeout_unittest.cc",
diff --git a/base/containers/span_unittest.cc b/base/containers/span_unittest.cc index b2ee369..f4e62cd0 100644 --- a/base/containers/span_unittest.cc +++ b/base/containers/span_unittest.cc
@@ -1438,12 +1438,6 @@ uint8_t plain_array[kSize] = {0}; static_assert(EXTENT(plain_array) == kSize, "EXTENT broken for plain arrays"); - - // EXTENT should not result in |dynamic_extent|, it should be a compile-time - // error. However, we don't have compile-failure tests. - // - // std::vector<uint8_t> vector; - // static_assert(EXTENT(vector) == dynamic_extent, "Should not compile"); } } // namespace base
diff --git a/base/containers/span_unittest.nc b/base/containers/span_unittest.nc index 63b93615..be2994d 100644 --- a/base/containers/span_unittest.nc +++ b/base/containers/span_unittest.nc
@@ -213,6 +213,15 @@ constexpr auto made_span = make_span<2>(str); } +#elif defined(NCTEST_EXTENT_NO_DYNAMIC_EXTENT) // [r"EXTENT should only be used for containers with a static extent"] + +// EXTENT should not result in |dynamic_extent|, it should be a compile-time +// error. +void WontCompile() { + std::vector<uint8_t> vector; + static_assert(EXTENT(vector) == 0, "Should not compile"); +} + #endif } // namespace base
diff --git a/base/logging.cc b/base/logging.cc index 11229fe..48608e8 100644 --- a/base/logging.cc +++ b/base/logging.cc
@@ -116,6 +116,7 @@ #include "base/strings/sys_string_conversions.h" #include "base/strings/utf_string_conversions.h" #include "base/synchronization/lock.h" +#include "base/test/scoped_logging_settings.h" #include "base/threading/platform_thread.h" #include "base/vlog.h" @@ -154,6 +155,12 @@ // LoggingDestination values joined by bitwise OR. int g_logging_destination = LOG_DEFAULT; +#if defined(OS_CHROMEOS) +// Specifies the format of log header. If set to LOG_FORMAT_SYSLOG, each +// LogMessage will generate a syslog-like log header. +LogFormat g_log_format = LogFormat::LOG_FORMAT_CHROME; +#endif + // For LOG_ERROR and above, always print to stderr. const int kAlwaysPrintErrorLevel = LOG_ERROR; @@ -403,6 +410,7 @@ CloseLogFileUnlocked(); #if defined(OS_CHROMEOS) + g_log_format = settings.log_format; if (settings.log_file) { DCHECK(!settings.log_file_path); g_log_file = settings.log_file; @@ -882,60 +890,66 @@ // Stores the base name as the null-terminated suffix substring of |filename|. file_basename_ = filename.data(); - // TODO(darin): It might be nice if the columns were fixed width. - - stream_ << '['; - if (g_log_prefix) - stream_ << g_log_prefix << ':'; - if (g_log_process_id) - stream_ << base::GetUniqueIdForProcess() << ':'; - if (g_log_thread_id) - stream_ << base::PlatformThread::CurrentId() << ':'; - if (g_log_timestamp) { +#if defined(OS_CHROMEOS) + if (g_log_format == LogFormat::LOG_FORMAT_SYSLOG) { + InitWithSyslogPrefix( + filename, line, TickCount(), log_severity_name(severity_), g_log_prefix, + g_log_process_id, g_log_thread_id, g_log_timestamp, g_log_tickcount); + } else +#endif // defined(OS_CHROMEOS) + { + // TODO(darin): It might be nice if the columns were fixed width. + stream_ << '['; + if (g_log_prefix) + stream_ << g_log_prefix << ':'; + if (g_log_process_id) + stream_ << base::GetUniqueIdForProcess() << ':'; + if (g_log_thread_id) + stream_ << base::PlatformThread::CurrentId() << ':'; + if (g_log_timestamp) { #if defined(OS_WIN) - SYSTEMTIME local_time; - GetLocalTime(&local_time); - stream_ << std::setfill('0') - << std::setw(2) << local_time.wMonth - << std::setw(2) << local_time.wDay - << '/' - << std::setw(2) << local_time.wHour - << std::setw(2) << local_time.wMinute - << std::setw(2) << local_time.wSecond - << '.' - << std::setw(3) - << local_time.wMilliseconds - << ':'; + SYSTEMTIME local_time; + GetLocalTime(&local_time); + stream_ << std::setfill('0') + << std::setw(2) << local_time.wMonth + << std::setw(2) << local_time.wDay + << '/' + << std::setw(2) << local_time.wHour + << std::setw(2) << local_time.wMinute + << std::setw(2) << local_time.wSecond + << '.' + << std::setw(3) << local_time.wMilliseconds + << ':'; #elif defined(OS_POSIX) || defined(OS_FUCHSIA) - timeval tv; - gettimeofday(&tv, nullptr); - time_t t = tv.tv_sec; - struct tm local_time; - localtime_r(&t, &local_time); - struct tm* tm_time = &local_time; - stream_ << std::setfill('0') - << std::setw(2) << 1 + tm_time->tm_mon - << std::setw(2) << tm_time->tm_mday - << '/' - << std::setw(2) << tm_time->tm_hour - << std::setw(2) << tm_time->tm_min - << std::setw(2) << tm_time->tm_sec - << '.' - << std::setw(6) << tv.tv_usec - << ':'; + timeval tv; + gettimeofday(&tv, nullptr); + time_t t = tv.tv_sec; + struct tm local_time; + localtime_r(&t, &local_time); + struct tm* tm_time = &local_time; + stream_ << std::setfill('0') + << std::setw(2) << 1 + tm_time->tm_mon + << std::setw(2) << tm_time->tm_mday + << '/' + << std::setw(2) << tm_time->tm_hour + << std::setw(2) << tm_time->tm_min + << std::setw(2) << tm_time->tm_sec + << '.' + << std::setw(6) << tv.tv_usec + << ':'; #else #error Unsupported platform #endif + } + if (g_log_tickcount) + stream_ << TickCount() << ':'; + if (severity_ >= 0) { + stream_ << log_severity_name(severity_); + } else { + stream_ << "VERBOSE" << -severity_; + } + stream_ << ":" << filename << "(" << line << ")] "; } - if (g_log_tickcount) - stream_ << TickCount() << ':'; - if (severity_ >= 0) - stream_ << log_severity_name(severity_); - else - stream_ << "VERBOSE" << -severity_; - - stream_ << ":" << filename << "(" << line << ")] "; - message_start_ = stream_.str().length(); } @@ -1031,6 +1045,38 @@ } #endif +// Used for testing. Declared in test/scoped_logging_settings.h. +ScopedLoggingSettings::ScopedLoggingSettings() + : enable_process_id_(g_log_process_id), + enable_thread_id_(g_log_thread_id), + enable_timestamp_(g_log_timestamp), + enable_tickcount_(g_log_tickcount), + min_log_level_(GetMinLogLevel()), + message_handler_(GetLogMessageHandler()) { +#if defined(OS_CHROMEOS) + log_format_ = g_log_format; +#endif // defined(OS_CHROMEOS) +} + +ScopedLoggingSettings::~ScopedLoggingSettings() { + g_log_process_id = enable_process_id_; + g_log_thread_id = enable_thread_id_; + g_log_timestamp = enable_timestamp_; + g_log_tickcount = enable_tickcount_; + SetMinLogLevel(min_log_level_); + SetLogMessageHandler(message_handler_); + +#if defined(OS_CHROMEOS) + g_log_format = log_format_; +#endif // defined(OS_CHROMEOS) +} + +#if defined(OS_CHROMEOS) +void ScopedLoggingSettings::SetLogFormat(LogFormat log_format) const { + g_log_format = log_format; +} +#endif // defined(OS_CHROMEOS) + void RawLog(int level, const char* message) { if (level >= g_min_log_level && message) { size_t bytes_written = 0;
diff --git a/base/logging.h b/base/logging.h index d967ecb3..79c4644c6 100644 --- a/base/logging.h +++ b/base/logging.h
@@ -147,7 +147,7 @@ // There is the special severity of DFATAL, which logs FATAL in debug mode, // ERROR in normal mode. // -// Output is of the format, for example: +// Output is formatted as per the following example, except on Chrome OS. // [3816:3877:0812/234555.406952:VERBOSE1:drm_device_handle.cc(90)] Succeeded // authenticating /dev/dri/card0 in 0 ms with 1 attempt(s) // @@ -159,6 +159,9 @@ // 4. The log level // 5. The filename and line number where the log was instantiated // +// Output for Chrome OS can be switched to syslog-like format. See +// InitWithSyslogPrefix() in logging_chromeos.h for details. +// // Note that the visibility can be changed by setting preferences in // SetLogItems() // @@ -214,6 +217,12 @@ // Defaults to APPEND_TO_OLD_LOG_FILE. enum OldFileDeletionState { DELETE_OLD_LOG_FILE, APPEND_TO_OLD_LOG_FILE }; +#if defined(OS_CHROMEOS) +// Used to set log format for Chrome OS. It is set to LOG_FORMAT_CHROME by +// default which is the traditional Chrome log format. +enum class BASE_EXPORT LogFormat { LOG_FORMAT_CHROME, LOG_FORMAT_SYSLOG }; +#endif + struct BASE_EXPORT LoggingSettings { // Equivalent to logging destination enum, but allows for multiple // destinations. @@ -230,6 +239,9 @@ // of the FILE. If there's an error writing to this file, no fallback paths // will be opened. FILE* log_file = nullptr; + // Setting this to LogFormat::LOG_FORMAT_SYSLOG makes logging generate header + // in syslog-compatible format. + LogFormat log_format = LogFormat::LOG_FORMAT_CHROME; #endif }; @@ -593,6 +605,18 @@ // will have lost the thread error value when the log call returns. base::ScopedClearLastError last_error_; +#if defined(OS_CHROMEOS) + void InitWithSyslogPrefix(base::StringPiece filename, + int line, + uint64_t tick_count, + const char* log_severity_name_c_str, + const char* log_prefix, + bool enable_process_id, + bool enable_thread_id, + bool enable_timestamp, + bool enable_tickcount); +#endif + DISALLOW_COPY_AND_ASSIGN(LogMessage); };
diff --git a/base/logging_chromeos.cc b/base/logging_chromeos.cc new file mode 100644 index 0000000..a6a26d6 --- /dev/null +++ b/base/logging_chromeos.cc
@@ -0,0 +1,90 @@ +// Copyright 2020 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +// Define _GNU_SOURCE to ensure that <errno.h> defines +// program_invocation_short_name which is used in GetProgramName(). Keep this at +// the top of the file since some system headers might include <errno.h> and the +// header could be skipped on subsequent includes. +#if !defined(_GNU_SOURCE) +#define _GNU_SOURCE +#endif + +#include "base/logging.h" + +#include <errno.h> + +#include <iomanip> + +#include "base/process/process_handle.h" +#include "base/strings/string_piece.h" +#include "base/threading/platform_thread.h" + +namespace logging { + +namespace { +const char* GetProgramName() { + return program_invocation_short_name ? program_invocation_short_name : ""; +} +} // namespace + +// InitWithSyslogPrefix generates log header for Chrome OS in syslog compatible +// format. The timezone will always be UTC regardless of devices' timezone. +// `<rfc3339_timestamp> <tickcount> <log_level>` +// `<program_name>[<pid>:<thread_id>]: ` +// `[<filename>(<line_number>)] <message>` +// +// e.g. +// 2020-06-27T23:55:25.094701Z 1234 VERBOSE1 chrome[3816:3877]: +// [drm_device_handle.cc(90)] Succeeded authenticating /dev/dri/card0 in 0 ms +// with 1 attempt(s) +void LogMessage::InitWithSyslogPrefix(base::StringPiece filename, + int line, + uint64_t tick_count, + const char* log_severity_name_c_str, + const char* log_prefix, + bool enable_process_id, + bool enable_thread_id, + bool enable_timestamp, + bool enable_tickcount) { + if (log_prefix) + stream_ << log_prefix << ':'; + if (enable_timestamp) { + timeval tv{}; + gettimeofday(&tv, nullptr); + time_t t = tv.tv_sec; + struct tm utc_time {}; + gmtime_r(&t, &utc_time); + stream_ << std::setfill('0') // Set fill to 0 + << std::setw(4) << 1900 + utc_time.tm_year << "-" // year + << std::setw(2) << 1 + utc_time.tm_mon << "-" // month + << std::setw(2) << utc_time.tm_mday // date + << 'T' << std::setw(2) << utc_time.tm_hour << ":" // hour + << std::setw(2) << utc_time.tm_min << ":" // minute + << std::setw(2) << utc_time.tm_sec << "." // second + << std::setw(6) << tv.tv_usec // millisecond + << "Z "; // timezone UTC + } + if (enable_tickcount) + stream_ << tick_count << ' '; + if (severity_ >= 0) { + stream_ << log_severity_name_c_str; + } else { + stream_ << "VERBOSE" << -severity_; + } + stream_ << ' ' << GetProgramName(); + if (enable_process_id || enable_thread_id) { + stream_ << "["; + if (enable_process_id) { + stream_ << base::GetUniqueIdForProcess(); + } + if (enable_thread_id) { + stream_ << ':' << base::PlatformThread::CurrentId(); + } + stream_ << "]"; + } + stream_ << ": "; + stream_ << "[" << filename << "(" << line << ")] "; +} + +} // namespace logging
diff --git a/base/logging_unittest.cc b/base/logging_unittest.cc index bb2b3f0..9d398d7 100644 --- a/base/logging_unittest.cc +++ b/base/logging_unittest.cc
@@ -11,11 +11,13 @@ #include "base/files/scoped_temp_dir.h" #include "base/logging.h" #include "base/macros.h" +#include "base/no_destructor.h" #include "base/run_loop.h" #include "base/sanitizer_buildflags.h" #include "base/strings/string_piece.h" #include "base/test/bind_test_util.h" #include "base/test/scoped_feature_list.h" +#include "base/test/scoped_logging_settings.h" #include "base/test/task_environment.h" #include "build/build_config.h" @@ -64,27 +66,16 @@ using ::testing::Return; using ::testing::_; -// Class to make sure any manipulations we do to the min log level are -// contained (i.e., do not affect other unit tests). -class LogStateSaver { - public: - LogStateSaver() : old_min_log_level_(GetMinLogLevel()) {} - - ~LogStateSaver() { - SetMinLogLevel(old_min_log_level_); +class LoggingTest : public testing::Test { + protected: + const ScopedLoggingSettings& scoped_logging_settings() { + return scoped_logging_settings_; } private: - int old_min_log_level_; - - DISALLOW_COPY_AND_ASSIGN(LogStateSaver); -}; - -class LoggingTest : public testing::Test { - private: base::test::SingleThreadTaskEnvironment task_environment_{ base::test::SingleThreadTaskEnvironment::MainThreadType::IO}; - LogStateSaver log_state_saver_; + ScopedLoggingSettings scoped_logging_settings_; }; class MockLogSource { @@ -818,35 +809,101 @@ #endif // defined(OS_FUCHSIA) TEST_F(LoggingTest, LogPrefix) { - // Set up a callback function to capture the log output string. - auto old_log_message_handler = GetLogMessageHandler(); // Use a static because only captureless lambdas can be converted to a // function pointer for SetLogMessageHandler(). - static std::string* log_string_ptr = nullptr; - std::string log_string; - log_string_ptr = &log_string; + static base::NoDestructor<std::string> log_string; SetLogMessageHandler([](int severity, const char* file, int line, size_t start, const std::string& str) -> bool { - *log_string_ptr = str; + *log_string = str; return true; }); - // Logging with a prefix includes the prefix string after the opening '['. + // Logging with a prefix includes the prefix string. const char kPrefix[] = "prefix"; SetLogPrefix(kPrefix); LOG(ERROR) << "test"; // Writes into |log_string|. - EXPECT_EQ(1u, log_string.find(kPrefix)); - + EXPECT_NE(std::string::npos, log_string->find(kPrefix)); // Logging without a prefix does not include the prefix string. SetLogPrefix(nullptr); LOG(ERROR) << "test"; // Writes into |log_string|. - EXPECT_EQ(std::string::npos, log_string.find(kPrefix)); - - // Clean up. - SetLogMessageHandler(old_log_message_handler); - log_string_ptr = nullptr; + EXPECT_EQ(std::string::npos, log_string->find(kPrefix)); } +#if defined(OS_CHROMEOS) +TEST_F(LoggingTest, LogCrosSyslogFormat) { + // Set log format to syslog format. + scoped_logging_settings().SetLogFormat(LogFormat::LOG_FORMAT_SYSLOG); + + const char* kTimestampPattern = R"(\d\d\d\d\-\d\d\-\d\d)" // date + R"(T\d\d\:\d\d\:\d\d\.\d\d\d\d\d\d)" // time + R"(Z.+\n)"; // timezone + + // Use a static because only captureless lambdas can be converted to a + // function pointer for SetLogMessageHandler(). + static base::NoDestructor<std::string> log_string; + SetLogMessageHandler([](int severity, const char* file, int line, + size_t start, const std::string& str) -> bool { + *log_string = str; + return true; + }); + + { + // All flags are true. + SetLogItems(true, true, true, true); + const char* kExpected = + R"(\S+ \d+ ERROR \S+\[\d+:\d+\]\: \[\S+\] message\n)"; + + LOG(ERROR) << "message"; + + EXPECT_THAT(*log_string, ::testing::MatchesRegex(kTimestampPattern)); + EXPECT_THAT(*log_string, ::testing::MatchesRegex(kExpected)); + } + + { + // Timestamp is true. + SetLogItems(false, false, true, false); + const char* kExpected = R"(\S+ ERROR \S+\: \[\S+\] message\n)"; + + LOG(ERROR) << "message"; + + EXPECT_THAT(*log_string, ::testing::MatchesRegex(kTimestampPattern)); + EXPECT_THAT(*log_string, ::testing::MatchesRegex(kExpected)); + } + + { + // PID and timestamp are true. + SetLogItems(true, false, true, false); + const char* kExpected = R"(\S+ ERROR \S+\[\d+\]: \[\S+\] message\n)"; + + LOG(ERROR) << "message"; + + EXPECT_THAT(*log_string, ::testing::MatchesRegex(kTimestampPattern)); + EXPECT_THAT(*log_string, ::testing::MatchesRegex(kExpected)); + } + + { + // ThreadID and timestamp are true. + SetLogItems(false, true, true, false); + const char* kExpected = R"(\S+ ERROR \S+\[:\d+\]: \[\S+\] message\n)"; + + LOG(ERROR) << "message"; + + EXPECT_THAT(*log_string, ::testing::MatchesRegex(kTimestampPattern)); + EXPECT_THAT(*log_string, ::testing::MatchesRegex(kExpected)); + } + + { + // All flags are false. + SetLogItems(false, false, false, false); + const char* kExpected = R"(ERROR \S+: \[\S+\] message\n)"; + + LOG(ERROR) << "message"; + + EXPECT_THAT(*log_string, ::testing::MatchesRegex(kExpected)); + } +} +#endif // defined(OS_CHROMEOS) + #if !defined(ADDRESS_SANITIZER) && !defined(MEMORY_SANITIZER) && \ !BUILDFLAG(IS_HWASAN) // Since we scan potentially uninitialized portions of the stack, we can't run
diff --git a/base/process/memory_unittest.cc b/base/process/memory_unittest.cc index 59eb710..8fbaccb 100644 --- a/base/process/memory_unittest.cc +++ b/base/process/memory_unittest.cc
@@ -17,6 +17,7 @@ #include "base/compiler_specific.h" #include "base/debug/alias.h" #include "base/memory/aligned_memory.h" +#include "base/process/process_metrics.h" #include "base/strings/stringprintf.h" #include "build/build_config.h" #include "testing/gtest/include/gtest/gtest.h" @@ -129,9 +130,10 @@ public: OutOfMemoryTest() : value_(nullptr), - // Make test size as large as possible minus a few pages so - // that alignment or other rounding doesn't make it wrap. - test_size_(std::numeric_limits<std::size_t>::max() - 12 * 1024), + // Make test size as large as possible minus a few pages so that + // alignment or other rounding doesn't make it wrap. + test_size_(std::numeric_limits<std::size_t>::max() - + 3 * base::GetPageSize()), // A test size that is > 2Gb and will cause the allocators to reject // the allocation due to security restrictions. See crbug.com/169327. insecure_test_size_(std::numeric_limits<int>::max()),
diff --git a/base/test/scoped_logging_settings.h b/base/test/scoped_logging_settings.h new file mode 100644 index 0000000..08e06e2 --- /dev/null +++ b/base/test/scoped_logging_settings.h
@@ -0,0 +1,41 @@ +// Copyright 2020 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef BASE_TEST_SCOPED_LOGGING_SETTINGS_H_ +#define BASE_TEST_SCOPED_LOGGING_SETTINGS_H_ + +#include "base/logging.h" + +namespace logging { +// Saves the current logging settings and restores them when destroyed. +// This is used by logging tests to avoid affecting later tests that +// may run afterward, in the same process. +// Note that the log_file setting is not currently saved/restored. +class BASE_EXPORT ScopedLoggingSettings { + public: + ScopedLoggingSettings(); + ~ScopedLoggingSettings(); + + ScopedLoggingSettings(const ScopedLoggingSettings&) = delete; + ScopedLoggingSettings& operator=(const ScopedLoggingSettings&) = delete; + +#if defined(OS_CHROMEOS) + void SetLogFormat(LogFormat) const; +#endif + + private: + bool enable_process_id_; + bool enable_thread_id_; + bool enable_timestamp_; + bool enable_tickcount_; + int min_log_level_; + LogMessageHandlerFunction message_handler_; + +#if defined(OS_CHROMEOS) + LogFormat log_format_; +#endif // defined(OS_CHROMEOS) +}; +} // namespace logging + +#endif // BASE_TEST_SCOPED_LOGGING_SETTINGS_H_
diff --git a/base/win/core_winrt_util.cc b/base/win/core_winrt_util.cc index 0e2d079d..c674406c 100644 --- a/base/win/core_winrt_util.cc +++ b/base/win/core_winrt_util.cc
@@ -4,11 +4,18 @@ #include "base/win/core_winrt_util.h" +#include "base/threading/scoped_thread_priority.h" + namespace { FARPROC LoadComBaseFunction(const char* function_name) { - static HMODULE const handle = - ::LoadLibraryEx(L"combase.dll", nullptr, LOAD_LIBRARY_SEARCH_SYSTEM32); + static HMODULE const handle = []() { + // Mitigate the issues caused by loading DLLs on a background thread + // (http://crbug/973868). + SCOPED_MAY_LOAD_LIBRARY_AT_BACKGROUND_PRIORITY(); + return ::LoadLibraryEx(L"combase.dll", nullptr, + LOAD_LIBRARY_SEARCH_SYSTEM32); + }(); return handle ? ::GetProcAddress(handle, function_name) : nullptr; }
diff --git a/build/fuchsia/linux.sdk.sha1 b/build/fuchsia/linux.sdk.sha1 index e689840..3af3507 100644 --- a/build/fuchsia/linux.sdk.sha1 +++ b/build/fuchsia/linux.sdk.sha1
@@ -1 +1 @@ -0.20200826.1.1 +0.20200826.2.2
diff --git a/build/fuchsia/mac.sdk.sha1 b/build/fuchsia/mac.sdk.sha1 index e689840..3af3507 100644 --- a/build/fuchsia/mac.sdk.sha1 +++ b/build/fuchsia/mac.sdk.sha1
@@ -1 +1 @@ -0.20200826.1.1 +0.20200826.2.2
diff --git a/cc/BUILD.gn b/cc/BUILD.gn index 6834a25..7e1189f 100644 --- a/cc/BUILD.gn +++ b/cc/BUILD.gn
@@ -567,6 +567,8 @@ "test/test_tile_priorities.h", "test/test_tile_task_runner.cc", "test/test_tile_task_runner.h", + "test/test_types.cc", + "test/test_types.h", "test/test_ukm_recorder_factory.cc", "test/test_ukm_recorder_factory.h", "test/transfer_cache_test_helper.cc",
diff --git a/cc/test/layer_tree_pixel_resource_test.cc b/cc/test/layer_tree_pixel_resource_test.cc index dc01385..d0638f7 100644 --- a/cc/test/layer_tree_pixel_resource_test.cc +++ b/cc/test/layer_tree_pixel_resource_test.cc
@@ -18,9 +18,9 @@ namespace cc { LayerTreeHostPixelResourceTest::LayerTreeHostPixelResourceTest( - PixelResourceTestCase test_case) - : LayerTreePixelTest(test_case.renderer_type), test_case_(test_case) { - set_raster_type(test_case_.raster_type); + RasterTestConfig test_config) + : LayerTreePixelTest(test_config.renderer_type), test_config_(test_config) { + set_raster_type(test_config_.raster_type); } const char* LayerTreeHostPixelResourceTest::GetRendererSuffix() const {
diff --git a/cc/test/layer_tree_pixel_resource_test.h b/cc/test/layer_tree_pixel_resource_test.h index 7b02d72..d506dd7e 100644 --- a/cc/test/layer_tree_pixel_resource_test.h +++ b/cc/test/layer_tree_pixel_resource_test.h
@@ -12,16 +12,11 @@ namespace cc { -struct PixelResourceTestCase { - TestRendererType renderer_type; - TestRasterType raster_type; -}; - class LayerTreeHostPixelResourceTest : public LayerTreePixelTest { public: - explicit LayerTreeHostPixelResourceTest(PixelResourceTestCase test_case); + explicit LayerTreeHostPixelResourceTest(RasterTestConfig test_config); - TestRendererType renderer_type() const { return test_case_.renderer_type; } + TestRendererType renderer_type() const { return test_config_.renderer_type; } const char* GetRendererSuffix() const; @@ -36,12 +31,12 @@ void RunPixelResourceTestWithLayerList(base::FilePath file_name); protected: - const PixelResourceTestCase test_case_; + const RasterTestConfig test_config_; }; class ParameterizedPixelResourceTest : public LayerTreeHostPixelResourceTest, - public ::testing::WithParamInterface<PixelResourceTestCase> { + public ::testing::WithParamInterface<RasterTestConfig> { public: ParameterizedPixelResourceTest(); };
diff --git a/cc/test/layer_tree_pixel_test.h b/cc/test/layer_tree_pixel_test.h index 9473c63d..68e21468 100644 --- a/cc/test/layer_tree_pixel_test.h +++ b/cc/test/layer_tree_pixel_test.h
@@ -41,14 +41,6 @@ class SolidColorLayer; class TextureLayer; -enum class TestRasterType { - kBitmap, - kGpu, - kOop, - kOneCopy, - kZeroCopy, -}; - class LayerTreePixelTest : public LayerTreeTest { protected: explicit LayerTreePixelTest(TestRendererType renderer_type);
diff --git a/cc/test/layer_tree_test.h b/cc/test/layer_tree_test.h index cf823b2..38583fc 100644 --- a/cc/test/layer_tree_test.h +++ b/cc/test/layer_tree_test.h
@@ -17,6 +17,7 @@ #include "cc/test/property_tree_test_utils.h" #include "cc/test/test_hooks.h" #include "cc/test/test_task_graph_runner.h" +#include "cc/test/test_types.h" #include "cc/trees/compositor_mode.h" #include "cc/trees/layer_tree_host.h" #include "cc/trees/layer_tree_host_impl.h" @@ -38,16 +39,6 @@ namespace cc { -enum TestRendererType { - kGL, - kSkiaGL, - kSkiaVk, - // SkiaRenderer with the Dawn backend will be used; on Linux this will - // initialize Vulkan, and on Windows this will initialize D3D12. - kSkiaDawn, - kSoftware, -}; - class Animation; class AnimationHost; class LayerTreeHost;
diff --git a/cc/test/test_types.cc b/cc/test/test_types.cc new file mode 100644 index 0000000..534b174 --- /dev/null +++ b/cc/test/test_types.cc
@@ -0,0 +1,54 @@ +// Copyright 2020 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "cc/test/test_types.h" + +namespace cc { + +namespace { + +// Provides a test renderer suffix appropriate for |type|. +const char* RendererTypeTestSuffix(TestRendererType type) { + switch (type) { + case TestRendererType::kGL: + return "GL"; + case TestRendererType::kSkiaGL: + return "SkiaGL"; + case TestRendererType::kSkiaVk: + return "SkiaVulkan"; + case TestRendererType::kSkiaDawn: + return "SkiaDawn"; + case TestRendererType::kSoftware: + return "Software"; + } +} + +// Provides a test raster suffix appropriate for |type|. +const char* RasterTypeTestSuffix(TestRasterType type) { + switch (type) { + case TestRasterType::kBitmap: + return "Bitmap"; + case TestRasterType::kGpu: + return "GPU"; + case TestRasterType::kOop: + return "OOP"; + case TestRasterType::kOneCopy: + return "OneCopy"; + case TestRasterType::kZeroCopy: + return "ZeroCopy"; + } +} + +} // namespace + +void PrintTo(TestRendererType type, std::ostream* os) { + *os << RendererTypeTestSuffix(type); +} + +void PrintTo(const RasterTestConfig& config, std::ostream* os) { + PrintTo(config.renderer_type, os); + *os << '_' << RasterTypeTestSuffix(config.raster_type); +} + +} // namespace cc
diff --git a/cc/test/test_types.h b/cc/test/test_types.h new file mode 100644 index 0000000..13436e6 --- /dev/null +++ b/cc/test/test_types.h
@@ -0,0 +1,45 @@ +// Copyright 2020 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef CC_TEST_TEST_TYPES_H_ +#define CC_TEST_TEST_TYPES_H_ + +#include <ostream> + +namespace cc { + +enum class TestRendererType { + kGL, + kSkiaGL, + kSkiaVk, + // SkiaRenderer with the Dawn backend will be used; on Linux this will + // initialize Vulkan, and on Windows this will initialize D3D12. + kSkiaDawn, + kSoftware, +}; + +enum class TestRasterType { + kBitmap, + kGpu, + kOop, + kOneCopy, + kZeroCopy, +}; + +struct RasterTestConfig { + TestRendererType renderer_type; + TestRasterType raster_type; +}; + +void PrintTo(TestRendererType type, std::ostream* os); + +// Joins the |renderer_type| and |raster_type| labels using an underscore +// character, resulting in e.g. "Test/SkiaGL_OOP". Underscores shouldn't be used +// in test suite names due to a risk of name collision, but this doesn't apply +// to parameterization labels. +void PrintTo(const RasterTestConfig& config, std::ostream* os); + +} // namespace cc + +#endif // CC_TEST_TEST_TYPES_H_
diff --git a/cc/trees/layer_tree_host_pixeltest_blending.cc b/cc/trees/layer_tree_host_pixeltest_blending.cc index 390a9f84..2175c04 100644 --- a/cc/trees/layer_tree_host_pixeltest_blending.cc +++ b/cc/trees/layer_tree_host_pixeltest_blending.cc
@@ -68,7 +68,7 @@ class LayerTreeHostBlendingPixelTest : public LayerTreeHostPixelResourceTest, public ::testing::WithParamInterface< - ::testing::tuple<PixelResourceTestCase, SkBlendMode>> { + ::testing::tuple<RasterTestConfig, SkBlendMode>> { public: LayerTreeHostBlendingPixelTest() : LayerTreeHostPixelResourceTest(resource_type()), @@ -77,7 +77,7 @@ pixel_comparator_ = std::make_unique<FuzzyPixelOffByOneComparator>(true); } - PixelResourceTestCase resource_type() const { + RasterTestConfig resource_type() const { return ::testing::get<0>(GetParam()); } SkBlendMode current_blend_mode() const { @@ -259,7 +259,7 @@ SkColor misc_opaque_color_ = 0xffc86464; }; -std::vector<PixelResourceTestCase> const kTestCases = { +std::vector<RasterTestConfig> const kTestCases = { {TestRendererType::kSoftware, TestRasterType::kBitmap}, {TestRendererType::kGL, TestRasterType::kZeroCopy}, {TestRendererType::kSkiaGL, TestRasterType::kGpu},
diff --git a/cc/trees/layer_tree_host_pixeltest_filters.cc b/cc/trees/layer_tree_host_pixeltest_filters.cc index 1b07158..2fe33f5 100644 --- a/cc/trees/layer_tree_host_pixeltest_filters.cc +++ b/cc/trees/layer_tree_host_pixeltest_filters.cc
@@ -85,7 +85,8 @@ INSTANTIATE_TEST_SUITE_P(All, LayerTreeHostFiltersPixelTest, - ::testing::ValuesIn(kRendererTypes)); + ::testing::ValuesIn(kRendererTypes), + ::testing::PrintToStringParamName()); using LayerTreeHostFiltersPixelTestGPU = LayerTreeHostFiltersPixelTest; @@ -102,7 +103,8 @@ INSTANTIATE_TEST_SUITE_P(All, LayerTreeHostFiltersPixelTestGPU, - ::testing::ValuesIn(kRendererTypesGpu)); + ::testing::ValuesIn(kRendererTypesGpu), + ::testing::PrintToStringParamName()); TEST_P(LayerTreeHostFiltersPixelTest, BackdropFilterBlurRect) { scoped_refptr<SolidColorLayer> background = CreateSolidColorLayer( @@ -392,7 +394,8 @@ INSTANTIATE_TEST_SUITE_P(PixelResourceTest, LayerTreeHostBlurFiltersPixelTestGPULayerList, - ::testing::ValuesIn(kRendererTypesGpuNonDawn)); + ::testing::ValuesIn(kRendererTypesGpuNonDawn), + ::testing::PrintToStringParamName()); TEST_P(LayerTreeHostBlurFiltersPixelTestGPULayerList, BackdropFilterBlurOffAxis) { @@ -492,7 +495,8 @@ INSTANTIATE_TEST_SUITE_P(All, LayerTreeHostFiltersScaledPixelTest, - ::testing::ValuesIn(kRendererTypes)); + ::testing::ValuesIn(kRendererTypes), + ::testing::PrintToStringParamName()); TEST_P(LayerTreeHostFiltersScaledPixelTest, StandardDpi) { RunPixelTestType(100, 1.f); @@ -766,7 +770,8 @@ INSTANTIATE_TEST_SUITE_P(All, LayerTreeHostFiltersPixelTestNonDawn, - ::testing::ValuesIn(kRendererTypesNonDawn)); + ::testing::ValuesIn(kRendererTypesNonDawn), + ::testing::PrintToStringParamName()); TEST_P(LayerTreeHostFiltersPixelTestNonDawn, ZoomFilter) { scoped_refptr<SolidColorLayer> root = @@ -1192,7 +1197,8 @@ INSTANTIATE_TEST_SUITE_P(All, BackdropFilterOffsetTest, - ::testing::ValuesIn(kRendererTypes)); + ::testing::ValuesIn(kRendererTypes), + ::testing::PrintToStringParamName()); TEST_P(BackdropFilterOffsetTest, StandardDpi) { RunPixelTestType(1.f); @@ -1251,7 +1257,8 @@ INSTANTIATE_TEST_SUITE_P(All, BackdropFilterInvertTest, - ::testing::ValuesIn(kRendererTypes)); + ::testing::ValuesIn(kRendererTypes), + ::testing::PrintToStringParamName()); TEST_P(BackdropFilterInvertTest, StandardDpi) { RunPixelTestType(1.f);
diff --git a/cc/trees/layer_tree_host_pixeltest_masks.cc b/cc/trees/layer_tree_host_pixeltest_masks.cc index 6586f68..bbda4932 100644 --- a/cc/trees/layer_tree_host_pixeltest_masks.cc +++ b/cc/trees/layer_tree_host_pixeltest_masks.cc
@@ -28,7 +28,7 @@ // TODO(penghuang): Fix vulkan with one copy or zero copy // https://crbug.com/979703 -std::vector<PixelResourceTestCase> const kTestCases = { +std::vector<RasterTestConfig> const kTestCases = { {TestRendererType::kSoftware, TestRasterType::kBitmap}, {TestRendererType::kGL, TestRasterType::kGpu}, {TestRendererType::kGL, TestRasterType::kOneCopy}, @@ -46,7 +46,8 @@ INSTANTIATE_TEST_SUITE_P(PixelResourceTest, LayerTreeHostMasksPixelTest, - ::testing::ValuesIn(kTestCases)); + ::testing::ValuesIn(kTestCases), + ::testing::PrintToStringParamName()); class MaskContentLayerClient : public ContentLayerClient { public: @@ -157,7 +158,8 @@ INSTANTIATE_TEST_SUITE_P(PixelResourceTest, LayerTreeHostMaskPixelTestWithLayerList, - ::testing::ValuesIn(kTestCases)); + ::testing::ValuesIn(kTestCases), + ::testing::PrintToStringParamName()); TEST_P(LayerTreeHostMaskPixelTestWithLayerList, MaskWithEffect) { MaskContentLayerClient client(mask_bounds_); @@ -230,7 +232,8 @@ INSTANTIATE_TEST_SUITE_P( PixelResourceTest, LayerTreeHostMaskPixelTest_SolidColorEmptyMaskWithEffectAndRenderSurface, - ::testing::ValuesIn(kTestCases)); + ::testing::ValuesIn(kTestCases), + ::testing::PrintToStringParamName()); TEST_P(LayerTreeHostMaskPixelTest_SolidColorEmptyMaskWithEffectAndRenderSurface, Test) { @@ -265,7 +268,8 @@ INSTANTIATE_TEST_SUITE_P( PixelResourceTest, LayerTreeHostMaskPixelTest_MaskWithEffectNoContentToMask, - ::testing::ValuesIn(kTestCases)); + ::testing::ValuesIn(kTestCases), + ::testing::PrintToStringParamName()); TEST_P(LayerTreeHostMaskPixelTest_MaskWithEffectNoContentToMask, Test) { MaskContentLayerClient client(mask_bounds_); @@ -290,7 +294,8 @@ INSTANTIATE_TEST_SUITE_P(PixelResourceTest, LayerTreeHostMaskPixelTest_ScaledMaskWithEffect, - ::testing::ValuesIn(kTestCases)); + ::testing::ValuesIn(kTestCases), + ::testing::PrintToStringParamName()); TEST_P(LayerTreeHostMaskPixelTest_ScaledMaskWithEffect, Test) { MaskContentLayerClient client(mask_bounds_); @@ -572,7 +577,8 @@ INSTANTIATE_TEST_SUITE_P( PixelResourceTest, LayerTreeHostMasksForBackdropFiltersPixelTestWithLayerList, - ::testing::ValuesIn(kTestCases)); + ::testing::ValuesIn(kTestCases), + ::testing::PrintToStringParamName()); TEST_P(LayerTreeHostMasksForBackdropFiltersPixelTestWithLayerList, Test) { base::FilePath image_name = @@ -603,7 +609,8 @@ INSTANTIATE_TEST_SUITE_P( PixelResourceTest, LayerTreeHostMasksForBackdropFiltersPixelTestWithLayerTree, - ::testing::ValuesIn(kTestCases)); + ::testing::ValuesIn(kTestCases), + ::testing::PrintToStringParamName()); TEST_P(LayerTreeHostMasksForBackdropFiltersPixelTestWithLayerTree, Test) { scoped_refptr<SolidColorLayer> background = @@ -734,16 +741,21 @@ constexpr uint32_t kForceShaders = 1 << 1; struct MaskTestConfig { - PixelResourceTestCase test_case; + RasterTestConfig test_config; uint32_t flags; }; +void PrintTo(const MaskTestConfig& config, std::ostream* os) { + PrintTo(config.test_config, os); + *os << '_' << config.flags; +} + class LayerTreeHostMaskAsBlendingPixelTest : public LayerTreeHostPixelResourceTest, public ::testing::WithParamInterface<MaskTestConfig> { public: LayerTreeHostMaskAsBlendingPixelTest() - : LayerTreeHostPixelResourceTest(GetParam().test_case), + : LayerTreeHostPixelResourceTest(GetParam().test_config), use_antialiasing_(GetParam().flags & kUseAntialiasing), force_shaders_(GetParam().flags & kForceShaders) { float percentage_pixels_error = 0.f; @@ -888,7 +900,8 @@ INSTANTIATE_TEST_SUITE_P(All, LayerTreeHostMaskAsBlendingPixelTest, - ::testing::ValuesIn(kTestConfigs)); + ::testing::ValuesIn(kTestConfigs), + ::testing::PrintToStringParamName()); TEST_P(LayerTreeHostMaskAsBlendingPixelTest, PixelAlignedNoop) { // This test verifies the degenerate case of a no-op mask doesn't affect @@ -1133,7 +1146,8 @@ INSTANTIATE_TEST_SUITE_P(PixelResourceTest, LayerTreeHostMasksForBackdropFiltersAndBlendPixelTest, - ::testing::ValuesIn(kTestCases)); + ::testing::ValuesIn(kTestCases), + ::testing::PrintToStringParamName()); TEST_P(LayerTreeHostMasksForBackdropFiltersAndBlendPixelTest, Test) { base::FilePath result_path(
diff --git a/cc/trees/layer_tree_host_pixeltest_mirror.cc b/cc/trees/layer_tree_host_pixeltest_mirror.cc index 15ab1ef..3185ebb 100644 --- a/cc/trees/layer_tree_host_pixeltest_mirror.cc +++ b/cc/trees/layer_tree_host_pixeltest_mirror.cc
@@ -37,7 +37,8 @@ INSTANTIATE_TEST_SUITE_P(All, LayerTreeHostMirrorPixelTest, - ::testing::ValuesIn(kRendererTypes)); + ::testing::ValuesIn(kRendererTypes), + ::testing::PrintToStringParamName()); // Verifies that a mirror layer with a scale mirrors another layer correctly. TEST_P(LayerTreeHostMirrorPixelTest, MirrorLayer) {
diff --git a/cc/trees/layer_tree_host_pixeltest_readback.cc b/cc/trees/layer_tree_host_pixeltest_readback.cc index e049e13e..090f82b8 100644 --- a/cc/trees/layer_tree_host_pixeltest_readback.cc +++ b/cc/trees/layer_tree_host_pixeltest_readback.cc
@@ -33,6 +33,21 @@ TestReadBackType readback_type; }; +// Provides a test readback suffix appropriate for |type|. +const char* ReadbackTypeTestSuffix(TestReadBackType type) { + switch (type) { + case TestReadBackType::kTexture: + return "Texture"; + case TestReadBackType::kBitmap: + return "Bitmap"; + } +} + +void PrintTo(const ReadbackTestConfig& config, std::ostream* os) { + PrintTo(config.renderer_type, os); + *os << '_' << ReadbackTypeTestSuffix(config.readback_type); +} + class LayerTreeHostReadbackPixelTest : public LayerTreePixelTest, public testing::WithParamInterface<ReadbackTestConfig> { @@ -432,7 +447,8 @@ INSTANTIATE_TEST_SUITE_P(All, LayerTreeHostReadbackPixelTest, - ::testing::ValuesIn(kTestConfigs)); + ::testing::ValuesIn(kTestConfigs), + ::testing::PrintToStringParamName()); // TODO(crbug.com/974283): These tests are crashing with vulkan when TSan or // MSan are used. @@ -453,7 +469,8 @@ INSTANTIATE_TEST_SUITE_P(All, LayerTreeHostReadbackPixelTestMaybeVulkan, - ::testing::ValuesIn(kMaybeVulkanTestConfigs)); + ::testing::ValuesIn(kMaybeVulkanTestConfigs), + ::testing::PrintToStringParamName()); class LayerTreeHostReadbackDeviceScalePixelTest : public LayerTreeHostReadbackPixelTest { @@ -537,7 +554,8 @@ INSTANTIATE_TEST_SUITE_P(All, LayerTreeHostReadbackDeviceScalePixelTest, - ::testing::ValuesIn(kTestConfigs)); + ::testing::ValuesIn(kTestConfigs), + ::testing::PrintToStringParamName()); class LayerTreeHostReadbackColorSpacePixelTest : public LayerTreeHostReadbackPixelTest { @@ -577,7 +595,8 @@ INSTANTIATE_TEST_SUITE_P(All, LayerTreeHostReadbackColorSpacePixelTest, - ::testing::ValuesIn(kTestConfigs)); + ::testing::ValuesIn(kTestConfigs), + ::testing::PrintToStringParamName()); } // namespace } // namespace cc
diff --git a/cc/trees/layer_tree_host_pixeltest_scrollbars.cc b/cc/trees/layer_tree_host_pixeltest_scrollbars.cc index f0d0388..6677811b 100644 --- a/cc/trees/layer_tree_host_pixeltest_scrollbars.cc +++ b/cc/trees/layer_tree_host_pixeltest_scrollbars.cc
@@ -86,7 +86,8 @@ INSTANTIATE_TEST_SUITE_P(All, LayerTreeHostScrollbarsPixelTest, - ::testing::ValuesIn(kRendererTypes)); + ::testing::ValuesIn(kRendererTypes), + ::testing::PrintToStringParamName()); TEST_P(LayerTreeHostScrollbarsPixelTest, NoScale) { scoped_refptr<SolidColorLayer> background = @@ -257,7 +258,8 @@ INSTANTIATE_TEST_SUITE_P(All, LayerTreeHostOverlayScrollbarsPixelTest, - ::testing::ValuesIn(kRendererTypes)); + ::testing::ValuesIn(kRendererTypes), + ::testing::PrintToStringParamName()); // Simulate increasing the thickness of a painted overlay scrollbar. Ensure that // the scrollbar border remains crisp.
diff --git a/cc/trees/layer_tree_host_pixeltest_synchronous.cc b/cc/trees/layer_tree_host_pixeltest_synchronous.cc index 1f4fc7b..966928a4 100644 --- a/cc/trees/layer_tree_host_pixeltest_synchronous.cc +++ b/cc/trees/layer_tree_host_pixeltest_synchronous.cc
@@ -63,7 +63,8 @@ INSTANTIATE_TEST_SUITE_P(All, LayerTreeHostSynchronousPixelTest, - ::testing::ValuesIn(kRendererTypesGpu)); + ::testing::ValuesIn(kRendererTypesGpu), + ::testing::PrintToStringParamName()); TEST_P(LayerTreeHostSynchronousPixelTest, OneContentLayerZeroCopy) { set_raster_type(TestRasterType::kZeroCopy);
diff --git a/cc/trees/layer_tree_host_pixeltest_tiles.cc b/cc/trees/layer_tree_host_pixeltest_tiles.cc index 839ef43..a0492ae 100644 --- a/cc/trees/layer_tree_host_pixeltest_tiles.cc +++ b/cc/trees/layer_tree_host_pixeltest_tiles.cc
@@ -20,14 +20,9 @@ namespace cc { namespace { -struct TilesTestConfig { - TestRendererType renderer_type; - TestRasterType raster_type; -}; - class LayerTreeHostTilesPixelTest : public LayerTreePixelTest, - public ::testing::WithParamInterface<TilesTestConfig> { + public ::testing::WithParamInterface<RasterTestConfig> { protected: LayerTreeHostTilesPixelTest() : LayerTreePixelTest(renderer_type()) { set_raster_type(GetParam().raster_type); @@ -152,7 +147,7 @@ scoped_refptr<PictureLayer> picture_layer_; }; -std::vector<TilesTestConfig> const kTestCases = { +std::vector<RasterTestConfig> const kTestCases = { {TestRendererType::kSoftware, TestRasterType::kBitmap}, {TestRendererType::kGL, TestRasterType::kOneCopy}, {TestRendererType::kGL, TestRasterType::kGpu}, @@ -168,7 +163,8 @@ INSTANTIATE_TEST_SUITE_P(All, LayerTreeHostTilesTestPartialInvalidation, - ::testing::ValuesIn(kTestCases)); + ::testing::ValuesIn(kTestCases), + ::testing::PrintToStringParamName()); #if defined(OS_WIN) && defined(ADDRESS_SANITIZER) // Flaky on Windows ASAN https://crbug.com/1045521 @@ -190,7 +186,7 @@ base::FilePath(FILE_PATH_LITERAL("blue_yellow_flipped.png"))); } -std::vector<TilesTestConfig> const kTestCasesMultiThread = { +std::vector<RasterTestConfig> const kTestCasesMultiThread = { {TestRendererType::kGL, TestRasterType::kOneCopy}, {TestRendererType::kSkiaGL, TestRasterType::kOneCopy}, #if defined(ENABLE_CC_VULKAN_TESTS) @@ -208,7 +204,8 @@ INSTANTIATE_TEST_SUITE_P(All, LayerTreeHostTilesTestPartialInvalidationMultiThread, - ::testing::ValuesIn(kTestCasesMultiThread)); + ::testing::ValuesIn(kTestCasesMultiThread), + ::testing::PrintToStringParamName()); #if (defined(OS_LINUX) || defined(OS_CHROMEOS)) && defined(THREAD_SANITIZER) // Flaky on Linux TSAN. https://crbug.com/707711 @@ -250,8 +247,9 @@ All, LayerTreeHostTilesTestPartialInvalidationLowBitDepth, ::testing::Values( - TilesTestConfig{TestRendererType::kSkiaGL, TestRasterType::kGpu}, - TilesTestConfig{TestRendererType::kGL, TestRasterType::kGpu})); + RasterTestConfig{TestRendererType::kSkiaGL, TestRasterType::kGpu}, + RasterTestConfig{TestRendererType::kGL, TestRasterType::kGpu}), + ::testing::PrintToStringParamName()); TEST_P(LayerTreeHostTilesTestPartialInvalidationLowBitDepth, PartialRaster) { use_partial_raster_ = true;
diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn index 6acdb9c..368bda5 100644 --- a/chrome/android/BUILD.gn +++ b/chrome/android/BUILD.gn
@@ -1104,6 +1104,7 @@ "//components/sync/protocol:protocol_java", "//components/translate/content/android:javatests", "//components/url_formatter/android:url_formatter_java", + "//components/url_formatter/android:url_formatter_javatests", "//components/user_prefs/android:java", "//components/webapk/android/libs/client:java", "//content/public/android:content_java",
diff --git a/chrome/android/chrome_java_sources.gni b/chrome/android/chrome_java_sources.gni index 4c5ef00..8a1730a 100644 --- a/chrome/android/chrome_java_sources.gni +++ b/chrome/android/chrome_java_sources.gni
@@ -802,9 +802,7 @@ "java/src/org/chromium/chrome/browser/identity/UuidBasedUniqueIdentificationGenerator.java", "java/src/org/chromium/chrome/browser/identity_disc/IdentityDiscController.java", "java/src/org/chromium/chrome/browser/incognito/IncognitoNotificationManager.java", - "java/src/org/chromium/chrome/browser/incognito/IncognitoNotificationPresenceController.java", "java/src/org/chromium/chrome/browser/incognito/IncognitoNotificationService.java", - "java/src/org/chromium/chrome/browser/incognito/IncognitoProfileDestroyer.java", "java/src/org/chromium/chrome/browser/incognito/IncognitoTabLauncher.java", "java/src/org/chromium/chrome/browser/incognito/IncognitoTabSnapshotController.java", "java/src/org/chromium/chrome/browser/incognito/IncognitoUtils.java", @@ -1518,7 +1516,7 @@ "java/src/org/chromium/chrome/browser/tabbed_mode/TabbedSystemUiCoordinator.java", "java/src/org/chromium/chrome/browser/tabmodel/AsyncTabParamsManager.java", "java/src/org/chromium/chrome/browser/tabmodel/ChromeTabCreator.java", - "java/src/org/chromium/chrome/browser/tabmodel/IncognitoTabModelImpl.java", + "java/src/org/chromium/chrome/browser/tabmodel/IncognitoTabModel.java", "java/src/org/chromium/chrome/browser/tabmodel/IncognitoTabModelImplCreator.java", "java/src/org/chromium/chrome/browser/tabmodel/TabModelDelegate.java", "java/src/org/chromium/chrome/browser/tabmodel/TabModelImpl.java",
diff --git a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_ar.xtb b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_ar.xtb index 3786885d..30ac3829 100644 --- a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_ar.xtb +++ b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_ar.xtb
@@ -10,6 +10,7 @@ <translation id="257674075312929031">جمع</translation> <translation id="2613747923081026172">إنشاء مجموعة</translation> <translation id="2671423594960767771">مشاركة المجموعة</translation> +<translation id="2759453070259087442">توسيع مجموعة علامات التبويب "<ph name="TITLE_OF_GROUP" />" بإضافة <ph name="NUMBER_OF_TABS" /> علامة تبويب</translation> <translation id="2977480621796371840">الإزالة من مجموعة</translation> <translation id="3328308545011660196">اقتراح: يبدو أن هناك <ph name="NUMBER_OF_TABS" /> من علامات التبويب متشابهة. هل تريد تجميعها؟</translation> <translation id="4133493477912226187">يبدو أن هناك <ph name="NUMBER_OF_TABS" /> من علامات التبويب متشابهة. هل تريد تجميعها؟</translation>
diff --git a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_az.xtb b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_az.xtb index a9cbb69..cfba8f79 100644 --- a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_az.xtb +++ b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_az.xtb
@@ -10,6 +10,7 @@ <translation id="257674075312929031">Qrup</translation> <translation id="2613747923081026172">Qrup yaradın</translation> <translation id="2671423594960767771">Qrupu paylaşın</translation> +<translation id="2759453070259087442"><ph name="TITLE_OF_GROUP" /> tab qrupunu <ph name="NUMBER_OF_TABS" /> tab ilə genişləndirin.</translation> <translation id="2977480621796371840">Qrupdan çıxarın</translation> <translation id="3328308545011660196">Təklif: <ph name="NUMBER_OF_TABS" /> tab əlaqəli görünür. Onlar qruplaşdırılsın?</translation> <translation id="4133493477912226187"><ph name="NUMBER_OF_TABS" /> tab əlaqəli görünür. Onlar qruplaşdırılsın?</translation>
diff --git a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_be.xtb b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_be.xtb index 5051fff..86fabca 100644 --- a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_be.xtb +++ b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_be.xtb
@@ -10,6 +10,7 @@ <translation id="257674075312929031">Група</translation> <translation id="2613747923081026172">Стварыць групу</translation> <translation id="2671423594960767771">Абагуліць групу</translation> +<translation id="2759453070259087442">Разгарнуць групу "<ph name="TITLE_OF_GROUP" />" з наступнай колькасцю ўкладак: <ph name="NUMBER_OF_TABS" />.</translation> <translation id="2977480621796371840">Выдаліць з групы</translation> <translation id="3328308545011660196">Прапанова: здаецца, гэтыя ўкладкі (<ph name="NUMBER_OF_TABS" />) звязаныя паміж сабой. Згрупаваць іх?</translation> <translation id="4133493477912226187">Здаецца, гэтыя ўкладкі (<ph name="NUMBER_OF_TABS" />) звязаныя паміж сабой. Згрупаваць іх?</translation>
diff --git a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_bg.xtb b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_bg.xtb index e33bea37..ffc159b 100644 --- a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_bg.xtb +++ b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_bg.xtb
@@ -10,6 +10,7 @@ <translation id="257674075312929031">Група</translation> <translation id="2613747923081026172">Създаване на група</translation> <translation id="2671423594960767771">Споделяне на групата</translation> +<translation id="2759453070259087442">Разгъване на групата с раздели „<ph name="TITLE_OF_GROUP" />“ със <ph name="NUMBER_OF_TABS" /> раздела.</translation> <translation id="2977480621796371840">Премахване от групата</translation> <translation id="3328308545011660196">Предложение: <ph name="NUMBER_OF_TABS" /> раздела изглеждат сродни. Искате ли да ги групирате?</translation> <translation id="4133493477912226187"><ph name="NUMBER_OF_TABS" /> раздела изглеждат сродни. Искате ли да ги групирате?</translation>
diff --git a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_bn.xtb b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_bn.xtb index 10380356..ea3c3e72 100644 --- a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_bn.xtb +++ b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_bn.xtb
@@ -10,6 +10,7 @@ <translation id="257674075312929031">গ্রুপ</translation> <translation id="2613747923081026172">গ্রুপ তৈরি করুন</translation> <translation id="2671423594960767771">গ্রুপ শেয়ার করুন</translation> +<translation id="2759453070259087442"><ph name="NUMBER_OF_TABS" />টি ট্যাব ব্যবহার করে <ph name="TITLE_OF_GROUP" /> বড় করুন।</translation> <translation id="2977480621796371840">গ্রুপ থেকে সরান</translation> <translation id="3328308545011660196">সাজেশন: মনে হচ্ছে <ph name="NUMBER_OF_TABS" />টি ট্যাব সম্পর্কযুক্ত। সেগুলি গ্রুপ করতে চান?</translation> <translation id="4133493477912226187">মনে হচ্ছে <ph name="NUMBER_OF_TABS" />টি ট্যাব সম্পর্কযুক্ত। সেগুলি গ্রুপ করতে চান?</translation>
diff --git a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_bs.xtb b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_bs.xtb index 1734b0b..41c44c79 100644 --- a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_bs.xtb +++ b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_bs.xtb
@@ -10,7 +10,7 @@ <translation id="257674075312929031">Grupa</translation> <translation id="2613747923081026172">Kreiraj grupu</translation> <translation id="2671423594960767771">Dijeli grupu</translation> -<translation id="2759453070259087442">Proširite grupu kartica <ph name="TITLE_OF_GROUP" /> sljedećim brojem kartica: <ph name="NUMBER_OF_TABS" />.</translation> +<translation id="2759453070259087442">Proširivanje grupe kartica <ph name="TITLE_OF_GROUP" /> sa sljedećim brojem kartica: <ph name="NUMBER_OF_TABS" />.</translation> <translation id="2977480621796371840">Ukloni iz grupe</translation> <translation id="3328308545011660196">Prijedlog: čini se da su neke kartice povezane (njih <ph name="NUMBER_OF_TABS" />). Grupirati ih?</translation> <translation id="4133493477912226187">Čini se da su neke kartice povezane (njih <ph name="NUMBER_OF_TABS" />). Grupirati ih?</translation>
diff --git a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_cs.xtb b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_cs.xtb index 707f8e47..05eef40 100644 --- a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_cs.xtb +++ b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_cs.xtb
@@ -10,6 +10,7 @@ <translation id="257674075312929031">Skupina</translation> <translation id="2613747923081026172">Vytvořit skupinu</translation> <translation id="2671423594960767771">Sdílet skupinu</translation> +<translation id="2759453070259087442">Rozbalit skupinu karet <ph name="TITLE_OF_GROUP" /> s <ph name="NUMBER_OF_TABS" /> kartami.</translation> <translation id="2977480621796371840">Odebrat ze skupiny</translation> <translation id="3328308545011660196">Návrh: Některé karty (<ph name="NUMBER_OF_TABS" />) spolu pravděpodobně souvisejí. Chcete je seskupit?</translation> <translation id="4133493477912226187">Některé karty (<ph name="NUMBER_OF_TABS" />) spolu pravděpodobně souvisejí. Chcete je seskupit?</translation>
diff --git a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_da.xtb b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_da.xtb index 2e54ee6..56ab6a5 100644 --- a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_da.xtb +++ b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_da.xtb
@@ -10,6 +10,7 @@ <translation id="257674075312929031">Gruppe</translation> <translation id="2613747923081026172">Opret gruppe</translation> <translation id="2671423594960767771">Del gruppe</translation> +<translation id="2759453070259087442">Udvid fanegruppen <ph name="TITLE_OF_GROUP" /> med <ph name="NUMBER_OF_TABS" /> faner.</translation> <translation id="2977480621796371840">Fjern fra gruppe</translation> <translation id="3328308545011660196">Forslag: <ph name="NUMBER_OF_TABS" /> faner ser ud til at være relateret. Vil du gruppere dem?</translation> <translation id="4133493477912226187"><ph name="NUMBER_OF_TABS" /> faner ser ud til at være relateret. Vil du gruppere dem?</translation>
diff --git a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_de.xtb b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_de.xtb index 4d6e060f..7077725d 100644 --- a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_de.xtb +++ b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_de.xtb
@@ -10,6 +10,7 @@ <translation id="257674075312929031">Gruppe</translation> <translation id="2613747923081026172">Gruppe erstellen</translation> <translation id="2671423594960767771">Gruppe teilen</translation> +<translation id="2759453070259087442">Tabgruppe "<ph name="TITLE_OF_GROUP" />" mit <ph name="NUMBER_OF_TABS" /> Tabs maximieren.</translation> <translation id="2977480621796371840">Aus Gruppe entfernen</translation> <translation id="3328308545011660196">Vorschlag: <ph name="NUMBER_OF_TABS" /> Tabs scheinen zusammenzugehören. Sollen sie gruppiert werden?</translation> <translation id="4133493477912226187"><ph name="NUMBER_OF_TABS" /> Tabs scheinen zusammenzugehören. Sollen sie gruppiert werden?</translation>
diff --git a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_es.xtb b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_es.xtb index 29f9a557d..39851f3 100644 --- a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_es.xtb +++ b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_es.xtb
@@ -10,6 +10,7 @@ <translation id="257674075312929031">Grupo</translation> <translation id="2613747923081026172">Crear grupo</translation> <translation id="2671423594960767771">Compartir grupo</translation> +<translation id="2759453070259087442">Desplegar el grupo de pestañas <ph name="TITLE_OF_GROUP" /> con <ph name="NUMBER_OF_TABS" /> pestañas.</translation> <translation id="2977480621796371840">Quitar del grupo</translation> <translation id="3328308545011660196">Sugerencia: Hay <ph name="NUMBER_OF_TABS" /> pestañas que parecen relacionadas. ¿Quieres agruparlas?</translation> <translation id="4133493477912226187">Hay <ph name="NUMBER_OF_TABS" /> pestañas que parecen relacionadas. ¿Quieres agruparlas?</translation>
diff --git a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_eu.xtb b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_eu.xtb index 299cd74..98975560 100644 --- a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_eu.xtb +++ b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_eu.xtb
@@ -10,6 +10,7 @@ <translation id="257674075312929031">Taldekatu</translation> <translation id="2613747923081026172">Sortu talde bat</translation> <translation id="2671423594960767771">Partekatu taldea</translation> +<translation id="2759453070259087442">Zabaldu <ph name="NUMBER_OF_TABS" /> fitxa dituen <ph name="TITLE_OF_GROUP" /> fitxa taldea.</translation> <translation id="2977480621796371840">Kendu taldetik</translation> <translation id="3328308545011660196">Iradokizuna: <ph name="NUMBER_OF_TABS" /> fitxa erlazionatuta daude. Taldekatu nahi al dituzu?</translation> <translation id="4133493477912226187"><ph name="NUMBER_OF_TABS" /> fitxa erlazionatuta daude. Taldekatu nahi al dituzu?</translation>
diff --git a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_fa.xtb b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_fa.xtb index ce6809c..f68fda4 100644 --- a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_fa.xtb +++ b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_fa.xtb
@@ -10,6 +10,7 @@ <translation id="257674075312929031">گروه</translation> <translation id="2613747923081026172">ایجاد گروه</translation> <translation id="2671423594960767771">همرسانی گروه</translation> +<translation id="2759453070259087442">گسترده کردن گروه برگه <ph name="TITLE_OF_GROUP" /> با <ph name="NUMBER_OF_TABS" /> برگه.</translation> <translation id="2977480621796371840">برداشتن از گروه</translation> <translation id="3328308545011660196">پیشنهاد: به نظر میرسد <ph name="NUMBER_OF_TABS" /> برگه مرتبط باشند. گروهبندی شوند؟</translation> <translation id="4133493477912226187">به نظر میرسد <ph name="NUMBER_OF_TABS" /> برگه مرتبط باشند. گروهبندی شوند؟</translation>
diff --git a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_fil.xtb b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_fil.xtb index a848f879..cc9f7b0 100644 --- a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_fil.xtb +++ b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_fil.xtb
@@ -10,6 +10,7 @@ <translation id="257674075312929031">Pangkat</translation> <translation id="2613747923081026172">Gumawa ng pangkat</translation> <translation id="2671423594960767771">Ibahagi ang pangkat</translation> +<translation id="2759453070259087442">I-expand ang grupo ng tab na <ph name="TITLE_OF_GROUP" /> na may <ph name="NUMBER_OF_TABS" /> (na) tab.</translation> <translation id="2977480621796371840">Alisin sa grupo</translation> <translation id="3328308545011660196">Suhestyon: Mukhang magkaugnay ang <ph name="NUMBER_OF_TABS" /> (na) tab. Igrupo ang mga ito?</translation> <translation id="4133493477912226187">Mukhang magkaugnay ang <ph name="NUMBER_OF_TABS" /> (na) tab. Igrupo ang mga ito?</translation>
diff --git a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_fr-CA.xtb b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_fr-CA.xtb index 0f6d0f9..a3225e5 100644 --- a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_fr-CA.xtb +++ b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_fr-CA.xtb
@@ -10,6 +10,7 @@ <translation id="257674075312929031">Groupe</translation> <translation id="2613747923081026172">Créer un groupe</translation> <translation id="2671423594960767771">Partager le groupe</translation> +<translation id="2759453070259087442">Développer le groupe d'onglets <ph name="TITLE_OF_GROUP" />, qui contient <ph name="NUMBER_OF_TABS" /> onglets.</translation> <translation id="2977480621796371840">Supprimer du groupe</translation> <translation id="3328308545011660196">Suggestion : <ph name="NUMBER_OF_TABS" /> onglets semblent liés. Voulez-vous les regrouper?</translation> <translation id="4133493477912226187"><ph name="NUMBER_OF_TABS" /> onglets semblent liés. Voulez-vous les regrouper?</translation>
diff --git a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_fr.xtb b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_fr.xtb index f842d76..a329f2c2 100644 --- a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_fr.xtb +++ b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_fr.xtb
@@ -10,6 +10,7 @@ <translation id="257674075312929031">Groupe</translation> <translation id="2613747923081026172">Créer un groupe</translation> <translation id="2671423594960767771">Partager le groupe</translation> +<translation id="2759453070259087442">Développez le groupe d'onglets <ph name="TITLE_OF_GROUP" /> comportant <ph name="NUMBER_OF_TABS" /> onglets.</translation> <translation id="2977480621796371840">Retirer du groupe</translation> <translation id="3328308545011660196">Suggestion : <ph name="NUMBER_OF_TABS" /> onglets semblent liés. Voulez-vous les regrouper ?</translation> <translation id="4133493477912226187"><ph name="NUMBER_OF_TABS" /> onglets semblent liés. Voulez-vous les regrouper ?</translation>
diff --git a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_gl.xtb b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_gl.xtb index a017a43..e502d779 100644 --- a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_gl.xtb +++ b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_gl.xtb
@@ -10,6 +10,7 @@ <translation id="257674075312929031">Grupo</translation> <translation id="2613747923081026172">Crear grupo</translation> <translation id="2671423594960767771">Compartir grupo</translation> +<translation id="2759453070259087442">Despregar grupo de pestanas <ph name="TITLE_OF_GROUP" /> (contén <ph name="NUMBER_OF_TABS" /> pestanas).</translation> <translation id="2977480621796371840">Quitar do grupo</translation> <translation id="3328308545011660196">Suxestión: Hai <ph name="NUMBER_OF_TABS" /> pestanas que parecen relacionadas. Queres agrupalas?</translation> <translation id="4133493477912226187">Hai <ph name="NUMBER_OF_TABS" /> pestanas que parecen relacionadas. Queres agrupalas?</translation>
diff --git a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_hi.xtb b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_hi.xtb index 19aacd9f..06cfeb9 100644 --- a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_hi.xtb +++ b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_hi.xtb
@@ -10,6 +10,7 @@ <translation id="257674075312929031">ग्रुप</translation> <translation id="2613747923081026172">समूह बनाएं</translation> <translation id="2671423594960767771">ग्रुप शेयर करें</translation> +<translation id="2759453070259087442"><ph name="TITLE_OF_GROUP" /> टैब ग्रुप में <ph name="NUMBER_OF_TABS" /> टैब जोड़कर इसे बड़ा करें.</translation> <translation id="2977480621796371840">समूह से हटाएं</translation> <translation id="3328308545011660196">सुझाव: ऐसा लगता है कि <ph name="NUMBER_OF_TABS" /> टैब एक-दूसरे से मिलते-जुलते हैं. इनका ग्रुप बनाएं?</translation> <translation id="4133493477912226187">ऐसा लगता है कि <ph name="NUMBER_OF_TABS" /> टैब एक-दूसरे से मिलते-जुलते हैं. इनका ग्रुप बनाएं?</translation>
diff --git a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_hu.xtb b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_hu.xtb index 40ba1377..fc4497c 100644 --- a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_hu.xtb +++ b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_hu.xtb
@@ -10,6 +10,7 @@ <translation id="257674075312929031">Csoport</translation> <translation id="2613747923081026172">Csoport létrehozása</translation> <translation id="2671423594960767771">Csoport megosztása</translation> +<translation id="2759453070259087442">A következő, <ph name="NUMBER_OF_TABS" /> lapot tartalmazó lapcsoport kibontása: <ph name="TITLE_OF_GROUP" />.</translation> <translation id="2977480621796371840">Eltávolítás a csoportból</translation> <translation id="3328308545011660196">Javaslat: Úgy tűnik, <ph name="NUMBER_OF_TABS" /> lap kapcsolódik egymáshoz. Csoportosítja őket?</translation> <translation id="4133493477912226187">Úgy tűnik, <ph name="NUMBER_OF_TABS" /> lap kapcsolódik egymáshoz. Csoportosítja őket?</translation>
diff --git a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_hy.xtb b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_hy.xtb index 6186d1bc..5accbdd 100644 --- a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_hy.xtb +++ b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_hy.xtb
@@ -10,6 +10,7 @@ <translation id="257674075312929031">Խումբ</translation> <translation id="2613747923081026172">Ստեղծել խումբ</translation> <translation id="2671423594960767771">Ուղարկել խումբը</translation> +<translation id="2759453070259087442">Ծավալել <ph name="NUMBER_OF_TABS" /> ներդիրից բաղկացած «<ph name="TITLE_OF_GROUP" />» խումբը։</translation> <translation id="2977480621796371840">Հեռացնել խմբից</translation> <translation id="3328308545011660196">Հուշում․ <ph name="NUMBER_OF_TABS" /> ներդիր նմանություն ունեն։ Խմբավորե՞լ դրանք։</translation> <translation id="4133493477912226187"><ph name="NUMBER_OF_TABS" /> ներդիր նմանություն ունեն։ Խմբավորե՞լ դրանք։</translation>
diff --git a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_id.xtb b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_id.xtb index 1cb3072..814506c5 100644 --- a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_id.xtb +++ b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_id.xtb
@@ -10,6 +10,7 @@ <translation id="257674075312929031">Grup</translation> <translation id="2613747923081026172">Buat grup</translation> <translation id="2671423594960767771">Bagikan grup</translation> +<translation id="2759453070259087442">Luaskan grup tab <ph name="TITLE_OF_GROUP" /> dengan <ph name="NUMBER_OF_TABS" /> tab.</translation> <translation id="2977480621796371840">Hapus dari grup</translation> <translation id="3328308545011660196">Saran: <ph name="NUMBER_OF_TABS" /> tab sepertinya berkaitan. Masukkan ke grup?</translation> <translation id="4133493477912226187"><ph name="NUMBER_OF_TABS" /> tab sepertinya berkaitan. Masukkan ke grup?</translation>
diff --git a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_is.xtb b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_is.xtb index 0bf6385b..2c4e9ea 100644 --- a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_is.xtb +++ b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_is.xtb
@@ -10,6 +10,7 @@ <translation id="257674075312929031">Hópur</translation> <translation id="2613747923081026172">Búa til hóp</translation> <translation id="2671423594960767771">Deila hópi</translation> +<translation id="2759453070259087442">Stækka <ph name="TITLE_OF_GROUP" /> flipahóp með <ph name="NUMBER_OF_TABS" /> flipum.</translation> <translation id="2977480621796371840">Fjarlægja úr hópi</translation> <translation id="3328308545011660196">Tillaga: <ph name="NUMBER_OF_TABS" /> flipar virðast vera tengdir. Viltu setja þá í hóp?</translation> <translation id="4133493477912226187"><ph name="NUMBER_OF_TABS" /> flipar virðast vera tengdir. Viltu setja þá í hóp?</translation>
diff --git a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_it.xtb b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_it.xtb index 2cc5fe8..f3212cf 100644 --- a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_it.xtb +++ b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_it.xtb
@@ -10,6 +10,7 @@ <translation id="257674075312929031">Raggruppa</translation> <translation id="2613747923081026172">Crea gruppo</translation> <translation id="2671423594960767771">Condividi gruppo</translation> +<translation id="2759453070259087442">Espandi il gruppo di schede <ph name="TITLE_OF_GROUP" /> aggiungendo <ph name="NUMBER_OF_TABS" /> schede.</translation> <translation id="2977480621796371840">Rimuovi dal gruppo</translation> <translation id="3328308545011660196">Suggerimento: <ph name="NUMBER_OF_TABS" /> schede sembrano correlate. Vuoi raggrupparle?</translation> <translation id="4133493477912226187"><ph name="NUMBER_OF_TABS" /> schede sembrano correlate. Vuoi raggrupparle?</translation>
diff --git a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_iw.xtb b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_iw.xtb index 5579b80..bf5f09d1 100644 --- a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_iw.xtb +++ b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_iw.xtb
@@ -10,6 +10,7 @@ <translation id="257674075312929031">קבוצה</translation> <translation id="2613747923081026172">יצירת קבוצה</translation> <translation id="2671423594960767771">שיתוף קבוצה</translation> +<translation id="2759453070259087442">הרחבת קבוצת הכרטיסיות <ph name="TITLE_OF_GROUP" /> שיש בה <ph name="NUMBER_OF_TABS" /> כרטיסיות.</translation> <translation id="2977480621796371840">הסרה מהקבוצה</translation> <translation id="3328308545011660196">הצעות: יש <ph name="NUMBER_OF_TABS" /> כרטיסיות שנראות קשורות. לקבץ אותן?</translation> <translation id="4133493477912226187">יש <ph name="NUMBER_OF_TABS" /> כרטיסיות שנראות קשורות. לקבץ אותן?</translation>
diff --git a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_ja.xtb b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_ja.xtb index 26c34c6..676b3a9 100644 --- a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_ja.xtb +++ b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_ja.xtb
@@ -10,6 +10,7 @@ <translation id="257674075312929031">グループ化</translation> <translation id="2613747923081026172">グループを作成</translation> <translation id="2671423594960767771">グループを共有</translation> +<translation id="2759453070259087442"><ph name="TITLE_OF_GROUP" /> タブグループの <ph name="NUMBER_OF_TABS" /> 個のタブを展開します。</translation> <translation id="2977480621796371840">グループから削除</translation> <translation id="3328308545011660196">おすすめ: <ph name="NUMBER_OF_TABS" /> 個のタブは関連しているようです。グループ化しますか?</translation> <translation id="4133493477912226187"><ph name="NUMBER_OF_TABS" /> 個のタブは関連しているようです。グループ化しますか?</translation>
diff --git a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_ka.xtb b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_ka.xtb index 8434d5d..bf17c40 100644 --- a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_ka.xtb +++ b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_ka.xtb
@@ -10,6 +10,7 @@ <translation id="257674075312929031">ჯგუფი</translation> <translation id="2613747923081026172">ჯგუფის შექმნა</translation> <translation id="2671423594960767771">ჯგუფის გაზიარება</translation> +<translation id="2759453070259087442">გააფართოეთ ჩანართების ჯგუფი „<ph name="TITLE_OF_GROUP" />“ <ph name="NUMBER_OF_TABS" /> ჩანართით.</translation> <translation id="2977480621796371840">ჯგუფიდან ამოშლა</translation> <translation id="3328308545011660196">შემოთავაზება: როგორც ჩანს, <ph name="NUMBER_OF_TABS" /> ჩანართი დაკავშირებულია. გსურთ მათი დაჯგუფება?</translation> <translation id="4133493477912226187">როგორც ჩანს, <ph name="NUMBER_OF_TABS" /> ჩანართი დაკავშირებულია. გსურთ მათი დაჯგუფება?</translation>
diff --git a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_kk.xtb b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_kk.xtb index a86938f..0117fe4 100644 --- a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_kk.xtb +++ b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_kk.xtb
@@ -10,6 +10,7 @@ <translation id="257674075312929031">Топ</translation> <translation id="2613747923081026172">Топ құру</translation> <translation id="2671423594960767771">Топты бөлісу</translation> +<translation id="2759453070259087442"><ph name="TITLE_OF_GROUP" /> қойындылар тобына <ph name="NUMBER_OF_TABS" /> қойынды қосыңыз.</translation> <translation id="2977480621796371840">Топтан өшіру</translation> <translation id="3328308545011660196">Ұсыныс: <ph name="NUMBER_OF_TABS" /> қойынды өзара қатысты сияқты. Олар топтастырылсын ба?</translation> <translation id="4133493477912226187"><ph name="NUMBER_OF_TABS" /> қойынды өзара қатысты сияқты. Олар топтастырылсын ба?</translation>
diff --git a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_km.xtb b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_km.xtb index 4d7a06c8f..5414eab 100644 --- a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_km.xtb +++ b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_km.xtb
@@ -10,6 +10,7 @@ <translation id="257674075312929031">ដាក់ជាក្រុម</translation> <translation id="2613747923081026172">បង្កើតក្រុម</translation> <translation id="2671423594960767771">ចែករំលែកក្រុម</translation> +<translation id="2759453070259087442">ពង្រីកក្រុមផ្ទាំង <ph name="TITLE_OF_GROUP" /> ជាមួយផ្ទាំង <ph name="NUMBER_OF_TABS" />។</translation> <translation id="2977480621796371840">លុបចេញពីក្រុម</translation> <translation id="3328308545011660196">ការណែនាំ៖ ផ្ទាំង <ph name="NUMBER_OF_TABS" /> ហាក់ដូចជាពាក់ព័ន្ធគ្នា។ បញ្ចូលផ្ទាំងទាំងនេះទៅក្នុងក្រុមឬ?</translation> <translation id="4133493477912226187">ផ្ទាំង <ph name="NUMBER_OF_TABS" /> ហាក់ដូចជាពាក់ព័ន្ធគ្នា។ បញ្ចូលផ្ទាំងទាំងនេះទៅក្នុងក្រុមឬ?</translation>
diff --git a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_kn.xtb b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_kn.xtb index f243723..35a86c4e 100644 --- a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_kn.xtb +++ b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_kn.xtb
@@ -10,6 +10,7 @@ <translation id="257674075312929031">ಗುಂಪು</translation> <translation id="2613747923081026172">ಗುಂಪನ್ನು ರಚಿಸಿ</translation> <translation id="2671423594960767771">ಗುಂಪನ್ನು ಹಂಚಿಕೊಳ್ಳಿ</translation> +<translation id="2759453070259087442"><ph name="NUMBER_OF_TABS" /> ಟ್ಯಾಬ್ಗಳ ಜೊತೆಗೆ <ph name="TITLE_OF_GROUP" /> ಟ್ಯಾಬ್ ಗುಂಪನ್ನು ವಿಸ್ತರಿಸಿ.</translation> <translation id="2977480621796371840">ಗುಂಪಿನಿಂದ ತೆಗೆದುಹಾಕಿ</translation> <translation id="3328308545011660196">ಸಲಹೆ: <ph name="NUMBER_OF_TABS" /> ಟ್ಯಾಬ್ಗಳು ಸಂಬಂಧಿಸಿರುವ ಹಾಗೆ ಕಾಣುತ್ತಿದೆ. ಅವುಗಳನ್ನು ಗುಂಪು ಮಾಡುವುದೇ?</translation> <translation id="4133493477912226187"><ph name="NUMBER_OF_TABS" /> ಟ್ಯಾಬ್ಗಳು ಸಂಬಂಧಿಸಿರುವ ಹಾಗೆ ಕಾಣುತ್ತಿದೆ. ಅವುಗಳನ್ನು ಗುಂಪು ಮಾಡುವುದೇ?</translation>
diff --git a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_ko.xtb b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_ko.xtb index 750208d..a6c0251 100644 --- a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_ko.xtb +++ b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_ko.xtb
@@ -10,6 +10,7 @@ <translation id="257674075312929031">그룹화</translation> <translation id="2613747923081026172">그룹 만들기</translation> <translation id="2671423594960767771">그룹 공유</translation> +<translation id="2759453070259087442"><ph name="NUMBER_OF_TABS" />개의 탭이 포함된 <ph name="TITLE_OF_GROUP" /> 탭 그룹을 확장합니다.</translation> <translation id="2977480621796371840">그룹에서 삭제</translation> <translation id="3328308545011660196">제안: 탭 <ph name="NUMBER_OF_TABS" />개가 서로 관련된 것으로 보입니다. 그룹화할까요?</translation> <translation id="4133493477912226187">탭 <ph name="NUMBER_OF_TABS" />개가 서로 관련된 것으로 보입니다. 그룹화할까요?</translation>
diff --git a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_ky.xtb b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_ky.xtb index 1e16def..e37ecf43 100644 --- a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_ky.xtb +++ b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_ky.xtb
@@ -10,6 +10,7 @@ <translation id="257674075312929031">Топ</translation> <translation id="2613747923081026172">Топ түзүү</translation> <translation id="2671423594960767771">Топту бөлүшүү</translation> +<translation id="2759453070259087442"><ph name="TITLE_OF_GROUP" /> өтмөктөр тобу <ph name="NUMBER_OF_TABS" /> өтмөктө жайылып көрсөтүлсүн.</translation> <translation id="2977480621796371840">Топтон алып салуу</translation> <translation id="3328308545011660196">Сунуш: <ph name="NUMBER_OF_TABS" /> өтмөк окшош окшойт. Алар топко бириктирилсинби?</translation> <translation id="4133493477912226187"><ph name="NUMBER_OF_TABS" /> өтмөк окшош окшойт. Алар топко бириктирилсинби?</translation>
diff --git a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_lo.xtb b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_lo.xtb index 650da5f..7a03df1a 100644 --- a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_lo.xtb +++ b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_lo.xtb
@@ -10,6 +10,7 @@ <translation id="257674075312929031">ກຸ່ມ</translation> <translation id="2613747923081026172">ສ້າງກຸ່ມ</translation> <translation id="2671423594960767771">ແບ່ງປັນກຸ່ມ</translation> +<translation id="2759453070259087442">ຂະຫຍາຍກຸ່ມແຖບ <ph name="TITLE_OF_GROUP" /> ດ້ວຍແຖບ <ph name="NUMBER_OF_TABS" />.</translation> <translation id="2977480621796371840">ລຶບອອກຈາກກຸ່ມ</translation> <translation id="3328308545011660196">ຄຳແນະນຳ: ເບິ່ງຄືວ່າມີ <ph name="NUMBER_OF_TABS" /> ແຖບທີ່ກ່ຽວຂ້ອງກັນ. ຈັດກຸ່ມພວກມັນບໍ?</translation> <translation id="4133493477912226187">ເບິ່ງຄືວ່າມີ <ph name="NUMBER_OF_TABS" /> ແຖບກ່ຽວຂ້ອງກັນ. ຈັດກຸ່ມພວກມັນບໍ?</translation>
diff --git a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_lt.xtb b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_lt.xtb index d8abb98..c6c2660 100644 --- a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_lt.xtb +++ b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_lt.xtb
@@ -10,6 +10,7 @@ <translation id="257674075312929031">Grupė</translation> <translation id="2613747923081026172">Sukurti grupę</translation> <translation id="2671423594960767771">Bendrinti grupę</translation> +<translation id="2759453070259087442">Išskleisti skirtukų grupę „<ph name="TITLE_OF_GROUP" />“, kurioje yra tiek skirtukų: <ph name="NUMBER_OF_TABS" />.</translation> <translation id="2977480621796371840">Pašalinti iš grupės</translation> <translation id="3328308545011660196">Pasiūlymas: skirtukai (iš viso: <ph name="NUMBER_OF_TABS" />) atrodo susiję. Grupuoti juos?</translation> <translation id="4133493477912226187">Skirtukai (iš viso: <ph name="NUMBER_OF_TABS" />) atrodo susiję. Grupuoti juos?</translation>
diff --git a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_mn.xtb b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_mn.xtb index eed03d7e..3563fcf 100644 --- a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_mn.xtb +++ b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_mn.xtb
@@ -10,6 +10,7 @@ <translation id="257674075312929031">Бүлэг</translation> <translation id="2613747923081026172">Бүлэг үүсгэх</translation> <translation id="2671423594960767771">Бүлгийг хуваалцах</translation> +<translation id="2759453070259087442"><ph name="NUMBER_OF_TABS" /> табтай <ph name="TITLE_OF_GROUP" /> таб бүлгийг дэлгэнэ үү.</translation> <translation id="2977480621796371840">Бүлгээс хасах</translation> <translation id="3328308545011660196">Зөвлөмж: <ph name="NUMBER_OF_TABS" /> таб холбоотой бололтой. Эдгээрийг бүлэглэх үү?</translation> <translation id="4133493477912226187"><ph name="NUMBER_OF_TABS" /> таб холбоотой бололтой. Эдгээрийг бүлэглэх үү?</translation>
diff --git a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_mr.xtb b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_mr.xtb index 53468c5..0e93332 100644 --- a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_mr.xtb +++ b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_mr.xtb
@@ -10,6 +10,7 @@ <translation id="257674075312929031">गट</translation> <translation id="2613747923081026172">गट तयार करा</translation> <translation id="2671423594960767771">गट शेअर करा</translation> +<translation id="2759453070259087442"><ph name="TITLE_OF_GROUP" /> टॅब गटाचा <ph name="NUMBER_OF_TABS" /> टॅबसह विस्तार करा.</translation> <translation id="2977480621796371840">गटामधून काढून टाका</translation> <translation id="3328308545011660196">सूचना: <ph name="NUMBER_OF_TABS" /> टॅब संबंधित वाटतात. त्यांचा गट बनवायचा का?</translation> <translation id="4133493477912226187"><ph name="NUMBER_OF_TABS" /> टॅब संबंधित वाटतात. त्यांचा गट बनवायचा का?</translation>
diff --git a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_ms.xtb b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_ms.xtb index 92ddf59..3ea4f84f 100644 --- a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_ms.xtb +++ b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_ms.xtb
@@ -10,6 +10,7 @@ <translation id="257674075312929031">Kumpulan</translation> <translation id="2613747923081026172">Buat kumpulan</translation> <translation id="2671423594960767771">Kongsi kumpulan</translation> +<translation id="2759453070259087442">Kembangkan kumpulan tab <ph name="TITLE_OF_GROUP" /> dengan <ph name="NUMBER_OF_TABS" /> tab.</translation> <translation id="2977480621796371840">Alih keluar daripada kumpulan</translation> <translation id="3328308545011660196">Cadangan: <ph name="NUMBER_OF_TABS" /> tab kelihatan berkaitan. Himpunkan semua tab itu?</translation> <translation id="4133493477912226187"><ph name="NUMBER_OF_TABS" /> tab kelihatan berkaitan. Himpunkan semua tab itu?</translation>
diff --git a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_my.xtb b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_my.xtb index fea6ffb6..186149c7 100644 --- a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_my.xtb +++ b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_my.xtb
@@ -10,6 +10,7 @@ <translation id="257674075312929031">အုပ်စု</translation> <translation id="2613747923081026172">အုပ်စုဖွဲ့ရန်</translation> <translation id="2671423594960767771">အုပ်စုကို မျှဝေရန်</translation> +<translation id="2759453070259087442">တဘ် <ph name="NUMBER_OF_TABS" /> ခုဖြင့် <ph name="TITLE_OF_GROUP" /> ကို ချဲ့ပါ။</translation> <translation id="2977480621796371840">အဖွဲ့မှ ဖယ်ရှားပါ</translation> <translation id="3328308545011660196">အကြံပြုချက်- တဘ် <ph name="NUMBER_OF_TABS" /> ခုက ဆက်စပ်ပုံပေါ်သည်။ ၎င်းတို့ကို အုပ်စုဖွဲ့မလား။</translation> <translation id="4133493477912226187">တဘ် <ph name="NUMBER_OF_TABS" /> ခုက ဆက်စပ်ပုံပေါ်သည်။ ၎င်းတို့ကို အုပ်စုဖွဲ့မလား။</translation>
diff --git a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_nl.xtb b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_nl.xtb index c795082..ba58bcf 100644 --- a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_nl.xtb +++ b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_nl.xtb
@@ -10,6 +10,7 @@ <translation id="257674075312929031">Groep</translation> <translation id="2613747923081026172">Groep maken</translation> <translation id="2671423594960767771">Groep delen</translation> +<translation id="2759453070259087442">De tabbladgroep <ph name="TITLE_OF_GROUP" /> uitvouwen met <ph name="NUMBER_OF_TABS" /> tabbladen.</translation> <translation id="2977480621796371840">Uit groep verwijderen</translation> <translation id="3328308545011660196">Suggestie: <ph name="NUMBER_OF_TABS" /> tabbladen lijken gerelateerd. Wil je deze groeperen?</translation> <translation id="4133493477912226187"><ph name="NUMBER_OF_TABS" /> tabbladen lijken gerelateerd. Wil je deze groeperen?</translation>
diff --git a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_no.xtb b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_no.xtb index deda6b1..534a6fee 100644 --- a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_no.xtb +++ b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_no.xtb
@@ -10,6 +10,7 @@ <translation id="257674075312929031">Gruppér</translation> <translation id="2613747923081026172">Opprett en gruppe</translation> <translation id="2671423594960767771">Del gruppe</translation> +<translation id="2759453070259087442">Utvid fanegruppen <ph name="TITLE_OF_GROUP" /> med <ph name="NUMBER_OF_TABS" /> faner.</translation> <translation id="2977480621796371840">Fjern fra gruppen</translation> <translation id="3328308545011660196">Forslag: <ph name="NUMBER_OF_TABS" /> faner ser ut til å være relaterte. Vil du gruppere dem?</translation> <translation id="4133493477912226187"><ph name="NUMBER_OF_TABS" /> faner ser ut til å være relaterte. Vil du gruppere dem?</translation>
diff --git a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_pa.xtb b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_pa.xtb index e216bd0..af178c4 100644 --- a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_pa.xtb +++ b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_pa.xtb
@@ -10,6 +10,7 @@ <translation id="257674075312929031">ਸਮੂਹ</translation> <translation id="2613747923081026172">ਗਰੁੱਪ ਬਣਾਓ</translation> <translation id="2671423594960767771">ਗਰੁੱਪ ਸਾਂਝਾ ਕਰੋ</translation> +<translation id="2759453070259087442"><ph name="TITLE_OF_GROUP" /> ਟੈਬ ਗਰੁੱਪ ਦਾ <ph name="NUMBER_OF_TABS" /> ਟੈਬਾਂ ਨਾਲ ਵਿਸਤਾਰ ਕਰੋ।</translation> <translation id="2977480621796371840">ਗਰੁੱਪ ਵਿੱਚੋਂ ਹਟਾਓ</translation> <translation id="3328308545011660196">ਸੁਝਾਅ: <ph name="NUMBER_OF_TABS" /> ਟੈਬਾਂ ਸੰਬੰਧਿਤ ਲੱਗਦੀਆਂ ਹਨ। ਕੀ ਉਹਨਾਂ ਨੂੰ ਗਰੁੱਪਬੱਧ ਕਰਨਾ ਹੈ?</translation> <translation id="4133493477912226187"><ph name="NUMBER_OF_TABS" /> ਟੈਬਾਂ ਸੰਬੰਧਿਤ ਲੱਗਦੀਆਂ ਹਨ। ਕੀ ਉਹਨਾਂ ਨੂੰ ਗਰੁੱਪਬੱਧ ਕਰਨਾ ਹੈ?</translation>
diff --git a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_pt-PT.xtb b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_pt-PT.xtb index 597fbca..d963d5f2 100644 --- a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_pt-PT.xtb +++ b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_pt-PT.xtb
@@ -10,6 +10,7 @@ <translation id="257674075312929031">Grupo</translation> <translation id="2613747923081026172">Criar grupo</translation> <translation id="2671423594960767771">Partilhar grupo</translation> +<translation id="2759453070259087442">Expanda o grupo de separadores <ph name="TITLE_OF_GROUP" /> com <ph name="NUMBER_OF_TABS" /> separadores.</translation> <translation id="2977480621796371840">Remover do grupo</translation> <translation id="3328308545011660196">Sugestão: <ph name="NUMBER_OF_TABS" /> separadores parecem estar relacionados. Pretende agrupá-los?</translation> <translation id="4133493477912226187"><ph name="NUMBER_OF_TABS" /> separadores parecem estar relacionados. Pretende agrupá-los?</translation>
diff --git a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_ro.xtb b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_ro.xtb index 1394dbf..337acd9 100644 --- a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_ro.xtb +++ b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_ro.xtb
@@ -10,6 +10,7 @@ <translation id="257674075312929031">Grupează</translation> <translation id="2613747923081026172">Creează grupul</translation> <translation id="2671423594960767771">Trimite grupul</translation> +<translation id="2759453070259087442">Extinde grupul de file <ph name="TITLE_OF_GROUP" /> cu <ph name="NUMBER_OF_TABS" /> file.</translation> <translation id="2977480621796371840">Elimină din grup</translation> <translation id="3328308545011660196">Sugestie: <ph name="NUMBER_OF_TABS" /> file par similare. Vrei să le grupezi?</translation> <translation id="4133493477912226187"><ph name="NUMBER_OF_TABS" /> file par similare. Vrei să le grupezi?</translation>
diff --git a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_sk.xtb b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_sk.xtb index 6a3eebb92..61dd3ba 100644 --- a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_sk.xtb +++ b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_sk.xtb
@@ -10,6 +10,7 @@ <translation id="257674075312929031">Skupina</translation> <translation id="2613747923081026172">Vytvoriť skupinu</translation> <translation id="2671423594960767771">Zdieľať skupinu</translation> +<translation id="2759453070259087442">Rozbaľte skupinu kariet <ph name="TITLE_OF_GROUP" /> pomocou <ph name="NUMBER_OF_TABS" /> kariet.</translation> <translation id="2977480621796371840">Odstrániť zo skupiny</translation> <translation id="3328308545011660196">Návrh: Zdá, sa že niekoľko (<ph name="NUMBER_OF_TABS" />) kariet spolu súvisí. Chcete ich zoskupiť?</translation> <translation id="4133493477912226187">Zdá sa, že niekoľko (<ph name="NUMBER_OF_TABS" />) kariet spolu súvisí. Chcete ich zoskupiť?</translation>
diff --git a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_sq.xtb b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_sq.xtb index cf61d4f9..c378d77 100644 --- a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_sq.xtb +++ b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_sq.xtb
@@ -10,6 +10,7 @@ <translation id="257674075312929031">Grup</translation> <translation id="2613747923081026172">Krijo një grup</translation> <translation id="2671423594960767771">Ndaj grupin</translation> +<translation id="2759453070259087442">Zgjero grupin e skedës <ph name="TITLE_OF_GROUP" /> me <ph name="NUMBER_OF_TABS" /> skeda.</translation> <translation id="2977480621796371840">Hiq nga grupi</translation> <translation id="3328308545011660196">Sugjerim: <ph name="NUMBER_OF_TABS" /> skeda duken të lidhura. Dëshiron t'i gruposh?</translation> <translation id="4133493477912226187"><ph name="NUMBER_OF_TABS" /> skeda duken të lidhura. Dëshiron t'i gruposh?</translation>
diff --git a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_sv.xtb b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_sv.xtb index 5a0389c..2364c08 100644 --- a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_sv.xtb +++ b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_sv.xtb
@@ -10,6 +10,7 @@ <translation id="257674075312929031">Grupp</translation> <translation id="2613747923081026172">Skapa grupp</translation> <translation id="2671423594960767771">Dela grupp</translation> +<translation id="2759453070259087442">Utöka flikgruppen <ph name="TITLE_OF_GROUP" /> med <ph name="NUMBER_OF_TABS" /> flikar.</translation> <translation id="2977480621796371840">Ta bort från gruppen</translation> <translation id="3328308545011660196">Förslag: <ph name="NUMBER_OF_TABS" /> flikar verkar höra ihop. Vill du gruppera dem?</translation> <translation id="4133493477912226187"><ph name="NUMBER_OF_TABS" /> flikar verkar höra ihop. Vill du gruppera dem?</translation>
diff --git a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_te.xtb b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_te.xtb index 4c01d02..8f41cde 100644 --- a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_te.xtb +++ b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_te.xtb
@@ -10,6 +10,7 @@ <translation id="257674075312929031">గ్రూప్గా చేయి</translation> <translation id="2613747923081026172">సమూహాన్ని సృష్టించు</translation> <translation id="2671423594960767771">గ్రూప్ను షేర్ చేయండి</translation> +<translation id="2759453070259087442"><ph name="NUMBER_OF_TABS" /> ట్యాబ్లతో <ph name="TITLE_OF_GROUP" /> ట్యాబ్ గ్రూప్ను విస్తరించండి.</translation> <translation id="2977480621796371840">గుంపు నుండి తీసివేయి</translation> <translation id="3328308545011660196">సూచన: <ph name="NUMBER_OF_TABS" /> ట్యాబ్లు సంబంధించినవిగా అనిపిస్తున్నాయి. వాటిని గ్రూప్ చేయాలా?</translation> <translation id="4133493477912226187"><ph name="NUMBER_OF_TABS" /> ట్యాబ్లు సంబంధించినవిగా అనిపిస్తున్నాయి. వాటిని గ్రూప్ చేయాలా?</translation>
diff --git a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_th.xtb b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_th.xtb index 3c33ea1..94d45a7 100644 --- a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_th.xtb +++ b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_th.xtb
@@ -10,6 +10,7 @@ <translation id="257674075312929031">จัดกลุ่ม</translation> <translation id="2613747923081026172">สร้างกลุ่ม</translation> <translation id="2671423594960767771">แชร์กลุ่ม</translation> +<translation id="2759453070259087442">ขยายกลุ่มแท็บ <ph name="TITLE_OF_GROUP" /> จำนวน <ph name="NUMBER_OF_TABS" /> แท็บ</translation> <translation id="2977480621796371840">นำออกจากกลุ่ม</translation> <translation id="3328308545011660196">คำแนะนำ: ดูเหมือนว่ามีแท็บที่เกี่ยวข้อง <ph name="NUMBER_OF_TABS" /> แท็บ ต้องการจัดกลุ่มแท็บไหม</translation> <translation id="4133493477912226187">ดูเหมือนว่ามีแท็บที่เกี่ยวข้อง <ph name="NUMBER_OF_TABS" /> แท็บ ต้องการจัดกลุ่มแท็บไหม</translation>
diff --git a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_uk.xtb b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_uk.xtb index d162b60..279c9e64 100644 --- a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_uk.xtb +++ b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_uk.xtb
@@ -10,6 +10,7 @@ <translation id="257674075312929031">Група</translation> <translation id="2613747923081026172">Створити групу</translation> <translation id="2671423594960767771">Поділитися групою</translation> +<translation id="2759453070259087442">Розгорнути групу "<ph name="TITLE_OF_GROUP" />" зі стількома вкладками: <ph name="NUMBER_OF_TABS" />.</translation> <translation id="2977480621796371840">Вилучити з групи</translation> <translation id="3328308545011660196">Підказка: схоже, ви відкрили кілька пов'язаних вкладок (<ph name="NUMBER_OF_TABS" />). Додати їх у групу?</translation> <translation id="4133493477912226187">Схоже, ви відкрили кілька пов'язаних вкладок (<ph name="NUMBER_OF_TABS" />). Додати їх у групу?</translation>
diff --git a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_ur.xtb b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_ur.xtb index 34cc026..df9e68b 100644 --- a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_ur.xtb +++ b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_ur.xtb
@@ -10,6 +10,7 @@ <translation id="257674075312929031">گروپ</translation> <translation id="2613747923081026172">گروپ بنائیں</translation> <translation id="2671423594960767771">گروپ کا اشتراک کریں</translation> +<translation id="2759453070259087442"><ph name="TITLE_OF_GROUP" /> ٹیب گروپ کو <ph name="NUMBER_OF_TABS" /> ٹیبز کے ساتھ پھیلائیں۔</translation> <translation id="2977480621796371840">گروپ سے ہٹائیں</translation> <translation id="3328308545011660196">تجویز: <ph name="NUMBER_OF_TABS" /> ٹیبز متعلقہ معلوم ہوتے ہیں۔ ان کی گروپ بندی کریں؟</translation> <translation id="4133493477912226187"><ph name="NUMBER_OF_TABS" /> ٹیبز متعلقہ معلوم ہوتے ہیں۔ ان کی گروپ بندی کریں؟</translation>
diff --git a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_vi.xtb b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_vi.xtb index e7c7839..496d090b 100644 --- a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_vi.xtb +++ b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_vi.xtb
@@ -10,6 +10,7 @@ <translation id="257674075312929031">Nhóm</translation> <translation id="2613747923081026172">Tạo nhóm</translation> <translation id="2671423594960767771">Chia sẻ nhóm</translation> +<translation id="2759453070259087442">Mở rộng nhóm thẻ <ph name="TITLE_OF_GROUP" /> có <ph name="NUMBER_OF_TABS" /> thẻ.</translation> <translation id="2977480621796371840">Xóa khỏi nhóm</translation> <translation id="3328308545011660196">Đề xuất: <ph name="NUMBER_OF_TABS" /> thẻ có vẻ liên quan đến nhau. Bạn có muốn nhóm các thẻ đó lại không?</translation> <translation id="4133493477912226187"><ph name="NUMBER_OF_TABS" /> thẻ có vẻ liên quan đến nhau. Bạn có muốn nhóm các thẻ đó lại không?</translation>
diff --git a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_zh-HK.xtb b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_zh-HK.xtb index 0ca6b9e..c7be0d5 100644 --- a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_zh-HK.xtb +++ b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_zh-HK.xtb
@@ -10,6 +10,7 @@ <translation id="257674075312929031">群組</translation> <translation id="2613747923081026172">建立群組</translation> <translation id="2671423594960767771">分享群組項目</translation> +<translation id="2759453070259087442">用 <ph name="NUMBER_OF_TABS" /> 個分頁展開「<ph name="TITLE_OF_GROUP" />」分頁群組。</translation> <translation id="2977480621796371840">從群組中移除</translation> <translation id="3328308545011660196">建議:似乎有 <ph name="NUMBER_OF_TABS" /> 個相關嘅分頁。要唔要將佢哋分組?</translation> <translation id="4133493477912226187">似乎有 <ph name="NUMBER_OF_TABS" /> 個相關的分頁。要唔要將佢哋分組?</translation>
diff --git a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_zh-TW.xtb b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_zh-TW.xtb index a7e071a..308095a 100644 --- a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_zh-TW.xtb +++ b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_zh-TW.xtb
@@ -10,6 +10,7 @@ <translation id="257674075312929031">群組</translation> <translation id="2613747923081026172">建立群組</translation> <translation id="2671423594960767771">分享群組項目</translation> +<translation id="2759453070259087442">使用 <ph name="NUMBER_OF_TABS" /> 個分頁展開「<ph name="TITLE_OF_GROUP" />」分頁群組。</translation> <translation id="2977480621796371840">從群組中移除</translation> <translation id="3328308545011660196">建議:似乎有 <ph name="NUMBER_OF_TABS" /> 個相關的分頁。要將這些分頁加入群組嗎?</translation> <translation id="4133493477912226187">似乎有 <ph name="NUMBER_OF_TABS" /> 個相關的分頁。要將這些分頁加入群組嗎?</translation>
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java index 4f8161e7..5b97c00 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java
@@ -101,8 +101,6 @@ import org.chromium.chrome.browser.gsa.GSAState; import org.chromium.chrome.browser.help.HelpAndFeedback; import org.chromium.chrome.browser.history.HistoryManagerUtils; -import org.chromium.chrome.browser.incognito.IncognitoNotificationPresenceController; -import org.chromium.chrome.browser.incognito.IncognitoProfileDestroyer; import org.chromium.chrome.browser.init.AsyncInitializationActivity; import org.chromium.chrome.browser.init.ProcessInitializationHandler; import org.chromium.chrome.browser.init.StartupTabPreloader; @@ -620,8 +618,6 @@ mIncognitoTabCreator = tabCreators.second; OfflinePageUtils.observeTabModelSelector(this, mTabModelSelector); - IncognitoProfileDestroyer.observeTabModelSelector(mTabModelSelector); - IncognitoNotificationPresenceController.observeTabModelSelector(mTabModelSelector); if (mTabModelSelectorTabObserver != null) mTabModelSelectorTabObserver.destroy();
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/layouts/LayoutManager.java b/chrome/android/java/src/org/chromium/chrome/browser/compositor/layouts/LayoutManager.java index f206a776..bdb8de96 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/compositor/layouts/LayoutManager.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/compositor/layouts/LayoutManager.java
@@ -97,7 +97,7 @@ // Layouts /** A {@link Layout} used for showing a normal web page. */ - protected final StaticLayout mStaticLayout; + protected StaticLayout mStaticLayout; private final ViewGroup mContentContainer; @@ -265,17 +265,6 @@ mOverlayPanelManager = new OverlayPanelManager(); mFrameRequestSupplier = new CompositorModelChangeProcessor.FrameRequestSupplier(this); - - // TODO(crbug.com/1070281): Move this to #init. - // Build Layouts - mStaticLayout = new StaticLayout(mContext, this, renderHost, mHost, mFrameRequestSupplier, - mTabModelSelectorSupplier, mTabContentManagerSupplier, - mBrowserControlsStateProviderSupplier); - - // Set up layout parameters - mStaticLayout.setLayoutHandlesTabLifecycles(true); - - setNextLayout(null); } /** @@ -427,6 +416,16 @@ LayoutRenderHost renderHost = mHost.getLayoutRenderHost(); mCurrentTabSupplier.set(selector.getCurrentTab()); + // Build Layouts + mStaticLayout = new StaticLayout(mContext, this, renderHost, mHost, mFrameRequestSupplier, + mTabModelSelectorSupplier, mTabContentManagerSupplier, + mBrowserControlsStateProviderSupplier); + + // Set up layout parameters + mStaticLayout.setLayoutHandlesTabLifecycles(true); + + setNextLayout(null); + // If fullscreen is disabled, don't bother creating this overlay; only the android view will // ever be shown. if (DeviceClassManager.enableFullscreen()) {
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/layouts/LayoutManagerChromePhone.java b/chrome/android/java/src/org/chromium/chrome/browser/compositor/layouts/LayoutManagerChromePhone.java index 2aa1eeb..3e1a7715 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/compositor/layouts/LayoutManagerChromePhone.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/compositor/layouts/LayoutManagerChromePhone.java
@@ -52,12 +52,12 @@ // Build Layouts mSimpleAnimationLayout = new SimpleAnimationLayout(context, this, renderHost); - // Set up layout parameters - mStaticLayout.setLayoutHandlesTabLifecycles(false); - super.init(selector, creator, content, controlContainer, contextualSearchDelegate, dynamicResourceLoader); + // Set up layout parameters + mStaticLayout.setLayoutHandlesTabLifecycles(false); + mToolbarSwipeLayout.setMovesToolbar(true); // Initialize Layouts
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/incognito/IncognitoNotificationPresenceController.java b/chrome/android/java/src/org/chromium/chrome/browser/incognito/IncognitoNotificationPresenceController.java deleted file mode 100644 index da61835..0000000 --- a/chrome/android/java/src/org/chromium/chrome/browser/incognito/IncognitoNotificationPresenceController.java +++ /dev/null
@@ -1,39 +0,0 @@ -// Copyright 2020 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package org.chromium.chrome.browser.incognito; - -import org.chromium.chrome.browser.tabmodel.IncognitoTabModelObserver; -import org.chromium.chrome.browser.tabmodel.TabModelSelector; - -/** - * Controls the presence incognito notification through {@link IncognitoNotificationManager}. - * - * Reacts to the presence or absence of incognito tabs. - */ -public class IncognitoNotificationPresenceController implements IncognitoTabModelObserver { - /** - * Creates an {@link IncognitoNotificationPresenceController} that reacts to incognito tabs in a - * given |tabModelSelector|. - * @param tabModelSelector The {@link TabModelSelector} to observe - */ - public static void observeTabModelSelector(TabModelSelector tabModelSelector) { - tabModelSelector.addIncognitoTabModelObserver( - new IncognitoNotificationPresenceController()); - } - - IncognitoNotificationPresenceController() {} - - @Override - public void wasFirstTabCreated() { - IncognitoNotificationManager.showIncognitoNotification(); - } - - @Override - public void didBecomeEmpty() { - if (!IncognitoUtils.doIncognitoTabsExist()) { - IncognitoNotificationManager.dismissIncognitoNotification(); - } - } -}
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/incognito/IncognitoProfileDestroyer.java b/chrome/android/java/src/org/chromium/chrome/browser/incognito/IncognitoProfileDestroyer.java deleted file mode 100644 index 28492fc..0000000 --- a/chrome/android/java/src/org/chromium/chrome/browser/incognito/IncognitoProfileDestroyer.java +++ /dev/null
@@ -1,44 +0,0 @@ -// Copyright 2020 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package org.chromium.chrome.browser.incognito; - -import org.chromium.chrome.browser.profiles.Profile; -import org.chromium.chrome.browser.tabmodel.IncognitoTabModelObserver; -import org.chromium.chrome.browser.tabmodel.TabModelSelector; - -/** - * Destroys incognito {@link Profile}s when the last incognito tab is destroyed. - * - * Reacts to the presence or absence of incognito tabs. - */ -public class IncognitoProfileDestroyer implements IncognitoTabModelObserver { - private final TabModelSelector mTabModelSelector; - - /** - * Creates an {@link IncognitoProfileDestroyer} that reacts to incognito tabs in a - * given |tabModelSelector|. - * @param tabModelSelector The {@link TabModelSelector} to observe - */ - public static void observeTabModelSelector(TabModelSelector tabModelSelector) { - tabModelSelector.addIncognitoTabModelObserver( - new IncognitoProfileDestroyer(tabModelSelector)); - } - - IncognitoProfileDestroyer(TabModelSelector tabModelSelector) { - mTabModelSelector = tabModelSelector; - } - - @Override - public void didBecomeEmpty() { - if (!IncognitoUtils.doIncognitoTabsExist()) { - // Only delete the incognito profile if there are no incognito tabs open in any tab - // model selector as the profile is shared between them. - Profile profile = mTabModelSelector.getModel(true).getProfile(); - if (profile != null) { - profile.destroyWhenAppropriate(); - } - } - } -}
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java b/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java index 60268d19..1784508 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java
@@ -74,6 +74,7 @@ private HistoryNavigationCoordinator mHistoryNavigationCoordinator; private NavigationSheet mNavigationSheet; private ComposedBrowserControlsVisibilityDelegate mAppBrowserControlsVisibilityDelegate; + private LayoutManager mLayoutManager; /** * Construct a new TabbedRootUiCoordinator. @@ -194,6 +195,19 @@ @Override public void onFinishNativeInitialization() { + assert mLayoutManager != null; + // clang-format off + mHistoryNavigationCoordinator = HistoryNavigationCoordinator.create( + mActivity.getWindowAndroid(), mActivity.getLifecycleDispatcher(), + mActivity.getCompositorViewHolder(), mActivity.getActivityTabProvider(), + mActivity.getInsetObserverView(), mActivity::backShouldCloseTab, + mActivity::onBackPressed, mLayoutManager, + tab -> HistoryManagerUtils.showHistoryManager(mActivity, tab), + mActivity.getResources().getString(R.string.show_full_history), + () -> mActivity.isActivityFinishingOrDestroyed() ? null + : getBottomSheetController()); + // clang-format on + // TODO(twellington): Supply TabModelSelector as well and move initialization earlier. if (DeviceFormFactor.isNonMultiDisplayContextOnTablet(mActivity)) { AppMenuHandler appMenuHandler = @@ -223,18 +237,7 @@ super.onLayoutManagerAvailable(layoutManager); initStatusIndicatorCoordinator(layoutManager); - - // clang-format off - mHistoryNavigationCoordinator = HistoryNavigationCoordinator.create( - mActivity.getWindowAndroid(), mActivity.getLifecycleDispatcher(), - mActivity.getCompositorViewHolder(), mActivity.getActivityTabProvider(), - mActivity.getInsetObserverView(), mActivity::backShouldCloseTab, - mActivity::onBackPressed, layoutManager, - tab -> HistoryManagerUtils.showHistoryManager(mActivity, tab), - mActivity.getResources().getString(R.string.show_full_history), - () -> mActivity.isActivityFinishingOrDestroyed() ? null - : getBottomSheetController()); - // clang-format on + mLayoutManager = layoutManager; } @Override
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/IncognitoTabModelImpl.java b/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/IncognitoTabModel.java similarity index 85% rename from chrome/android/java/src/org/chromium/chrome/browser/tabmodel/IncognitoTabModelImpl.java rename to chrome/android/java/src/org/chromium/chrome/browser/tabmodel/IncognitoTabModel.java index 7282a80..f2ff60a 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/IncognitoTabModelImpl.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/IncognitoTabModel.java
@@ -6,6 +6,7 @@ import org.chromium.base.ObserverList; import org.chromium.base.ThreadUtils; +import org.chromium.chrome.browser.incognito.IncognitoNotificationManager; import org.chromium.chrome.browser.profiles.Profile; import org.chromium.chrome.browser.tab.Tab; import org.chromium.chrome.browser.tab.TabCreationState; @@ -26,12 +27,15 @@ * no Tabs remain, the native model will be destroyed and only rebuilt when a new incognito Tab * is created. */ -public class IncognitoTabModelImpl implements IncognitoTabModel { +public class IncognitoTabModel implements TabModel { /** Creates TabModels for use in IncognitoModel. */ public interface IncognitoTabModelDelegate { /** Creates a fully working TabModel to delegate calls to. */ TabModel createTabModel(); + /** @return Whether Incognito Tabs exist. */ + boolean doIncognitoTabsExist(); + /** * @param model {@link TabModel} to act on. * @return Whether the provided {@link TabModel} is currently selected in the corresponding @@ -41,16 +45,14 @@ } private final IncognitoTabModelDelegate mDelegate; - private final ObserverList<TabModelObserver> mObservers = new ObserverList<>(); - private final ObserverList<IncognitoTabModelObserver> mIncognitoObservers = - new ObserverList<>(); + private final ObserverList<TabModelObserver> mObservers = new ObserverList<TabModelObserver>(); private TabModel mDelegateModel; private boolean mIsAddingTab; /** * Constructor for IncognitoTabModel. */ - public IncognitoTabModelImpl(IncognitoTabModelDelegate tabModelCreator) { + public IncognitoTabModel(IncognitoTabModelDelegate tabModelCreator) { mDelegate = tabModelCreator; mDelegateModel = EmptyTabModel.getInstance(); } @@ -62,18 +64,23 @@ ThreadUtils.assertOnUiThread(); if (!(mDelegateModel instanceof EmptyTabModel)) return; + IncognitoNotificationManager.showIncognitoNotification(); mDelegateModel = mDelegate.createTabModel(); for (TabModelObserver observer : mObservers) { mDelegateModel.addObserver(observer); } - for (IncognitoTabModelObserver observer : mIncognitoObservers) { - observer.wasFirstTabCreated(); - } } /** - * Resets the delegate TabModel to be a stub EmptyTabModel and notifies - * {@link IncognitoTabModelObserver}s. + * @return The TabModel that this {@link IncognitoTabModel} is delegating calls to. + */ + protected TabModel getDelegateModel() { + return mDelegateModel; + } + + /** + * Destroys the Incognito profile when all Incognito tabs have been closed. Also resets the + * delegate TabModel to be a stub EmptyTabModel. */ protected void destroyIncognitoIfNecessary() { ThreadUtils.assertOnUiThread(); @@ -81,10 +88,15 @@ return; } + Profile profile = getProfile(); mDelegateModel.destroy(); - for (IncognitoTabModelObserver observer : mIncognitoObservers) { - observer.didBecomeEmpty(); + // Only delete the incognito profile if there are no incognito tabs open in any tab + // model selector as the profile is shared between them. + if (profile != null && !mDelegate.doIncognitoTabsExist()) { + IncognitoNotificationManager.dismissIncognitoNotification(); + + profile.destroyWhenAppropriate(); } mDelegateModel = EmptyTabModel.getInstance(); @@ -251,16 +263,6 @@ } @Override - public void addIncognitoObserver(IncognitoTabModelObserver observer) { - mIncognitoObservers.addObserver(observer); - } - - @Override - public void removeIncognitoObserver(IncognitoTabModelObserver observer) { - mIncognitoObservers.removeObserver(observer); - } - - @Override public void removeTab(Tab tab) { mDelegateModel.removeTab(tab); // Call destroyIncognitoIfNecessary() in case the last incognito tab in this model is @@ -269,5 +271,6 @@ } @Override - public void openMostRecentlyClosedTab() {} + public void openMostRecentlyClosedTab() { + } }
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/IncognitoTabModelImplCreator.java b/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/IncognitoTabModelImplCreator.java index 5e32c532..0eeaa50 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/IncognitoTabModelImplCreator.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/IncognitoTabModelImplCreator.java
@@ -5,7 +5,8 @@ package org.chromium.chrome.browser.tabmodel; import org.chromium.chrome.browser.compositor.layouts.content.TabContentManager; -import org.chromium.chrome.browser.tabmodel.IncognitoTabModelImpl.IncognitoTabModelDelegate; +import org.chromium.chrome.browser.incognito.IncognitoUtils; +import org.chromium.chrome.browser.tabmodel.IncognitoTabModel.IncognitoTabModelDelegate; import org.chromium.chrome.browser.tabmodel.NextTabPolicy.NextTabPolicySupplier; /** @@ -23,10 +24,10 @@ private final TabModelDelegate mModelDelegate; /** - * Constructor for an IncognitoTabModelImplCreator, used by {@link IncognitoTabModelImpl}. + * Constructor for an IncognitoTabModelImplCreator, used by {@link IncognitoTabModel}. * * Creating an instance of this class does not create the Incognito TabModelImpl immediately. - * The {@link IncognitoTabModelImpl} will use this class to create the real TabModelImpl when it + * The {@link IncognitoTabModel} will use this class to create the real TabModelImpl when it * will actually be used. * @param regularTabCreator Creates regular tabs. * @param incognitoTabCreator Creates incognito tabs. @@ -62,6 +63,11 @@ } @Override + public boolean doIncognitoTabsExist() { + return IncognitoUtils.doIncognitoTabsExist(); + } + + @Override public boolean isCurrentModel(TabModel model) { return mModelDelegate.isCurrentModel(model); }
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabModelSelectorBase.java b/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabModelSelectorBase.java index 73b518b4..024e5cd 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabModelSelectorBase.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabModelSelectorBase.java
@@ -12,18 +12,18 @@ import org.chromium.content_public.browser.LoadUrlParams; import java.util.ArrayList; +import java.util.Collections; import java.util.List; /** * Implement methods shared across the different model implementations. */ -public abstract class TabModelSelectorBase implements TabModelSelector, IncognitoTabModelObserver { +public abstract class TabModelSelectorBase implements TabModelSelector { private static final int MODEL_NOT_FOUND = -1; private static TabModelSelectorObserver sObserver; private List<TabModel> mTabModels = new ArrayList<>(); - private IncognitoTabModel mIncognitoTabModel; /** * This is a dummy implementation intended to stub out TabModelFilterProvider before native is @@ -34,8 +34,6 @@ private final TabModelFilterFactory mTabModelFilterFactory; private int mActiveModelIndex; private final ObserverList<TabModelSelectorObserver> mObservers = new ObserverList<>(); - private final ObserverList<IncognitoTabModelObserver> mIncognitoObservers = - new ObserverList<>(); private boolean mTabStateInitialized; private boolean mStartIncognito; private boolean mReparentingInProgress; @@ -49,13 +47,12 @@ mStartIncognito = startIncognito; } - protected final void initialize(TabModel normalModel, IncognitoTabModel incognitoModel) { + protected final void initialize(TabModel... models) { // Only normal and incognito supported for now. assert mTabModels.isEmpty(); + assert models.length > 0; - mTabModels.add(normalModel); - mTabModels.add(incognitoModel); - mIncognitoTabModel = incognitoModel; + Collections.addAll(mTabModels, models); mActiveModelIndex = getModelIndex(mStartIncognito); assert mActiveModelIndex != MODEL_NOT_FOUND; mTabModelFilterProvider = new TabModelFilterProvider(mTabModelFilterFactory, mTabModels); @@ -86,8 +83,6 @@ addObserver(sObserver); } - mIncognitoTabModel.addIncognitoObserver(this); - notifyChanged(); } @@ -266,10 +261,6 @@ public void destroy() { removeObserver(mTabModelFilterProvider); mTabModelFilterProvider.destroy(); - - if (mIncognitoTabModel != null) { - mIncognitoTabModel.removeIncognitoObserver(this); - } for (int i = 0; i < getModels().size(); i++) mTabModels.get(i).destroy(); mTabModels.clear(); } @@ -287,7 +278,7 @@ /** * Notifies all the listeners that a new tab has been created. * @param tab The tab that has been created. - * @param creationState How the tab was created. + * @param creationSTate How the tab was created. */ private void notifyNewTabCreated(Tab tab, @TabCreationState int creationState) { for (TabModelSelectorObserver listener : mObservers) { @@ -308,23 +299,4 @@ public boolean isReparentingInProgress() { return mReparentingInProgress; } - - @Override - public void addIncognitoTabModelObserver(IncognitoTabModelObserver incognitoObserver) { - mIncognitoObservers.addObserver(incognitoObserver); - } - - @Override - public void wasFirstTabCreated() { - for (IncognitoTabModelObserver observer : mIncognitoObservers) { - observer.wasFirstTabCreated(); - } - } - - @Override - public void didBecomeEmpty() { - for (IncognitoTabModelObserver observer : mIncognitoObservers) { - observer.didBecomeEmpty(); - } - } }
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabModelSelectorImpl.java b/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabModelSelectorImpl.java index 9a19ed9..6571957 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabModelSelectorImpl.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabModelSelectorImpl.java
@@ -128,21 +128,20 @@ (ChromeTabCreator) getTabCreatorManager().getTabCreator(false); ChromeTabCreator incognitoTabCreator = (ChromeTabCreator) getTabCreatorManager().getTabCreator(true); - TabModel normalModel = new TabModelImpl(false, mIsTabbedActivityForSync, regularTabCreator, - incognitoTabCreator, mUma, mOrderController, mTabContentManager, mTabSaver, - mNextTabPolicySupplier, mAsyncTabParamsManager, this, mIsUndoSupported); - IncognitoTabModel incognitoModel = - new IncognitoTabModelImpl(new IncognitoTabModelImplCreator(regularTabCreator, - incognitoTabCreator, mUma, mOrderController, mTabContentManager, mTabSaver, - mNextTabPolicySupplier, mAsyncTabParamsManager, this)); + TabModelImpl normalModel = new TabModelImpl(false, mIsTabbedActivityForSync, + regularTabCreator, incognitoTabCreator, mUma, mOrderController, mTabContentManager, + mTabSaver, mNextTabPolicySupplier, mAsyncTabParamsManager, this, mIsUndoSupported); + TabModel incognitoModel = new IncognitoTabModel(new IncognitoTabModelImplCreator( + regularTabCreator, incognitoTabCreator, mUma, mOrderController, mTabContentManager, + mTabSaver, mNextTabPolicySupplier, mAsyncTabParamsManager, this)); regularTabCreator.setTabModel(normalModel, mOrderController); incognitoTabCreator.setTabModel(incognitoModel, mOrderController); onNativeLibraryReadyInternal(tabContentProvider, normalModel, incognitoModel); } @VisibleForTesting - void onNativeLibraryReadyInternal(TabContentManager tabContentProvider, TabModel normalModel, - IncognitoTabModel incognitoModel) { + void onNativeLibraryReadyInternal( + TabContentManager tabContentProvider, TabModel normalModel, TabModel incognitoModel) { mTabContentManager = tabContentProvider; initialize(normalModel, incognitoModel); mTabSaver.setTabContentManager(mTabContentManager); @@ -227,7 +226,7 @@ * @param incognitoModel The incognito tab model. */ @VisibleForTesting - public void initializeForTesting(TabModel normalModel, IncognitoTabModel incognitoModel) { + public void initializeForTesting(TabModel normalModel, TabModel incognitoModel) { initialize(normalModel, incognitoModel); }
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/signin/AccountPickerBottomSheetTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/signin/AccountPickerBottomSheetTest.java index 4ef7fadc..c07375e02 100644 --- a/chrome/android/javatests/src/org/chromium/chrome/browser/signin/AccountPickerBottomSheetTest.java +++ b/chrome/android/javatests/src/org/chromium/chrome/browser/signin/AccountPickerBottomSheetTest.java
@@ -43,6 +43,7 @@ import org.chromium.base.Callback; import org.chromium.base.ThreadUtils; +import org.chromium.base.test.util.Batch; import org.chromium.base.test.util.CommandLineFlags; import org.chromium.chrome.R; import org.chromium.chrome.browser.app.ChromeActivity; @@ -52,6 +53,7 @@ import org.chromium.chrome.browser.signin.account_picker.AccountPickerDelegate; import org.chromium.chrome.test.ChromeActivityTestRule; import org.chromium.chrome.test.ChromeJUnit4ClassRunner; +import org.chromium.chrome.test.batch.BlankCTATabInitialStateRule; import org.chromium.chrome.test.util.browser.Features; import org.chromium.chrome.test.util.browser.signin.AccountManagerTestRule; import org.chromium.components.browser_ui.bottomsheet.BottomSheetController; @@ -72,6 +74,7 @@ @RunWith(ChromeJUnit4ClassRunner.class) @CommandLineFlags.Add({ChromeSwitches.DISABLE_FIRST_RUN_EXPERIENCE}) @Features.EnableFeatures({ChromeFeatureList.MOBILE_IDENTITY_CONSISTENCY}) +@Batch(Batch.PER_CLASS) public class AccountPickerBottomSheetTest { private static class CustomFakeProfileDataSource extends FakeProfileDataSource { int getNumberOfObservers() { @@ -93,10 +96,14 @@ public static final DisableAnimationsTestRule sNoAnimationsRule = new DisableAnimationsTestRule(); - @Rule - public final ChromeActivityTestRule<ChromeActivity> mActivityTestRule = + @ClassRule + public static final ChromeActivityTestRule<ChromeActivity> sActivityTestRule = new ChromeActivityTestRule<>(ChromeActivity.class); + @Rule + public final BlankCTATabInitialStateRule mInitialStateRule = + new BlankCTATabInitialStateRule(sActivityTestRule, false); + private final CustomFakeProfileDataSource mFakeProfileDataSource = new CustomFakeProfileDataSource(); @@ -117,7 +124,6 @@ initMocks(this); mAccountManagerTestRule.addAccount(PROFILE_DATA1); mAccountManagerTestRule.addAccount(PROFILE_DATA2); - mActivityTestRule.startMainActivityOnBlankPage(); } @Test @@ -476,7 +482,7 @@ onView(allOf(withId(R.id.account_selection_mark), withEffectiveVisibility(VISIBLE))) .check(matches(isDisplayed())); String continueAsText = - mActivityTestRule.getActivity().getString(R.string.signin_promo_continue_as, + sActivityTestRule.getActivity().getString(R.string.signin_promo_continue_as, profileData.getGivenName() != null ? profileData.getGivenName() : profileData.getAccountName()); onView(withText(continueAsText)).check(matches(isDisplayed())); @@ -485,7 +491,7 @@ private void buildAndShowCollapsedBottomSheet() { TestThreadUtils.runOnUiThreadBlocking(() -> { - mCoordinator = new AccountPickerBottomSheetCoordinator(mActivityTestRule.getActivity(), + mCoordinator = new AccountPickerBottomSheetCoordinator(sActivityTestRule.getActivity(), getBottomSheetController(), mAccountPickerDelegateMock); }); CriteriaHelper.pollUiThread(mCoordinator.getBottomSheetViewForTesting().findViewById( @@ -498,7 +504,7 @@ } private BottomSheetController getBottomSheetController() { - return mActivityTestRule.getActivity() + return sActivityTestRule.getActivity() .getRootUiCoordinatorForTesting() .getBottomSheetController(); }
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/tabmodel/TabModelSelectorObserverTestRule.java b/chrome/android/javatests/src/org/chromium/chrome/browser/tabmodel/TabModelSelectorObserverTestRule.java index 3cbc735..2a7a7f9 100644 --- a/chrome/android/javatests/src/org/chromium/chrome/browser/tabmodel/TabModelSelectorObserverTestRule.java +++ b/chrome/android/javatests/src/org/chromium/chrome/browser/tabmodel/TabModelSelectorObserverTestRule.java
@@ -28,7 +28,7 @@ public class TabModelSelectorObserverTestRule extends ChromeBrowserTestRule { private TabModelSelectorBase mSelector; private TabModelSelectorTestTabModel mNormalTabModel; - private TabModelSelectorTestIncognitoTabModel mIncognitoTabModel; + private TabModelSelectorTestTabModel mIncognitoTabModel; public TabModelSelectorBase getSelector() { return mSelector; @@ -38,7 +38,7 @@ return mNormalTabModel; } - public TabModelSelectorTestIncognitoTabModel getIncognitoTabModel() { + public TabModelSelectorTestTabModel getIncognitoTabModel() { return mIncognitoTabModel; } @@ -121,7 +121,7 @@ tabPersistentStore, nextTabPolicySupplier, asyncTabParamsManager, delegate); mIncognitoTabModel = - new TabModelSelectorTestIncognitoTabModel(orderController, tabContentManager, + new TabModelSelectorTestTabModel(true, orderController, tabContentManager, tabPersistentStore, nextTabPolicySupplier, asyncTabParamsManager, delegate); mSelector.initialize(mNormalTabModel, mIncognitoTabModel); @@ -158,24 +158,4 @@ return mObserverSet; } } - - /** - * Test IncognitoTabModel that exposes the needed capabilities for testing. - */ - public static class TabModelSelectorTestIncognitoTabModel - extends TabModelSelectorTestTabModel implements IncognitoTabModel { - public TabModelSelectorTestIncognitoTabModel(TabModelOrderController orderController, - TabContentManager tabContentManager, TabPersistentStore tabPersistentStore, - NextTabPolicySupplier nextTabPolicySupplier, - AsyncTabParamsManager asyncTabParamsManager, TabModelDelegate modelDelegate) { - super(true, orderController, tabContentManager, tabPersistentStore, - nextTabPolicySupplier, asyncTabParamsManager, modelDelegate); - } - - @Override - public void addIncognitoObserver(IncognitoTabModelObserver observer) {} - - @Override - public void removeIncognitoObserver(IncognitoTabModelObserver observer) {} - } }
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/tabmodel/TabPersistentStoreTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/tabmodel/TabPersistentStoreTest.java index 4a497b18..a60d8ed2 100644 --- a/chrome/android/javatests/src/org/chromium/chrome/browser/tabmodel/TabPersistentStoreTest.java +++ b/chrome/android/javatests/src/org/chromium/chrome/browser/tabmodel/TabPersistentStoreTest.java
@@ -123,14 +123,12 @@ AsyncTabParamsManager.getInstance(), TestTabModelSelector.this, true); } }; - TabModel regularTabModel = TestThreadUtils.runOnUiThreadBlocking(callable); - IncognitoTabModel incognitoTabModel = new IncognitoTabModelImpl( - new IncognitoTabModelImplCreator(getTabCreatorManager().getTabCreator(false), - getTabCreatorManager().getTabCreator(true), null, - mTabModelOrderController, null, mTabPersistentStore, - () - -> NextTabPolicy.HIERARCHICAL, - AsyncTabParamsManager.getInstance(), this)); + TabModelImpl regularTabModel = TestThreadUtils.runOnUiThreadBlocking(callable); + TabModel incognitoTabModel = new IncognitoTabModel(new IncognitoTabModelImplCreator( + getTabCreatorManager().getTabCreator(false), + getTabCreatorManager().getTabCreator(true), null, mTabModelOrderController, + null, mTabPersistentStore, + () -> NextTabPolicy.HIERARCHICAL, AsyncTabParamsManager.getInstance(), this)); initialize(regularTabModel, incognitoTabModel); }
diff --git a/chrome/app/nearby_share_strings.grdp b/chrome/app/nearby_share_strings.grdp index 50ed616..e4e3d5f 100644 --- a/chrome/app/nearby_share_strings.grdp +++ b/chrome/app/nearby_share_strings.grdp
@@ -2,6 +2,9 @@ <!-- Nearby Share specific strings (included from generated_resources.grd). --> <grit-part> <!-- Common strings --> + <message name="IDS_NEARBY_SHARE_FEATURE_NAME" desc="This is the name of the Nearby Share feature which provides a way for nearby devices to share files, text, and urls"> + Nearby Share + </message> <message name="IDS_NEARBY_FILE_ATTACHMENTS_APPS" desc="Describes one or more apps being transfered via Nearby Share."> {COUNT, plural, =1 {1 app} other {# apps}} </message>
diff --git a/chrome/app/nearby_share_strings_grdp/IDS_NEARBY_SHARE_FEATURE_NAME.png.sha1 b/chrome/app/nearby_share_strings_grdp/IDS_NEARBY_SHARE_FEATURE_NAME.png.sha1 new file mode 100644 index 0000000..907603fa --- /dev/null +++ b/chrome/app/nearby_share_strings_grdp/IDS_NEARBY_SHARE_FEATURE_NAME.png.sha1
@@ -0,0 +1 @@ +d766bbdef84cd510990b885a73218b7e47803341 \ No newline at end of file
diff --git a/chrome/app/os_settings_strings.grdp b/chrome/app/os_settings_strings.grdp index b0b97aef..4ef597e 100644 --- a/chrome/app/os_settings_strings.grdp +++ b/chrome/app/os_settings_strings.grdp
@@ -262,6 +262,12 @@ <message name="IDS_OS_SETTINGS_LANGUAGES_CHANGE_SYSTEM_LANGUAGE_BUTTON_DESCRIPTION" translateable="false" desc="The description read by screenreader for the button where users can change their display language. This language will be used for system surfaces (launcher, shelf, and notifications etc.) and the preferred application language if it’s provided by the application developer."> Change system language. Current language is <ph name="LANGUAGE">$1<ex>English</ex></ph>. System features like launcher, Settings and Files will appear in the language you choose. </message> + <message name="IDS_OS_SETTINGS_LANGUAGES_CHANGE_DEVICE_LANGUAGE_DIALOG_TITLE" translateable="false" desc="Title for the dialog to change device language."> + Change device language + </message> + <message name="IDS_OS_SETTINGS_LANGUAGES_CHANGE_DEVICE_LANGUAGE_CONFIRM_BUTTON_LABEL" translateable="false" desc="Label for the button where users can confirm the selected language and restart the device."> + Confirm and restart + </message> <message name="IDS_OS_SETTINGS_LANGUAGES_LANGUAGES_PREFERENCE_TITLE" translateable="false" desc="The label of the section in the language settings page where users can add languages they read to an ordered list. The web content languages will be served in the order of the list."> Languages you read </message>
diff --git a/chrome/app/resources/chromium_strings_bn.xtb b/chrome/app/resources/chromium_strings_bn.xtb index e3430d1..1943c1d 100644 --- a/chrome/app/resources/chromium_strings_bn.xtb +++ b/chrome/app/resources/chromium_strings_bn.xtb
@@ -3,10 +3,12 @@ <translationbundle lang="bn"> <translation id="1060499346270045814">{NUM_HOURS,plural, =1{Chromium সপ্তাহে একবার ডিভাইসে কোনও অযাচিত সফ্টওয়্যার আছে কিনা তা চেক করে দেখে। শেষবার চেক করা হয়েছে: ১ ঘণ্টা আগে।}one{Chromium সপ্তাহে একবার ডিভাইসে কোনও অযাচিত সফ্টওয়্যার আছে কিনা তা চেক করে দেখে। শেষবার চেক করা হয়েছে: {NUM_HOURS} ঘণ্টা আগে।}other{Chromium সপ্তাহে একবার ডিভাইসে কোনও অযাচিত সফ্টওয়্যার আছে কিনা তা চেক করে দেখে। শেষবার চেক করা হয়েছে: {NUM_HOURS} ঘণ্টা আগে।}}</translation> <translation id="1065672644894730302">আপনার অভিরুচিগুলি পড়া যাবে না৷ কিছু বৈশিষ্ট্য অনুপলব্ধ থাকতে পারে ও অভিরুচিগুলিতে করা পরিবর্তনগুলি সংরক্ষিত হবে না৷</translation> +<translation id="107513968719897256">ব্যক্তিগত ব্রাউজিং থেকে <ph name="NEW_USER" /> হিসেবে ব্রাউজিংকে আলাদা রাখতে Chromium-এ নতুন প্রোফাইল তৈরি করুন</translation> <translation id="1098170124587656448">ডেটার নিরাপত্তা লঙ্ঘন, এক্সটেনশন এবং আরও অনেক কিছুর থেকে Chrome আপনাকে সুরক্ষিত রাখতে সাহায্য করে</translation> <translation id="1104942323762546749">Chromium আপনার পাসওয়ার্ড এক্সপোর্ট করতে চাইছে। অনুমতি দিতে Windows এর পাসওয়ার্ড টাইপ করুন।</translation> <translation id="113122355610423240">Chromium আপনার ডিফল্ট ব্রাউজার</translation> <translation id="1185134272377778587">Chromium সম্পর্কে</translation> +<translation id="1315551408014407711">আপনার নতুন Chromium প্রোফাইল সেট আপ করুন</translation> <translation id="1396446129537741364">Chromium পাসওয়ার্ডগুলি দেখানোর চেষ্টা করছে৷</translation> <translation id="1414495520565016063">আপনি Chromium এ প্রবেশ করেছেন!</translation> <translation id="151962892725702025">আপনার ডোমেনে সিঙ্ক উপলভ্য না থাকার কারণে Chromium OS আপনার ডেটা সিঙ্ক করতে পারেনি৷</translation> @@ -42,6 +44,7 @@ <translation id="2797461000988640326">{NUM_MINS,plural, =1{Chromium সপ্তাহে একবার ডিভাইসে কোনও অযাচিত সফ্টওয়্যার আছে কিনা তা চেক করে দেখে। শেষবার চেক করা হয়েছে: ১ মিনিট আগে।}one{Chromium সপ্তাহে একবার ডিভাইসে কোনও অযাচিত সফ্টওয়্যার আছে কিনা তা চেক করে দেখে। শেষবার চেক করা হয়েছে: {NUM_MINS} মিনিট আগে।}other{Chromium সপ্তাহে একবার ডিভাইসে কোনও অযাচিত সফ্টওয়্যার আছে কিনা তা চেক করে দেখে। শেষবার চেক করা হয়েছে: {NUM_MINS} মিনিট আগে।}}</translation> <translation id="2799223571221894425">পুনঃশুরু</translation> <translation id="2847479871509788944">Chromium থেকে সরান...</translation> +<translation id="2853765747879685679">আমি Chromium খুললে জিজ্ঞাসা করো</translation> <translation id="2885378588091291677">কার্য পরিচালক</translation> <translation id="2910007522516064972">&Chromium সম্পর্কে</translation> <translation id="2977470724722393594">Chromium আপ-টু-ডেট আছে</translation> @@ -102,9 +105,11 @@ <translation id="4788777615168560705">Chromium আপনার পাসওয়ার্ড চেক করতে পারছে না। ২৪ ঘণ্টা পরে আবার চেষ্টা করুন বা <ph name="BEGIN_LINK" />আপনার Google অ্যাকাউন্টে পাসওয়ার্ড চেক করুন<ph name="END_LINK" />।</translation> <translation id="479167709087336770">এটি Google সার্চ-এ যে বানান পরীক্ষা করার টুল ব্যবহার করা হয় সেটিই ব্যবহার করে। আপনি ব্রাউজারে যে টেক্সট লেখেন, সেটি Google-এ পাঠানো হয়। সেটিংস থেকে আপনি এটি পরিবর্তন করতে পারেন।</translation> <translation id="4888717733111232871">mDNS ট্রাফিকের অনুমতি দিতে Chromium এর জন্য ইনবাউন্ড নিয়ম।</translation> +<translation id="4893632094755846570">এটি এই ডিভাইস থেকে আপনার ব্রাউজিং ডেটা স্থায়ীভাবে মুছে দেবে। ডেটা ফিরিয়ে আনতে, Chromium-এ এই ইমেল আইডি ব্যবহার করে সাইন-ইন করুন</translation> <translation id="4943838377383847465">Chromium পটভূমিতে চলছে৷</translation> <translation id="4987820182225656817">অতিথিগণ কোনো কিছুর জন্য অভাব বোধ না করেই Chromium ব্যবহার করতে পারবেন৷</translation> <translation id="4994636714258228724">Chromium এর সাথে নিজেকে যোগ করুন</translation> +<translation id="5080135079858647714">Chromium-এ নিজের প্রোফাইল তৈরি করতে চান?</translation> <translation id="5224391634244552924">কোনও পাসওয়ার্ড সেভ করা নেই। আপনি পাসওয়ার্ড সেভ করলে Chromium সেটি চেক করতে পারবে।</translation> <translation id="5277894862589591112">আপনার পরিবর্তনগুলি প্রয়োগ করতে, Chromium রিলঞ্চ করুন</translation> <translation id="5358375970380395591">আপনি একটি পরিচালিত অ্যাকাউন্টের মাধ্যমে সাইন-ইন করছেন এবং এর অ্যাডমিনিস্ট্রেটরকে আপনার Chromium প্রোফাইলের উপরে নিয়ন্ত্রণ দিচ্ছেন৷ আপনার Chromium ডেটা, যেমন অ্যাপ, বুকমার্ক, ইতিহাস, পাসওয়ার্ড এবং অন্যান্য সেটিংস <ph name="USER_NAME" /> এতে স্থায়ীভাবে সম্পৃক্ত হবে৷ আপনি Google অ্যাকাউন্টগুলির ড্যাশবোর্ডের মাধ্যমে এই ডেটাগুলি মুছতে চালু হবেন, কিন্তু অন্য অ্যাকাউন্টের সাথে এই ডেটা সংশ্লিষ্ট করতে পারবেন না৷ <ph name="LEARN_MORE" /></translation> @@ -161,6 +166,7 @@ <translation id="6717134281241384636">আপনার প্রোফাইলটি ব্যবহার করা যাবে না কারণ এটি একটি Chromium-এর নতুন ভার্সন৷ কিছু বিষয় অনুপলব্ধ হতে পারে৷ একটি ভিন্ন প্রোফাইল ডিরেক্টরি উল্লেখ করুন অথবা Chromium-এর একটি নতুন ভার্সন ব্যবহার করুন৷</translation> <translation id="6734080038664603509">&Chromium আপডেট করুন</translation> <translation id="6734291798041940871">Chromium ইতোমধ্যে আপনার কম্পিউটারের সকল ব্যবহারকারীর জন্য ইনস্টল করা হয়েছে।</translation> +<translation id="6762551859069255163">অফিস ও ব্যক্তিগত ব্রাউজিং আলাদা রাখতে অথবা একাধিক ব্যবহারকারী এই ডিভাইস ব্যবহার করলে, প্রত্যেকের জন্য Chromium-এ আলাদা প্রোফাইল তৈরি করুন</translation> <translation id="6774082503108938489">তোমার অভিভাবক Chromium-এ "সাইট, অ্যাপ ও এক্সটেনশনের অনুমতি" বন্ধ করে দিয়েছেন। এই <ph name="EXTENSION_TYPE_PARAMETER" /> চালু করার অনুমতি নেই।</translation> <translation id="6847869444787758381">আপনার পাসওয়ার্ড কখনও চুরি হলে তা Chromium আপনাকে জানিয়ে দেবে</translation> <translation id="6857782730669500492">Chromium - <ph name="PAGE_TITLE" /></translation> @@ -249,5 +255,6 @@ <translation id="9190841055450128916">Chromium (mDNS-In)</translation> <translation id="93478295209880648">Chromium সঠিকভাবে কাজ নাও করতে পারে কারণ এটি এখন আর Windows XP বা Windows Vista আর সমর্থিত নয়</translation> <translation id="95514773681268843"><ph name="DOMAIN" />-এ এই ডিভাইসটি ব্যবহার করার আগে আপনাকে নিম্নলিখিত পরিষেবার শর্তাদি পড়তে হবে এবং এটিকে স্বীকার করতে হবে৷ এই শর্তাদি Chromium OS-এর শর্তাদিকে প্রসারণ, সংশোধন বা সীমাবদ্ধ করে না৷</translation> +<translation id="965162752251293939">Chromium কে ব্যবহার করছেন?</translation> <translation id="985602178874221306">Chromium রচয়িতা</translation> </translationbundle> \ No newline at end of file
diff --git a/chrome/app/resources/chromium_strings_fr.xtb b/chrome/app/resources/chromium_strings_fr.xtb index e0863ea..1bfadbf 100644 --- a/chrome/app/resources/chromium_strings_fr.xtb +++ b/chrome/app/resources/chromium_strings_fr.xtb
@@ -4,10 +4,12 @@ <translation id="1060499346270045814">{NUM_HOURS,plural, =1{Chromium vérifie la présence de logiciels indésirables une fois par semaine. Dernière vérification : il y a une heure.}one{Chromium vérifie la présence de logiciels indésirables une fois par semaine. Dernière vérification : il y a {NUM_HOURS} heure.}other{Chromium vérifie la présence de logiciels indésirables une fois par semaine. Dernière vérification : il y a {NUM_HOURS} heures.}}</translation> <translation id="1065672644894730302">Impossible de lire vos préférences. Certaines fonctionnalités ne seront peut-être pas disponibles, et les modifications apportées à vos préférences ne seront pas enregistrées.</translation> +<translation id="107513968719897256">Pour distinguer votre navigation personnelle de celle associée au compte <ph name="NEW_USER" />, créez un profil dans Chromium</translation> <translation id="1098170124587656448">Chromium peut vous aider à vous protéger entre autres contre les violations de données et les extensions malveillantes</translation> <translation id="1104942323762546749">Chromium veut exporter vos mots de passe. Pour autoriser cette action, saisissez votre mot de passe Windows.</translation> <translation id="113122355610423240">Chromium est votre navigateur par défaut</translation> <translation id="1185134272377778587">À propos de Chromium</translation> +<translation id="1315551408014407711">Configurer votre nouveau profil Chromium</translation> <translation id="1396446129537741364">Tentative d'affichage des mots de passe dans Chromium</translation> <translation id="1414495520565016063">Vous êtes connecté à Chromium.</translation> <translation id="151962892725702025">Impossible de synchroniser vos données dans Chromium OS, car la synchronisation n'est pas disponible pour votre domaine.</translation> @@ -43,6 +45,7 @@ <translation id="2797461000988640326">{NUM_MINS,plural, =1{Chromium vérifie la présence de logiciels indésirables une fois par semaine. Dernière vérification : il y a 1 minute.}one{Chromium vérifie la présence de logiciels indésirables une fois par semaine. Dernière vérification : il y a {NUM_MINS} minute.}other{Chromium vérifie la présence de logiciels indésirables une fois par semaine. Dernière vérification : il y a {NUM_MINS} minutes.}}</translation> <translation id="2799223571221894425">Relancer</translation> <translation id="2847479871509788944">Supprimer de Chromium</translation> +<translation id="2853765747879685679">Me demander quand j'ouvre Chromium</translation> <translation id="2885378588091291677">Gestionnaire de tâches</translation> <translation id="2910007522516064972">À propos de &Chromium</translation> <translation id="2977470724722393594">Chromium est à jour</translation> @@ -103,9 +106,11 @@ <translation id="4788777615168560705">Chromium ne parvient pas à vérifier vos mots de passe. Réessayez dans 24 heures ou <ph name="BEGIN_LINK" />vérifiez les mots de passe enregistrés dans votre compte Google<ph name="END_LINK" />.</translation> <translation id="479167709087336770">Le correcteur orthographique utilisé est le même que celui employé dans la recherche Google. Le texte que vous saisissez dans le navigateur est envoyé à Google. Vous pouvez toujours modifier ce comportement dans les paramètres.</translation> <translation id="4888717733111232871">Règle de trafic entrant pour Chromium autorisant le trafic mDNS</translation> +<translation id="4893632094755846570">Cette action aura pour effet de supprimer définitivement vos données de navigation de cet appareil. Pour les récupérer, connectez-vous à Chromium en tant que</translation> <translation id="4943838377383847465">Chromium est exécuté en mode arrière-plan</translation> <translation id="4987820182225656817">Les invités peuvent utiliser Chromium sans laisser aucune trace.</translation> <translation id="4994636714258228724">Ajouter un utilisateur à Chromium</translation> +<translation id="5080135079858647714">Créer votre propre profil dans Chromium ?</translation> <translation id="5224391634244552924">Aucun mot de passe enregistré. Chromium ne peut vérifier vos mots de passe que si vous les enregistrez.</translation> <translation id="5277894862589591112">Pour appliquer vos modifications, relancez Chromium</translation> <translation id="5358375970380395591">Vous vous connectez avec un compte géré et donnez le contrôle de votre profil Chromium à son administrateur. Vos données Chromium, telles que les applications, les favoris, l'historique, les mots de passe et les autres paramètres, vont être définitivement associées à <ph name="USER_NAME" />. Vous pouvez supprimer ces données via le tableau de bord des comptes Google, mais vous ne pouvez pas les associer à un autre compte. <ph name="LEARN_MORE" /></translation> @@ -164,6 +169,7 @@ Certaines fonctionnalités seront peut-être indisponibles. Veuillez spécifier un autre répertoire de profil ou utiliser une version plus récente de Chromium.</translation> <translation id="6734080038664603509">Mettre à jour &Chromium</translation> <translation id="6734291798041940871">Chromium est déjà installé pour tous les utilisateurs de votre ordinateur.</translation> +<translation id="6762551859069255163">Utilisez plusieurs profils dans Chromium pour distinguer la navigation professionnelle de la navigation personnelle, ou pour les différentes personnes qui utilisent cet appareil</translation> <translation id="6774082503108938489">L'un de tes parents a désactivé l'option "Autorisations des sites, applications et extensions" pour Chromium. Tu ne peux pas activer cette <ph name="EXTENSION_TYPE_PARAMETER" />.</translation> <translation id="6847869444787758381">Chromium vous indique si vos mots de passe ont été piratés</translation> <translation id="6857782730669500492">Chromium – <ph name="PAGE_TITLE" /></translation> @@ -251,5 +257,6 @@ <translation id="9190841055450128916">Chromium (mDNS-In)</translation> <translation id="93478295209880648">Chromium risque de ne pas fonctionner correctement, car la compatibilité n'est plus assurée sur Windows XP et Windows Vista</translation> <translation id="95514773681268843"><ph name="DOMAIN" /> exige que vous lisiez et acceptiez les présentes conditions d'utilisation pour utiliser cet appareil. Ces dernières n'étendent, ne modifient ni ne restreignent les conditions d'utilisation de Chromium OS.</translation> +<translation id="965162752251293939">Qui utilise Chromium ?</translation> <translation id="985602178874221306">Auteurs de Chromium</translation> </translationbundle> \ No newline at end of file
diff --git a/chrome/app/resources/chromium_strings_gl.xtb b/chrome/app/resources/chromium_strings_gl.xtb index d0e8a10..18b1191 100644 --- a/chrome/app/resources/chromium_strings_gl.xtb +++ b/chrome/app/resources/chromium_strings_gl.xtb
@@ -5,10 +5,12 @@ <translation id="1065672644894730302">Non se poden ler as túas preferencias. É posible que algunhas funcións non estean dispoñibles e que non se garden os cambios nas preferencias.</translation> +<translation id="107513968719897256">Para separar a actividade de navegación persoal da de <ph name="NEW_USER" />, crea un perfil novo en Chromium</translation> <translation id="1098170124587656448">Chromium pode protexerte contra violacións da seguranza dos datos, extensións prexudiciais e moito máis</translation> <translation id="1104942323762546749">Chromium quere exportar os teus contrasinais. Escribe o teu contrasinal de Windows para permitir esta acción.</translation> <translation id="113122355610423240">Chromium é o teu navegador predeterminado</translation> <translation id="1185134272377778587">Acerca de Chromium</translation> +<translation id="1315551408014407711">Configura o teu novo perfil de Chromium</translation> <translation id="1396446129537741364">Chromium está tentando mostrar contrasinais.</translation> <translation id="1414495520565016063">Iniciaches sesión en Chromium.</translation> <translation id="151962892725702025">Chromium non puido sincronizar os teus datos porque a sincronización non está dispoñible para o teu dominio.</translation> @@ -44,6 +46,7 @@ <translation id="2797461000988640326">{NUM_MINS,plural, =1{Chromium comproba se hai software non desexado unha vez á semana. Última comprobación: hai 1 minuto.}other{Chromium comproba se hai software non desexado unha vez á semana. Última comprobación: hai {NUM_MINS} minutos.}}</translation> <translation id="2799223571221894425">Iniciar de novo</translation> <translation id="2847479871509788944">Eliminar de Chromium...</translation> +<translation id="2853765747879685679">Preguntar cando abra Chromium</translation> <translation id="2885378588091291677">Xestor de tarefas</translation> <translation id="2910007522516064972">Acerca de &Chromium</translation> <translation id="2977470724722393594">Chromium está actualizado</translation> @@ -104,9 +107,11 @@ <translation id="4788777615168560705">Chromium non puido comprobar os teus contrasinais. Téntao de novo dentro de 24 horas ou <ph name="BEGIN_LINK" />comproba os contrasinais na túa Conta de Google<ph name="END_LINK" />.</translation> <translation id="479167709087336770">Esta función utiliza o mesmo corrector ortográfico que o usado na busca de Google. O texto que escribas no navegador enviarase a Google. Podes cambiar esta opción na configuración cando queiras.</translation> <translation id="4888717733111232871">Norma de entrada para Chromium para permitir tráfico mDNS.</translation> +<translation id="4893632094755846570">Esta acción eliminará permanentemente os teus datos de navegación deste dispositivo. Para recuperalos, inicia sesión en Chromium como</translation> <translation id="4943838377383847465">Chromium está no modo de segundo plano.</translation> <translation id="4987820182225656817">Os invitados poden utilizar Chromium sen perder información.</translation> <translation id="4994636714258228724">Engádete a Chromium</translation> +<translation id="5080135079858647714">Queres crear o teu propio perfil en Chromium?</translation> <translation id="5224391634244552924">Non hai contrasinais gardados. Chromium pode comprobar os teus contrasinais cando os gardes.</translation> <translation id="5277894862589591112">Para aplicar os cambios, reinicia Chromium</translation> <translation id="5358375970380395591">Estás iniciando sesión cunha conta xestionada e concedendo control ao seu administrador sobre o teu perfil de Chromium. Os teus datos de Chromium, como as túas aplicacións, marcadores, historial, contrasinais e outras configuracións ligaranse permanentemente a <ph name="USER_NAME" />. Poderás eliminar estes datos a través do Panel de control das contas de Google, pero non poderás asociar estes datos a outra conta. <ph name="LEARN_MORE" /></translation> @@ -165,6 +170,7 @@ É posible que algunhas funcións non estean dispoñibles. Especifica un directorio de perfil diferente ou utiliza unha versión máis actualizada de Chromium.</translation> <translation id="6734080038664603509">Actualizar &Chromium</translation> <translation id="6734291798041940871">Chromium xa está instalado para todos os usuarios no teu ordenador.</translation> +<translation id="6762551859069255163">Utiliza distintos perfís en Chromium para separar a actividade de navegación persoal da do traballo, ou a das diferentes persoas que empregan este dispositivo</translation> <translation id="6774082503108938489">O teu pai ou nai desactivou esta opción en Chromium: Permisos para sitios, aplicacións e extensións. Non está permitido activar esta <ph name="EXTENSION_TYPE_PARAMETER" />.</translation> <translation id="6847869444787758381">Chromium permíteche saber se os teus contrasinais están en risco nalgún momento</translation> <translation id="6857782730669500492">Chromium: <ph name="PAGE_TITLE" /></translation> @@ -253,5 +259,6 @@ <translation id="9190841055450128916">Chromium (mDNS-In)</translation> <translation id="93478295209880648">É posible que Chromium non funcione correctamente porque xa non admite Windows XP nin Windows Vista</translation> <translation id="95514773681268843"><ph name="DOMAIN" /> require que leas e aceptes as seguintes Condicións de servizo antes de utilizar este dispositivo. Estas condicións non amplían, modifican nin limitan as condicións de Chromium OS.</translation> +<translation id="965162752251293939">Quen está utilizando Chromium?</translation> <translation id="985602178874221306">Os autores de Chromium</translation> </translationbundle> \ No newline at end of file
diff --git a/chrome/app/resources/chromium_strings_gu.xtb b/chrome/app/resources/chromium_strings_gu.xtb index 291d3e4..5de5bc6 100644 --- a/chrome/app/resources/chromium_strings_gu.xtb +++ b/chrome/app/resources/chromium_strings_gu.xtb
@@ -5,10 +5,12 @@ <translation id="1065672644894730302">તમારી પસંદગીઓને વાંચી શકાતી નથી. કેટલીક સુવિધાઓ ઉપલબ્ધ હોઈ શકે છે અને પસંદગીઓ પરના ફેરફારોને સાચવવામાં આવશે નહીં.</translation> +<translation id="107513968719897256">વ્યક્તિગત અને <ph name="NEW_USER" /> બ્રાઉઝિંગને અલગ પાડવા માટે, Chromiumમાં નવી પ્રોફાઇલ બનાવો</translation> <translation id="1098170124587656448">Chromium તમને ડેટા ઉલ્લંઘન, ખરાબ એક્સ્ટેંશન અને બીજી ઘણી બાબતોથી સુરક્ષિત રાખી શકે છે</translation> <translation id="1104942323762546749">Chromium તમારા પાસવર્ડની નિકાસ કરવા માગે છે. આને મંજૂરી આપવા માટે તમારો Windows પાસવર્ડ ટાઇપ કરો.</translation> <translation id="113122355610423240">Chromium તમારું ડિફૉલ્ટ બ્રાઉઝર છે</translation> <translation id="1185134272377778587">Chromium વિશે</translation> +<translation id="1315551408014407711">તમારી નવી Chromium પ્રોફાઇલ સેટઅપ કરો</translation> <translation id="1396446129537741364">Chromium પાસવર્ડ્સ બતાવવાનો પ્રયાસ કરી રહ્યું છે.</translation> <translation id="1414495520565016063">તમે Chromium માં સાઇન ઇન કર્યું છે!</translation> <translation id="151962892725702025">Chromium OS તમારા ડેટાને સિંક કરી શક્યું નથી, કારણ કે તમારા ડોમેન માટે સિંક ઉપલબ્ધ નથી.</translation> @@ -44,6 +46,7 @@ <translation id="2797461000988640326">{NUM_MINS,plural, =1{Chromium વણજોઈતા સૉફ્ટવેર શોધવા માટે અઠવાડિયામાં એક વાર ચેક કરે છે. છેલ્લે ચેક કર્યું: 1 મિનિટ પહેલાં.}one{Chromium વણજોઈતા સૉફ્ટવેર શોધવા માટે અઠવાડિયામાં એક વાર ચેક કરે છે. છેલ્લે ચેક કર્યું: {NUM_MINS} મિનિટ પહેલાં.}other{Chromium વણજોઈતા સૉફ્ટવેર શોધવા માટે અઠવાડિયામાં એક વાર ચેક કરે છે. છેલ્લે ચેક કર્યું: {NUM_MINS} મિનિટ પહેલાં.}}</translation> <translation id="2799223571221894425">ફરીથી લોંચ કરો</translation> <translation id="2847479871509788944">Chromium માંથી દૂર કરો...</translation> +<translation id="2853765747879685679">હું Chromium ખોલું ત્યારે પૂછો</translation> <translation id="2885378588091291677">કાર્ય વ્યવસ્થાપક</translation> <translation id="2910007522516064972">&Chromium વિશે</translation> <translation id="2977470724722393594">Chromium અપ ટૂ ડેટ છે</translation> @@ -104,9 +107,11 @@ <translation id="4788777615168560705">Chromium તમારા પાસવર્ડ ચેક કરી શકતું નથી. 24 કલાક પછી ફરી પ્રયાસ કરજો અથવા <ph name="BEGIN_LINK" />તમારા Google એકાઉન્ટમાં પાસવર્ડ ચેક કરો<ph name="END_LINK" />.</translation> <translation id="479167709087336770">આ પણ Google શોધમાં જે જોડણી તપાસનારનો ઉપયોગ થાય છે તેનો જ ઉપયોગ કરે છે. તમે બ્રાઉઝરમાં ટાઇપ કરો છો તે ટેક્સ્ટ Googleને મોકલવામાં આવે છે. તમે સેટિંગમાં આ વર્તણૂકને હંમેશાં બદલી શકો છો.</translation> <translation id="4888717733111232871">mDNS ટ્રાફિકને મંજૂરી આપવા Chromium માટે ઇનબાઉન્ડ નિયમ.</translation> +<translation id="4893632094755846570">આ તમારો બ્રાઉઝિંગ ડેટા આ ડિવાઇસમાંથી હંમેશ માટે ડિલીટ કરશે. આ ડેટા પાછો મેળવવા માટે, Chromiumમાં આ તરીકે સાઇન ઇન કરો</translation> <translation id="4943838377383847465">Chromium પૃષ્ઠભૂમિ મોડમાં છે.</translation> <translation id="4987820182225656817">અતિથિઓ કંઈપણ પાછળ છોડ્યાં વિના Chromium નો ઉપયોગ કરી શકે છે.</translation> <translation id="4994636714258228724">સ્વયંને Chromium માં ઉમેરો</translation> +<translation id="5080135079858647714">Chromiumમાં તમારી પોતાની પ્રોફાઇલ બનાવવી છે?</translation> <translation id="5224391634244552924">કોઈ સાચવેલા પાસવર્ડ નથી. જ્યારે તમે તમારા પાસવર્ડ સાચવો ત્યારે Chromium તેને ચેક કરી શકે છે.</translation> <translation id="5277894862589591112">તમારા ફેરફારો લાગુ કરવા માટે, Chromiumને ફરી લૉન્ચ કરો</translation> <translation id="5358375970380395591">તમે મેનેજ કરેલા એકાઉન્ટ સાથે સાઇન ઇન કરી રહ્યાં છો અને તમારી Chromium પ્રોફાઇલ પર એનું એડમિન નિયંત્રણ આપી રહ્યાં છો. તમારો Chromium ડેટા, જેમ કે ઍપ, બુકમાર્ક, ઇતિહાસ, પાસવર્ડ અને બીજા સેટિંગ, કાયમ માટે <ph name="USER_NAME" /> થી બંધાયેલ રહેશે. તમે Google એકાઉન્ટ ડૅશબોર્ડથી આ ડેટાને કાઢી શકશો, પરંતુ તમે આ ડેટાને બીજા એકાઉન્ટ સાથે સાંકળી શકશો નહિ. <ph name="LEARN_MORE" /></translation> @@ -165,6 +170,7 @@ કેટલીક સુવિધાઓ ઉપલબ્ધ થઈ શકે છે. કૃપા કરીને અલગ પ્રોફાઇલ ડિરેક્ટરીનો ઉલ્લેખ કરો અથવા Chromiumના નવા વર્ઝનનો ઉપયોગ કરો.</translation> <translation id="6734080038664603509">&Chromium ને અપડેટ કરો</translation> <translation id="6734291798041940871">Chromium, તમારા કમ્પ્યુટર પર તમામ વપરાશકર્તાઓ માટે પહેલાંથી ઇન્સ્ટૉલ કરેલ છે.</translation> +<translation id="6762551859069255163">ઑફિસ માટેનું અને વ્યક્તિગત બ્રાઉઝિંગ અલગ પાડવા અથવા આ ડિવાઇસનો ઉપયોગ કરતા વિવિધ લોકો માટે, Chromiumમાં ભિન્ન પ્રોફાઇલનો ઉપયોગ કરો</translation> <translation id="6774082503108938489">તમારા માતાપિતાએ Chromium માટે "સાઇટ, ઍપ અને એક્સ્ટેન્શન માટેની પરવાનગીઓ" બંધ કરી છે. આ <ph name="EXTENSION_TYPE_PARAMETER" /> ચાલુ કરવાની મંજૂરી નથી.</translation> <translation id="6847869444787758381">Chromium વડે તમે તમારા પાસવર્ડમાં ક્યારેક ચેડાં થાય તો તેના વિશે જાણકારી મેળવી શકો છો</translation> <translation id="6857782730669500492">Chromium - <ph name="PAGE_TITLE" /></translation> @@ -253,5 +259,6 @@ <translation id="9190841055450128916">Chromium (mDNS-In)</translation> <translation id="93478295209880648">Chromium યોગ્ય રીતે કાર્ય ન કરે તેવું બની શકે કારણ કે તે હવેથી Windows XP અથવા Windows Vista પર સમર્થિત નથી</translation> <translation id="95514773681268843"><ph name="DOMAIN" /> માટે જરૂરી છે કે તમે આ ડિવાઇસનો ઉપયોગ કરતાં પહેલાં નીચેની સેવાની શરતોને વાંચો અને સ્વીકારો. આ શરતો Chromium OS શરતોને વિસ્તૃત, સંશોધિત અથવા મર્યાદિત કરતી નથી.</translation> +<translation id="965162752251293939">કોણ Chromiumનો ઉપયોગ કરે છે?</translation> <translation id="985602178874221306">Chromium લેખકો</translation> </translationbundle> \ No newline at end of file
diff --git a/chrome/app/resources/chromium_strings_ms.xtb b/chrome/app/resources/chromium_strings_ms.xtb index cf32221..6820995 100644 --- a/chrome/app/resources/chromium_strings_ms.xtb +++ b/chrome/app/resources/chromium_strings_ms.xtb
@@ -3,7 +3,7 @@ <translationbundle lang="ms"> <translation id="1060499346270045814">{NUM_HOURS,plural, =1{Chromium menyemak perisian yang tidak diingini seminggu sekali. Terakhir disemak: 1 jam yang lalu.}other{Chromium menyemak perisian yang tidak diingini seminggu sekali. Terakhir disemak: {NUM_HOURS} jam yang lalu.}}</translation> <translation id="1065672644894730302">Pilihan anda tidak dapat dibaca. Beberapa ciri mungkin tidak tersedia dan perubahan terhadap pilihan tidak akan disimpan.</translation> -<translation id="107513968719897256">Untuk memisahkan penyemakan imbas peribadi dan <ph name="NEW_USER" />, cipta profil baharu di Chromium</translation> +<translation id="107513968719897256">Untuk memisahkan penyemakan imbas peribadi dan <ph name="NEW_USER" />, buat profil baharu pada Chromium</translation> <translation id="1098170124587656448">Chromium dapat membantu untuk memastikan anda selamat daripada pelanggaran data, sambungan tidak elok dan pelbagai lagi</translation> <translation id="1104942323762546749">Chromium mahu mengeksport kata laluan anda. Taip kata laluan Windows anda untuk membenarkannya.</translation> <translation id="113122355610423240">Chromium ialah penyemak imbas lalai anda</translation> @@ -109,7 +109,7 @@ <translation id="4943838377383847465">Chromium dalam mod latar belakang.</translation> <translation id="4987820182225656817">Tetamu boleh menggunakan Chromium tanpa meninggalkan apa-apa.</translation> <translation id="4994636714258228724">Tambahkan diri anda kepada Chromium</translation> -<translation id="5080135079858647714">Cipta profil anda sendiri di Chromium?</translation> +<translation id="5080135079858647714">Buat profil anda sendiri pada Chromium?</translation> <translation id="5224391634244552924">Tiada kata laluan yang disimpan. Chromium boleh menyemak kata laluan anda yang disimpan.</translation> <translation id="5277894862589591112">Untuk menggunakan perubahan anda, mulakan semula Chromium</translation> <translation id="5358375970380395591">Anda log masuk menggunakan akaun yang terurus dan memberikan pentadbirnya kawalan ke atas profil Chromium anda. Data Chromium anda, seperti apl, penanda halaman, sejarah, kata laluan dan tetapan anda yang lain akan terikat kepada <ph name="USER_NAME" /> secara kekal. Anda akan dapat memadamkan data ini melalui Papan Pemuka Akaun Google, tetapi anda tidak akan dapat mengaitkan data ini dengan akaun lain. <ph name="LEARN_MORE" /></translation> @@ -168,7 +168,7 @@ Beberapa ciri mungkin tidak tersedia. Sila nyatakan direktori profil yang berbeza atau gunakan versi Chromium yang lebih baharu.</translation> <translation id="6734080038664603509">Kemas kini &Chromium</translation> <translation id="6734291798041940871">Chromium telah dipasang untuk semua pengguna pada komputer anda.</translation> -<translation id="6762551859069255163">Gunakan profil yang berlainan di Chromium untuk memisahkan penyemakan imbas kerja dan peribadi atau untuk orang berbeza yang menggunakan peranti ini</translation> +<translation id="6762551859069255163">Gunakan profil yang berlainan pada Chromium untuk memisahkan penyemakan imbas kerja dan peribadi atau untuk orang berbeza yang menggunakan peranti ini</translation> <translation id="6774082503108938489">Ibu/bapa anda telah mematikan "Kebenaran untuk tapak web, apl dan sambungan" untuk Chromium. Tindakan mendayakan <ph name="EXTENSION_TYPE_PARAMETER" /> ini tidak dibenarkan.</translation> <translation id="6847869444787758381">Chromium akan memberitahu anda sekiranya kata laluan anda terjejas</translation> <translation id="6857782730669500492">Chromium - <ph name="PAGE_TITLE" /></translation>
diff --git a/chrome/app/resources/chromium_strings_ne.xtb b/chrome/app/resources/chromium_strings_ne.xtb index 941847af..ef553da3 100644 --- a/chrome/app/resources/chromium_strings_ne.xtb +++ b/chrome/app/resources/chromium_strings_ne.xtb
@@ -5,10 +5,12 @@ <translation id="1065672644894730302">तपाइँका प्राथमिकातहरू पढ्न सकिदैन। केही सुविधाहरू अनुपलब्ध हुन सक्छन् र प्राथमिकताहरूमा परिवर्तनहरू बचत हुने छैनन्।</translation> +<translation id="107513968719897256">व्यक्तिगत रूपमा गरिने ब्राउजिङ र <ph name="NEW_USER" /> बाट गरिने ब्राउजिङ छुट्याउन Chromium मा एउटा नयाँ प्रोफाइल बनाउनुहोस्</translation> <translation id="1098170124587656448">Chromium ले तपाईंलाई डेटा चोरीका घटना, हानिकारक एक्स्टेन्सन र थप समस्याहरूबाट सुरक्षित रहन मद्दत गर्न सक्छ</translation> <translation id="1104942323762546749">Chromium तपाईंका पासवर्डहरू निर्यात गर्न चाहन्छ। यसो गर्ने अनुमति दिन Windows को आफ्नो पासवर्ड टाइप गर्नुहोस्।</translation> <translation id="113122355610423240">Chromium तपाईंको पूर्वनिर्धारित ब्राउजर हो</translation> <translation id="1185134272377778587">Chromium का बारेमा</translation> +<translation id="1315551408014407711">Chromium मा आफ्नो नयाँ प्रोफाइल सेटअप गर्नुहोस्</translation> <translation id="1396446129537741364">Chromium ले पासवर्डहरू देखाउने प्रयास गर्दैछ।</translation> <translation id="1414495520565016063">तपाइँ Chromium मा साइन इन</translation> <translation id="151962892725702025">Chromium OS ले तपाईंको डाटालाई समक्रमण गर्न सकेन किनभने तपाईंको डोमेनको लागि समक्रमण उपलब्ध छैन।</translation> @@ -44,6 +46,7 @@ <translation id="2797461000988640326">{NUM_MINS,plural, =1{Chromium ले हप्तामा एक पटक अवाञ्छित सफ्टवेयर छन् कि छैनन् भनी जाँच गर्छ। पछिल्लो पटक जाँच गरिएको: १ मिनेटअघि।}other{Chromium ले हप्तामा एक पटक अवाञ्छित सफ्टवेयर छन् कि छैनन् भनी जाँच गर्छ। पछिल्लो पटक जाँच गरिएको: {NUM_MINS} मिनेटअघि।}}</translation> <translation id="2799223571221894425">पुन: सुरुवात गर्नुहोस्</translation> <translation id="2847479871509788944">Chromium बाट हटाउनुहोस् ...</translation> +<translation id="2853765747879685679">मैले Chromium खोल्दा सोधियोस्</translation> <translation id="2885378588091291677">कार्य व्यवस्थापक</translation> <translation id="2910007522516064972">&क्रोमियमको बारेमा</translation> <translation id="2977470724722393594">Chromium अद्यावधिक छ</translation> @@ -102,9 +105,11 @@ <translation id="4788777615168560705">Chromium तपाईंका पासवर्डहरू जाँच्न सक्दैन। २४ घन्टापछि फेरि प्रयास गर्नुहोस् वा <ph name="BEGIN_LINK" />आफ्नो Google खातामा गई आफ्ना पासवर्डहरू जाँच्नुहोस्<ph name="END_LINK" />।</translation> <translation id="479167709087336770">यसले Google खोजमा प्रयोग गरिएकै हिज्जे परीक्षक प्रयोग गर्दछ। तपाईंले ब्राउजरमा टाइप गर्ने पाठ Google मा पठाइन्छ। तपाईं सेटिङमा गई जुनसुकै बेला उक्त व्यवहार परिवर्तन गर्न सक्नुहुन्छ।</translation> <translation id="4888717733111232871">mDNS ट्राफिक अनुमति दिन Chromium को लागि इन्बाउन्ड नियम।</translation> +<translation id="4893632094755846570">तपाईंले यो प्रोफाइल हटाउनुभयो भने यो यन्त्रबाट तपाईंको ब्राउजिङ डेटा सदाका लागि मेटाइने छ। उक्त डेटा पुनः प्राप्त गर्न निम्न खाता प्रयोग गरी Chromium मा साइन इन गर्नुहोस्</translation> <translation id="4943838377383847465">Chromium पृष्ठभूमि मोडमा छ।</translation> <translation id="4987820182225656817">अतिथिहरूले कुनैपनि कुरालाई पछाडि छोडे बिना Chromium प्रयोग गर्न सक्छन्।</translation> <translation id="4994636714258228724">तपाइँ अफैलाई Chromium मा थप्नुहोस्</translation> +<translation id="5080135079858647714">Chromium मा आफ्नै प्रोफाइल बनाउने हो?</translation> <translation id="5224391634244552924">कुनै पनि पासवर्ड सुरक्षित गरिएको छैन। तपाईंले आफ्ना पासवर्डहरू सुरक्षित गर्नुभएको छ भने मात्र Chromium ले तिनको जाँच गर्न सक्छ।</translation> <translation id="5277894862589591112">आफूले गरेका परिवर्तनहरू लागू गर्न Chromium पुनः सुरु गर्नुहोस्</translation> <translation id="5358375970380395591">तपाइँ एक व्यवस्थापित खाताको साथमा साइनइन गर्दै हुनुहुन्छ र त्यसको प्रशासकलाई तपाइँको Chromium प्रोफाइलमा नियन्त्रण दिँदै हुनुहुन्छ। तपाइँको Chromium लगत, जस्तै की तपाइँका एपहरू, पृष्ठमञ्जूषाहरू, इतिहास, पासवर्डहरू, र अन्य सेटिङहरू स्थायी रूपमा <ph name="USER_NAME" /> मा बाँधिनेछ। तपाइँले यस लगतलाई Google खााता ड्यासबोर्ड मार्पत हटाउन सक्नुहुनेछ, तर तपाइँले यस लगतलाई अर्को खातासँग सम्बन्ध गर्न सक्नुहुनेछैन। <ph name="LEARN_MORE" /></translation> @@ -163,6 +168,7 @@ केही सुविधाहरू अनुपलब्ध हुन सक्छन्। कृपया एउटा भिन्न प्रोफाइल डाइरेक्टरी निर्दिष्ट गर्नुहोस् वा Chromium को कुनै अझ नया सँस्करण प्रयोग गर्नुहोस्।</translation> <translation id="6734080038664603509">&Chromium अपडेट गर्नुहोस्</translation> <translation id="6734291798041940871">तपाईँको कम्प्युटरमा पहिले नै सबै प्रयोगकर्ताहरूका लागि Chromium को स्थापना गरिएको छ।</translation> +<translation id="6762551859069255163">कामका सिलसिलामा गरिने ब्राउजिङ र व्यक्तिगत रूपमा गरिने ब्राउजिङ अल गर्न वा यो यन्त्र प्रयोग गर्ने विभिन्न मान्छेहरूका लागि Chromium मा विभिन्न प्रोफाइलहरू बनाउनुहोस्</translation> <translation id="6774082503108938489">तपाईंका अभिभावकले Chromium का हकमा "साइट, एप तथा एक्सटेन्सनसम्बन्धी अनुमति" निष्क्रिय पार्नुभएको छ। तपाईंसँग यो <ph name="EXTENSION_TYPE_PARAMETER" /> सक्षम पार्ने अनुमति छैन।</translation> <translation id="6847869444787758381">तपाईंको पासवर्ड ह्याक भएको खण्डमा Chromium ले तपाईंलाई त्यसको जानकारी दिन्छ</translation> <translation id="6857782730669500492">Chromium - <ph name="PAGE_TITLE" /></translation> @@ -251,5 +257,6 @@ <translation id="9190841055450128916">Chromium (mDNS-In)</translation> <translation id="93478295209880648">Chromium अब उप्रान्त Windows XP वा Windows Vista मा समर्थित नभएका कारण यसले सही ढङ्गले काम नगर्न सक्छ</translation> <translation id="95514773681268843">यो यन्त्र प्रयोग गर्नु पूर्व <ph name="DOMAIN" /> ले तपाईंलाई निम्न सेवाका सर्तहरू पढ्न र स्वीकार्न आवश्यक ठान्छ। यी सर्तहरू विस्तार, परिमार्जन हुँदैनन् वा क्रोमियम OS सर्तहरूमा सीमित छैनन्।</translation> +<translation id="965162752251293939">Chromium कसले चलाउँदै हुनुहुन्छ?</translation> <translation id="985602178874221306">Chromium लेखकहरू</translation> </translationbundle> \ No newline at end of file
diff --git a/chrome/app/resources/chromium_strings_or.xtb b/chrome/app/resources/chromium_strings_or.xtb index fabfd6e..5e311997 100644 --- a/chrome/app/resources/chromium_strings_or.xtb +++ b/chrome/app/resources/chromium_strings_or.xtb
@@ -5,10 +5,12 @@ <translation id="1065672644894730302">ଆପଣଙ୍କର ଅଗ୍ରାଧିକାରଗୁଡ଼ିକୁ ପଢ଼ାଯାଇପାରିବ ନାହିଁ। କିଛି ବୈଶିଷ୍ଟ୍ୟ ହୁଏତ ଉପଲବ୍ଧ ନଥାଇପାରେ ଏବଂ ଅଗ୍ରାଧିକାରଗୁଡ଼ିକରେ କରାଯାଇଥିବା ପରିବର୍ତ୍ତନଗୁଡ଼ିକ ସେଭ୍ ନହୋଇପାରେ।</translation> +<translation id="107513968719897256">ବ୍ୟକ୍ତିଗତ ଏବଂ <ph name="NEW_USER" /> ବ୍ରାଉଜିଂକୁ ଅଲଗା କରିବାକୁ, Chromiumରେ ଏକ ନୂଆ ପ୍ରୋଫାଇଲ୍ ତିଆରି କରନ୍ତୁ</translation> <translation id="1098170124587656448">ଡାଟା ଚୋରି, କ୍ଷତିକାରକ ଏକ୍ସଟେନସନ୍ ଏବଂ ଆହୁରି ଅନେକ କିଛିରୁ Chromium ଆପଣଙ୍କୁ ସୁରକ୍ଷିତ ରଖିବାରେ ସାହାଯ୍ୟ କରିପାରିବ</translation> <translation id="1104942323762546749">ଆପଣଙ୍କର ପାସ୍ୱାର୍ଡଗୁଡିକୁ Chromium ଏକ୍ସପୋର୍ଟ କରିବାକୁ ଚାହେଁ। ଏହାକୁ ଅନୁମତି ଦେବାପାଇଁ ଆପଣଙ୍କର Windows ପାସ୍ୱର୍ଡ ଟାଇପ୍ କରନ୍ତୁ।</translation> <translation id="113122355610423240">Chromium ହେଉଛି ଆପଣଙ୍କର ଡିଫଲ୍ଟ ବ୍ରାଉଜର୍</translation> <translation id="1185134272377778587">Chromium ବିଷୟରେ</translation> +<translation id="1315551408014407711">ଆପଣଙ୍କର ନୂଆ Chromium ପ୍ରୋଫାଇଲ୍ ସେଟ୍ ଅପ୍ କରନ୍ତୁ</translation> <translation id="1396446129537741364">ପାସ୍ୱର୍ଡଗୁଡ଼ିକ ଦେଖାଇବାକୁ Chromium ଚେଷ୍ଟା କରୁଛି।</translation> <translation id="1414495520565016063">ଆପଣ Chromiumରେ ସାଇନ୍-ଇନ୍ କରିଛନ୍ତି!</translation> <translation id="151962892725702025">Chromium OS ଆପଣଙ୍କର ଡାଟାକୁ ସିଙ୍କ୍ କରିପାରିବ ନାହିଁ, କାରଣ ଆପଣଙ୍କ ଡୋମେନ୍ ପାଇଁ ସିଙ୍କ୍ ଉପଲବ୍ଧ ନାହିଁ।</translation> @@ -44,6 +46,7 @@ <translation id="2797461000988640326">{NUM_MINS,plural, =1{Chromium ସପ୍ତାହକୁ ଥରେ ଅଦରକାରୀ ସଫ୍ଟୱେରର ଯାଞ୍ଚ କରେ। ଗତ ଥର ଯାଞ୍ଚ କରାଯାଇଛି: 1 ମିନିଟ୍ ପୂର୍ବେ।}other{Chromium ସପ୍ତାହକୁ ଥରେ ଅଦରକାରୀ ସଫ୍ଟୱେରର ଯାଞ୍ଚ କରେ। ଗତ ଥର ଯାଞ୍ଚ କରାଯାଇଛି: {NUM_MINS} ମିନିଟ୍ ପୂର୍ବେ।}}</translation> <translation id="2799223571221894425">ପୁଣି ଲଞ୍ଚ କରନ୍ତୁ</translation> <translation id="2847479871509788944">Chromiumରୁ କାଢ଼ିଦିଅନ୍ତୁ...</translation> +<translation id="2853765747879685679">ମୁଁ Chromium ଖୋଲିଲେ ପଚାରନ୍ତୁ</translation> <translation id="2885378588091291677">ଟାସ୍କ ପରିଚାଳକ</translation> <translation id="2910007522516064972">&Chromium ବିଷୟରେ</translation> <translation id="2977470724722393594">Chromium ଅପ୍-ଟୁ-ଡେଟ୍ ଅଛି</translation> @@ -104,9 +107,11 @@ <translation id="4788777615168560705">Chromium ଆପଣଙ୍କ ପାସୱାର୍ଡଗୁଡ଼ିକୁ ଯାଞ୍ଚ କରିପାରିବ ନାହିଁ। 24 ଘଣ୍ଟା ପରେ ପୁଣି ଚେଷ୍ଟା କରନ୍ତୁ କିମ୍ବା <ph name="BEGIN_LINK" />ଆପଣଙ୍କ Google ଆକାଉଣ୍ଟରେ ପାସୱାର୍ଡଗୁଡ଼ିକୁ ଯାଞ୍ଚ କରନ୍ତୁ<ph name="END_LINK" />।</translation> <translation id="479167709087336770">ଏହା Google ସନ୍ଧାନରେ ବ୍ୟବହୃତ ହେଉଥିବା ସମାନବନାନ ଯାଞ୍ଚକାରୀ ବ୍ୟବହାର କରେ। ବ୍ରାଉଜର୍ରେ ଆପଣ ଟାଇପ୍ କରିଥିବା ଟେକ୍ସଟ୍ Googleକୁ ପଠାଯାଏ। ଆପଣ ସର୍ବଦା ସେଟିଂସ୍ରେ ଏହି ଆଚରଣ ପରିବର୍ତ୍ତନ କରିପାରିବେ।</translation> <translation id="4888717733111232871">Chromium ପାଇଁ mDNS ଟ୍ରାଫିକ୍କୁ ଅନୁମତି ଦେବା Chromiumରେ ଅନ୍ତର୍ନିହିତ ଥିବା ନିୟମ।</translation> +<translation id="4893632094755846570">ଏହି ଡିଭାଇସରୁ ଆପଣଙ୍କର ବ୍ରାଉଜିଂ ଡାଟାକୁ ଏହା ସ୍ଥାୟୀରୂପେ ଡିଲିଟ୍ କରିଦେବ। ଡାଟା ପୁନରୁଦ୍ଧାର କରିବାକୁ, ଏପରି ଭାବରେ Chromiumରେ ସାଇନ୍ ଇନ୍ କରନ୍ତୁ</translation> <translation id="4943838377383847465">Chromium ପୃଷ୍ଠପଟ ମୋଡ୍ରେ ଅଛି।</translation> <translation id="4987820182225656817">କିଛି ପଛରେ ନଛାଡ଼ି ଅତିଥି Chromium ବ୍ୟବହାର କରିପାରିବେ।</translation> <translation id="4994636714258228724">Chromium ସହ ନିଜକୁ ଯୋଗ କରନ୍ତୁ</translation> +<translation id="5080135079858647714">Chromiumରେ ଆପଣଙ୍କ ନିଜ ପ୍ରୋଫାଇଲ୍ ତିଆରି କରିବେ?</translation> <translation id="5224391634244552924">ସେଭ୍ କରାଯାଇଥିବା କୌଣସି ପାସୱାର୍ଡ ନାହିଁ। ଆପଣ ପାସୱାର୍ଡଗୁଡ଼ିକ ସେଭ୍ କଲେ Chromium ସେଗୁଡ଼ିକୁ ଯାଞ୍ଚ କରିପାରିବ।</translation> <translation id="5277894862589591112">ଆପଣ କରିଥିବା ପରିବର୍ତ୍ତନଗୁଡ଼ିକୁ ଲାଗୁ କରିବା ପାଇଁ Chromiumକୁ ପୁଣି ଲଞ୍ଚ କରନ୍ତୁ</translation> <translation id="5358375970380395591">ଆପଣ ଏକ ପରିଚାଳିତ ଆକାଉଣ୍ଟ ମାଧ୍ୟମରେ ସାଇନ୍ ଇନ୍ କରିଛନ୍ତି ଏବଂ ଏହାର ବ୍ୟବସ୍ଥାପକଙ୍କୁ ଆପଣଙ୍କ Chromium ପ୍ରୋଫାଇଲ୍ର ନିୟନ୍ତ୍ରଣ ଦେଇଛନ୍ତି। ଆପଣଙ୍କର Chromium ଡାଟା ଯେପରିକି, ଆପଣଙ୍କର ଆପ୍ସ, ବୁକ୍ମାର୍କଗୁଡ଼ିକ, ଇତିବୃତ୍ତି, ପାସ୍ୱର୍ଡଗୁଡ଼ିକ ଏବଂ ଅନ୍ୟାନ୍ୟ ସେଟିଂସ୍ ସ୍ଥାୟୀରୂପେ <ph name="USER_NAME" />କୁ ଯୋଡ଼ି ହୋଇଯିବ। ଆପଣ ଏହି ଡାଟାକୁ Google ଆକାଉଣ୍ଟ ଡ୍ୟାସ୍ବୋର୍ଡ ମାଧ୍ୟମରେ ଡିଲିଟ୍ କରିପାରିବେ, କିନ୍ତୁ ଆପଣ ଏହି ଡାଟାକୁ ଅନ୍ୟ ଆକାଉଣ୍ଟ ସହିତ ଜଡ଼ିତ କରିପାରିବେ ନାହିଁ। <ph name="LEARN_MORE" /></translation> @@ -165,6 +170,7 @@ କିଛି ବୈଶିଷ୍ଟ୍ୟ ହୁଏତ ଉପଲବ୍ଧ ନଥାଇପାରେ। ଦୟାକରି ଏକ ଭିନ୍ନ ପ୍ରୋଫାଇଲ୍ ଡିରେକ୍ଟୋରୀ ନିର୍ଦ୍ଦିଷ୍ଟ କରନ୍ତୁ କିମ୍ବା Chromiumର ଏକ ନୂତନ ସଂସ୍କରଣ ବ୍ୟବହାର କରନ୍ତୁ।</translation> <translation id="6734080038664603509">&Chromium ଅପ୍ଡେଟ୍</translation> <translation id="6734291798041940871">ଆପଣଙ୍କ କମ୍ପ୍ୟୁଟର୍ରେ ସମସ୍ତ ଉପଯୋଗକର୍ତ୍ତାଙ୍କ ପାଇଁ Chromium ପୂର୍ବରୁ ଇନ୍ଷ୍ଟଲ୍ କରାଯାଇଛି।</translation> +<translation id="6762551859069255163">କାର୍ଯ୍ୟ ଏବଂ ବ୍ୟକ୍ତିଗତ ବ୍ରାଉଜିଂକୁ ଅଲଗା କରିବାକୁ କିମ୍ବା ଏହି ଡିଭାଇସ୍ ବ୍ଯବହାର କରୁଥିବା ବିଭିନ୍ନ ଲୋକଙ୍କ ପାଇଁ Chromiumରେ ଭିନ୍ନ ଭିନ୍ନ ପ୍ରୋଫାଇଲ୍ ବ୍ୟବହାର କରନ୍ତୁ</translation> <translation id="6774082503108938489">ଆପଣଙ୍କ ବାପାମା Chromium ପାଇଁ "ସାଇଟ୍, ଆପ୍ ଏବଂ ଏକ୍ସଟେନସନଗୁଡ଼ିକ ନିମନ୍ତେ ଅନୁମତିଗୁଡ଼ିକ" ବନ୍ଦ କରିଦେଇଛନ୍ତି। ଏହି <ph name="EXTENSION_TYPE_PARAMETER" />କୁ ସକ୍ଷମ କରିବା ପାଇଁ ଅନୁମତି ନାହିଁ।</translation> <translation id="6847869444787758381">ଆପଣଙ୍କର ପାସ୍ୱାର୍ଡଗୁଡ଼ିକ କେବେ ବି ଚୋରି ହୋଇଛି କି ନାହିଁ ତାହା Chromium ଆପଣଙ୍କୁ ଜାଣିବାକୁ ଦିଏ</translation> <translation id="6857782730669500492">Chromium - <ph name="PAGE_TITLE" /></translation> @@ -252,5 +258,6 @@ <translation id="9190841055450128916">Chromium (mDNS-In)</translation> <translation id="93478295209880648">Chromium ହୁଏତ ସଠିକ୍ ଭାବେ କାର୍ଯ୍ୟ କରି ନପାରେ କାରଣ ଏହା ଆଉ Windows XP କିମ୍ବା Windows Vistaରେ ସମର୍ଥିତ ନୁହେଁ</translation> <translation id="95514773681268843">ଏହି ଡିଭାଇସ୍କୁ ବ୍ୟବହାର କରିବା ପୂର୍ବରୁ ଆପଣ ନିମ୍ନୋକ୍ତ ସେବାର ସର୍ତ୍ତାବଳୀ ପଢ଼ନ୍ତୁ ଏବଂ ସେଗୁଡ଼ିକୁ ସ୍ଵୀକାର କରନ୍ତୁ ବୋଲି <ph name="DOMAIN" /> ଚାହେଁ। ଏହି ସର୍ତ୍ତଗୁଡ଼ିକ Chromium OS ସର୍ତ୍ତଗୁଡ଼ିକୁ ସମ୍ପ୍ରସାରିତ, ଆଂଶିକ ପରିବର୍ତ୍ତନ କିମ୍ବା ସୀମିତ କରେ ନାହିଁ।</translation> +<translation id="965162752251293939">କିଏ Chromium ବ୍ୟବହାର କରୁଛନ୍ତି?</translation> <translation id="985602178874221306">Chromium ଲେଖକ</translation> </translationbundle> \ No newline at end of file
diff --git a/chrome/app/resources/chromium_strings_ru.xtb b/chrome/app/resources/chromium_strings_ru.xtb index 93ae4e8..ba16d20c 100644 --- a/chrome/app/resources/chromium_strings_ru.xtb +++ b/chrome/app/resources/chromium_strings_ru.xtb
@@ -3,10 +3,12 @@ <translationbundle lang="ru"> <translation id="1060499346270045814">{NUM_HOURS,plural, =1{Chromium проверяет наличие нежелательного ПО раз в неделю. Последняя проверка: 1 час назад.}one{Chromium проверяет наличие нежелательного ПО раз в неделю. Последняя проверка: {NUM_HOURS} час назад.}few{Chromium проверяет наличие нежелательного ПО раз в неделю. Последняя проверка: {NUM_HOURS} часа назад.}many{Chromium проверяет наличие нежелательного ПО раз в неделю. Последняя проверка: {NUM_HOURS} часов назад.}other{Chromium проверяет наличие нежелательного ПО раз в неделю. Последняя проверка: {NUM_HOURS} часа назад.}}</translation> <translation id="1065672644894730302">Не удается получить настройки. Некоторые функции могут быть недоступны, а изменения настроек не будут сохраняться.</translation> +<translation id="107513968719897256">Чтобы использовать браузер в личных целях, а не как <ph name="NEW_USER" />, создайте профиль в Chromium.</translation> <translation id="1098170124587656448">Chromium поможет обеспечить защиту от утечки данных, ненадежных расширений и других проблем с безопасностью.</translation> <translation id="1104942323762546749">Чтобы экспортировать пароли из Chromium, введите пароль своего аккаунта Windows.</translation> <translation id="113122355610423240">Chromium используется как браузер по умолчанию</translation> <translation id="1185134272377778587">О Chromium</translation> +<translation id="1315551408014407711">Создайте профиль Chromium</translation> <translation id="1396446129537741364">Вводимые пароли будут отображаться в Chromium.</translation> <translation id="1414495520565016063">Добро пожаловать в Chromium!</translation> <translation id="151962892725702025">Не удалось синхронизировать данные, поскольку сервис Sync недоступен в вашем домене.</translation> @@ -42,6 +44,7 @@ <translation id="2797461000988640326">{NUM_MINS,plural, =1{Chromium проверяет наличие нежелательного ПО раз в неделю. Последняя проверка: 1 минуту назад.}one{Chromium проверяет наличие нежелательного ПО раз в неделю. Последняя проверка: {NUM_MINS} минуту назад.}few{Chromium проверяет наличие нежелательного ПО раз в неделю. Последняя проверка: {NUM_MINS} минуты назад.}many{Chromium проверяет наличие нежелательного ПО раз в неделю. Последняя проверка: {NUM_MINS} минут назад.}other{Chromium проверяет наличие нежелательного ПО раз в неделю. Последняя проверка: {NUM_MINS} минуты назад.}}</translation> <translation id="2799223571221894425">Перезапустить</translation> <translation id="2847479871509788944">Удалить из Chromium</translation> +<translation id="2853765747879685679">Спрашивать во время запуска Chromium</translation> <translation id="2885378588091291677">Диспетчер задач</translation> <translation id="2910007522516064972">О &Chromium</translation> <translation id="2977470724722393594">Вы используете последнюю версию Chromium</translation> @@ -100,9 +103,11 @@ <translation id="4788777615168560705">Не удается проверить пароли в Chromium. Повторите попытку через 24 часа или <ph name="BEGIN_LINK" />проверьте пароли в аккаунте Google<ph name="END_LINK" />.</translation> <translation id="479167709087336770">Используется та же технология проверки правописания, что и в Google Поиске. Текст, который вы введете в браузере, будет отправлен в Google. Этот параметр можно изменить в настройках.</translation> <translation id="4888717733111232871">Разрешить в Chromium передачу входящего трафика по протоколу mDNS</translation> +<translation id="4893632094755846570">Все данные о работе в браузере будут удалены с устройства. Чтобы восстановить их, войдите в Chromium как</translation> <translation id="4943838377383847465">Chromium работает в фоновом режиме</translation> <translation id="4987820182225656817">Используйте Chromium в гостевом режиме, если не хотите сохранять данные о посещенных сайтах.</translation> <translation id="4994636714258228724">Добавить пользователя Chromium</translation> +<translation id="5080135079858647714">Создать свой профиль в Chromium?</translation> <translation id="5224391634244552924">Сохраненных паролей нет. Чтобы браузер Chromium мог проверять пароли, сохраните их.</translation> <translation id="5277894862589591112">Чтобы изменения вступили в силу, перезапустите Chromium.</translation> <translation id="5358375970380395591">Выполнив вход в управляемый аккаунт, вы предоставляете администратору право контролировать настройки вашего профиля Chromium. Ваши данные Chromium (приложения, закладки, история, пароли и другие настройки) будут временно связаны с аккаунтом <ph name="USER_NAME" />. Эти данные можно удалить в Личном кабинете Google, но их нельзя связать с другим аккаунтом. <ph name="LEARN_MORE" /></translation> @@ -161,6 +166,7 @@ Некоторые возможности могут быть недоступны. Укажите другой каталог профиля либо используйте более новую версию Chromium.</translation> <translation id="6734080038664603509">Обновить &Chromium</translation> <translation id="6734291798041940871">Chromium уже установлен для всех пользователей вашего компьютера</translation> +<translation id="6762551859069255163">Разные профили Chromium нужны для раздельного использования браузера в личных и рабочих целях или если с ним работают разные люди.</translation> <translation id="6774082503108938489">Родители отключили в Chromium параметр "Разрешения для сайтов, приложений и расширений". Включать это <ph name="EXTENSION_TYPE_PARAMETER" /> запрещено.</translation> <translation id="6847869444787758381">Chromium сообщит вам, если возникнет проблема с безопасностью ваших паролей.</translation> <translation id="6857782730669500492">Chromium – <ph name="PAGE_TITLE" /></translation> @@ -246,5 +252,6 @@ <translation id="9190841055450128916">Chromium (mDNS-In)</translation> <translation id="93478295209880648">В работе Chromium могут возникать сбои, так как браузер больше не поддерживает Windows XP и Windows Vista.</translation> <translation id="95514773681268843">Прежде чем приступать к работе, ознакомьтесь с Условиями использования на сайте <ph name="DOMAIN" /> и примите их. Эти условия не дополняют, не заменяют и не ограничивают Условий использования Chromium OS.</translation> +<translation id="965162752251293939">Кто использует Chromium?</translation> <translation id="985602178874221306">Авторы Chromium</translation> </translationbundle> \ No newline at end of file
diff --git a/chrome/app/resources/chromium_strings_ta.xtb b/chrome/app/resources/chromium_strings_ta.xtb index 8360312..90ebd11a 100644 --- a/chrome/app/resources/chromium_strings_ta.xtb +++ b/chrome/app/resources/chromium_strings_ta.xtb
@@ -3,10 +3,12 @@ <translationbundle lang="ta"> <translation id="1060499346270045814">{NUM_HOURS,plural, =1{தேவையற்ற மென்பொருள் உள்ளதா என Chromium வாரம் ஒருமுறை சரிபார்க்கும். கடைசியாகச் சரிபார்த்தது: 1 மணிநேரத்திற்கு முன்பு.}other{தேவையற்ற மென்பொருள் உள்ளதா என Chromium வாரம் ஒருமுறை சரிபார்க்கும். கடைசியாகச் சரிபார்த்தது: {NUM_HOURS} மணிநேரத்திற்கு முன்பு.}}</translation> <translation id="1065672644894730302">உங்கள் விருப்பதேர்வுகள் படிக்கும்படி இல்லை. சில அம்சங்கள் கிடைக்காமல் இருக்கலாம் மேலும் விருப்பதேர்வுகளின் மாற்றங்களைச் சேமிக்க முடியாது.</translation> +<translation id="107513968719897256">தனிப்பட்ட உலாவலையும் <ph name="NEW_USER" /> இன் உலாவலையும் தனித்தனியாகப் பிரிக்க, Chromiumமில் ஒரு புதிய சுயவிவரத்தை உருவாக்கவும்</translation> <translation id="1098170124587656448">தரவு மீறல்கள், தீங்கு விளைவிக்கக்கூடிய நீட்டிப்புகள் மற்றும் பிற பாதுகாப்புச் சிக்கல்களிலிருந்து உங்களைப் பாதுகாக்க Chromium உதவும்</translation> <translation id="1104942323762546749">Chromium உங்கள் கடவுச்சொற்களை ஏற்ற விரும்புகிறது. இதை அனுமதிக்க, உங்கள் Windows கடவுச்சொல்லை உள்ளிடவும்.</translation> <translation id="113122355610423240">உங்கள் இயல்புநிலை உலாவி Chromium ஆகும்</translation> <translation id="1185134272377778587">Chromium அறிமுகம்</translation> +<translation id="1315551408014407711">உங்கள் புதிய Chromium சுயவிவரத்தை அமைத்திடுங்கள்</translation> <translation id="1396446129537741364">Chromium ஆனது கடவுச்சொற்களைக் காட்ட முயற்சிக்கிறது.</translation> <translation id="1414495520565016063">Chromium இல் உள்நுழைந்துள்ளீர்கள்!</translation> <translation id="151962892725702025">உங்கள் களத்திற்கு ஒத்திசைவு கிடைக்கவில்லை என்பதால், Chromium OS ஆல் உங்கள் தரவை ஒத்திசைக்க முடியவில்லை.</translation> @@ -42,6 +44,7 @@ <translation id="2797461000988640326">{NUM_MINS,plural, =1{தேவையற்ற மென்பொருள் உள்ளதா என Chromium வாரம் ஒருமுறை சரிபார்க்கும். கடைசியாகச் சரிபார்த்தது: 1 நிமிடத்திற்கு முன்பு.}other{தேவையற்ற மென்பொருள் உள்ளதா என Chromium வாரம் ஒருமுறை சரிபார்க்கும். கடைசியாகச் சரிபார்த்தது: {NUM_MINS} நிமிடங்களுக்கு முன்பு.}}</translation> <translation id="2799223571221894425">மீண்டும் தொடங்கு</translation> <translation id="2847479871509788944">Chromium இலிருந்து அகற்று...</translation> +<translation id="2853765747879685679">நான் Chromiumமைத் திறக்கும்போது கேள்</translation> <translation id="2885378588091291677">செயல் நிர்வாகி</translation> <translation id="2910007522516064972">&Chromium அறிமுகம்</translation> <translation id="2977470724722393594">Chromium புதுப்பித்த நிலையில் உள்ளது</translation> @@ -102,9 +105,11 @@ <translation id="4788777615168560705">Chromium உலாவியால் உங்கள் கடவுச்சொற்களைச் சரிபார்க்க முடியவில்லை. 24 மணிநேரத்திற்குப் பிறகு மீண்டும் முயலவும் அல்லது <ph name="BEGIN_LINK" />உங்கள் Google கணக்கில் கடவுச்சொற்களைச் சரிபார்க்கவும்<ph name="END_LINK" />.</translation> <translation id="479167709087336770">இது Google தேடலில் பயன்படுத்தப்படும் அதே பிழைதிருத்தியைப் பயன்படுத்துகிறது. உலாவியில் நீங்கள் உள்ளிடும் உரை Googleளுக்கு அனுப்பப்படும். இதை அமைப்புகளில் எப்போது வேண்டுமானாலும் மாற்றலாம்.</translation> <translation id="4888717733111232871">mDNS ட்ராஃபிக்கை அனுமதிப்பதற்கான, Chromium க்கான உள்வரும் விதி.</translation> +<translation id="4893632094755846570">அகற்றினால், நீங்கள் உலாவிய தரவு இந்தச் சாதனத்திலிருந்து நிரந்தரமாக நீக்கப்படும். தரவை மீட்டெடுக்க, Chromiumமில் இந்தக் கணக்கின் மூலம் உள்நுழையவும்</translation> <translation id="4943838377383847465">Chromium பின்புல பயன்முறையில் இயங்குகிறது.</translation> <translation id="4987820182225656817">எதையும் விட்டுசெல்லாமல் கெஸ்ட் பயனர்கள் Chromium ஐப் பயன்படுத்தலாம்.</translation> <translation id="4994636714258228724">உங்களை Chromium இல் சேர்க்கவும்</translation> +<translation id="5080135079858647714">Chromiumமில் உங்களுக்கெனச் சொந்த சுயவிவரத்தை உருவாக்கவா?</translation> <translation id="5224391634244552924">சேமித்த கடவுச்சொற்கள் எதுவுமில்லை. நீங்கள் அவற்றைச் சேமிக்கும்போது Chromium உலாவியால் உங்கள் கடவுச்சொற்களைச் சரிபார்க்க முடியும்.</translation> <translation id="5277894862589591112">உங்கள் மாற்றங்களைச் செயல்படுத்த, Chromiumமை மீண்டும் தொடங்கவும்</translation> <translation id="5358375970380395591">நீங்கள் நிர்வகிக்கப்படும் கணக்கு மூலம் உள்நுழைகிறீர்கள், மேலும் அதன் நிர்வாகிக்கு உங்கள் Chromium சுயவிவரத்தின் கட்டுப்பாட்டை வழங்குகிறீர்கள். உங்கள் ஆப்ஸ், புக்மார்க்குகள், வரலாறு, கடவுச்சொற்கள் போன்ற உங்கள் Chromium தரவு மற்றும் பிற அமைப்புகள் நிரந்தரமாக <ph name="USER_NAME" /> உடன் இணைக்கப்படும். இந்தத் தரவை Google கணக்குகளின் டாஷ்போர்டு வழியாக நீக்க முடியும், ஆனால் இந்தத் தரவை வேறொரு கணக்குடன் தொடர்புபடுத்த முடியாது. <ph name="LEARN_MORE" /></translation> @@ -163,6 +168,7 @@ சில அம்சங்கள் கிடைக்காமல் போகலாம். வேறு சுயவிவர கோப்பகத்தைக் குறிப்பிடுக அல்லது Chromium இன் புதிய பதிப்பைப் பயன்படுத்துக.</translation> <translation id="6734080038664603509">&Chromium ஐப் புதுப்பி</translation> <translation id="6734291798041940871">உங்கள் கம்ப்யூட்டரில் ஏற்கனவே எல்லாப் பயனர்களுக்கும் Chromium நிறுவப்பட்டுள்ளது.</translation> +<translation id="6762551859069255163">பணி நிமித்தமான உலாவலையும் தனிப்பட்ட உலாவலையும் தனித்தனியாகப் பிரிக்கவோ இந்தச் சாதனத்தைப் பயன்படுத்தும் வெவ்வேறு நபர்களுக்காகவோ Chromiumமில் வெவ்வேறு சுயவிவரங்களைப் பயன்படுத்தவும்</translation> <translation id="6774082503108938489">Chromiumமில் "தளங்கள், ஆப்ஸ், நீட்டிப்புகள் ஆகியவற்றுக்கான அனுமதிகளை" உங்கள் பெற்றோர் முடக்கிவிட்டார். இந்த <ph name="EXTENSION_TYPE_PARAMETER" /> ஐ இயக்க அனுமதியில்லை.</translation> <translation id="6847869444787758381">கடவுச்சொற்கள் பாதுகாப்பை இழக்கும்பட்சத்தில் அவற்றை Chromium உங்களுக்குத் தெரியப்படுத்தும்</translation> <translation id="6857782730669500492">Chromium - <ph name="PAGE_TITLE" /></translation> @@ -251,5 +257,6 @@ <translation id="9190841055450128916">Chromium (mDNS-In)</translation> <translation id="93478295209880648">Windows XP அல்லது Windows Vista ஆகியவற்றில் Chromium இனி ஆதரிக்கப்படாது என்பதால், அது சரியாகச் செயல்படாது</translation> <translation id="95514773681268843">இந்தச் சாதனத்தைப் பயன்படுத்துவதற்கு முன் பின்வரும் சேவை விதிமுறைகளைப் படித்து ஏற்றுக்கொள்வது <ph name="DOMAIN" /> க்கு அவசியமாகும். இந்த விதிமுறைகளானது Chromium OS விதிமுறைகளை விரிவாக்கவோ, மாற்றவோ அல்லது கட்டுப்படுத்தவோ செய்யாது.</translation> +<translation id="965162752251293939">Chromiumமைப் பயன்படுத்துவது யார்?</translation> <translation id="985602178874221306">Chromium அங்கீகரிப்பாளர்கள்</translation> </translationbundle> \ No newline at end of file
diff --git a/chrome/app/resources/chromium_strings_zh-CN.xtb b/chrome/app/resources/chromium_strings_zh-CN.xtb index 1170319..451b953 100644 --- a/chrome/app/resources/chromium_strings_zh-CN.xtb +++ b/chrome/app/resources/chromium_strings_zh-CN.xtb
@@ -3,10 +3,12 @@ <translationbundle lang="zh-CN"> <translation id="1060499346270045814">{NUM_HOURS,plural, =1{Chromium 会以每周 1 次的频率检查是否有垃圾软件。上次检查时间:1 小时前。}other{Chromium 会以每周 1 次的频率检查是否有垃圾软件。上次检查时间:{NUM_HOURS} 小时前。}}</translation> <translation id="1065672644894730302">系统无法读取您的偏好设置。某些功能可能无法使用,并且对偏好设置所做的更改不会保存。</translation> +<translation id="107513968719897256">若要将个人的浏览数据与 <ph name="NEW_USER" /> 的浏览数据分隔开来,请在 Chromium 中创建一份新的个人资料</translation> <translation id="1098170124587656448">Chromium 有助于保护您免受数据泄露、不良扩展程序等问题的影响</translation> <translation id="1104942323762546749">Chromium 想导出您的密码。请输入您的 Windows 密码以允许此操作。</translation> <translation id="113122355610423240">Chromium 是您的默认浏览器</translation> <translation id="1185134272377778587">关于 Chromium</translation> +<translation id="1315551408014407711">设置您的新 Chromium 个人资料</translation> <translation id="1396446129537741364">Chromium 正尝试显示密码。</translation> <translation id="1414495520565016063">您已登录 Chromium!</translation> <translation id="151962892725702025">由于您的网域停用了同步功能,Chromium操作系统无法同步您的数据。</translation> @@ -42,6 +44,7 @@ <translation id="2797461000988640326">{NUM_MINS,plural, =1{Chromium 会以每周 1 次的频率检查是否有垃圾软件。上次检查时间:1 分钟前。}other{Chromium 会以每周 1 次的频率检查是否有垃圾软件。上次检查时间:{NUM_MINS} 分钟前。}}</translation> <translation id="2799223571221894425">重新启动</translation> <translation id="2847479871509788944">从Chromium中移除…</translation> +<translation id="2853765747879685679">在我打开 Chromium 时询问</translation> <translation id="2885378588091291677">任务管理器</translation> <translation id="2910007522516064972">关于 Chromium(&C)</translation> <translation id="2977470724722393594">Chromium 已是最新版本</translation> @@ -102,9 +105,11 @@ <translation id="4788777615168560705">Chromium 无法检查您的密码。请过 24 小时再试,或者<ph name="BEGIN_LINK" />检查您的 Google 帐号中的密码<ph name="END_LINK" />。</translation> <translation id="479167709087336770">这项服务会使用 Google 搜索所用的拼写检查工具。您在浏览器中输入的文字会被发送给 Google。您随时可在“设置”中更改此行为。</translation> <translation id="4888717733111232871">Chromium的入站规则,允许mDNS流量。</translation> +<translation id="4893632094755846570">此操作会将您的浏览数据从这部设备上永久删除。若要恢复这些数据,请使用以下身份登录 Chromium:</translation> <translation id="4943838377383847465">Chromium处于后台运行模式。</translation> <translation id="4987820182225656817">访客使用Chromium不会留下任何痕迹。</translation> <translation id="4994636714258228724">将您自己添加到Chromium</translation> +<translation id="5080135079858647714">在 Chromium 中创建您自己的个人资料?</translation> <translation id="5224391634244552924">尚未保存任何密码。您需要先保存密码才能使用 Chromium 的密码检查功能。</translation> <translation id="5277894862589591112">要想应用您的更改,请重新启动 Chromium</translation> <translation id="5358375970380395591">您目前登录的帐号是一个托管帐号,该帐号的管理员将能够控制您的 Chromium 个人资料。您的 Chromium 数据(例如您的应用、书签、历史记录、密码和其他设置)将永远与 <ph name="USER_NAME" /> 相关联。您可以通过 Google 帐号信息中心删除这些数据,但无法将这些数据与其他帐号相关联。<ph name="LEARN_MORE" /></translation> @@ -163,6 +168,7 @@ 某些功能可能会无法使用。请指定其他个人资料目录或使用更高版本的 Chromium。</translation> <translation id="6734080038664603509">更新 Chromium(&C)</translation> <translation id="6734291798041940871">已为您计算机上的所有用户都安装 Chromium。</translation> +<translation id="6762551859069255163">在 Chromium 中使用不同的个人资料将工作上的浏览数据和个人的浏览数据分隔开来,或者为此设备的不同用户使用不同的个人资料</translation> <translation id="6774082503108938489">您的家长已为 Chromium 停用“网站、应用和扩展程序的权限”。因此,您无法启用该<ph name="EXTENSION_TYPE_PARAMETER" />。</translation> <translation id="6847869444787758381">Chromium 会让您知道您的密码是否曾被泄露</translation> <translation id="6857782730669500492">Chromium - <ph name="PAGE_TITLE" /></translation> @@ -251,5 +257,6 @@ <translation id="9190841055450128916">Chromium (mDNS-In)</translation> <translation id="93478295209880648">Chromium 可能无法正常运行,因为它不再支持 Windows XP 和 Windows Vista</translation> <translation id="95514773681268843"><ph name="DOMAIN" /> 要求您必须先阅读并接受以下服务条款,才能使用此设备。这些条款不会扩大、修改或限制 Chromium 操作系统条款。</translation> +<translation id="965162752251293939">谁在使用 Chromium?</translation> <translation id="985602178874221306">The Chromium Authors</translation> </translationbundle> \ 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 2b75ab1..c6390c0 100644 --- a/chrome/app/resources/generated_resources_af.xtb +++ b/chrome/app/resources/generated_resources_af.xtb
@@ -525,7 +525,6 @@ <translation id="1608668830839595724">Meer handelinge vir geselekteerde items</translation> <translation id="161042844686301425">Siaanblou</translation> <translation id="1611432201750675208">Jou toestel is gesluit</translation> -<translation id="1611584202130317952">Voorsieningvloei is onderbreek. Probeer asseblief weer of kontak jou toesteleienaar of -administrateur.</translation> <translation id="1614511179807650956">Jy het dalk jou beskikbare mobiele data opgebruik. Besoek die <ph name="NAME" />-aktiveringportaal om nog data te koop</translation> <translation id="161460670679785907">Kan nie jou foon bespeur nie</translation> <translation id="1616206807336925449">Hierdie uitbreiding vereis geen spesiale toestemmings nie.</translation> @@ -967,6 +966,7 @@ <translation id="2148219725039824548">Kon nie deling monteer nie. Die gespesifiseerde deling is nie in die netwerk gevind nie.</translation> <translation id="2148756636027685713">Formatering afgehandel</translation> <translation id="2148892889047469596">Saai oortjie uit</translation> +<translation id="2149973817440762519">Wysig boekmerk</translation> <translation id="2150139952286079145">Soekbestemmings</translation> <translation id="2150661552845026580">Voeg "<ph name="EXTENSION_NAME" />" by?</translation> <translation id="2151576029659734873">Ongeldige oortjie-indeks ingevoer.</translation> @@ -5989,6 +5989,7 @@ <translation id="8288032458496410887">Deïnstalleer tans <ph name="APP" /> …</translation> <translation id="8289128870594824098">Skyfgrootte</translation> <translation id="8291967909914612644">Tuisverskafferland</translation> +<translation id="8293206222192510085">Voeg boekmerk by</translation> <translation id="8294431847097064396">Bron</translation> <translation id="8297006494302853456">Swak</translation> <translation id="8299319456683969623">Jy is tans vanlyn.</translation>
diff --git a/chrome/app/resources/generated_resources_am.xtb b/chrome/app/resources/generated_resources_am.xtb index 641a986..5b3f667 100644 --- a/chrome/app/resources/generated_resources_am.xtb +++ b/chrome/app/resources/generated_resources_am.xtb
@@ -525,7 +525,6 @@ <translation id="1608668830839595724">ለተመረጡ ንጥሎች ተጨማሪ እርምጃዎች</translation> <translation id="161042844686301425">ውሃ ሰማያዊ</translation> <translation id="1611432201750675208">የእርስዎ መሣሪያ ተቆልፏል</translation> -<translation id="1611584202130317952">የማቅረቢያ ፍሰቱ ተቋርጧል። እባክዎ እንደገና ይሞክሩ ወይም የመሣሪያዎን ባለቤት ወይም አስተዳዳሪ ያነጋግሩ።</translation> <translation id="1614511179807650956">የተሰጠዎት ሞባይል ውሂብ ጨርሰው ሊሆኑ ይችላሉ። ተጨማሪ ውሂብ ለመግዛት የ<ph name="NAME" /> ማስገበሪያ መግቢያ ይጎብኙ።</translation> <translation id="161460670679785907">ስልክዎን ማግኘት አልተቻለም</translation> <translation id="1616206807336925449">ይህ ቅጥያ ምንም ልዩ ፈቃዶችን አይፈልግም።</translation> @@ -967,6 +966,7 @@ <translation id="2148219725039824548">ማጋራትን ማፈናጠጥ ላይ ስህተት። የተገለጸው ማጋራት በአውታረ መረቡ ላይ አልተገኘም።</translation> <translation id="2148756636027685713">ቅርጸት መስራት ተጠናቅቋል</translation> <translation id="2148892889047469596">ትር ውስድ</translation> +<translation id="2149973817440762519">እልባት አርትዕ</translation> <translation id="2150139952286079145">መድረሻዎችን ይፈልጉ</translation> <translation id="2150661552845026580">«<ph name="EXTENSION_NAME" />» ይታከል?</translation> <translation id="2151576029659734873">ልክ ያልሆነ የትር መረጃ ጠቋሚ ገብቷል።</translation> @@ -5990,6 +5990,7 @@ <translation id="8288032458496410887"><ph name="APP" /> ይራገፍ...</translation> <translation id="8289128870594824098">የዲስክ መጠን</translation> <translation id="8291967909914612644">የመነሻ አቅራቢ አገር</translation> +<translation id="8293206222192510085">እልባት ያክሉ</translation> <translation id="8294431847097064396">ምንጭ</translation> <translation id="8297006494302853456">ደካማ</translation> <translation id="8299319456683969623">በአሁኑ ጊዜ ከመስመር ውጪ ነዎት።</translation>
diff --git a/chrome/app/resources/generated_resources_ar.xtb b/chrome/app/resources/generated_resources_ar.xtb index 811d4c8b..12629081 100644 --- a/chrome/app/resources/generated_resources_ar.xtb +++ b/chrome/app/resources/generated_resources_ar.xtb
@@ -71,6 +71,7 @@ <translation id="1070705170564860382">جارٍ الفتح في متصفِّح بديل خلال <ph name="COUNTDOWN_SECONDS" /> ثانية</translation> <translation id="1071917609930274619">ترميز البيانات</translation> <translation id="1072700771426194907">تم التعرّف على جهاز USB</translation> +<translation id="107278043869924952">استخدام رقم التعريف الشخصي بالإضافة إلى كلمة المرور</translation> <translation id="1076176485976385390">التنقُّل بين الصفحات باستخدام مؤشر النص</translation> <translation id="1076698951459398590">تفعيل المظهر</translation> <translation id="1076818208934827215">Microsoft Internet Explorer</translation> @@ -524,7 +525,6 @@ <translation id="1608668830839595724">المزيد من الإجراءات للعناصر المختارة</translation> <translation id="161042844686301425">سماوي</translation> <translation id="1611432201750675208">تم قفل جهازك</translation> -<translation id="1611584202130317952">تمت مقاطعة سير إدارة الحسابات. يُرجى المحاولة مرة أخرى أو الاتصال بمالك أو مشرف الجهاز.</translation> <translation id="1614511179807650956">يبدو أنك قد استنفدت القدر المتاح لك من بيانات الجوّال. يُمكنك الانتقال إلى منفذ تفعيل <ph name="NAME" /> لشراء مزيد من البيانات.</translation> <translation id="161460670679785907">يتعذَّر رصد هاتفك.</translation> <translation id="1616206807336925449">لا تتطلب هذه الإضافة أذونات خاصة.</translation> @@ -533,6 +533,7 @@ <translation id="1618268899808219593">مركز المساعدة</translation> <translation id="1620307519959413822">كلمة المرور غير صحيحة. يُرجى المحاولة مجددًا أو النقر على "نسيت كلمة المرور" لإعادة ضبطها.</translation> <translation id="1620510694547887537">الكاميرا</translation> +<translation id="1621831347985899379">سيتم حذف بيانات <ph name="DEVICE_TYPE" /></translation> <translation id="1622054403950683339">حذف شبكة Wi-Fi</translation> <translation id="1623132449929929218">الصور غير متوفِّرة حاليًا. يُرجى إعادة الاتصال بالإنترنت للاطِّلاع على مجموعات الخلفية.</translation> <translation id="1623723619460186680">خفض الإضاءة الزرقاء</translation> @@ -760,6 +761,7 @@ <translation id="1877377290348678128">التصنيف (اختياري)</translation> <translation id="1877520246462554164">تعذّر الحصول على الرمز المميز للمصادقة. يُرجى الخروج ثم تسجيل الدخول مرّة أخرى لإعادة المحاولة.</translation> <translation id="1877860345998737529">تحديد مفتاح التبديل إلى إجراء</translation> +<translation id="1878155070920054810">يبدو أن الشحن سينفذ من جهاز Chromebook قبل اكتمال التحديث. تأكَّد من شحن جهازك بشكل صحيح لتجنُّب المقاطعة.</translation> <translation id="1879000426787380528">تسجيل الدخول باسم</translation> <translation id="1880905663253319515">هل تريد حذف الشهادة "<ph name="CERTIFICATE_NAME" />"؟</translation> <translation id="1881445033931614352">تنسيق لوحة المفاتيح</translation> @@ -964,6 +966,7 @@ <translation id="2148219725039824548">حدث خطأ في تحميل المشاركة. لم يتم العثور على المشاركة المُحدَّدة في الشبكة.</translation> <translation id="2148756636027685713">انتهت عملية التنسيق</translation> <translation id="2148892889047469596">علامة التبويب "إرسال"</translation> +<translation id="2149973817440762519">تعديل الإشارة</translation> <translation id="2150139952286079145">بحث في الوجهات</translation> <translation id="2150661552845026580">هل تريد إضافة "<ph name="EXTENSION_NAME" />"؟</translation> <translation id="2151576029659734873">تم إدخال فهرس علامات تبويب غير صحيح.</translation> @@ -1073,6 +1076,7 @@ <translation id="2270627217422354837">تبادل البيانات مع أي جهاز في النطاقات: <ph name="DOMAINS" /></translation> <translation id="2272570998639520080">كوب عصير</translation> <translation id="2273119997271134996">مشكلة متعلقة بمنفذ الفيديو في محطة الإرساء</translation> +<translation id="2274840746523584236">شحن جهاز Chromebook</translation> <translation id="2276503375879033601">إضافة المزيد من التطبيقات</translation> <translation id="2277255602909579701">جميع ملفات تعريف الارتباط وبيانات الموقع</translation> <translation id="2277769717710009150">{COUNT,plural, =1{تم نسخ عنصر واحد}zero{تم نسخ # عنصر}two{تم نسخ عنصرين (#)}few{تم نسخ # عناصر}many{تم نسخ # عنصرًا}other{تم نسخ # عنصر}}</translation> @@ -1915,6 +1919,7 @@ <translation id="3308116878371095290">تم منع هذه الصفحة من تخزين ملفات تعريف الارتباط.</translation> <translation id="3308134619352333507">الزر "إخفاء"</translation> <translation id="3308852433423051161">جارٍ تحميل مساعد Google...</translation> +<translation id="3310640316857623290">وقت استجابة "نظام أسماء النطاقات" أعلى بكثير من الحدّ الأقصى المسموح به.</translation> <translation id="3311445899360743395">قد تتم إزالة البيانات المرتبطة بهذا التطبيق من الجهاز.</translation> <translation id="3312424061798279731">اللغات التي تم تفعيلها</translation> <translation id="3313622045786997898">قيمة توقيع الشهادة</translation> @@ -1927,6 +1932,7 @@ <translation id="3323295311852517824">{NUM_FILES,plural, =0{تشتمل هذه البيانات على محتوى حسّاس أو خطير. يُرجى إزالة هذا المحتوى وإعادة المحاولة.}=1{يشتمل هذا الملف على محتوى حسّاس أو خطير. يُرجى إزالة هذا المحتوى وإعادة المحاولة.}two{يشتمل هذان الملفان على محتوى حسّاس أو خطير. يُرجى إزالة هذا المحتوى وإعادة المحاولة.}few{تشتمل هذه الملفات على محتوى حسّاس أو خطير. يُرجى إزالة هذا المحتوى وإعادة المحاولة.}many{تشتمل هذه الملفات على محتوى حسّاس أو خطير. يُرجى إزالة هذا المحتوى وإعادة المحاولة.}other{تشتمل هذه الملفات على محتوى حسّاس أو خطير. يُرجى إزالة هذا المحتوى وإعادة المحاولة.}}</translation> <translation id="3323521181261657960">إليك مكافأة. ستحظى بالمزيد من وقت النظر إلى الشاشة.</translation> <translation id="3325910708063135066">تم إيقاف الكاميرا والميكروفون في إعدادات نظام Mac المفضلة</translation> +<translation id="3327050066667856415">يتم تصميم أجهزة Chromebook للحفاظ على الأمان. جهازك محمي من البرامج الضارة بشكل تلقائي ولا يتطلب أي برامج إضافية.</translation> <translation id="3328489342742826322">ستؤدي الاستعادة من نسخة احتياطية إلى حذف تطبيقات Linux الحالية والبيانات في مجلد "ملفات Linux".</translation> <translation id="3331321258768829690">(<ph name="UTCOFFSET" />) <ph name="LONGTZNAME" /> (<ph name="EXEMPLARCITY" />)</translation> <translation id="3331974543021145906">معلومات التطبيق</translation> @@ -2116,6 +2122,7 @@ <translation id="3556433843310711081">يمكن لمديرك إلغاء الحظر لك</translation> <translation id="3557101512409028104">ضبط الحدود القصوى المسموح بها للقيود على المواقع الإلكترونية ووقت النظر إلى الشاشة باستخدام Family Link</translation> <translation id="3559262020195162408">تعذَّر تثبيت السياسة على الجهاز.</translation> +<translation id="3559533181353831840">يتبقى <ph name="TIME_LEFT" /> تقريبًا</translation> <translation id="3560034655160545939">&التدقيق الإملائي</translation> <translation id="3562423906127931518">قد تستغرق هذه العملية بضع دقائق. جارٍ إعداد حاوية نظام التشغيل Linux.</translation> <translation id="3563432852173030730">تعذر تنزيل تطبيق Kiosk.</translation> @@ -2158,6 +2165,7 @@ <translation id="3602290021589620013">معاينة</translation> <translation id="3603622770190368340">الحصول على شهادة الشبكة</translation> <translation id="3604713164406837697">تغيير الخلفية</translation> +<translation id="360565022852130722">شبكة Wi-Fi مؤَّمنة باستخدام بروتوكول WEP 802.1x ضعيف.</translation> <translation id="3605780360466892872">الزر لأسفل</translation> <translation id="3608576286259426129">معاينة صورة المستخدم</translation> <translation id="3610369246614755442">تحتاج مروحة تبريد محطة الإرساء إلى الصيانة.</translation> @@ -2194,6 +2202,7 @@ <translation id="3639220004740062347">الخروج من وضع القارئ</translation> <translation id="3640214691812501263">هل تريد إضافة "<ph name="EXTENSION_NAME" />" لـ <ph name="USER_NAME" />؟</translation> <translation id="3640613767643722554">تدريب "مساعد Google" على التعرُّف على صوتك</translation> +<translation id="3643014427358482789">أوقف <ph name="DOMAIN" /> تفعيل خيار "تصحيح الأخطاء عبر ADB"، والذي سيؤدي إلى إعادة ضبط جهاز <ph name="DEVICE_TYPE" />. ويمكنك الاحتفاظ بنسخة احتياطية من ملفاتك قبل إعادة التشغيل.</translation> <translation id="3645372836428131288">حرّك إصبعك قليلاً لالتقاط جزء مختلف من بصمة الإصبع.</translation> <translation id="3647998456578545569">{COUNT,plural, =1{تم استلام <ph name="ATTACHMENTS" /> من جهاز <ph name="DEVICE_NAME" />}zero{تم استلام <ph name="ATTACHMENTS" /> من جهاز <ph name="DEVICE_NAME" />}two{تم استلام <ph name="ATTACHMENTS" /> من جهاز <ph name="DEVICE_NAME" />}few{تم استلام <ph name="ATTACHMENTS" /> من جهاز <ph name="DEVICE_NAME" />}many{تم استلام <ph name="ATTACHMENTS" /> من جهاز <ph name="DEVICE_NAME" />}other{تم استلام <ph name="ATTACHMENTS" /> من جهاز <ph name="DEVICE_NAME" />}}</translation> <translation id="3648348069317717750">تم اكتشاف <ph name="USB_DEVICE_NAME" /></translation> @@ -2282,6 +2291,7 @@ <translation id="3732857534841813090">معلومات ذات صلة بخدمة "مساعد Google"</translation> <translation id="3733127536501031542">خادم بروتوكول SSL (طبقة المقابس الآمنة) مع الترقية</translation> <translation id="3735740477244556633">ترتيب بحسب</translation> +<translation id="3738632186060045350">سيتم حذف بيانات <ph name="DEVICE_TYPE" /> خلال 24 ساعة</translation> <translation id="3738924763801731196"><ph name="OID" />:</translation> <translation id="3739254215541673094">هل ترغب في فتح <ph name="APPLICATION" />؟</translation> <translation id="3742055079367172538">تم التقاط لقطة الشاشة</translation> @@ -2469,6 +2479,7 @@ <translation id="3937734102568271121">ترجمة اللغة <ph name="LANGUAGE" /> دائمًا</translation> <translation id="3938128855950761626">أجهزة من المورِّد <ph name="VENDOR_ID" /></translation> <translation id="3940233957883229251">تفعيل الإعادة التلقائية</translation> +<translation id="3941014780699102620">تعذّرت مطابقة المضيف.</translation> <translation id="3941565636838060942">لإخفاء إمكانية الدخول إلى هذا البرنامج، يجب إلغاء تثبيته باستخدام <ph name="CONTROL_PANEL_APPLET_NAME" /> من لوحة التحكّم. هل تريد بدء تشغيل <ph name="CONTROL_PANEL_APPLET_NAME" />؟</translation> <translation id="394183848452296464">يتعذّر إنشاء الاختصار</translation> <translation id="3943582379552582368">&إلى الوراء</translation> @@ -2628,6 +2639,7 @@ <translation id="413121957363593859">المكونات</translation> <translation id="4131410914670010031">أبيض وأسود</translation> <translation id="413193092008917129">سلسلة إجراءات بيانات تشخيص الشبكة</translation> +<translation id="4132183752438206707">البحث عن تطبيقات على "متجر Google Play"</translation> <translation id="4133076602192971179">فتح التطبيق لتغيير كلمة المرور</translation> <translation id="4136203100490971508">سيتم إيقاف الإضاءة الليلية تلقائيًا عند شروق الشمس.</translation> <translation id="41365691917097717">ستؤدي المواصلة إلى تفعيل خيار "تصحيح الأخطاء عبر ADB" لإنشاء تطبيقات متوافقة مع Android واختبارها. ويُرجى ملاحظة أن هذا الإجراء يتيح تثبيت تطبيقات متوافقة مع Android لم تتحقَّق منها Google، ويتطلب أيضًا إعادة ضبط على الإعدادات الأصلية لإيقافه.</translation> @@ -2877,6 +2889,8 @@ <translation id="4479877282574735775">جارٍ ضبط الآلة الافتراضية. قد يستغرق ذلك بضع دقائق.</translation> <translation id="4480590691557335796">يمكن لـ Chrome العثور على البرامج الضارة على جهاز الكمبيوتر وإزالتها.</translation> <translation id="4481530544597605423">الأجهزة التي تم إلغاء إقرانها</translation> +<translation id="4483049906298469269">تعذَّر فحص اتصال بوابة الشبكة غير التلقائية.</translation> +<translation id="4487489714832036847">تستخدم أجهزة Chromebook تطبيقات بدلاً من برامج تقليدية. يمكنك الحصول على تطبيقات لزيادة الإنتاجية والترفيه والمزيد.</translation> <translation id="4488502501195719518">هل تريد محو جميع البيانات؟</translation> <translation id="4493468155686877504">موصى به (<ph name="INSTALL_SIZE" />)</translation> <translation id="4495419450179050807">عدم الظهور في هذه الصفحة</translation> @@ -2927,6 +2941,7 @@ <translation id="4546692474302123343">الإدخال الصوتي في "مساعد Google"</translation> <translation id="4547659257713117923">ليست هناك علامات تبويب من أجهزة أخرى</translation> <translation id="4547672827276975204">ضبط المنطقة الزمنية تلقائيًا</translation> +<translation id="4548483925627140043">لم يتم العثور على إشارة.</translation> <translation id="4549791035683739768">لا يتضمّن مفتاح الأمان بصمات أصابع مخزّنة.</translation> <translation id="4551763574344810652">اضغط على <ph name="MODIFIER_KEY_DESCRIPTION" /> للتراجع</translation> <translation id="4552089082226364758">الفلاش</translation> @@ -2966,6 +2981,7 @@ <translation id="4582563038311694664">إعادة ضبط كل الإعدادات</translation> <translation id="4585793705637313973">تعديل الصفحة</translation> <translation id="4586275095964870617">تعذَّر فتح <ph name="URL" /> في متصفِّح بديل. يُرجى التواصل مع مشرف النظام.</translation> +<translation id="458794348635939462">تعذَّرت مطابقة جميع الأجهزة المضيفة.</translation> <translation id="4589713469967853491">تمّت كتابة السجلّات في دليل "عمليات التنزيل" بنجاح.</translation> <translation id="4590324241397107707">تخزين قاعدة البيانات</translation> <translation id="4592891116925567110">تطبيق الرسم باستخدام قلم الشاشة</translation> @@ -3349,6 +3365,7 @@ <translation id="5089810972385038852">الولاية</translation> <translation id="5094721898978802975">الاتصال بتطبيقات التعاون الأصلية</translation> <translation id="5097002363526479830">تعذّر الاتصال بشبكة "<ph name="NAME" />": <ph name="DETAILS" /></translation> +<translation id="5097649414558628673">الأداة: <ph name="PRINT_NAME" /></translation> <translation id="5097874180538493929">النقر تلقائيًا عند توقف المؤشر</translation> <translation id="5101042277149003567">فتح جميع الإشارات المرجعية</translation> <translation id="5101839224773798795">النقر تلقائيًا عند توقف المؤشر</translation> @@ -3567,6 +3584,7 @@ <translation id="5370819323174483825">&إعادة تحميل</translation> <translation id="5372529912055771682">لا يتيح هذا الإصدار من نظام التشغيل استخدام وضع التسجيل المزود. يُرجى التأكد من تشغيل أحدث إصدار وإعادة المحاولة.</translation> <translation id="5372579129492968947">إزالة تثبيت الإضافة</translation> +<translation id="5372659122375744710">شبكة Wi-Fi غير آمنة.</translation> <translation id="5376169624176189338">انقر للرجوع إلى الوراء واضغط لمشاهدة السجل</translation> <translation id="5376931455988532197">الملف كبير جدًا</translation> <translation id="5377721922656071359">{COUNT,plural, =1{تم إرسال <ph name="ATTACHMENTS" /> إلى جهاز <ph name="DEVICE_NAME" /> بنجاح}zero{تم إرسال <ph name="ATTACHMENTS" /> إلى جهاز <ph name="DEVICE_NAME" /> بنجاح}two{تم إرسال <ph name="ATTACHMENTS" /> إلى جهاز <ph name="DEVICE_NAME" /> بنجاح}few{تم إرسال <ph name="ATTACHMENTS" /> إلى جهاز <ph name="DEVICE_NAME" /> بنجاح}many{تم إرسال <ph name="ATTACHMENTS" /> إلى جهاز <ph name="DEVICE_NAME" /> بنجاح}other{تم إرسال <ph name="ATTACHMENTS" /> إلى جهاز <ph name="DEVICE_NAME" /> بنجاح}}</translation> @@ -3596,6 +3614,7 @@ <translation id="5414566801737831689">قراءة رموز المواقع الإلكترونية التي تزورها</translation> <translation id="5417312524372586921">مظاهر المتصفح</translation> <translation id="5419405654816502573">Voice Match</translation> +<translation id="5420274697768050645">زيادة مستوى الأمان من خلال طلب كلمة المرور لفتح قفل الجهاز</translation> <translation id="5420438158931847627">تحدّد درجة حدة النص والصور</translation> <translation id="5422221874247253874">نقطة الوصول</translation> <translation id="5422781158178868512">عذرًا، تعذر التعرف على جهاز مساحة التخزين الخارجية.</translation> @@ -3721,6 +3740,7 @@ <translation id="5548606607480005320">التحقّق من الأمان</translation> <translation id="5551573675707792127">لوحة المفاتيح وإدخال النص</translation> <translation id="5553089923092577885">تعيينات سياسة الشهادة</translation> +<translation id="5554403733534868102">لا داعٍ لانتظار التحديثات بعد الآن</translation> <translation id="5554489410841842733">سيظهر هذا الرمز عند عمل الإضافة في الصفحة الحالية.</translation> <translation id="5554720593229208774">المرجع المصدق للبريد الإلكتروني</translation> <translation id="5556459405103347317">إعادة التحميل</translation> @@ -4134,6 +4154,7 @@ <translation id="6061882183774845124">إرسال الرابط إلى الأجهزة</translation> <translation id="6064217302520318294">قفل الشاشة</translation> <translation id="6065289257230303064">سمات دليل صاحب الشهادة</translation> +<translation id="6069464830445383022">تسجيل الدخول إلى Chromebook من خلال حسابك على Google</translation> <translation id="6069671174561668781">تعيين خلفية</translation> <translation id="6071181508177083058">تأكيد كلمة المرور</translation> <translation id="6071576563962215370">تعذَّر على النظام إنشاء قفل سمات وقت تثبيت الجهاز.</translation> @@ -4176,6 +4197,7 @@ <translation id="6104311680260824317">يتعذَّر ضم الجهاز إلى النطاق لأن الخادم لا يدعم أنواع ترميز Kerberos المحدَّدة. يُرجى الانتقال إلى "مزيد من الخيارات" للاطِّلاع على إعدادات الترميز.</translation> <translation id="6104796831253957966">قائمة الانتظار في الطابعة ممتلئة</translation> <translation id="6105994589138235234">مزامنة متصفّح Chrome</translation> +<translation id="6108689792487843350">يتعذّر الوصول إلى البوابة</translation> <translation id="6111972606040028426">تفعيل "مساعد Google"</translation> <translation id="6112294629795967147">اللمس لتغيير الحجم</translation> <translation id="6112727384379533756">إضافة تذكرة</translation> @@ -4237,6 +4259,7 @@ <translation id="6178664161104547336">تحديد شهادة</translation> <translation id="6181431612547969857">تم حظر التنزيل</translation> <translation id="6185132558746749656">موقع الجهاز</translation> +<translation id="6191293864534840972">خوادم الأسماء غير صالحة.</translation> <translation id="6195446518998936840">لإعداد أدوات الرقابة الأبوية، يجب أن يكون لطفلك حساب على Google لتساعده في إدارته. ويمكنك ضبط حدود وقت النظر إلى الشاشة والموافقة على المواقع الإلكترونية أو حظرها والمزيد باستخدام تطبيق Family Link.</translation> <translation id="6195693561221576702">لا يمكن إعداد الجهاز في الوضع التجريبي بلا إنترنت.</translation> <translation id="6196640612572343990">حظر ملفات تعريف الارتباط للجهات الخارجية</translation> @@ -4450,6 +4473,7 @@ <translation id="6451591602925140504">{NUM_PAGES,plural, =0{<ph name="PAGE_TITLE" />}=1{<ph name="PAGE_TITLE" /> وعلامة تبويب واحدة إضافية}two{<ph name="PAGE_TITLE" /> وعلامَتا تبويب إضافيتان}few{<ph name="PAGE_TITLE" /> و# علامات تبويب إضافية}many{<ph name="PAGE_TITLE" /> و# علامة تبويب إضافية}other{<ph name="PAGE_TITLE" /> و# علامة تبويب إضافية}}</translation> <translation id="6451689256222386810">إذا نسيت عبارة المرور أو رغبت في تغيير هذا الإعداد، يمكنك <ph name="BEGIN_LINK" />إعادة ضبط المزامنة<ph name="END_LINK" />.</translation> <translation id="6452181791372256707">رفض</translation> +<translation id="6452251728599530347">اكتمل <ph name="PERCENT" /></translation> <translation id="6452961788130242735">مشكلة في الشبكة أو نطاق غير صالح</translation> <translation id="6455264371803474013">على مواقع إلكترونية محددة</translation> <translation id="6455894534188563617">&مجلد جديد</translation> @@ -4506,6 +4530,7 @@ <ph name="EVENT_NAME" /></translation> <translation id="6520876759015997832">نتيجة البحث <ph name="LIST_POSITION" /> من <ph name="LIST_SIZE" />: <ph name="SEARCH_RESULT_TEXT" />. يُرجى الضغط على Enter للانتقال إلى القسم.</translation> <translation id="652492607360843641">أنت متصل بشبكة من نوع <ph name="NETWORK_TYPE" />.</translation> +<translation id="6527081081771465939">بروتوكول حماية شبكة Wi-Fi غير معروف.</translation> <translation id="6527303717912515753">مشاركة</translation> <translation id="6528513914570774834">السماح للمستخدمين الآخرين لهذا الجهاز باستخدام هذه الشبكة</translation> <translation id="652948702951888897">سجل Chrome</translation> @@ -4622,6 +4647,7 @@ <translation id="6680442031740878064">المساحة المتاحة: <ph name="AVAILABLE_SPACE" /></translation> <translation id="6680650203439190394">تقييم</translation> <translation id="6681668084120808868">التقاط صورة</translation> +<translation id="6684827949542560880">جارٍ تنزيل آخر تحديث</translation> <translation id="668599234725812620">فتح Google Play</translation> <translation id="6686490380836145850">إغلاق علامات التبويب في الجهة اليسرى.</translation> <translation id="6686817083349815241">حفظ كلمة المرور</translation> @@ -4731,6 +4757,7 @@ <translation id="6812841287760418429">الإبقاء على التغييرات</translation> <translation id="6817174620439930047">طلب الإذن عند محاولة أحد المواقع استخدام رسائل حصرية للنظام للوصول إلى أجهزة MIDI (موصى به)</translation> <translation id="6818198425579322765">لغة الصفحة المُراد ترجمتها</translation> +<translation id="6818802132960437751">حماية مُدمَجة من الفيروسات</translation> <translation id="682123305478866682">إرسال سطح المكتب</translation> <translation id="6823174134746916417">الضغط للنقر على لوحة اللمس</translation> <translation id="6823506025919456619">يلزمك تسجيل الدخول إلى Chrome للاطلاع على أجهزتك</translation> @@ -5377,6 +5404,7 @@ <translation id="7631205654593498032">عند ربط أجهزتك، أنت توافق على أن جهاز <ph name="DEVICE_TYPE" /> سيتمكّن من إجراء ما يلي:</translation> <translation id="7631887513477658702">فت&ح هذا النوع من الملفات دومًا</translation> <translation id="7632948528260659758">فشل تحديث تطبيقات kiosk التالية:</translation> +<translation id="7633724038415831385">هذه هي المرة الوحيدة التي ستنتظر فيها إجراء تحديث. في أجهزة Chromebook، تجري تحديثات البرامج في الخلفية.</translation> <translation id="7634566076839829401">حدث خطأ ما. يُرجى إعادة المحاولة.</translation> <translation id="763632859238619983">عدم السماح لأي موقع بتثبيت معالجات الدفع</translation> <translation id="7636919061354591437">تثبيت على هذا الجهاز</translation> @@ -5655,6 +5683,7 @@ <translation id="7933314993013528982">{NUM_TABS,plural, =1{إعادة صوت موقع إلكتروني واحد}zero{إعادة صوت المواقع الإلكترونية}two{إعادة صوت موقعيِّ الويب}few{إعادة صوت المواقع الإلكترونية}many{إعادة صوت المواقع الإلكترونية}other{إعادة صوت المواقع الإلكترونية}}</translation> <translation id="7933634003144813719">إدارة المجلدات التي تمت مشاركتها</translation> <translation id="793531125873261495">حدث خطأ أثناء تنزيل الآلة الافتراضية. يُرجى إعادة المحاولة.</translation> +<translation id="7936303884198020182">لم يتم العثور على خوادم أسماء.</translation> <translation id="7938594894617528435">بلا إنترنت حاليًا</translation> <translation id="7939062555109487992">خيارات متقدمة</translation> <translation id="7939412583708276221">المتابعة على أيّ حال</translation> @@ -5898,6 +5927,7 @@ <translation id="8226742006292257240">في ما يلي كلمة مرور TPM التي تم إنشاؤها عشوائيًا والتي تم تخصيصها للكمبيوتر:</translation> <translation id="8227119283605456246">إرفاق ملف</translation> <translation id="8230134520748321204">هل تريد حفظ كلمة المرور لـ <ph name="ORIGIN" />؟</translation> +<translation id="8230672074305416752">تعذَّر فحص اتصال بوابة الشبكة التلقائية.</translation> <translation id="8234795456569844941">يُرجى مساعدة مهندسينا في حل هذه المشكلة. أخبرنا بما حدث مباشرة قبل ظهور رسالة خطأ الملف الشخصي:</translation> <translation id="8236917170563564587">مشاركة علامة التبويب هذه بدلاً من ذلك</translation> <translation id="8237647586961940482">زهري داكن وأحمر</translation> @@ -5958,6 +5988,7 @@ <translation id="8288032458496410887">إلغاء تثبيت <ph name="APP" />...</translation> <translation id="8289128870594824098">حجم القرص</translation> <translation id="8291967909914612644">بلد مقدم الخدمة الرئيسي</translation> +<translation id="8293206222192510085">إضافة إشارة مرجعية</translation> <translation id="8294431847097064396">المصدر</translation> <translation id="8297006494302853456">ضعيفة</translation> <translation id="8299319456683969623">أنت غير متصل حاليًا.</translation> @@ -6007,6 +6038,7 @@ <translation id="8363095875018065315">ثابتة</translation> <translation id="8363142353806532503">تم حظر استخدام الميكروفون</translation> <translation id="8363763184161554204">تم منح إذن <ph name="PERMISSION" />.</translation> +<translation id="8364946094152050673">خادم الأسماء فارغ.</translation> <translation id="8366396658833131068">تمت استعادة اتصال الشبكة. يُرجى اختيار شبكة أخرى أو الضغط على الزر "متابعة" أدناه لتشغيل تطبيق الكشك.</translation> <translation id="8368027906805972958">جهاز غير معروف أو غير متوافق (<ph name="DEVICE_ID" />)</translation> <translation id="8368859634510605990">&فتح كل الإشارات المرجعية</translation> @@ -6092,8 +6124,10 @@ <translation id="8472623782143987204">يستند إلى الجهاز</translation> <translation id="8473863474539038330">العناوين والمزيد</translation> <translation id="8475313423285172237">أضاف برنامج آخر بجهاز الكمبيوتر إضافة قد تؤدي إلى تغيير طريقة عمل Chrome.</translation> +<translation id="8475690821716466388">شبكة Wi-Fi مؤمَّنة باستخدام بروتوكول WEP PSK ضعيف.</translation> <translation id="8477241577829954800">تم استبدالها</translation> <translation id="8477384620836102176">&عام</translation> +<translation id="8477551185774834963">وقت استجابة "نظام أسماء النطاقات" أعلى بقليل من الحدّ الأقصى المسموح به.</translation> <translation id="8480082892550707549">حتى إذا كنت قد نزّلت ملفات من الموقع الإلكتروني هذا من قبل، فقد يكون الموقع الإلكتروني غير آمن مؤقتًا (تعرض للاختراق). يُرجى محاولة تنزيل هذا الملف لاحقًا.</translation> <translation id="8480869669560681089">جهاز غير معروف من <ph name="VENDOR_NAME" /></translation> <translation id="8481187309597259238">تأكيد إذن USB</translation> @@ -6145,6 +6179,7 @@ <translation id="8546930481464505581">تخصيص شريط اللمس</translation> <translation id="8547013269961688403">تفعيل المكبّر بملء الشاشة</translation> <translation id="85486688517848470">اضغط على مفتاح البحث باستمرار لتبديل سلوك مفاتيح الصف العلوي</translation> +<translation id="8549316893834449916">يجب أن تستخدم حسابك على Google لتسجيل الدخول إلى جهاز Chromebook، وهو الحساب نفسه الذي تستخدمه على Gmail وDrive وYouTube وغيرها من المنتجات.</translation> <translation id="8551388862522347954">التراخيص</translation> <translation id="8551588720239073785">إعدادات التاريخ والوقت</translation> <translation id="8553342806078037065">إدارة الأشخاص الآخرين</translation> @@ -6283,6 +6318,7 @@ <translation id="8720200012906404956">البحث عن شبكة جوال <ph name="BEGIN_LINK" />مزيد من المعلومات<ph name="END_LINK" /></translation> <translation id="8720816553731218127">لقد انتهت مهلة إعداد سمات وقت التثبيت.</translation> <translation id="8722912030556880711">يمكنك إرسال بيانات الاستخدام والتشخيص. يرسل هذا الجهاز حاليًا بيانات استخدام التطبيق والجهاز والتشخيص تلقائيًا إلى Google. سيساعد ذلك في استقرار عمل النظام والتطبيقات، بالإضافة إلى التحسينات الأخرى. كما ستساعد بعض البيانات المجمّعة تطبيقات Google وشركائها، مثل مطوّري برامج نظام التشغيل Android. في حال تفعيل إعداد "النشاط الإضافي على الويب وفي التطبيقات"، قد يتم حفظ هذه البيانات في حسابك على Google. <ph name="BEGIN_LINK2" />مزيد من المعلومات<ph name="END_LINK2" /></translation> +<translation id="8723108084122415655">وقت استجابة الشبكة غير التلقائية أعلى من الحد الأقصى.</translation> <translation id="8724405322205516354">عندما ترى هذا الرمز، استخدم بصمة الإصبع لتحديد الهوية أو للموافقة على عمليات الشراء.</translation> <translation id="8724409975248965964">تمت إضافة بصمة الإصبع</translation> <translation id="8724859055372736596">&عرض في المجلد</translation> @@ -6460,6 +6496,7 @@ <translation id="8909833622202089127">تتبّع الموقع الإلكتروني موقعك الجغرافي.</translation> <translation id="8910146161325739742">مشاركة الشاشة</translation> <translation id="8910222113987937043">لن تتم بعد الآن مزامنة التغييرات التي تطرأ على الإشارات المرجعية والسجلّ وكلمات المرور والإعدادات الأخرى مع حسابك على Google، ولكن ستظل بياناتك الحالية مخزّنة في حسابك على Google ويمكن إدارتها في <ph name="BEGIN_LINK" />لوحة تحكّم Google<ph name="END_LINK" />.</translation> +<translation id="8910721771319628100">وقت استجابة الشبكة التلقائية أعلى من الحدّ الأقصى.</translation> <translation id="8912362522468806198">حساب Google</translation> <translation id="8912793549644936705">تمدد</translation> <translation id="8912810933860534797">تفعيل المسح التلقائي</translation>
diff --git a/chrome/app/resources/generated_resources_as.xtb b/chrome/app/resources/generated_resources_as.xtb index 92a3819..ac433990 100644 --- a/chrome/app/resources/generated_resources_as.xtb +++ b/chrome/app/resources/generated_resources_as.xtb
@@ -521,7 +521,6 @@ <translation id="1608668830839595724">বাছনি কৰা বস্তুবোৰৰ বাবে অধিক কাৰ্য</translation> <translation id="161042844686301425">চাইয়ান</translation> <translation id="1611432201750675208">আপোনাৰ ডিভাইচটো লক হৈ আছে</translation> -<translation id="1611584202130317952">প্ৰ’ভিজনিং ফ্ল’ বাধাপ্ৰাপ্ত হৈছে। অনুগ্ৰহ কৰি আকৌ চেষ্টা কৰক বা আপোনাৰ ডিভাইচৰ গৰাকী বা প্ৰশাসকৰ সৈতে যোগাযোগ কৰক।</translation> <translation id="1614511179807650956">আপুনি ব্যৱহাৰৰ অনুমতি থকা সকলো ম’বাইল ডেটা চাগে ব্যৱহাৰ কৰিলে। অধিক ডেটা ক্ৰয় কৰিবলৈ <ph name="NAME" /> সক্ৰিয়কৰণৰ প’ৰ্টেললৈ যাওক</translation> <translation id="161460670679785907">আপোনাৰ ফ’ন চিনাক্ত কৰিবলৈ সক্ষম নহ’ল</translation> <translation id="1616206807336925449">এই এক্সটেনশ্বনটোৰ বাবে কোনো বিশেষ অনুমতি ল'ব নালাগে।</translation> @@ -961,6 +960,7 @@ <translation id="2148219725039824548">শ্বেয়াৰ মাউণ্ট কৰোঁতে আসোঁৱাহ হ’ল। নেটৱর্কত নির্দিষ্ট কৰা শ্বেয়াৰ কৰা কার্যটো বিচাৰি পোৱ নগ’ল।</translation> <translation id="2148756636027685713">ফৰ্মেট কৰা সম্পূৰ্ণ হ’ল</translation> <translation id="2148892889047469596">টেব কাষ্ট কৰক</translation> +<translation id="2149973817440762519">বুকমার্ক সম্পাদনা কৰক</translation> <translation id="2150139952286079145">লক্ষ্যস্থান সন্ধান কৰক</translation> <translation id="2150661552845026580">"<ph name="EXTENSION_NAME" />" যোগ কৰিবনে?</translation> <translation id="2151576029659734873">অমান্য টেব ইণ্ডেক্স দিয়া হৈছে।</translation> @@ -5943,6 +5943,7 @@ <translation id="8288032458496410887"><ph name="APP" /> আনইনষ্টল কৰক ...</translation> <translation id="8289128870594824098">ডিস্কৰ আকাৰ</translation> <translation id="8291967909914612644">গৃহ প্ৰদানকাৰী দেশ</translation> +<translation id="8293206222192510085">বুকমাৰ্ক যোগ কৰক</translation> <translation id="8294431847097064396">উৎস</translation> <translation id="8297006494302853456">দুৰ্বল</translation> <translation id="8299319456683969623">আপুনি বর্তমান অফলাইন হৈ আছে।</translation>
diff --git a/chrome/app/resources/generated_resources_az.xtb b/chrome/app/resources/generated_resources_az.xtb index d3883045..f081258 100644 --- a/chrome/app/resources/generated_resources_az.xtb +++ b/chrome/app/resources/generated_resources_az.xtb
@@ -69,6 +69,7 @@ <translation id="1070705170564860382">Alternativ brauzerdə <ph name="COUNTDOWN_SECONDS" /> saniyəyə açılacaq</translation> <translation id="1071917609930274619">Data Şifrələnməsi</translation> <translation id="1072700771426194907">USB cihazı aşkarlandı</translation> +<translation id="107278043869924952">Parol ilə yanaşı PIN istifadə edin</translation> <translation id="1076176485976385390">Səhifələri mətn kursoru ilə vərəqləyin</translation> <translation id="1076698951459398590">Temanı Aktiv Edin</translation> <translation id="1076818208934827215">Microsoft Internet Explorer</translation> @@ -520,7 +521,6 @@ <translation id="1608668830839595724">Seçilmiş elementlər üçün daha çox əməliyyat</translation> <translation id="161042844686301425">Firuzəyi</translation> <translation id="1611432201750675208">Cihazınız kilidlidir</translation> -<translation id="1611584202130317952">Daxil olmaq alınmadı. Yenidən cəhd edin, yaxud cihazın sahibi və ya administratoru ilə əlaqə saxlayın.</translation> <translation id="1614511179807650956">Mobil data limitini bitirmisiniz. Əlavə data almaq üçün <ph name="NAME" /> aktivasiya portalına daxil olun</translation> <translation id="161460670679785907">Telefonu aşkarlamaq alınmadı</translation> <translation id="1616206807336925449">Bu artırma xüsusi icazələr tələb etmir.</translation> @@ -529,6 +529,7 @@ <translation id="1618268899808219593">Yardım mərkəzi</translation> <translation id="1620307519959413822">Yanlış parol. Yenidən cəhd edin və ya sıfırlamaq üçün "Parolu unutmuşam" seçiminə klikləyin.</translation> <translation id="1620510694547887537">Kamera</translation> +<translation id="1621831347985899379"><ph name="DEVICE_TYPE" /> datası silinəcək</translation> <translation id="1622054403950683339">Wi-Fi şəbəkəsini unudun</translation> <translation id="1623132449929929218">Şəkillər hazırda əlçatan deyil. Kolleksiyalara baxmaq üçün yenidən internetə qoşulun.</translation> <translation id="1623723619460186680">Mavi işığın azaldılması</translation> @@ -756,6 +757,7 @@ <translation id="1877377290348678128">Etiket (istəyə görə)</translation> <translation id="1877520246462554164">Doğrulama açarı əldə etmək alınmadı. Yenidən cəhd etmək üçün hesabdan çıxın və təkar daxil olun.</translation> <translation id="1877860345998737529">Əməliyyat təyinatını dəyişin</translation> +<translation id="1878155070920054810">Görünür, güncəlləmə tamamlanana kimi Chromebook'un enerjisi bitəcək. Fasilə olmaması üçün onun düzgün şarj edildiyinə əmin olun.</translation> <translation id="1879000426787380528">Belə daxil olun</translation> <translation id="1880905663253319515">"<ph name="CERTIFICATE_NAME" />" sertifikatı silinsin?</translation> <translation id="1881445033931614352">Klaviatura düzəni</translation> @@ -960,6 +962,7 @@ <translation id="2148219725039824548">Paylaşım xətası. Göstərilən paylaşım şəbəkədə tapılmadı.</translation> <translation id="2148756636027685713">Formatlama tamamlandı</translation> <translation id="2148892889047469596">Yayım paneli</translation> +<translation id="2149973817440762519">Əlfəcinə düzəliş edin</translation> <translation id="2150139952286079145">Axtarış istiqamətləri</translation> <translation id="2150661552845026580">"<ph name="EXTENSION_NAME" />" əlavə edilsin?</translation> <translation id="2151576029659734873">Yanlış panel indeksi daxil edildi.</translation> @@ -1069,6 +1072,7 @@ <translation id="2270627217422354837">Bu domenlərdə istənilən cihazla datanı mübadilə edin: <ph name="DOMAINS" /></translation> <translation id="2272570998639520080">Martini şüşə</translation> <translation id="2273119997271134996">Dok video portu problemi</translation> +<translation id="2274840746523584236">Chromebook'unuzu şarj edin</translation> <translation id="2276503375879033601">Daha çox tətbiq əlavə edin</translation> <translation id="2277255602909579701">Bütün kuki və sayt datası</translation> <translation id="2277769717710009150">{COUNT,plural, =1{1 element kopyalandı}other{# element kopyalandı}}</translation> @@ -1910,6 +1914,7 @@ <translation id="3308116878371095290">Bu səhifədə kuki ayarının qarşısı alınıb.</translation> <translation id="3308134619352333507">Düyməni Gizlədin</translation> <translation id="3308852433423051161">Google Assistent Yüklənir...</translation> +<translation id="3310640316857623290">DNS gecikməsi icazə verilən həddən xeyli yuxarıdır</translation> <translation id="3311445899360743395">Bu tətbiqlə bağlı data bu cihazdan silinəcək.</translation> <translation id="3312424061798279731">Aktiv dillər</translation> <translation id="3313622045786997898">Sertifikat İmzası Dəyəri</translation> @@ -1922,6 +1927,7 @@ <translation id="3323295311852517824">{NUM_FILES,plural, =0{Bu data həssas və ya təhlükəli məzmun ehtiva edir. Bu məzmunu silin və yenidən cəhd edin.}=1{Bu fayl həssas və ya təhlükəli məzmun ehtiva edir. Bu məzmunu silin və yenidən cəhd edin.}other{Bu fayllar həssas və ya təhlükəli məzmun ehtiva edir. Bu məzmunu silin və yenidən cəhd edin.}}</translation> <translation id="3323521181261657960">Bonus! Daha çox ekran vaxtı əldə etdiniz</translation> <translation id="3325910708063135066">Kamera və mikrofon Mac Sistem Tərcihlərində deaktivdir</translation> +<translation id="3327050066667856415">Chromebook'lar güvənlik üçün dizayn edilib. Cihazınız zərərli proqramlardan avtomatik qorunur - əlavə proqrama ehtiyac yoxdur.</translation> <translation id="3328489342742826322">Yedəkdən bərpa edildikdə Linux tətbiqləri və Linux fayl qovluğundakı data silinəcək.</translation> <translation id="3331321258768829690">(<ph name="UTCOFFSET" />) <ph name="LONGTZNAME" /> (<ph name="EXEMPLARCITY" />)</translation> <translation id="3331974543021145906">Tətbiq məlumatı</translation> @@ -2111,6 +2117,7 @@ <translation id="3556433843310711081">Meneceriniz blok edə bilər</translation> <translation id="3557101512409028104">Family Link ilə veb sayt məhdudiyyətləri və ekran vaxtı limitləri ayarlaya bilərsiniz.</translation> <translation id="3559262020195162408">Cihazda qayda quraşdırıla bilmədi.</translation> +<translation id="3559533181353831840">Təxminən <ph name="TIME_LEFT" /> qalıb</translation> <translation id="3560034655160545939">&Yazı yoxlanışı</translation> <translation id="3562423906127931518">Bu proses bir neçə dəqiqə çəkə bilər. Linux konteyneri quraşdırılır.</translation> <translation id="3563432852173030730">Kiosk tətbiqi ündirilə bilmir.</translation> @@ -2153,6 +2160,7 @@ <translation id="3602290021589620013">Önizləmə</translation> <translation id="3603622770190368340">Şəbəkə sertifikatını əldə edin</translation> <translation id="3604713164406837697">Divar kağızını dəyişin</translation> +<translation id="360565022852130722">WiFi şəbəkəsi zəif protokol WEP 802.1x ilə qorunur</translation> <translation id="3605780360466892872">Buttondown</translation> <translation id="3608576286259426129">İstifadəçi şəkil önizləməsi</translation> <translation id="3610369246614755442">Dok havalandırması texniki baxışdan keçirilməlidir</translation> @@ -2189,6 +2197,7 @@ <translation id="3639220004740062347">Oxucu Rejimindən Çıxın</translation> <translation id="3640214691812501263"><ph name="USER_NAME" /> üçün "<ph name="EXTENSION_NAME" />" əlavə edilsin?</translation> <translation id="3640613767643722554">Səsinizi tanımaqda Assistentə kömək edin</translation> +<translation id="3643014427358482789"><ph name="DOMAIN" /> ADB sazlamasını deaktiv edir, bu da <ph name="DEVICE_TYPE" /> cihazınızı sıfırlayacaq. Yenidən başlamazdan əvvəl fayllarınızı yedəkləyin.</translation> <translation id="3645372836428131288">Barmaq izinin fərqli hissələrini tutmaq üçün barmağınızı yavaşca hərəkət etdirin.</translation> <translation id="3647998456578545569">{COUNT,plural, =1{<ph name="DEVICE_NAME" /> cihazından <ph name="ATTACHMENTS" /> alınıb}other{<ph name="DEVICE_NAME" /> cihazından <ph name="ATTACHMENTS" /> alınıb}}</translation> <translation id="3648348069317717750"><ph name="USB_DEVICE_NAME" /> aşkarlandı</translation> @@ -2277,6 +2286,7 @@ <translation id="3732857534841813090">Google Assistent ilə əlaqəli məlumat</translation> <translation id="3733127536501031542">Quraşdırmalı SSL Server</translation> <translation id="3735740477244556633">Çeşidləyin</translation> +<translation id="3738632186060045350"><ph name="DEVICE_TYPE" /> datası 24 saat ərzində silinəcək</translation> <translation id="3738924763801731196"><ph name="OID" />:</translation> <translation id="3739254215541673094"><ph name="APPLICATION" /> tətbiqi açılsın?</translation> <translation id="3742055079367172538">Skrinşot çəkildi</translation> @@ -2464,6 +2474,7 @@ <translation id="3937734102568271121">Həmişə <ph name="LANGUAGE" /> Dilinə Tərcümə Edin</translation> <translation id="3938128855950761626"><ph name="VENDOR_ID" /> vendorundan cihazlar</translation> <translation id="3940233957883229251">Avto-təkrarlamanı aktiv edin</translation> +<translation id="3941014780699102620">Hostu həll etmək alınmadı</translation> <translation id="3941565636838060942">Bu proqrama girişi gizlətmək üçün Kontrol Panelində <ph name="CONTROL_PANEL_APPLET_NAME" /> istifadə etməklə, onu sistemdən silməlisiniz. @@ -2624,6 +2635,7 @@ <translation id="413121957363593859">Komponentlər</translation> <translation id="4131410914670010031">Ağ və qara</translation> <translation id="413193092008917129">Şəbəkə Diaqnostikası Rejimləri</translation> +<translation id="4132183752438206707">Google Play Marketdə tətbiqlər tapın</translation> <translation id="4133076602192971179">Parolu dəyişmək üçün tətbiqi açın</translation> <translation id="4136203100490971508">Gecə İşığı şəfəq vaxtı avtomatik deaktiv ediləcək</translation> <translation id="41365691917097717">Davam etsəniz, Android tətbiqlərini yaratmaq və sınaqdan keçirmək üçün ADB sazlaması aktiv ediləcək. Nəzərə alın ki, bu əməliyyat Google tərəfindən doğrulanmamış Android tətbiqlərinin quraşdırılmasına icazə verir və deaktiv etmək üçün zavod sıfırlaması tələb edir.</translation> @@ -2873,6 +2885,8 @@ <translation id="4479877282574735775">Virtual cihaz konfiqurasiya edilir. Bir neçə dəqiqə çəkə bilər.</translation> <translation id="4480590691557335796">Chrome kompüterdə zərərli tətbiq tapa və onu silə bilər</translation> <translation id="4481530544597605423">Ayrılmış cihazlar</translation> +<translation id="4483049906298469269">Qeyri-defolt şəbəkə girişini yoxlamaq alınmadı</translation> +<translation id="4487489714832036847">Chromebook'larda ənənəvi proqram əvəzinə tətbiqlər istifadə olunur. Məhsuldarlıq, əyləncə və daha çoxu üçün tətbiqlər əldə edin.</translation> <translation id="4488502501195719518">Bütün data silinsin?</translation> <translation id="4493468155686877504">Tövsiyə olunur (<ph name="INSTALL_SIZE" />)</translation> <translation id="4495419450179050807">Bu səhifədə göstərməyin</translation> @@ -2923,6 +2937,7 @@ <translation id="4546692474302123343">Google Assistentin səs daxiletmə funksiyası</translation> <translation id="4547659257713117923">Başqa cihazlardan heç bir panel yoxdur</translation> <translation id="4547672827276975204">Avtomatik olaraq ayarlayın</translation> +<translation id="4548483925627140043">Siqnal tapılmadı</translation> <translation id="4549791035683739768">Təhlükəsizlik açarında saxlanılan barmaq izi yoxdur</translation> <translation id="4551763574344810652">Geri qaytarmaq üçün <ph name="MODIFIER_KEY_DESCRIPTION" /> qısayoluna klikləyin</translation> <translation id="4552089082226364758">İşartı</translation> @@ -2962,6 +2977,7 @@ <translation id="4582563038311694664">Bütün ayarları sıfırlayın</translation> <translation id="4585793705637313973">Səhifəni redaktə edin</translation> <translation id="4586275095964870617">Alternativ brauzerdə <ph name="URL" /> linkini açmaq mümkün olmadı. Sistem administratoru ilə əlaqə saxlayın.</translation> +<translation id="458794348635939462">Bütün hostları həll etmək alınmadı</translation> <translation id="4589713469967853491">Loqlar Endirmələr kataloquna uğurla yazıldı.</translation> <translation id="4590324241397107707">Databaza yaddaş ehtiyatı</translation> <translation id="4592891116925567110">Stilus rəsm tətbiqi</translation> @@ -3345,6 +3361,7 @@ <translation id="5089810972385038852">Dövlət</translation> <translation id="5094721898978802975">Nativ tətbiqlərlə əməkdaşlıqla ünsiyyət qurun</translation> <translation id="5097002363526479830">'<ph name="NAME" />': <ph name="DETAILS" /> şəbəkəsinə qoşulmaq uğursuz oldu</translation> +<translation id="5097649414558628673">Alət: <ph name="PRINT_NAME" /></translation> <translation id="5097874180538493929">Kursor dayandıqda avtomatik basılsın</translation> <translation id="5101042277149003567">Bütün əlfəcinləri açın</translation> <translation id="5101839224773798795">Kursor dayandıqda avtomatik klikləyin</translation> @@ -3563,6 +3580,7 @@ <translation id="5370819323174483825">Yenidən yükləyin</translation> <translation id="5372529912055771682">Təchiz olunmuş qeydiyyat rejimi əməliyyat sisteminin bu versiyası tərəfindən dəstəklənmir. Lütfən, ən yeni versiyanı istifadə etdiyinizə əmin olun və yenidən cəhd edin.</translation> <translation id="5372579129492968947">Artırmanı tabdan çıxarın</translation> +<translation id="5372659122375744710">WiFi şəbəkəsi güvənli deyil</translation> <translation id="5376169624176189338">Qayıtmaq üçün klikləyin, tarixçəni görmək üçün basıb saxlayın</translation> <translation id="5376931455988532197">Fayl çox böyükdür</translation> <translation id="5377721922656071359">{COUNT,plural, =1{<ph name="ATTACHMENTS" /> <ph name="DEVICE_NAME" /> cihazına uğurla göndərildi}other{<ph name="ATTACHMENTS" /> <ph name="DEVICE_NAME" /> cihazına uğurla göndərildi}}</translation> @@ -3592,6 +3610,7 @@ <translation id="5414566801737831689">Ziyarət etdiyiniz saytlardakı ikonaları oxuyun</translation> <translation id="5417312524372586921">Brauzer temaları</translation> <translation id="5419405654816502573">Voice match</translation> +<translation id="5420274697768050645">Əlavə güvənlik məqsədilə cihazı kiliddən çıxarmaq üçün parol tələb edin</translation> <translation id="5420438158931847627">Mətn və şəkillərin kəskinliyini müəyyən edir</translation> <translation id="5422221874247253874">Giriş Nöqtəsi</translation> <translation id="5422781158178868512">Sizin xarici yaddaş cihazınız tanınmır.</translation> @@ -3716,6 +3735,7 @@ <translation id="5548606607480005320">Təhlükəsizlik yoxlanışı</translation> <translation id="5551573675707792127">Klaviatura və mətn girişi</translation> <translation id="5553089923092577885">Sertifikat Siyasəti Tutuşdurmaları</translation> +<translation id="5554403733534868102">Bundan sonra güncəlləmələri gözləməyəcəksiniz</translation> <translation id="5554489410841842733">Artırma cari səhifədə fəaliyyət göstərən zaman bu ikona görünə bilər.</translation> <translation id="5554720593229208774">E-poçt Sertifikatlaşdırma Təşkilatı</translation> <translation id="5556459405103347317">Yenidən yükləyin</translation> @@ -4127,6 +4147,7 @@ <translation id="6061882183774845124">Linki cihazlara göndərin</translation> <translation id="6064217302520318294">Ekran kilidi</translation> <translation id="6065289257230303064">Sertifikat Subyekt Direktoriyası Atributları</translation> +<translation id="6069464830445383022">Chromebook girişi üçün Google Hesabınız istifadə edilir</translation> <translation id="6069671174561668781">Divar kağızı ayarlayın</translation> <translation id="6071181508177083058">parolu təsdiq edin</translation> <translation id="6071576563962215370">Sistem cihaz quraşdırma vaxtının atribut kilidini yarada bilmədi.</translation> @@ -4169,6 +4190,7 @@ <translation id="6104311680260824317">Cihaz domenə qoşula bilmədi. Server Kerberos şifrələmə mövünü dəstəkləmir. Şifrləmə ayarları üçün "Daha çox seçimi" sınayın.</translation> <translation id="6104796831253957966">Printerdə növbə dolub</translation> <translation id="6105994589138235234">Chrome brauzerinin sinxronlaşdırılması</translation> +<translation id="6108689792487843350">Giriş ilə əlaqə saxlamaq olmur</translation> <translation id="6111972606040028426">Google Assistenti aktiv edin</translation> <translation id="6112294629795967147">Ölçüsünü dəyişmək üçün klikləyin</translation> <translation id="6112727384379533756">Bilet əlavə edin</translation> @@ -4229,6 +4251,7 @@ <translation id="6178664161104547336">Sertifikat seçin</translation> <translation id="6181431612547969857">Endirmə bloklandı</translation> <translation id="6185132558746749656">Cihaz Məkanı</translation> +<translation id="6191293864534840972">Yanlış ad serverləri</translation> <translation id="6195446518998936840">Valideyn nəzarətləri ayarlamaq üçün övladınızın idarəçiliyinə yardım edəcəyiniz Google Hesabı olmalıdır. Family Link tətbiqi ilə ekran vaxtı limitləri ayarlaya, vebsaytları təsdiqləyə və ya bloklaya və s. əməliyyatları edə bilərsiniz.</translation> <translation id="6195693561221576702">Bu cihazı oflayn demo rejimində quraşdırmaq mümkün deyil.</translation> <translation id="6196640612572343990">Üçüncü tərəf kukiləri blok edin</translation> @@ -4442,6 +4465,7 @@ <translation id="6451591602925140504">{NUM_PAGES,plural, =0{<ph name="PAGE_TITLE" />}=1{<ph name="PAGE_TITLE" /> və daha 1 tab}other{<ph name="PAGE_TITLE" /> və daha # tab}}</translation> <translation id="6451689256222386810">Əgər parol sözü unutmusunuzsa və ya bu ayarı dəyişmək istəyirsinizsə, <ph name="BEGIN_LINK" />sinxronizasiyanı sıfırlayın<ph name="END_LINK" /></translation> <translation id="6452181791372256707">Rədd edin</translation> +<translation id="6452251728599530347"><ph name="PERCENT" /> tamamlanıb</translation> <translation id="6452961788130242735">Şəbəkə problemi və ya uyğunsuz sahə</translation> <translation id="6455264371803474013">Xüsusi saytlarda</translation> <translation id="6455894534188563617">&Yeni Qovluq</translation> @@ -4498,6 +4522,7 @@ <ph name="EVENT_NAME" /></translation> <translation id="6520876759015997832">Axtarış nəticəsi <ph name="LIST_POSITION" />/<ph name="LIST_SIZE" />: <ph name="SEARCH_RESULT_TEXT" />. Bölməyə keçmək üçün Enter üzərinə basın.</translation> <translation id="652492607360843641"><ph name="NETWORK_TYPE" /> şəbəkəsinə qoşulmusunuz.</translation> +<translation id="6527081081771465939">Naməlum Wi-Fi güvənlik protokolu</translation> <translation id="6527303717912515753">Paylaşın</translation> <translation id="6528513914570774834">Bu cihazdakı digər istifadəçilərin şəbəkədən istifadə etmələrinə icazə verin</translation> <translation id="652948702951888897">Chrome tarixçəsi</translation> @@ -4614,6 +4639,7 @@ <translation id="6680442031740878064">Əlçatandır: <ph name="AVAILABLE_SPACE" /></translation> <translation id="6680650203439190394">Qiymət</translation> <translation id="6681668084120808868">Fotoşəkil çəkin</translation> +<translation id="6684827949542560880">Ən son güncəlləmə endirilir</translation> <translation id="668599234725812620">Google Play'i açın</translation> <translation id="6686490380836145850">Sağ panelləri bağlayın</translation> <translation id="6686817083349815241">Parolunuzu yadda saxlayın</translation> @@ -4723,6 +4749,7 @@ <translation id="6812841287760418429">Dəyişiklikləri saxlayın</translation> <translation id="6817174620439930047">Sayt, MIDI cihazlarına daxil olmaq üçün sistem eksklüziv mesajlarından istifadə etmək istədikdə icazə alsın (tövsiyə olunur)</translation> <translation id="6818198425579322765">Tərcümə ediləcək səhifənin dili</translation> +<translation id="6818802132960437751">Daxili virus qoruması</translation> <translation id="682123305478866682">Yayım masaüstü</translation> <translation id="6823174134746916417">Taçpedin toxunaraq klikləmə funksiyası</translation> <translation id="6823506025919456619">Cihazlarınızı görmək üçün Chrome'a daxil olmalısınız</translation> @@ -5369,6 +5396,7 @@ <translation id="7631205654593498032">Cihazlara qoşularkən <ph name="DEVICE_TYPE" /> cihazının bunları edə bilməsi ilə razılaşırsınız:</translation> <translation id="7631887513477658702">Bu növ faylları həmişə açın</translation> <translation id="7632948528260659758">Bu köşk tətbiqləri güncəlləşə bilmədi:</translation> +<translation id="7633724038415831385">Güncəlləmə üçün yalnız bu dəfə gözləyəcəksiniz. Chromebook'larda proqram güncəlləmələri arxa fonda baş verir.</translation> <translation id="7634566076839829401">Xəta baş verdi. Yenidən cəhd edin.</translation> <translation id="763632859238619983">Heç bir sayta ödəniş meneceri quraşdırmaq icazəsi verməyin</translation> <translation id="7636919061354591437">Bu cihazda quraşdırın</translation> @@ -5647,6 +5675,7 @@ <translation id="7933314993013528982">{NUM_TABS,plural, =1{Saytı Səssiz Rejimdən Çıxarın}other{Saytları Səssiz Rejimdən Çıxarın}}</translation> <translation id="7933634003144813719">Paylaşılan qovluqları idarə edin</translation> <translation id="793531125873261495">Virtual cihazı endirmək alınmadı. Sonra yenidən cəhd edin.</translation> +<translation id="7936303884198020182">Ad serveri tapılmadı</translation> <translation id="7938594894617528435">Hazırda oflayndır</translation> <translation id="7939062555109487992">Qabaqcıl seçimlər</translation> <translation id="7939412583708276221">Hər bir halda saxlamaq</translation> @@ -5888,6 +5917,7 @@ <translation id="8226742006292257240">Aşağıdakı kompüterinizə təyin olunmuş təsadüfən yaradılmış TPM paroludur:</translation> <translation id="8227119283605456246">Fayl qoşun</translation> <translation id="8230134520748321204"><ph name="ORIGIN" /> üçün parol yadda saxlanılsın?</translation> +<translation id="8230672074305416752">Defolt şəbəkə girişini yoxlamaq alınmadı</translation> <translation id="8234795456569844941">Bu problemin həll edilməsində mühəndislərimizə yardım edin. Profil xəta mesajını əldə etmədən öncə nə baş verdiyini bizə deyin:</translation> <translation id="8236917170563564587">Əvəzinə bu tabı paylaşın</translation> <translation id="8237647586961940482">Tünd-çəhrayı və qırmızı</translation> @@ -5948,6 +5978,7 @@ <translation id="8288032458496410887"><ph name="APP" /> tətbiqini sistemdən silin...</translation> <translation id="8289128870594824098">Disk ölçüsü</translation> <translation id="8291967909914612644">Əsas səhifə provayder ölkəsi</translation> +<translation id="8293206222192510085">Əlfəcin əlavə edin</translation> <translation id="8294431847097064396">Mənbə</translation> <translation id="8297006494302853456">Zəif</translation> <translation id="8299319456683969623">Hazırda oflaynsınız</translation> @@ -5997,6 +6028,7 @@ <translation id="8363095875018065315">stabil</translation> <translation id="8363142353806532503">Mikrofon blok edildi</translation> <translation id="8363763184161554204"><ph name="PERMISSION" /> üçün icazə verilib</translation> +<translation id="8364946094152050673">Boş ad serverləri</translation> <translation id="8366396658833131068">Şəbəkə bağlantınız bərpa oldu. Fərqli şəbəkə seçin və ya kiosk tətbiqini işə salmaq üçün "Davam edin" düyməsinə basın.</translation> <translation id="8368027906805972958">Naməlum və ya dəstəklənməyən cihaz (<ph name="DEVICE_ID" />)</translation> <translation id="8368859634510605990">&Bütün əlfəcinləri açın</translation> @@ -6082,8 +6114,10 @@ <translation id="8472623782143987204">avadanlıqla yedəklənmiş</translation> <translation id="8473863474539038330">Ünvanlar və s.</translation> <translation id="8475313423285172237">Kompüterinizdə başqa bir proqram Chrome'un işləməsini dəyişən artırma əlavə etdi.</translation> +<translation id="8475690821716466388">WiFi şəbəkəsi zəif protokol WEP PSK ilə qorunur</translation> <translation id="8477241577829954800">Dəyişdirildi</translation> <translation id="8477384620836102176">&Ümumi</translation> +<translation id="8477551185774834963">DNS gecikməsi icazə verilən həddən azca yuxarıdır</translation> <translation id="8480082892550707549">Hətta faylları bu syatdan daha əvvəllər yükləmisinizsə də, sayt müvəqqəti olaraq güvənsiz ola bilər (hücum edilib). Bu faylı daha sonra endirməyə çalışın.</translation> <translation id="8480869669560681089"><ph name="VENDOR_NAME" /> vendorundan naməlum cihaz</translation> <translation id="8481187309597259238">USB İcazəsini təsdiq edin</translation> @@ -6135,6 +6169,7 @@ <translation id="8546930481464505581">Toxunuş Panelini fərdiləşdirin</translation> <translation id="8547013269961688403">Tam ekran böyüdücüsünü aktiv edin</translation> <translation id="85486688517848470">Yuxarı cərgə düymələrinin funksiyasını dəyişmək üçün Axtarış düyməsini basılı saxlayın</translation> +<translation id="8549316893834449916">Chromebook'a Google Hesabınız (Gmail, Drive, YouTube və daha çoxuna daxil olmaq üçün istifadə etdiyiniz hesab) ilə daxil olacaqsınız.</translation> <translation id="8551388862522347954">Lisenziyalar</translation> <translation id="8551588720239073785">Tarix və vaxt ayarları</translation> <translation id="8553342806078037065">Digər insanları idarə edin</translation> @@ -6273,6 +6308,7 @@ <translation id="8720200012906404956">Mobil şəbəkə axtarılır. <ph name="BEGIN_LINK" />Ətraflı məlumat<ph name="END_LINK" /></translation> <translation id="8720816553731218127">Quraşdırma vaxtının atributlarını başlatmaq çox vaxt aparır.</translation> <translation id="8722912030556880711">İstifadə və diaqnostika datasını göndərin. Bu cihaz hazırda Google'a diaqnostika, cihaz və tətbiq istifadə datasını avtomatik göndərir. Bu, sistem və tətbiq sabitliyi və digər təkmilləşdirmələrə kömək edəcək. Ümumi data, həmçinin, Google tətbiqləri və Android developerləri kimi partnyorlara kömək edəcək. Əlavə Veb və Tətbiq Fəaliyyəti ayarı aktiv edilərsə, bu data Google Hesabında yadda saxlana bilər. <ph name="BEGIN_LINK2" />Ətraflı Məlumat<ph name="END_LINK2" /></translation> +<translation id="8723108084122415655">Qeyri-defolt şəbəkə gecikmə həddindən yuxarıdır</translation> <translation id="8724405322205516354">Bu ikonanı görən zaman identifikasiya və ya satınalmaları təsdiq etmək üçün barmaq izindən istifadə edin.</translation> <translation id="8724409975248965964">Barmaq izi əlavə edildi</translation> <translation id="8724859055372736596">Qovluqda göstərin</translation> @@ -6448,6 +6484,7 @@ <translation id="8909833622202089127">Sayt məkanınızı izləyir</translation> <translation id="8910146161325739742">Ekranınızı paylaşın</translation> <translation id="8910222113987937043">Əlfəcin, tarixçə, parol və digər ayarlarınızdakı dəyişikliklər artıq Google Hesabınıza sinxronizasiya olunmayacaq. Buna baxmayaraq, mövcud datanız Google hesabınızın yaddaşında qalacaq və <ph name="BEGIN_LINK" />Google İdarə Paneli<ph name="END_LINK" /> tərəfindən idarə oluna biləcək.</translation> +<translation id="8910721771319628100">Defolt şəbəkə gecikmə həddindən yuxarıdır</translation> <translation id="8912362522468806198">Google Hesabı</translation> <translation id="8912793549644936705">Dartın</translation> <translation id="8912810933860534797">Avtomatik skanı aktiv edin</translation>
diff --git a/chrome/app/resources/generated_resources_be.xtb b/chrome/app/resources/generated_resources_be.xtb index 86094a58..32ed25ef 100644 --- a/chrome/app/resources/generated_resources_be.xtb +++ b/chrome/app/resources/generated_resources_be.xtb
@@ -71,6 +71,7 @@ <translation id="1070705170564860382">Адкрыецца ў альтэрнатыўным браўзеры праз <ph name="COUNTDOWN_SECONDS" /> с</translation> <translation id="1071917609930274619">Шыфраванне даных</translation> <translation id="1072700771426194907">Выяўлена прылада USB</translation> +<translation id="107278043869924952">Выкарыстоўваць разам з паролем PIN-код</translation> <translation id="1076176485976385390">Ажыццяўляць навігацыю па старонках з дапамогай тэкставага курсора</translation> <translation id="1076698951459398590">Уключыць тэму</translation> <translation id="1076818208934827215">Microsoft Internet Explorer</translation> @@ -524,7 +525,6 @@ <translation id="1608668830839595724">Іншыя дзеянні для выбраных элементаў</translation> <translation id="161042844686301425">Блакітны</translation> <translation id="1611432201750675208">Прылада заблакіравана</translation> -<translation id="1611584202130317952">Паток падрыхтоўкі быў перапынены. Паўтарыце спробу або звярніцеся да ўладальніка прылады ці адміністратара.</translation> <translation id="1614511179807650956">Магчыма, вы дасягнулі ліміту мабільнай перадачы даных. Каб купіць дадатковы трафік, наведайце партал актывацыі <ph name="NAME" /></translation> <translation id="161460670679785907">Не ўдалося знайсці тэлефон</translation> <translation id="1616206807336925449">Пашырэнне не патрабуе спецыяльных дазволаў.</translation> @@ -533,6 +533,7 @@ <translation id="1618268899808219593">Да&ведачны цэнтр</translation> <translation id="1620307519959413822">Няправільны пароль. Паўтарыце спробу або націсніце на словы "Забылі пароль?", каб скінуць яго.</translation> <translation id="1620510694547887537">Камера</translation> +<translation id="1621831347985899379">Даныя на прыладзе "<ph name="DEVICE_TYPE" />" будуць выдалены</translation> <translation id="1622054403950683339">Скасаваць сувязь з сеткай Wi-Fi</translation> <translation id="1623132449929929218">Відарысы пакуль што недаступныя. Каб паглядзець калекцыі шпалер, падключыцеся да інтэрнэту.</translation> <translation id="1623723619460186680">Памяншэнне сіняга святла</translation> @@ -760,6 +761,7 @@ <translation id="1877377290348678128">Метка (неабавязкова)</translation> <translation id="1877520246462554164">Не ўдалося атрымаць маркер аўтэнтыфікацыі. Выйдзіце і ўвайдзіце зноў, каб паўтарыць спробу.</translation> <translation id="1877860345998737529">Прызначэнне дзеянняў пераключальнікам</translation> +<translation id="1878155070920054810">Chromebook можа разрадзіцца да таго, як абнаўленне завершыцца. Каб спампоўванне не перапынілася, упэўніцеся, што прылада зараджаецца належным чынам.</translation> <translation id="1879000426787380528">Уваход з уліковага запісу</translation> <translation id="1880905663253319515">Выдаліць сертыфікат "<ph name="CERTIFICATE_NAME" />"?</translation> <translation id="1881445033931614352">Раскладка клавіятуры</translation> @@ -964,6 +966,7 @@ <translation id="2148219725039824548">Не ўдалося падключыць абагулены рэсурс. Вызначаны рэсурс не знойдзены ў сетцы.</translation> <translation id="2148756636027685713">Фармаціраванне завершана</translation> <translation id="2148892889047469596">Укладка трансляцыі</translation> +<translation id="2149973817440762519">Рэдагаваць закладку</translation> <translation id="2150139952286079145">Пошук пунктаў прызначэння</translation> <translation id="2150661552845026580">Дадаць пашырэнне "<ph name="EXTENSION_NAME" />"?</translation> <translation id="2151576029659734873">Уведзены няправільны індэкс укладкі.</translation> @@ -1073,6 +1076,7 @@ <translation id="2270627217422354837">Абмен данымі з прыладамі ў наступных даменах: <ph name="DOMAINS" /></translation> <translation id="2272570998639520080">Бакал марціні</translation> <translation id="2273119997271134996">Праблема з відэапортам док-станцыі</translation> +<translation id="2274840746523584236">Зарадзіце Chromebook</translation> <translation id="2276503375879033601">Дадаць іншыя праграмы</translation> <translation id="2277255602909579701">Усе файлы cookie і даныя сайтаў</translation> <translation id="2277769717710009150">{COUNT,plural, =1{1 элемент скапіраваны}one{# элемент скапіраваны}few{# элементы скапіравана}many{# элементаў скапіравана}other{# элемента скапіравана}}</translation> @@ -1915,6 +1919,7 @@ <translation id="3308116878371095290">Быў прадухілены запіс файлаў cookie гэтай старонкай.</translation> <translation id="3308134619352333507">Кнопка "Схаваць"</translation> <translation id="3308852433423051161">Загрузка Памочніка Google...</translation> +<translation id="3310640316857623290">Затрымка DNS значна перавышае дапушчальнае парогавае значэнне</translation> <translation id="3311445899360743395">Даныя, звязаныя з гэтай праграмай, могуць быць выдалены з гэтай прылады.</translation> <translation id="3312424061798279731">Уключаныя мовы</translation> <translation id="3313622045786997898">Значэнне подпісу сертыфіката</translation> @@ -1927,6 +1932,7 @@ <translation id="3323295311852517824">{NUM_FILES,plural, =0{Гэтыя даныя змяшчаюць канфідэнцыяльнае або небяспечнае змесціва. Выдаліце гэта змесціва і паўтарыце спробу.}=1{Гэты файл змяшчае канфідэнцыяльнае або небяспечнае змесціва. Выдаліце гэта змесціва і паўтарыце спробу.}one{Гэтыя файлы змяшчаюць канфідэнцыяльнае або небяспечнае змесціва. Выдаліце гэта змесціва і паўтарыце спробу.}few{Гэтыя файлы змяшчаюць канфідэнцыяльнае або небяспечнае змесціва. Выдаліце гэта змесціва і паўтарыце спробу.}many{Гэтыя файлы змяшчаюць канфідэнцыяльнае або небяспечнае змесціва. Выдаліце гэта змесціва і паўтарыце спробу.}other{Гэтыя файлы змяшчаюць канфідэнцыяльнае або небяспечнае змесціва. Выдаліце гэта змесціва і паўтарыце спробу.}}</translation> <translation id="3323521181261657960">Бонус! Час карыстання павялічыўся</translation> <translation id="3325910708063135066">Камера і мікрафон выключаны ў наладах System Preferences сістэмы Mac</translation> +<translation id="3327050066667856415">Прылады Chromebook распрацаваны для вашай бяспекі. Ваша прылада абараняецца ад шкодных праграм аўтаматычна – дадатковае праграмнае забеспячэнне не патрабуецца.</translation> <translation id="3328489342742826322">Пры аднаўленні з рэзервовай копіі будуць выдалены ўсе існуючыя праграмы Linux і даныя ў папцы файлаў Linux.</translation> <translation id="3331321258768829690">(<ph name="UTCOFFSET" />) <ph name="LONGTZNAME" /> (<ph name="EXEMPLARCITY" />)</translation> <translation id="3331974543021145906">Звесткі пра праграму</translation> @@ -2116,6 +2122,7 @@ <translation id="3556433843310711081">Разблакіраваць сайт для вас можа ваш менеджар</translation> <translation id="3557101512409028104">Наладжвайце доступ да вэб-сайтаў і абмяжоўвайце час карыстання прыладай праз Family Link</translation> <translation id="3559262020195162408">Не ўдалося ўсталяваць палітыку на прыладу.</translation> +<translation id="3559533181353831840">Засталося: <ph name="TIME_LEFT" /></translation> <translation id="3560034655160545939">&Праверка правапісу</translation> <translation id="3562423906127931518">Гэты працэс можа заняць некалькі хвілін. Ідзе наладжванне кантэйнера Linux.</translation> <translation id="3563432852173030730">Не ўдалося спампаваць праграму-кіёск.</translation> @@ -2158,6 +2165,7 @@ <translation id="3602290021589620013">Перадпрагляд</translation> <translation id="3603622770190368340">Атрыманне сертыфіката сеткі</translation> <translation id="3604713164406837697">Змяніць шпалеры</translation> +<translation id="360565022852130722">Сетка Wi-Fi абаронена слабым пратаколам WEP 802.1x</translation> <translation id="3605780360466892872">Бізнесмен</translation> <translation id="3608576286259426129">Папярэдні прагляд відарыса карыстальніка</translation> <translation id="3610369246614755442">Вентылятару док-станцыі патрабуецца абслугоўванне</translation> @@ -2194,6 +2202,7 @@ <translation id="3639220004740062347">Выйсці з рэжыму чытання</translation> <translation id="3640214691812501263">Дадаць пашырэнне "<ph name="EXTENSION_NAME" />" для карыстальніка <ph name="USER_NAME" />?</translation> <translation id="3640613767643722554">Навучыце Памочніка распазнаваць ваш голас</translation> +<translation id="3643014427358482789">Сайт <ph name="DOMAIN" /> выключае адладку ADB, што прывядзе да скіду налад прылады <ph name="DEVICE_TYPE" />. Зрабіце рэзервовыя копіі файлаў перад перазапускам.</translation> <translation id="3645372836428131288">Крыху перамясціце палец, каб была захоплена іншая частка адбітка.</translation> <translation id="3647998456578545569">{COUNT,plural, =1{З прылады "<ph name="DEVICE_NAME" />" атрыманы даныя (<ph name="ATTACHMENTS" />)}one{З прылады "<ph name="DEVICE_NAME" />" атрыманы даныя (<ph name="ATTACHMENTS" />)}few{З прылады "<ph name="DEVICE_NAME" />" атрыманы даныя (<ph name="ATTACHMENTS" />)}many{З прылады "<ph name="DEVICE_NAME" />" атрыманы даныя (<ph name="ATTACHMENTS" />)}other{З прылады "<ph name="DEVICE_NAME" />" атрыманы даныя (<ph name="ATTACHMENTS" />)}}</translation> <translation id="3648348069317717750">Выяўлена прылада: <ph name="USB_DEVICE_NAME" /></translation> @@ -2282,6 +2291,7 @@ <translation id="3732857534841813090">Інфармацыя, звязаная з Памочнікам Google</translation> <translation id="3733127536501031542">SSL-сервер з шыфраваннем Step-up</translation> <translation id="3735740477244556633">Парадак сартавання</translation> +<translation id="3738632186060045350">Даныя на прыладзе <ph name="DEVICE_TYPE" /> будуць выдалены праз 24 гадзіны</translation> <translation id="3738924763801731196"><ph name="OID" />:</translation> <translation id="3739254215541673094">Адкрыць праграму <ph name="APPLICATION" />?</translation> <translation id="3742055079367172538">Здымак экрана зроблены</translation> @@ -2469,6 +2479,7 @@ <translation id="3937734102568271121">Заўсёды перакладаць з мовы <ph name="LANGUAGE" /></translation> <translation id="3938128855950761626">Прылады ад пастаўшчыка <ph name="VENDOR_ID" /></translation> <translation id="3940233957883229251">Уключыць аўтаматычны паўтор</translation> +<translation id="3941014780699102620">Не ўдалося супаставіць хост</translation> <translation id="3941565636838060942">Каб прыбраць доступ да гэтай праграмы, трэба выдаліць яе з дапамогай <ph name="CONTROL_PANEL_APPLET_NAME" /> на Панэлі кіравання. @@ -2631,6 +2642,7 @@ <translation id="413121957363593859">Кампаненты</translation> <translation id="4131410914670010031">Чорна-белы друк</translation> <translation id="413193092008917129">Паслядоўнасці дзеянняў для дыягностыкі сеткі</translation> +<translation id="4132183752438206707">Шукайце праграмы ў Краме Google Play</translation> <translation id="4133076602192971179">Каб змяніць пароль, адкрыйце праграму</translation> <translation id="4136203100490971508">Начная падсветка выключыцца аўтаматычна пасля ўзыходу сонца</translation> <translation id="41365691917097717">Калі працягнуць, будзе ўключана адладка ADB для стварэння і тэсціравання праграм для Android. Звярніце ўвагу, што, уключыўшы ADB, вы дазваляеце ўсталёўваць праграмы для Android, якія не былі спраўджаны Google, а для выключэння ADB патрабуецца скід налад да заводскіх значэнняў.</translation> @@ -2880,6 +2892,8 @@ <translation id="4479877282574735775">Ідзе наладжванне віртуальнай машыны. Гэта можа заняць некалькі хвілін.</translation> <translation id="4480590691557335796">Chrome можа знаходзіць небяспечнае праграмнае забеспячэнне на вашым камп'ютары і выдаляць яго</translation> <translation id="4481530544597605423">Разлучаныя прылады</translation> +<translation id="4483049906298469269">Не ўдалося праверыць сувязь з нестандартным сеткавым шлюзам</translation> +<translation id="4487489714832036847">Замест традыцыйнага праграмнага забеспячэння прылады Chromebook выкарыстоўваюць праграмы. Усталёўвайце праграмы для эфектыўнай работы, забаў і не толькі.</translation> <translation id="4488502501195719518">Выдаліць усе даныя?</translation> <translation id="4493468155686877504">Рэкамендуецца (<ph name="INSTALL_SIZE" />)</translation> <translation id="4495419450179050807">Не паказваць на гэтай старонцы</translation> @@ -2930,6 +2944,7 @@ <translation id="4546692474302123343">Галасавы ўвод з дапамогай Памочніка Google</translation> <translation id="4547659257713117923">Няма ўкладак з іншых прылад</translation> <translation id="4547672827276975204">Вызначаць аўтаматычна</translation> +<translation id="4548483925627140043">Сігнал не знойдзены</translation> <translation id="4549791035683739768">На вашым ключы бяспекі няма захаваных адбіткаў пальцаў</translation> <translation id="4551763574344810652">Каб адрабіць, націсніце <ph name="MODIFIER_KEY_DESCRIPTION" /></translation> <translation id="4552089082226364758">Флэш-даныя</translation> @@ -2969,6 +2984,7 @@ <translation id="4582563038311694664">Скінуць усе налады</translation> <translation id="4585793705637313973">Рэдагаванне старонкі</translation> <translation id="4586275095964870617">Адрас "<ph name="URL" />" не ўдалося адкрыць у альтэрнатыўным браўзеры. Звярніцеся да сістэмнага адміністратара.</translation> +<translation id="458794348635939462">Не ўдалося супаставіць усе хосты</translation> <translation id="4589713469967853491">Журналы захаваны ў каталозе "Спампоўкі".</translation> <translation id="4590324241397107707">Сховішча базы даных</translation> <translation id="4592891116925567110">Праграма для рысавання пяром</translation> @@ -3352,6 +3368,7 @@ <translation id="5089810972385038852">Штат</translation> <translation id="5094721898978802975">Абменьвацца данымі з уласнымі праграмамі, якія дазваляюць сумесную працу</translation> <translation id="5097002363526479830">Не атрымалася падключыцца да сеткі "<ph name="NAME" />": <ph name="DETAILS" /></translation> +<translation id="5097649414558628673">Інструмент: <ph name="PRINT_NAME" /></translation> <translation id="5097874180538493929">Аўтаматычна націскаць клавішу мышы, калі курсор спыняецца</translation> <translation id="5101042277149003567">Адкрыць усе закладкі</translation> <translation id="5101839224773798795">Аўтаматычна націскаць, калі курсор спыняецца</translation> @@ -3570,6 +3587,7 @@ <translation id="5370819323174483825">&Перазагрузіць</translation> <translation id="5372529912055771682">Прадстаўлены рэжым рэгістрацыі не падтрымліваецца ў гэтай версіі аперацыйнай сістэмы. Праверце, ці з'яўляецца ваша версія актуальнай, і паўтарыце спробу.</translation> <translation id="5372579129492968947">Адмацаваць пашырэнне</translation> +<translation id="5372659122375744710">Сетка Wi-Fi не абаронена</translation> <translation id="5376169624176189338">Каб перайсці назад, націсніце кнопкай мышы, каб паглядзець гісторыю – утрымлівайце</translation> <translation id="5376931455988532197">Файл занадта вялікі</translation> <translation id="5377721922656071359">{COUNT,plural, =1{Даныя (<ph name="ATTACHMENTS" />) адпраўлены на прыладу "<ph name="DEVICE_NAME" />"}one{Даныя (<ph name="ATTACHMENTS" />) адпраўлены на прыладу "<ph name="DEVICE_NAME" />"}few{Даныя (<ph name="ATTACHMENTS" />) адпраўлены на прыладу "<ph name="DEVICE_NAME" />"}many{Даныя (<ph name="ATTACHMENTS" />) адпраўлены на прыладу "<ph name="DEVICE_NAME" />"}other{Даныя (<ph name="ATTACHMENTS" />) адпраўлены на прыладу "<ph name="DEVICE_NAME" />"}}</translation> @@ -3599,6 +3617,7 @@ <translation id="5414566801737831689">Паказваць значкі сайтаў, якія вы наведваеце</translation> <translation id="5417312524372586921">Тэмы браўзера</translation> <translation id="5419405654816502573">Voice Match</translation> +<translation id="5420274697768050645">Для большай бяспекі патрабаваць пры разблакіроўцы прылады ўвесці пароль</translation> <translation id="5420438158931847627">Вызначае рэзкасць тэксту і відарысаў</translation> <translation id="5422221874247253874">Пункт доступу</translation> <translation id="5422781158178868512">На жаль, знешняе сховішча распазнаць не ўдалося.</translation> @@ -3723,6 +3742,7 @@ <translation id="5548606607480005320">Праверка бяспекі</translation> <translation id="5551573675707792127">Клавіятура і ўвод тэксту</translation> <translation id="5553089923092577885">Супастаўленні палітык сертыфікатаў</translation> +<translation id="5554403733534868102">Пасля не трэба будзе чакаць, пакуль спампуюцца абнаўленні</translation> <translation id="5554489410841842733">Гэты значок будзе бачным, калі пашырэнне можа працаваць на бягучай старонцы.</translation> <translation id="5554720593229208774">Цэнтр сертыфікацыі электроннай пошты</translation> <translation id="5556459405103347317">Перазагрузіць</translation> @@ -4136,6 +4156,7 @@ <translation id="6061882183774845124">Адправіць спасылку на вашы прылады</translation> <translation id="6064217302520318294">Блакіроўка экрана</translation> <translation id="6065289257230303064">Атрыбуты каталога суб'ектаў сертыфіката</translation> +<translation id="6069464830445383022">Выкарыстоўвайце для ўваходу ў Chromebook свой Уліковы запіс Google</translation> <translation id="6069671174561668781">Задаць шпалеры</translation> <translation id="6071181508177083058">пацвердзіце пароль</translation> <translation id="6071576563962215370">Не атрымалася заблакіраваць у сістэме атрыбуты часу ўсталявання на прыладзе.</translation> @@ -4178,6 +4199,7 @@ <translation id="6104311680260824317">Не ўдалося далучыць прыладу да дамена. Сервер не падтрымлівае вызначаныя тыпы шыфравання Kerberos. Наладзіць шыфраванне можна ў раздзеле "Іншыя параметры".</translation> <translation id="6104796831253957966">Чарга друку запоўнена</translation> <translation id="6105994589138235234">Сінхранізацыя Chrome</translation> +<translation id="6108689792487843350">Шлюз недаступны</translation> <translation id="6111972606040028426">Уключыць Памочніка Google</translation> <translation id="6112294629795967147">Каб змяніць памер, націсніце тут</translation> <translation id="6112727384379533756">Дадаць білет</translation> @@ -4238,6 +4260,7 @@ <translation id="6178664161104547336">Выберыце сертыфікат</translation> <translation id="6181431612547969857">Спампоўванне заблакіравана</translation> <translation id="6185132558746749656">Месцазнаходжанне прылады</translation> +<translation id="6191293864534840972">Серверы даменных імён маюць няправільны фармат</translation> <translation id="6195446518998936840">Для наладжвання бацькоўскага кантролю ў дзіцяці павінен быць Уліковы запіс Google, якім вы будзеце дапамагаць яму кіраваць. Выкарыстоўваючы праграму Family Link, вы можаце задаваць абмежаванні часу карыстання прыладамі, даваць дазвол на наведванне вэб-сайтаў або блакіраваць іх і не толькі.</translation> <translation id="6195693561221576702">Гэту прыладу нельга наладзіць у пазасеткавым дэманстрацыйным рэжыме.</translation> <translation id="6196640612572343990">Блакіраваць староннія файлы cookie</translation> @@ -4451,6 +4474,7 @@ <translation id="6451591602925140504">{NUM_PAGES,plural, =0{<ph name="PAGE_TITLE" />}=1{<ph name="PAGE_TITLE" /> і яшчэ адна ўкладка}one{<ph name="PAGE_TITLE" /> і яшчэ # укладка}few{<ph name="PAGE_TITLE" /> і яшчэ # укладкі}many{<ph name="PAGE_TITLE" /> і яшчэ # укладак}other{<ph name="PAGE_TITLE" /> і яшчэ # укладкі}}</translation> <translation id="6451689256222386810">Калі вы забылі фразу-пароль або хочаце змяніць гэту наладу, <ph name="BEGIN_LINK" />скіньце сінхранізацыю<ph name="END_LINK" />.</translation> <translation id="6452181791372256707">Адхіліць</translation> +<translation id="6452251728599530347"><ph name="PERCENT" /> выканана</translation> <translation id="6452961788130242735">Праблема з сеткай або няправільная вобласць</translation> <translation id="6455264371803474013">На канкрэтных сайтах</translation> <translation id="6455894534188563617">&Новая папка</translation> @@ -4507,6 +4531,7 @@ <ph name="EVENT_NAME" /></translation> <translation id="6520876759015997832">Вынік пошуку <ph name="LIST_POSITION" /> з <ph name="LIST_SIZE" />: <ph name="SEARCH_RESULT_TEXT" />. Каб перайсці да раздзела, націсніце Enter.</translation> <translation id="652492607360843641">Тып сеткі, да якой вы падключаны, – <ph name="NETWORK_TYPE" />.</translation> +<translation id="6527081081771465939">Невядомы пратакол сістэмы бяспекі Wi-Fi</translation> <translation id="6527303717912515753">Абагуліць</translation> <translation id="6528513914570774834">Дазволіць іншым карыстальнікам прылады выкарыстоўваць гэту сетку</translation> <translation id="652948702951888897">Гісторыя праглядаў Chrome</translation> @@ -4623,6 +4648,7 @@ <translation id="6680442031740878064">Даступна: <ph name="AVAILABLE_SPACE" /></translation> <translation id="6680650203439190394">Хуткасць</translation> <translation id="6681668084120808868">Зрабіць фота</translation> +<translation id="6684827949542560880">Ідзе спампоўка апошняга абнаўлення</translation> <translation id="668599234725812620">Адкрыць Google Play</translation> <translation id="6686490380836145850">Закрыць укладкі справа</translation> <translation id="6686817083349815241">Захаваць пароль</translation> @@ -4732,6 +4758,7 @@ <translation id="6812841287760418429">Захаваць змяненні</translation> <translation id="6817174620439930047">Запытваць, калі сайт хоча выкарыстоўваць эксклюзіўныя сістэмныя паведамленні для доступу да MIDI-прылад (рэкамендуецца)</translation> <translation id="6818198425579322765">З якой мовы перакладаць старонку</translation> +<translation id="6818802132960437751">Убудаваная абарона ад вірусаў</translation> <translation id="682123305478866682">Трансляцыя працоўнага стала</translation> <translation id="6823174134746916417">Націсканне дотыкам да сэнсарнай панэлі</translation> <translation id="6823506025919456619">Каб паглядзець прылады, трэба ўвайсці ў Chrome</translation> @@ -5378,6 +5405,7 @@ <translation id="7631205654593498032">Пры падключэнні прылад вы згаджаецеся, што <ph name="DEVICE_TYPE" /> можа:</translation> <translation id="7631887513477658702">&Заўсёды адкрываць файлы гэтага тыпу</translation> <translation id="7632948528260659758">Наступныя праграмы-кіёскі абнавіць не ўдалося:</translation> +<translation id="7633724038415831385">Гэта адзіны раз, калі вам трэба пачакаць, пакуль спампуецца абнаўленне. На прыладах Chromebook абнаўленні праграмнага забеспячэння ўсталёўваюцца ў фонавым рэжыме.</translation> <translation id="7634566076839829401">Нешта пайшло не так. Паўтарыце спробу.</translation> <translation id="763632859238619983">Не дазваляць сайтам усталёўваць апрацоўшчыкі аплаты</translation> <translation id="7636919061354591437">Усталяваць на гэту прыладу</translation> @@ -5656,6 +5684,7 @@ <translation id="7933314993013528982">{NUM_TABS,plural, =1{Уключыць гук на сайце}one{Уключыць гук на сайтах}few{Уключыць гук на сайтах}many{Уключыць гук на сайтах}other{Уключыць гук на сайтах}}</translation> <translation id="7933634003144813719">Кіраваць абагуленымі папкамі</translation> <translation id="793531125873261495">Памылка спампоўвання віртуальнай машыны. Паўтарыце спробу.</translation> +<translation id="7936303884198020182">Серверы даменных імён не знойдзены</translation> <translation id="7938594894617528435">Зараз па-за сеткай</translation> <translation id="7939062555109487992">Дадатковыя параметры</translation> <translation id="7939412583708276221">Захаваць усё роўна</translation> @@ -5898,6 +5927,7 @@ <translation id="8226742006292257240">Ніжэй паказаны аўтаматычна створаны пароль TPM, прызначаны для вашага камп'ютара:</translation> <translation id="8227119283605456246">Далучыць файл</translation> <translation id="8230134520748321204">Захаваць пароль для <ph name="ORIGIN" />?</translation> +<translation id="8230672074305416752">Не ўдалося праверыць сувязь са стандартным сеткавым шлюзам</translation> <translation id="8234795456569844941">Дапамажыце нашым інжынерам вырашыць праблему. Апішыце, што адбывалася перад тым, як вы ўбачылі паведамленне пра памылку ў профілі:</translation> <translation id="8236917170563564587">Абагуліць гэту ўкладку</translation> <translation id="8237647586961940482">Цёмна-ружовы і чырвоны</translation> @@ -5958,6 +5988,7 @@ <translation id="8288032458496410887">Выдаліць <ph name="APP" />...</translation> <translation id="8289128870594824098">Памер дыска</translation> <translation id="8291967909914612644">Родная краіна аператара</translation> +<translation id="8293206222192510085">Дадаванне закладкі</translation> <translation id="8294431847097064396">Крыніца</translation> <translation id="8297006494302853456">Слабы</translation> <translation id="8299319456683969623">Вы зараз па-за сеткай.</translation> @@ -6007,6 +6038,7 @@ <translation id="8363095875018065315">стабільна</translation> <translation id="8363142353806532503">Мікрафон заблакіраваны</translation> <translation id="8363763184161554204">дадзены дазвол (<ph name="PERMISSION" />)</translation> +<translation id="8364946094152050673">Поле сервераў даменных імён пустое</translation> <translation id="8366396658833131068">Падключэнне да сеткі адноўлена. Выберыце іншую сетку або націсніце ніжэй кнопку "Працягнуць", каб запусціць праграму-кіёск.</translation> <translation id="8368027906805972958">Прылада невядомая або не падтрымліваецца (<ph name="DEVICE_ID" />)</translation> <translation id="8368859634510605990">&Адкрыць усе закладкі</translation> @@ -6092,8 +6124,10 @@ <translation id="8472623782143987204">патрабуюцца апаратныя сродкі</translation> <translation id="8473863474539038330">Адрасы і іншае</translation> <translation id="8475313423285172237">Іншая праграма на камп'ютары дадала пашырэнне, якое можа змяніць працу Chrome.</translation> +<translation id="8475690821716466388">Сетка Wi-Fi абаронена слабым пратаколам WEP PSK</translation> <translation id="8477241577829954800">Заменены</translation> <translation id="8477384620836102176">&Агульныя звесткі</translation> +<translation id="8477551185774834963">Затрымка DNS крыху перавышае дапушчальнае парогавае значэнне</translation> <translation id="8480082892550707549">Нават калі раней вы спампоўвалі файлы з гэтага сайта, ён можа быць часова небяспечным (яго маглі ўзламаць). Паспрабуйце спампаваць гэты файл пазней.</translation> <translation id="8480869669560681089">Невядомая прылада ад <ph name="VENDOR_NAME" /></translation> <translation id="8481187309597259238">Пацвердзіць дазвол доступу да USB</translation> @@ -6145,6 +6179,7 @@ <translation id="8546930481464505581">Наладзіць сэнсарную палоску</translation> <translation id="8547013269961688403">Уключыць лупу для поўнаэкраннага рэжыму</translation> <translation id="85486688517848470">Утрымлівайце клавішу пошуку, каб змяніць значэнні клавіш верхняга рада</translation> +<translation id="8549316893834449916">Вы будзеце ўваходзіць у Chromebook з дапамогай свайго Уліковага запісу Google – таго самага, які вы выкарыстоўваеце для ўваходу ў такія сэрвісы Google, як Gmail, Дыск, YouTube і іншыя.</translation> <translation id="8551388862522347954">Ліцэнзіі</translation> <translation id="8551588720239073785">Налады даты і часу</translation> <translation id="8553342806078037065">Іншыя карыстальнікі</translation> @@ -6283,6 +6318,7 @@ <translation id="8720200012906404956">Ідзе пошук мабільнай сеткі. <ph name="BEGIN_LINK" />Даведацца больш<ph name="END_LINK" /></translation> <translation id="8720816553731218127">Была пратэрмінавана ініцыялізацыя атрыбутаў installation-time ("усталяванне-час").</translation> <translation id="8722912030556880711">Адпраўка даных пра выкарыстанне і дыягностыку. Зараз прылада аўтаматычна адпраўляе ў Google даныя дыягностыкі і звесткі аб выкарыстанні прылады і праграм. Гэта інфармацыя дапаможа павысіць стабільнасць сістэмы і праграм і ўнесці іншыя паляпшэнні. Некаторыя сукупныя даныя таксама дапамогуць удасканаліць праграмы Google і будуць карыснымі для партнёраў кампаніі, напрыклад для распрацоўшчыкаў Android. Калі ўключаны дадатковыя дзеянні ў інтэрнэце і праграмах, гэтыя даныя могуць захоўвацца ва Уліковым запісе Google. <ph name="BEGIN_LINK2" />Даведацца больш<ph name="END_LINK2" /></translation> +<translation id="8723108084122415655">Затрымка ў нестандартнай сетцы перавышае парогавае значэнне</translation> <translation id="8724405322205516354">Калі вы бачыце гэты значок, вы можаце выкарыстоўваць адбіткі пальцаў для ідэнтыфікацыі або ўхвалення куплі.</translation> <translation id="8724409975248965964">Адбітак пальца дададзены</translation> <translation id="8724859055372736596">&Паказаць у папцы</translation> @@ -6460,6 +6496,7 @@ <translation id="8909833622202089127">Сайт адсочвае ваша месцазнаходжанне</translation> <translation id="8910146161325739742">Абагульванне экрана</translation> <translation id="8910222113987937043">Змены ў закладках, гісторыі, паролях і іншых наладах больш не будуць сінхранізавацца з Уліковым запісам Google. Але існуючыя даныя застануцца ва Уліковым запісе Google, і імі можна будзе кіраваць на старонцы <ph name="BEGIN_LINK" />Панэль кіравання Google<ph name="END_LINK" />.</translation> +<translation id="8910721771319628100">Затрымка ў стандартнай сетцы перавышае парогавае значэнне</translation> <translation id="8912362522468806198">Уліковы запіс Google</translation> <translation id="8912793549644936705">Расцягнуць</translation> <translation id="8912810933860534797">Уключыць аўтаматычнае сканіраванне</translation>
diff --git a/chrome/app/resources/generated_resources_bg.xtb b/chrome/app/resources/generated_resources_bg.xtb index efb610a..3935a86 100644 --- a/chrome/app/resources/generated_resources_bg.xtb +++ b/chrome/app/resources/generated_resources_bg.xtb
@@ -71,6 +71,7 @@ <translation id="1070705170564860382">Страницата ще се отвори в алтернативен браузър след <ph name="COUNTDOWN_SECONDS" /> секунди</translation> <translation id="1071917609930274619">Шифроване на данни</translation> <translation id="1072700771426194907">Открито е USB устройство</translation> +<translation id="107278043869924952">Използване на ПИН в допълнение към парола</translation> <translation id="1076176485976385390">Навигиране в страниците чрез текстов курсор</translation> <translation id="1076698951459398590">Активиране на темата</translation> <translation id="1076818208934827215">Microsoft Internet Explorer</translation> @@ -521,7 +522,6 @@ <translation id="1608668830839595724">Още действия за избраните елементи</translation> <translation id="161042844686301425">синьозелено</translation> <translation id="1611432201750675208">Устройството ви е заключено</translation> -<translation id="1611584202130317952">Процесът на обезпечаване бе прекъснат. Моля, опитайте отново или се обърнете към собственика или администратора на устройството си.</translation> <translation id="1614511179807650956">Възможно е да сте изразходвали отпуснатите ви мобилни данни. Посетете портала за активиране на <ph name="NAME" />, за да купите още данни</translation> <translation id="161460670679785907">Телефонът ви не може да бъде намерен</translation> <translation id="1616206807336925449">Това разширение не изисква специални разрешения.</translation> @@ -530,6 +530,7 @@ <translation id="1618268899808219593">П&омощен център</translation> <translation id="1620307519959413822">Грешна парола. Опитайте отново или кликнете върху „Забравена парола“, за да зададете нова.</translation> <translation id="1620510694547887537">Камера</translation> +<translation id="1621831347985899379">Данните от <ph name="DEVICE_TYPE" /> ще бъдат изтрити</translation> <translation id="1622054403950683339">Забравяне на Wi-Fi мрежа</translation> <translation id="1623132449929929218">Понастоящем няма достъп до изображенията. Моля, свържете се отново с интернет, за да видите колекциите от тапети.</translation> <translation id="1623723619460186680">Намаляване на синята светлина</translation> @@ -757,6 +758,7 @@ <translation id="1877377290348678128">Етикет (незадължителен)</translation> <translation id="1877520246462554164">Получаването на означение за удостоверяване не бе успешно. Моля, излезте от профила си и влезте отново в него, за да опитате пак.</translation> <translation id="1877860345998737529">Задаване на действия за превключвателите</translation> +<translation id="1878155070920054810">Изглежда, че батерията на вашия Chromebook ще се изтощи, преди актуализацията да завърши. Уверете се, че устройството се зарежда, за да избегнете прекъсване.</translation> <translation id="1879000426787380528">Вход като</translation> <translation id="1880905663253319515">Да се изтрие ли сертификатът „<ph name="CERTIFICATE_NAME" />“?</translation> <translation id="1881445033931614352">Клавиатурна подредба</translation> @@ -961,6 +963,7 @@ <translation id="2148219725039824548">Възникна грешка при свързването на посочения дял. Той не бе намерен в мрежата.</translation> <translation id="2148756636027685713">Форматирането завърши</translation> <translation id="2148892889047469596">Предаване на раздела</translation> +<translation id="2149973817440762519">Редактиране на отметката</translation> <translation id="2150139952286079145">Търсене на местоназначения</translation> <translation id="2150661552845026580">Да се добави ли „<ph name="EXTENSION_NAME" />“?</translation> <translation id="2151576029659734873">Въведен е невалиден индекс на раздел.</translation> @@ -1070,6 +1073,7 @@ <translation id="2270627217422354837">Обмен на данни с всяко устройство в домейните: <ph name="DOMAINS" /></translation> <translation id="2272570998639520080">Чаша за мартини</translation> <translation id="2273119997271134996">Проблем с порта за видео на докинг станцията</translation> +<translation id="2274840746523584236">Заредете своя Chromebook</translation> <translation id="2276503375879033601">Добавяне на още приложения</translation> <translation id="2277255602909579701">Всички „бисквитки“ и данни за сайтове</translation> <translation id="2277769717710009150">{COUNT,plural, =1{Копирахте 1 елемент}other{Копирахте # елемента}}</translation> @@ -1912,6 +1916,7 @@ <translation id="3308116878371095290">Задаването на „бисквитки“ от тази страница е предотвратено.</translation> <translation id="3308134619352333507">Скриване на бутона</translation> <translation id="3308852433423051161">Google Асистент се зарежда...</translation> +<translation id="3310640316857623290">Забавянето на DNS е значително над допустимия праг</translation> <translation id="3311445899360743395">Данните, свързани с това приложение, може да бъдат премахнати от устройството.</translation> <translation id="3312424061798279731">Активирани езици</translation> <translation id="3313622045786997898">Стойност на подписа на сертификата</translation> @@ -1924,6 +1929,7 @@ <translation id="3323295311852517824">{NUM_FILES,plural, =0{В тези данни има деликатно или опасно съдържание. Премахнете го и опитайте отново.}=1{В този файл има деликатно или опасно съдържание. Премахнете съответното съдържание и опитайте отново.}other{В тези файлове има деликатно или опасно съдържание. Премахнете го и опитайте отново.}}</translation> <translation id="3323521181261657960">Бонус! Получихте още време на ползване</translation> <translation id="3325910708063135066">Камерата и микрофонът са изключени в системните предпочитания за Mac</translation> +<translation id="3327050066667856415">Устройствата Chromebook са проектирани с мисъл за сигурността. Устройството ви е автоматично защитено от злонамерен софтуер – няма нужда от допълнителни програми.</translation> <translation id="3328489342742826322">При възстановяването от резервно копие ще бъдат изтрити съществуващите приложения за Linux и данните в папката с файлове на Linux.</translation> <translation id="3331321258768829690">(<ph name="UTCOFFSET" />) <ph name="LONGTZNAME" /> (<ph name="EXEMPLARCITY" />)</translation> <translation id="3331974543021145906">Информация за приложението</translation> @@ -2113,6 +2119,7 @@ <translation id="3556433843310711081">Мениджърът ви може да го отблокира за вас</translation> <translation id="3557101512409028104">Задаване на ограничения за уебсайтовете и времето на ползване с Family Link</translation> <translation id="3559262020195162408">Правилото не бе инсталирано успешно на устройството.</translation> +<translation id="3559533181353831840">Оставащото време е около <ph name="TIME_LEFT" /></translation> <translation id="3560034655160545939">&Проверка на правописа</translation> <translation id="3562423906127931518">Този процес може да отнеме няколко минути. Контейнерът за Linux се настройва.</translation> <translation id="3563432852173030730">Павилионното приложение не можа да се изтегли.</translation> @@ -2155,6 +2162,7 @@ <translation id="3602290021589620013">Визуализация</translation> <translation id="3603622770190368340">Получаване на мрежов сертификат</translation> <translation id="3604713164406837697">Промяна на тапета</translation> +<translation id="360565022852130722">Wi-Fi мрежата е защитена със слабия протокол WEP 802.1x</translation> <translation id="3605780360466892872">Костюмар</translation> <translation id="3608576286259426129">Визуализация на потребителското изображение</translation> <translation id="3610369246614755442">Вентилаторът на докинг станцията трябва да бъде обслужен</translation> @@ -2192,6 +2200,7 @@ <translation id="3639220004740062347">Изход от режима за четене</translation> <translation id="3640214691812501263">Да се добави ли <ph name="EXTENSION_NAME" /> за <ph name="USER_NAME" />?</translation> <translation id="3640613767643722554">Обучете Асистент да разпознава гласа ви</translation> +<translation id="3643014427358482789"><ph name="DOMAIN" /> деактивира отстраняването на грешки през ADB, което ще нулира устройството ви <ph name="DEVICE_TYPE" />. Създайте резервно копие на файловете си, преди да рестартирате.</translation> <translation id="3645372836428131288">Преместете малко пръста си, за да бъде заснета друга част от отпечатъка.</translation> <translation id="3647998456578545569">{COUNT,plural, =1{Получихте <ph name="ATTACHMENTS" /> от <ph name="DEVICE_NAME" />}other{Получихте <ph name="ATTACHMENTS" /> от <ph name="DEVICE_NAME" />}}</translation> <translation id="3648348069317717750">Открито е устройство <ph name="USB_DEVICE_NAME" /></translation> @@ -2280,6 +2289,7 @@ <translation id="3732857534841813090">Информация, свързана с Google Асистент</translation> <translation id="3733127536501031542">SSL сървър с повишаване на сигурността</translation> <translation id="3735740477244556633">Сортиране по</translation> +<translation id="3738632186060045350">Данните на устройството ви <ph name="DEVICE_TYPE" /> ще бъдат изтрити след 24 часа</translation> <translation id="3738924763801731196"><ph name="OID" />:</translation> <translation id="3739254215541673094">Да се отвори ли <ph name="APPLICATION" />?</translation> <translation id="3742055079367172538">Направена бе екранна снимка</translation> @@ -2468,6 +2478,7 @@ <translation id="3937734102568271121">Винаги да се превежда от <ph name="LANGUAGE" /></translation> <translation id="3938128855950761626">Устройства от <ph name="VENDOR_ID" /></translation> <translation id="3940233957883229251">Активиране на автоматичното повторение</translation> +<translation id="3941014780699102620">Името на хоста не бе преобразувано</translation> <translation id="3941565636838060942">За да скриете достъпа до тази програма, трябва да я деинсталирате, като използвате <ph name="CONTROL_PANEL_APPLET_NAME" /> в контролния панел. @@ -2630,6 +2641,7 @@ <translation id="413121957363593859">Компоненти</translation> <translation id="4131410914670010031">Черно-бяло</translation> <translation id="413193092008917129">Процедури за диагностика на мрежата</translation> +<translation id="4132183752438206707">Ще намерите приложения в Google Play Магазин</translation> <translation id="4133076602192971179">Отворете приложението, за да промените паролата си</translation> <translation id="4136203100490971508">Нощното осветление ще се изключи автоматично по изгрев</translation> <translation id="41365691917097717">Ако продължите, отстраняването на грешки през ADB ще бъде активирано, за да създавате и тествате приложения за Android. Обърнете внимание, че това действие позволява инсталирането на приложения за Android, които не са удостоверени от Google. За деактивирането на ADB е необходимо да бъдат възстановени фабричните настройки.</translation> @@ -2879,6 +2891,8 @@ <translation id="4479877282574735775">Виртуалната машина се конфигурира. Това може да отнеме няколко минути.</translation> <translation id="4480590691557335796">Chrome може да намери опасния софтуер на компютъра ви и да го премахне</translation> <translation id="4481530544597605423">Несдвоени устройства</translation> +<translation id="4483049906298469269">Неуспех при команда ping към шлюза на допълнителната мрежа</translation> +<translation id="4487489714832036847">Chromebook работи с приложения вместо с традиционен софтуер. Получете приложения за продуктивност, забавления и др.</translation> <translation id="4488502501195719518">Да се изчистят ли всички данни?</translation> <translation id="4493468155686877504">Препоръчителен размер (<ph name="INSTALL_SIZE" />)</translation> <translation id="4495419450179050807">Да не се показва на тази страница</translation> @@ -2929,6 +2943,7 @@ <translation id="4546692474302123343">Гласово въвеждане с Google Асистент</translation> <translation id="4547659257713117923">Няма раздели от други устройства</translation> <translation id="4547672827276975204">Автоматично задаване</translation> +<translation id="4548483925627140043">Не бе открит сигнал</translation> <translation id="4549791035683739768">В ключа ви за сигурност няма съхранени отпечатъци</translation> <translation id="4551763574344810652">Натиснете <ph name="MODIFIER_KEY_DESCRIPTION" /> за отмяна</translation> <translation id="4552089082226364758">Flash</translation> @@ -2968,6 +2983,7 @@ <translation id="4582563038311694664">Нулиране на всички настройки</translation> <translation id="4585793705637313973">Редактиране на страницата</translation> <translation id="4586275095964870617"><ph name="URL" /> не можа да се отвори в алтернативен браузър. Моля, свържете се със системния си администратор.</translation> +<translation id="458794348635939462">Името на нито един хост не бе преобразувано</translation> <translation id="4589713469967853491">Регистрационните файлове бяха записани успешно в директорията „Изтегляния“.</translation> <translation id="4590324241397107707">Хранилище за базата от данни</translation> <translation id="4592891116925567110">Приложение за рисуване с писалка</translation> @@ -3351,6 +3367,7 @@ <translation id="5089810972385038852">Щат</translation> <translation id="5094721898978802975">Комуникация със съдействащи директно изпълнявани приложения</translation> <translation id="5097002363526479830">Свързването с мрежата „<ph name="NAME" />“ не бе успешно: <ph name="DETAILS" /></translation> +<translation id="5097649414558628673">Инструмент: <ph name="PRINT_NAME" /></translation> <translation id="5097874180538493929">Автоматично кликване при спиране на курсора</translation> <translation id="5101042277149003567">Отваряне на всички отметки</translation> <translation id="5101839224773798795">Автоматично кликване при спиране на курсора</translation> @@ -3569,6 +3586,7 @@ <translation id="5370819323174483825">&Презареждане</translation> <translation id="5372529912055771682">Предоставеният режим за записване не се поддържа от тази версия на операционната система. Моля, уверете се, че използвате най-новата версия и опитайте отново.</translation> <translation id="5372579129492968947">Освобождаване на разширението</translation> +<translation id="5372659122375744710">Wi-Fi мрежата не е сигурна</translation> <translation id="5376169624176189338">Кликнете, за да се върнете назад. Задръжте, за да видите историята.</translation> <translation id="5376931455988532197">Файлът е твърде голям</translation> <translation id="5377721922656071359">{COUNT,plural, =1{Успешно изпратихте <ph name="ATTACHMENTS" /> до <ph name="DEVICE_NAME" />}other{Успешно изпратихте <ph name="ATTACHMENTS" /> до <ph name="DEVICE_NAME" />}}</translation> @@ -3598,6 +3616,7 @@ <translation id="5414566801737831689">Четене на иконите на посещаваните от вас уебсайтове</translation> <translation id="5417312524372586921">Теми за браузъра</translation> <translation id="5419405654816502573">Voice Match</translation> +<translation id="5420274697768050645">Изискване на парола за отключване на устройството, за да се повиши сигурността</translation> <translation id="5420438158931847627">Определя отчетливостта на текста и изображенията</translation> <translation id="5422221874247253874">Точка за достъп</translation> <translation id="5422781158178868512">За съжаление външното ви устройство за съхранение не можа да бъде разпознато.</translation> @@ -3722,6 +3741,7 @@ <translation id="5548606607480005320">Проверка на безопасността</translation> <translation id="5551573675707792127">Клавиатура и въвеждане на текст</translation> <translation id="5553089923092577885">Съответствия на правилата за сертификата</translation> +<translation id="5554403733534868102">Повече няма да чакате актуализации</translation> <translation id="5554489410841842733">Тази икона ще се показва, когато разширението може да изпълнява действия върху текущата страница.</translation> <translation id="5554720593229208774">Сертифициращ орган за имейл</translation> <translation id="5556459405103347317">Повторно зареждане</translation> @@ -4136,6 +4156,7 @@ <translation id="6061882183774845124">Изпращане на връзката до устройствата ви</translation> <translation id="6064217302520318294">Заключване на екрана</translation> <translation id="6065289257230303064">Атрибути за директорията на субекта на сертификата</translation> +<translation id="6069464830445383022">Влизате в Chromebook с профила си в Google</translation> <translation id="6069671174561668781">Задаване на тапет</translation> <translation id="6071181508177083058">потвърждаване на паролата</translation> <translation id="6071576563962215370">Системата не успя да заключи атрибутите за времето за инсталиране за устройството.</translation> @@ -4178,6 +4199,7 @@ <translation id="6104311680260824317">Устройството не може да се присъедини към домейна. Сървърът не поддържа посочените типове шифроване в Kerberos. Вижте „Още опции“ за настройки на шифроването.</translation> <translation id="6104796831253957966">Опашката на принтера е пълна</translation> <translation id="6105994589138235234">Синхронизиране в браузъра Chrome</translation> +<translation id="6108689792487843350">Шлюзът е недостъпен</translation> <translation id="6111972606040028426">Активиране на Google Асистент</translation> <translation id="6112294629795967147">Докоснете за преоразмеряване</translation> <translation id="6112727384379533756">Добавяне на пропуск</translation> @@ -4238,6 +4260,7 @@ <translation id="6178664161104547336">Избор на сертификат</translation> <translation id="6181431612547969857">Изтеглянето е блокирано</translation> <translation id="6185132558746749656">Местоположение на устройството</translation> +<translation id="6191293864534840972">Неправилно образувани сървъри за имена</translation> <translation id="6195446518998936840">За да настроите родителските контроли, детето ви трябва да има профил в Google, който да управлява с ваша помощ. Посредством приложението Family Link можете да задавате ограничения на времето на ползване, да одобрявате или блокирате уебсайтове и да правите още много други неща.</translation> <translation id="6195693561221576702">Това устройство не може да бъде настроено в офлайн демонстрационен режим.</translation> <translation id="6196640612572343990">Блокиране на „бисквитките“ на трети страни</translation> @@ -4451,6 +4474,7 @@ <translation id="6451591602925140504">{NUM_PAGES,plural, =0{<ph name="PAGE_TITLE" />}=1{<ph name="PAGE_TITLE" /> и още 1 раздел}other{<ph name="PAGE_TITLE" /> и още # раздела}}</translation> <translation id="6451689256222386810">Ако забравите пропуска си или искате да промените тази настройка, <ph name="BEGIN_LINK" />нулирайте синхронизирането<ph name="END_LINK" />.</translation> <translation id="6452181791372256707">Отхвърляне</translation> +<translation id="6452251728599530347">Завършено: <ph name="PERCENT" /></translation> <translation id="6452961788130242735">Проблем с мрежата или неправилна област</translation> <translation id="6455264371803474013">На конкретни сайтове</translation> <translation id="6455894534188563617">&Нова папка</translation> @@ -4507,6 +4531,7 @@ <ph name="EVENT_NAME" /></translation> <translation id="6520876759015997832">Резултат от търсенето <ph name="LIST_POSITION" /> от <ph name="LIST_SIZE" />: <ph name="SEARCH_RESULT_TEXT" />. Натиснете Enter, за да се придвижите до секцията.</translation> <translation id="652492607360843641">Свързани сте с(ъс) <ph name="NETWORK_TYPE" /> мрежа.</translation> +<translation id="6527081081771465939">Неизвестен протокол за сигурност на Wi-Fi</translation> <translation id="6527303717912515753">Споделяне</translation> <translation id="6528513914570774834">Разрешаване на другите потребители на устройството да използват тази мрежа</translation> <translation id="652948702951888897">История в Chrome</translation> @@ -4623,6 +4648,7 @@ <translation id="6680442031740878064">Свободно място: <ph name="AVAILABLE_SPACE" /></translation> <translation id="6680650203439190394">Скорост</translation> <translation id="6681668084120808868">Снимане</translation> +<translation id="6684827949542560880">Изтегля се най-новата актуализация</translation> <translation id="668599234725812620">Отваряне на Google Play</translation> <translation id="6686490380836145850">Затваряне на разделите отдясно</translation> <translation id="6686817083349815241">Запазване на паролата ви</translation> @@ -4732,6 +4758,7 @@ <translation id="6812841287760418429">Запазване на промените</translation> <translation id="6817174620439930047">Получаване на запитване, когато сайт иска да използва специални системни съобщения за достъп до MIDI устройствата (препоръчително)</translation> <translation id="6818198425579322765">Изходен език на страницата</translation> +<translation id="6818802132960437751">Вградена защита от вируси</translation> <translation id="682123305478866682">Предаване на работния плот</translation> <translation id="6823174134746916417">Кликване с докосване на сензорния панел</translation> <translation id="6823506025919456619">За да видите устройствата си, трябва да влезете в Chrome</translation> @@ -5378,6 +5405,7 @@ <translation id="7631205654593498032">Когато свържете устройствата си, приемате, че вашият <ph name="DEVICE_TYPE" /> може да:</translation> <translation id="7631887513477658702">&Файловете от този тип да се отварят винаги</translation> <translation id="7632948528260659758">Актуализирането на следните павилионни приложения не бе успешно:</translation> +<translation id="7633724038415831385">Никога повече няма да чакате актуализация. На Chromebook актуализациите на софтуера се извършват на заден план.</translation> <translation id="7634566076839829401">Нещо се обърка. Моля, опитайте отново.</translation> <translation id="763632859238619983">Забраняване на сайтовете да инсталират приложения за обработване на плащания</translation> <translation id="7636919061354591437">Инсталиране на това устройство</translation> @@ -5656,6 +5684,7 @@ <translation id="7933314993013528982">{NUM_TABS,plural, =1{Включване отново на звука на сайта}other{Включване отново на звука на сайтовете}}</translation> <translation id="7933634003144813719">Управление на споделените папки</translation> <translation id="793531125873261495">Грешка при изтеглянето на виртуалната машина. Моля, опитайте отново.</translation> +<translation id="7936303884198020182">Не са намерени сървъри за имена</translation> <translation id="7938594894617528435">Понастоящем е офлайн</translation> <translation id="7939062555109487992">Разширени опции</translation> <translation id="7939412583708276221">Запазване въпреки това</translation> @@ -5899,6 +5928,7 @@ <translation id="8226742006292257240">По-долу е произволно генерираната чрез модула TPM парола, която е присвоена на компютъра ви:</translation> <translation id="8227119283605456246">Прикачване на файл</translation> <translation id="8230134520748321204">Да се запази ли паролата за <ph name="ORIGIN" />?</translation> +<translation id="8230672074305416752">Неуспех при команда ping към шлюза на основната мрежа</translation> <translation id="8234795456569844941">Моля, помогнете на инженерите ни да отстранят този проблем. Кажете ни какво се случи, точно преди да получите съобщението за грешка в потребителския профил:</translation> <translation id="8236917170563564587">Споделяне на този раздел</translation> <translation id="8237647586961940482">Тъмнорозово и червено</translation> @@ -5959,6 +5989,7 @@ <translation id="8288032458496410887">Деинсталиране на <ph name="APP" />...</translation> <translation id="8289128870594824098">Размер на диска</translation> <translation id="8291967909914612644">Държава на собствения доставчик</translation> +<translation id="8293206222192510085">Добавяне на отметка</translation> <translation id="8294431847097064396">Източник</translation> <translation id="8297006494302853456">Слаб</translation> <translation id="8299319456683969623">Понастоящем сте офлайн.</translation> @@ -6008,6 +6039,7 @@ <translation id="8363095875018065315">стабилен</translation> <translation id="8363142353806532503">Достъпът до микрофона е блокиран</translation> <translation id="8363763184161554204">„<ph name="PERMISSION" />“ е разрешено</translation> +<translation id="8364946094152050673">Не са посочени сървъри за имена</translation> <translation id="8366396658833131068">Връзката ви с мрежата е възстановена. Моля, изберете друга мрежа или натиснете бутона „Напред“ по-долу, за да стартирате павилионното си приложение.</translation> <translation id="8368027906805972958">Неизвестно или неподдържано устройство (<ph name="DEVICE_ID" />)</translation> <translation id="8368859634510605990">&Отваряне на всички отметки</translation> @@ -6093,8 +6125,10 @@ <translation id="8472623782143987204">с хардуерна поддръжка</translation> <translation id="8473863474539038330">Адреси и др.</translation> <translation id="8475313423285172237">Друга програма на компютъра ви добави разширение, което може да промени начина на работа на Chrome.</translation> +<translation id="8475690821716466388">Wi-Fi мрежата е защитена със слабия протокол WEP PSK</translation> <translation id="8477241577829954800">Заменен</translation> <translation id="8477384620836102176">&Общи</translation> +<translation id="8477551185774834963">Забавянето на DNS е малко над допустимия праг</translation> <translation id="8480082892550707549">Дори ако преди сте изтегляли файлове от този сайт, той може временно да не е безопасен (променен от хакери). Опитайте да изтеглите файла по-късно.</translation> <translation id="8480869669560681089">Неизвестно устройство от <ph name="VENDOR_NAME" /></translation> <translation id="8481187309597259238">Потвърждаване на разрешението за USB</translation> @@ -6146,6 +6180,7 @@ <translation id="8546930481464505581">Персонализиране на лентата за докосване</translation> <translation id="8547013269961688403">Активиране на лупата за увеличаване на целия екран</translation> <translation id="85486688517848470">Задръжте клавиша „търсене“, за да промените поведението на клавишите от най-горния ред</translation> +<translation id="8549316893834449916">За вход в Chromebook ще използвате профила си в Google, същия, с който работите в Gmail, Диск, YouTube и др.</translation> <translation id="8551388862522347954">Лицензи</translation> <translation id="8551588720239073785">Настройки за дата и час</translation> <translation id="8553342806078037065">Управление на другите хора</translation> @@ -6284,6 +6319,7 @@ <translation id="8720200012906404956">Търси се мобилна мрежа. <ph name="BEGIN_LINK" />Научете повече<ph name="END_LINK" /></translation> <translation id="8720816553731218127">Времето за изчакване на инициализирането на атрибутите за времето за инсталиране изтече.</translation> <translation id="8722912030556880711">Изпращане на данни за употребата и диагностиката. Понастоящем това устройство автоматично изпраща до Google диагностична информация и данни за употребата на устройството и приложенията. Това ще послужи за подобряване на стабилността на системата и приложенията и др. Някои обобщени данни също така ще подпомогнат приложенията и партньорите на Google, напр. програмистите за Android. Ако настройката „Допълнителна активност в мрежата и приложенията“ е включена за вас, тези данни може да се запазват в профила ви в Google. <ph name="BEGIN_LINK2" />Научете повече<ph name="END_LINK2" /></translation> +<translation id="8723108084122415655">Забавянето на допълнителната мрежа е над прага</translation> <translation id="8724405322205516354">Когато видите тази икона, използвайте отпечатъка си за идентификация или за одобряване на покупки.</translation> <translation id="8724409975248965964">Отпечатъкът е добавен</translation> <translation id="8724859055372736596">&Показване в папката</translation> @@ -6461,6 +6497,7 @@ <translation id="8909833622202089127">Сайтът следи местоположението ви</translation> <translation id="8910146161325739742">Споделяне на екрана ви</translation> <translation id="8910222113987937043">Промените във вашите отметки, история, пароли и други настройки повече няма да се синхронизират с профила ви в Google. Съществуващите ви данни обаче ще продължат да се съхраняват в него. Можете да ги управлявате от <ph name="BEGIN_LINK" />Google Табло за управление<ph name="END_LINK" />.</translation> +<translation id="8910721771319628100">Забавянето на основната мрежа е над прага</translation> <translation id="8912362522468806198">Профил в Google</translation> <translation id="8912793549644936705">Разтегляне</translation> <translation id="8912810933860534797">Активиране на автоматичното сканиране</translation>
diff --git a/chrome/app/resources/generated_resources_bn.xtb b/chrome/app/resources/generated_resources_bn.xtb index dbfeaa9..a652180 100644 --- a/chrome/app/resources/generated_resources_bn.xtb +++ b/chrome/app/resources/generated_resources_bn.xtb
@@ -71,6 +71,7 @@ <translation id="1070705170564860382"><ph name="COUNTDOWN_SECONDS" /> সেকেন্ডে অন্য ব্রাউজারে খোলা হচ্ছে</translation> <translation id="1071917609930274619">ডেটা চিহ্নকরণ</translation> <translation id="1072700771426194907">ইউএসবি ডিভাইস শনাক্ত করা হয়েছে</translation> +<translation id="107278043869924952">পাসওয়ার্ড ছাড়াও পিন ব্যবহার করুন</translation> <translation id="1076176485976385390">টেক্সট কার্সরের মাধ্যমে আপনি একটি পৃষ্ঠা থেকে অন্য পৃষ্ঠাতে নেভিগেট করুন</translation> <translation id="1076698951459398590">থিম সক্ষম করুন</translation> <translation id="1076818208934827215">Microsoft Internet Explorer</translation> @@ -329,6 +330,7 @@ <translation id="1383876407941801731">Search</translation> <translation id="1386387014181100145">আপনি কেমন আছেন৷</translation> <translation id="1386791642444521222">সিম চালু করুন</translation> +<translation id="1387519831959169718">নিজের ব্রাউজিং আলাদা রাখতে, <ph name="NEW_USER" />-এর জন্য নতুন প্রোফাইল তৈরি করুন</translation> <translation id="138784436342154190">ডিফল্ট শুরুর পৃষ্ঠা পুনরুদ্ধার করবেন?</translation> <translation id="1388728792929436380">আপডেট সম্পূর্ণ হলে, <ph name="DEVICE_TYPE" /> রিস্টার্ট করা হবে।</translation> <translation id="1390548061267426325">নিয়মিত ট্যাব রূপে খুলুন</translation> @@ -343,6 +345,7 @@ <translation id="139911022479327130">আপনার ফোন আনলক করুন এবং এই কাজটি যে আপনিই করছেন তা কনফার্ম করুন</translation> <translation id="1399511500114202393">কোনও ব্যবহারকারীর সার্টিফিকেট নেই</translation> <translation id="1401308693935339022">লোকেশন পরিষেবা ব্যবহার করুন। এই ডিভাইসের লোকেশন ব্যবহার করতে অ্যাপ এবং পরিষেবাগুলিকে লোকেশন অ্যাক্সেস করার অনুমতি দিন। Google মাঝে মাঝে লোকেশন ডেটা সংগ্রহ করতে পারে এবং আরও সঠিকভাবে লোকেশন বেছে নিতে ও লোকেশন ভিত্তিক পরিষেবার উন্নতির জন্য সেই ডেটা আপনার পরিচয় গোপন রেখেই ব্যবহার করতে পারে।</translation> +<translation id="1403222014593521787">প্রক্সিতে কানেক্ট করা যাচ্ছে না</translation> <translation id="140520891692800925"><ph name="PROFILE_DISPLAY_NAME" /> (তত্বাবধানে থাকা)</translation> <translation id="1405779994569073824">ক্র্যাশ করেছে।</translation> <translation id="1406500794671479665">যাচাই করা হচ্ছে...</translation> @@ -479,6 +482,7 @@ <translation id="1555130319947370107">নীল</translation> <translation id="1556537182262721003">প্রোফাইলে এক্সটেনশন ডিরেক্টরি সরানো যায়নি৷</translation> <translation id="155865706765934889">টাচপ্যাড</translation> +<translation id="1563702743503072935">সাইন-ইন করে থাকা অবস্থায় এই ডিভাইসে আপনার Google অ্যাকাউন্টে সেভ করা পাসওয়ার্ডও উপলভ্য থাকবে</translation> <translation id="1566049601598938765">ওয়েবসাইট</translation> <translation id="15662109988763471">বেছে নেওয়া প্রিন্টারটি উপলভ্য নয় অথবা সেটি ঠিকভাবে ইনস্টল করা নেই। আপনার প্রিন্টার পরীক্ষা করুন অথবা অন্য একটি প্রিন্টার বেছে নিন।</translation> <translation id="1567387640189251553">আপনি যখন শেষবার পাসওয়ার্ডটি লিখেছিলেন তার পরে অন্য একটি কীবোর্ডে কানেক্ট করা হয়েছিল। এটি আপনার পাসওয়ার্ড চুরি করার চেষ্টা করতে পারে।</translation> @@ -521,7 +525,6 @@ <translation id="1608668830839595724">বেছে নেওয়া আইটেমগুলির সাথে আরও কাজ করতে হবে</translation> <translation id="161042844686301425">নীলাভ</translation> <translation id="1611432201750675208">আপনার ডিভাইস লক করা আছে</translation> -<translation id="1611584202130317952">প্রভিশনিং ফ্লো তে বিঘ্ন ঘটেছে। অনুগ্রহ করে আবার চেষ্টা করুন অথবা আপনার ডিভাইসের মালিক বা প্রশাসকের সাথে যোগাযোগ করুন।</translation> <translation id="1614511179807650956">আপনি হয়ত সমস্ত মোবাইল ডেটা ব্যবহার করে ফেলেছেন৷ আরও ডেটা কিনতে <ph name="NAME" /> অ্যাক্টিভেশন পোর্টালে যান</translation> <translation id="161460670679785907">আপনার ফোনটি শনাক্ত করা যায়নি</translation> <translation id="1616206807336925449">এই এক্সটেনশনটির কোনও বিশেষ অনুমতির প্রয়োজন নেই।</translation> @@ -530,6 +533,7 @@ <translation id="1618268899808219593">সহায়তা কেন্দ্র</translation> <translation id="1620307519959413822">ভুল পাসওয়ার্ড। আবার চেষ্টা করুন বা এটি রিসেট করতে 'পাসওয়ার্ড ভুলে গেছি' বিকল্পে ক্লিক করুন।</translation> <translation id="1620510694547887537">ক্যামেরা</translation> +<translation id="1621831347985899379"><ph name="DEVICE_TYPE" />-এর ডেটা মুছে ফেলা হবে</translation> <translation id="1622054403950683339">ওয়াই-ফাই নেটওয়ার্ক মুছুন</translation> <translation id="1623132449929929218">ছবিটি বর্তমানে পাওয়া যাচ্ছে না। ওয়ালপেপারের কালেকশনগুলি দেখতে ইন্টারনেটে কানেক্ট করুন।</translation> <translation id="1623723619460186680">নীল আলো কমানো</translation> @@ -757,6 +761,7 @@ <translation id="1877377290348678128">লেবেল (ঐচ্ছিক)</translation> <translation id="1877520246462554164">যাচাইকরণ টোকেন পাওয়া যায়নি। অনুগ্রহ করে সাইন-আউট-এর পরে সাইন-ইন করে আবার চেষ্টা করুন।</translation> <translation id="1877860345998737529">অ্যাকশনে সুইচ অ্যাসাইন করা</translation> +<translation id="1878155070920054810">মনে হচ্ছে, আপডেট সম্পূর্ণ হওয়ার আগেই আপনার Chromebook-এর চার্জ শেষ হয়ে যাবে। সমস্যা এড়াতে, ঠিকমতো চার্জ হচ্ছে কিনা দেখে নিন।</translation> <translation id="1879000426787380528">কোন আইডি দিয়ে সাইন-ইন করবেন</translation> <translation id="1880905663253319515">সার্টিফিকেট মুছবেন "<ph name="CERTIFICATE_NAME" />"?</translation> <translation id="1881445033931614352">কীবোর্ডের লেআউট</translation> @@ -906,6 +911,7 @@ <translation id="2080070583977670716">আরও সেটিংস</translation> <translation id="2081816110395725788">ব্যাটারিতে চালানোর সময় ডিভাইসকে 'নিষ্ক্রিয়' বা 'স্লিপ' স্ট্যাটাসে রাখা</translation> <translation id="2082187087049518845">ট্যাবকে নতুন কোনও গ্রুপে যুক্ত করুন</translation> +<translation id="2082510809738716738">একটি থিম রঙ বেছে নিন</translation> <translation id="2087822576218954668">প্রিন্ট করুন: <ph name="PRINT_NAME" /></translation> <translation id="2088690981887365033">ভিপিএন নেটওয়ার্ক</translation> <translation id="208928984520943006">যেকোনও সময় হোম স্ক্রিনে যেতে স্ক্রিনের নিচের দিক থেকে উপরে সোয়াইপ করুন।</translation> @@ -960,6 +966,7 @@ <translation id="2148219725039824548">মাউন্টিং শেয়ারে সমস্যা। নেটওয়ার্কে নির্দিষ্ট শেয়ারটি পাওয়া যায়নি।</translation> <translation id="2148756636027685713">বিন্যাসন সম্পূর্ণ</translation> <translation id="2148892889047469596">ট্যাব কাস্ট করুন</translation> +<translation id="2149973817440762519">বুকমার্ক সম্পাদনা করুন</translation> <translation id="2150139952286079145">গন্তব্যস্থল খুঁজুন</translation> <translation id="2150661552845026580">"<ph name="EXTENSION_NAME" />" জুড়বেন?</translation> <translation id="2151576029659734873">ভুল ট্যাব সূচি দেওয়া হয়েছে৷</translation> @@ -1056,6 +1063,7 @@ <translation id="2256115617011615191">এখন আবার চালু করুন</translation> <translation id="225614027745146050">স্বাগতম</translation> <translation id="225692081236532131">সক্রিয়করণ স্থিতি</translation> +<translation id="2257053455312861282">স্কুল অ্যাকাউন্ট যোগ করলে শিক্ষার্থী হিসেবে ওয়েবসাইট, এক্সটেনশন ও অ্যাপে সহজে সাইন-ইন করা যায়, যদিও তাকে তখনও অভিভাবকীয় নিয়ন্ত্রণের অধীনেই কাজ করতে হয়।</translation> <translation id="2261323523305321874">আপনার প্রশাসক সিস্টেম জুড়ে কিছু পরিবর্তন করেছে যার ফলে কিছু পুরনো প্রোফাইল বন্ধ করা হয়েছে।</translation> <translation id="2262332168014443534">লাইট মোডের সাহায্যে HTTPS সহ সব পৃষ্ঠাতেই দ্রুত ব্রাউজ করতে পারবেন।</translation> <translation id="2262477216570151239">পুনরাবৃত্তির আগের বিলম্ব</translation> @@ -1068,6 +1076,7 @@ <translation id="2270627217422354837"><ph name="DOMAINS" /> ডোমেনসমূহের মধ্যে যে কোনো ডিভাইসের সাথে ডেটা বিনিময় করুন</translation> <translation id="2272570998639520080">মার্টিনি গ্লাস</translation> <translation id="2273119997271134996">ডকিং স্টেশনে ভিডিও-পোর্ট সংক্রান্ত সমস্যা</translation> +<translation id="2274840746523584236">আপনার Chromebook চার্জে বসান</translation> <translation id="2276503375879033601">আরও অ্যাপ্লিকেশন জুডুন</translation> <translation id="2277255602909579701">সমস্ত কুকি এবং সাইট ডেটা</translation> <translation id="2277769717710009150">{COUNT,plural, =1{১টি আইটেম কপি করা হয়েছে}one{#টি আইটেম কপি করা হয়েছে}other{#টি আইটেম কপি করা হয়েছে}}</translation> @@ -1909,6 +1918,7 @@ <translation id="3308116878371095290">এই পৃষ্ঠাটিকে কুকিজ সেট করা থেকে আটকানো হয়েছে৷</translation> <translation id="3308134619352333507">বোতাম লুকান</translation> <translation id="3308852433423051161">Google অ্যাসিস্ট্যান্ট লোড হচ্ছে...</translation> +<translation id="3310640316857623290">যতদূর পর্যন্ত লেটেন্সির ঊর্ধ্বসীমা অনুমোদন করা যায়, ডিএনএস লেটেন্সি উল্লেখযোগ্যভাবে তার চেয়ে বেশি</translation> <translation id="3311445899360743395">এই অ্যাপের ডেটাও হয়ত ডিভাইস থেকে মুছে যাবে।</translation> <translation id="3312424061798279731">সক্ষম করা ভাষাগুলি</translation> <translation id="3313622045786997898">সার্টিফিকেট স্বাক্ষর মান</translation> @@ -1921,6 +1931,7 @@ <translation id="3323295311852517824">{NUM_FILES,plural, =0{এই ডেটায় সংবেদনশীল বা বিপজ্জনক কন্টেন্ট আছে। এই কন্টেন্ট সরিয়ে আবার চেষ্টা করুন।}=1{এই ফাইলে সংবেদনশীল বা বিপজ্জনক কন্টেন্ট আছে। এই কন্টেন্ট সরিয়ে আবার চেষ্টা করুন।}one{এই ফাইলগুলিতে সংবেদনশীল বা বিপজ্জনক কন্টেন্ট আছে। এই কন্টেন্ট সরিয়ে আবার চেষ্টা করুন।}other{এই ফাইলগুলিতে সংবেদনশীল বা বিপজ্জনক কন্টেন্ট আছে। এই কন্টেন্ট সরিয়ে আবার চেষ্টা করুন।}}</translation> <translation id="3323521181261657960">বোনাস! তোমাকে আরও স্ক্রিন টাইম দেওয়া হয়েছে</translation> <translation id="3325910708063135066">Mac-এর সিস্টেম অভিরুচিতে ক্যামেরা ও মাইক্রোফোন বন্ধ করা আছে</translation> +<translation id="3327050066667856415">সুরক্ষার কথা মাথায় রেখে Chromebook ডিজাইন করা হয়। আপনার ডিভাইস ম্যালওয়্যার থেকে অটোমেটিক সুরক্ষিত থাকে – কোনও অতিরিক্ত সফ্টওয়্যার দরকার নেই।</translation> <translation id="3328489342742826322">কোনও ব্যাক-আপ থেকে ফিরিয়ে আনলে আপনার Linux ফাইল ফোল্ডারে আগে থেকে থাকা Linux অ্যাপ্লিকেশন ও ডেটা মুছে দেওয়া হবে।</translation> <translation id="3331321258768829690">(<ph name="UTCOFFSET" />) <ph name="LONGTZNAME" /> (<ph name="EXEMPLARCITY" />)</translation> <translation id="3331974543021145906">অ্যাপ্লিকেশানের তথ্য</translation> @@ -1969,6 +1980,7 @@ <translation id="3396800784455899911">'স্বীকার করে চালিয়ে যান' বোতামে ক্লিক করার অর্থ এই Google পরিষেবাগুলির জন্য উপরোক্ত বর্ণিত প্রক্রিয়াগুলিতে আপনি সম্মতি দেন।</translation> <translation id="3399432415385675819">বিজ্ঞপ্তি অক্ষম করা হবে</translation> <translation id="3400390787768057815"><ph name="WIDTH" /> x <ph name="HEIGHT" /> (<ph name="REFRESH_RATE" /> হার্জ) - একত্রে</translation> +<translation id="3402255108239926910">অবতার বেছে নিন</translation> <translation id="3402585168444815892">ডেমো মোডে এনরোল করা হচ্ছে</translation> <translation id="340282674066624"><ph name="DOWNLOAD_RECEIVED" />, <ph name="TIME_LEFT" /></translation> <translation id="3404065873681873169">এই সাইটের জন্য কোনও পাসওয়ার্ড সেভ করা হয়নি</translation> @@ -1996,6 +2008,7 @@ <translation id="3428747202529429621">সাইন-ইন করা অবস্থায় আপনাকে Chrome-এ নিরাপদ রাখতে এবং হয়ত অন্যান্য Google অ্যাপে নিরাপত্তা আরও ভাল করতে এই মোডটি ব্যবহার করা হয়</translation> <translation id="3428800329481094896">Linux কন্টেনারে 'ssh' কী ফেচ করা হচ্ছে</translation> <translation id="3429275422858276529">এই পৃষ্ঠা পরে সহজে খুঁজে পেতে বুকমার্ক করুন</translation> +<translation id="3431370546335300761">প্রক্সিতে কানেক্ট করতে সাইন-ইন করুন</translation> <translation id="3432227430032737297">দেখানো সবগুলি সরান</translation> <translation id="3432757130254800023">স্থানীয় নেটওয়ার্কের প্রদর্শনগুলিতে অডিও এবং ভিডিও পাঠান</translation> <translation id="3432762828853624962">শেয়ার্ড ওয়ার্কার</translation> @@ -2108,6 +2121,7 @@ <translation id="3556433843310711081">আপনার পরিচালক আপনার হয়ে এটি অবরোধ মুক্ত করতে পারবে</translation> <translation id="3557101512409028104">Family Link-এর সাহায্যে ওয়েবসাইট অ্যাক্সেস করার ব্যাপারে সীমাবদ্ধতা ও স্ক্রিন টাইমের সীমা সেট করুন</translation> <translation id="3559262020195162408">ডিভাইসে নীতি ইনস্টল করা যায়নি।</translation> +<translation id="3559533181353831840">প্রায় <ph name="TIME_LEFT" /> লাগবে</translation> <translation id="3560034655160545939">বানান পরীক্ষা</translation> <translation id="3562423906127931518">এর জন্য কয়েক মিনিট সময় লাগতে পারে। Linux কন্টেনার ইনস্টল করা হচ্ছে।</translation> <translation id="3563432852173030730">কিয়স্ক অ্যাপ্লিকেশানটি ডাউনলোড করা যাবে না।</translation> @@ -2150,6 +2164,7 @@ <translation id="3602290021589620013">প্রিভিউ</translation> <translation id="3603622770190368340">নেটওয়ার্ক সার্টিফিকেট প্রাপ্ত করুন</translation> <translation id="3604713164406837697">ওয়ালপেপার পরিবর্তন করুন</translation> +<translation id="360565022852130722">দুর্বল WEP 802.1x প্রোটোকল ব্যবহার করে ওয়াই-ফাই নেটওয়ার্ক সুরক্ষিত করা হয়েছে</translation> <translation id="3605780360466892872">বটনডাউন</translation> <translation id="3608576286259426129">ব্যবহারকারীর ছবির পূর্বদৃশ্য</translation> <translation id="3610369246614755442">ডকিং স্টেশনের ফ্যান সার্ভিসিং করতে হবে</translation> @@ -2186,6 +2201,7 @@ <translation id="3639220004740062347">রিডার মোড থেকে বেরিয়ে আসুন</translation> <translation id="3640214691812501263"><ph name="USER_NAME" /> এর জন্য "<ph name="EXTENSION_NAME" />" জুড়বেন?</translation> <translation id="3640613767643722554">অ্যাসিস্ট্যান্টকে আপনার ভয়েস চিনতে শেখান</translation> +<translation id="3643014427358482789"><ph name="DOMAIN" /> ADB ডিবাগিং বন্ধ করে দিচ্ছে, যেটি আপনার <ph name="DEVICE_TYPE" /> রিসেট করবে। রিস্টার্ট করার আগে আপনার ফাইলের ব্যাক-আপ নিন।</translation> <translation id="3645372836428131288">আঙ্গুলের ছাপের বিভিন্ন অংশ ক্যাপচার করতে একটু এদিক-ওদিক সরান৷</translation> <translation id="3647998456578545569">{COUNT,plural, =1{<ph name="DEVICE_NAME" /> থেকে <ph name="ATTACHMENTS" /> এসেছে}one{<ph name="DEVICE_NAME" /> থেকে <ph name="ATTACHMENTS" /> এসেছে}other{<ph name="DEVICE_NAME" /> থেকে <ph name="ATTACHMENTS" /> এসেছে}}</translation> <translation id="3648348069317717750"><ph name="USB_DEVICE_NAME" /> শনাক্ত হয়েছে</translation> @@ -2274,6 +2290,7 @@ <translation id="3732857534841813090">Google Assistant সম্পর্কিত তথ্য</translation> <translation id="3733127536501031542">স্টেপ-আপ সহ SSL সার্ভার</translation> <translation id="3735740477244556633">এই অনুসারে সাজান</translation> +<translation id="3738632186060045350"><ph name="DEVICE_TYPE" />-এর ডেটা ২৪ ঘণ্টার মধ্যে মুছে যাবে</translation> <translation id="3738924763801731196"><ph name="OID" />:</translation> <translation id="3739254215541673094"><ph name="APPLICATION" /> খুলবেন?</translation> <translation id="3742055079367172538">স্ক্রিনশট নেওয়া হয়েছে</translation> @@ -2377,6 +2394,7 @@ <translation id="3841964634449506551">ভুল পাসওয়ার্ড লেখা হয়েছে</translation> <translation id="3842552989725514455">Serif হরফ</translation> <translation id="3843464315703645664">অভ্যন্তরীণভাবে সাদাতালিকাভুক্ত</translation> +<translation id="3844888638014364087">ইমোজি যোগ করা হয়েছে</translation> <translation id="3846116211488856547">ওয়েবসাইট, Android অ্যাপ সহ অনেক কিছু ডেভেলপ করতে টুলগুলি পান। Linux ইনস্টল করলে <ph name="DOWNLOAD_SIZE" /> ডেটা ডাউনলোড হবে।</translation> <translation id="3847319713229060696">সকলের জন্য ওয়েবে নিরাপত্তা উন্নত করতে সাহায্য করে</translation> <translation id="385051799172605136">ফিরুন</translation> @@ -2460,6 +2478,7 @@ <translation id="3937734102568271121"><ph name="LANGUAGE" /> ভাষায় সবসময় অনুবাদ করে দেখতে চাই</translation> <translation id="3938128855950761626"><ph name="VENDOR_ID" /> ভেন্ডরের ডিভাইস</translation> <translation id="3940233957883229251">স্বয়ং-পুনরাবৃত্তি সক্ষম করুন</translation> +<translation id="3941014780699102620">হোস্ট নেম যাচাই করা যায়নি</translation> <translation id="3941565636838060942">এই প্রোগ্রামের অ্যাক্সেস লুকানোর জন্য, আপনাকে নিয়ন্ত্রণ প্যানেলে <ph name="CONTROL_PANEL_APPLET_NAME" /> ব্যবহার করে এটি আনইনস্টল করতে হবে৷ আপনি কি <ph name="CONTROL_PANEL_APPLET_NAME" /> শুরু করতে চান?</translation> @@ -2621,6 +2640,7 @@ <translation id="413121957363593859">উপাদানগুলি</translation> <translation id="4131410914670010031">সাদা ও কালো</translation> <translation id="413193092008917129">নেটওয়ার্ক ডায়াগনস্টিকস রুটিন</translation> +<translation id="4132183752438206707">Google Play Store-এ অ্যাপ খুঁজুন</translation> <translation id="4133076602192971179">পাসওয়ার্ড পরিবর্তন করতে অ্যাপটি খুলুন</translation> <translation id="4136203100490971508">সূর্যোদয়ের সময় নাইট লাইট নিজে থেকেই বন্ধ হয়ে যাবে</translation> <translation id="41365691917097717">চালিয়ে গেলে Android অ্যাপ তৈরি ও পরীক্ষা করার জন্য ADB ডিবাগিং চালু হয়ে যাবে। মনে রাখবেন, এই অ্যাকশন Google যাচাই করেনি এমন Android অ্যাপ ইনস্টলের অনুমতি দেয় এবং এটি বন্ধ করতে হলে ডিভাইসটিকে ফ্যাক্টরি রিসেট করতে হবে।</translation> @@ -2679,6 +2699,7 @@ <translation id="4232375817808480934">Kerberos কনফিগার করুন</translation> <translation id="4235200303672858594">সম্পূর্ণ স্ক্রিন</translation> <translation id="4235965441080806197">সাইন-ইন বাতিল করুন</translation> +<translation id="4237773362828263530">"*" ওয়াইল্ডকার্ড সহ সেটিংস আর কাজ করে না। <ph name="BEGIN_LINK" />এই সেটিংস পরিবর্তন করতে<ph name="END_LINK" /> আপনার অ্যাডমিনিস্ট্রেটরের সাথে যোগাযোগ করুন।</translation> <translation id="4242145785130247982">একাধিক ক্লায়েন্ট সার্টিফিকেট কাজ করে না</translation> <translation id="4242533952199664413">সেটিংস খুলুন</translation> <translation id="4242577469625748426">ডিভাইসে নীতি সেটিংস ইনস্টল করা যায়নি: <ph name="VALIDATION_ERROR" />৷</translation> @@ -2789,6 +2810,7 @@ <translation id="4384312707950789900">পছন্দের তালিকায় জুড়ুন</translation> <translation id="4384652540891215547">এক্সটেনশন সক্রিয় করুন</translation> <translation id="438503109373656455">সারাটোগা</translation> +<translation id="4385040356362222432"><ph name="NEW_USER" />-এর থেকে <ph name="EXISTING_USER" />-এর ব্রাউজিং আলাদা রাখতে, নতুন প্রোফাইল তৈরি করুন</translation> <translation id="4387004326333427325">দূরবর্তী লোকেশন থেকে প্রমাণীকরণ সার্টিফিকেট প্রত্যাখ্যান করা হয়েছে</translation> <translation id="4387890294700445764">যে পাসওয়ার্ডগুলি চুরি হয়েছে</translation> <translation id="4389091756366370506">ব্যবহারকারী<ph name="VALUE" /></translation> @@ -2868,6 +2890,8 @@ <translation id="4479877282574735775">ভার্চুয়াল মেশিন কনফিগার করা হচ্ছে। এর জন্য কয়েক মিনিট সময় লাগতে পারে।</translation> <translation id="4480590691557335796">Chrome আপনার কম্পিউটারে ক্ষতিকর সফ্টওয়্যার খুঁজে বের করে সেগুলি সরিয়ে দিতে পারে</translation> <translation id="4481530544597605423">বিযুক্ত করা ডিভাইসগুলি</translation> +<translation id="4483049906298469269">ডিফল্ট অবস্থায় নেই এমন নেটওয়ার্ক গেটওয়েতে পিং করা যায়নি</translation> +<translation id="4487489714832036847">গতানুগতিক সফ্টওয়্যারের পরিবর্তে Chromebook কিছু অ্যাপ ব্যবহার করে। প্রোডাক্টিভিটি, বিনোদন ও আরও অনেক কিছুর জন্য অ্যাপ ইনস্টল করুন।</translation> <translation id="4488502501195719518">সব ডেটা মুছবেন?</translation> <translation id="4493468155686877504">সাজেস্ট করা হয়েছে (<ph name="INSTALL_SIZE" />)</translation> <translation id="4495419450179050807">এই পৃষ্ঠাতে দেখাবেন না</translation> @@ -2896,6 +2920,7 @@ <translation id="4522570452068850558">বিশদ বিবরণ</translation> <translation id="4522600456902129422">সাইটটিকে ক্লিপবোর্ড দেখার অনুমতি চালু রাখুন</translation> <translation id="4524832533047962394">অপারেটিং সিস্টেমের এই ভার্সনটি প্রদত্ত নথিভুক্তকরণের মোড সমর্থন করে না। আপনি সর্বাধুনিক ভার্সনটি চালাচ্ছেন কিনা দেখুন।</translation> +<translation id="4527186207340858212">নতুন অফিস প্রোফাইল তৈরি করতে চান?</translation> <translation id="452750746583162491">আপনার সিঙ্ক করা ডেটা পর্যালোচনা করুন</translation> <translation id="4530494379350999373">উৎস</translation> <translation id="4532646538815530781">এই সাইট মোশন সেন্সর ব্যবহার করছে।</translation> @@ -2917,6 +2942,7 @@ <translation id="4546692474302123343">Google Assistant-এর ভয়েস ইনপুট</translation> <translation id="4547659257713117923">অন্য ডিভাইসগুলি থেকে কোনো ট্যাব নেই</translation> <translation id="4547672827276975204">অটোমেটিক সেট হবে</translation> +<translation id="4548483925627140043">সিগন্যাল নেই</translation> <translation id="4549791035683739768">আপনার 'নিরাপত্তা কী'-তে কোনও ফিঙ্গারপ্রিন্ট সেভ করা নেই</translation> <translation id="4551763574344810652">আগের অবস্থায় ফিরে যেতে <ph name="MODIFIER_KEY_DESCRIPTION" /> টিপুন</translation> <translation id="4552089082226364758">ফ্ল্যাশ</translation> @@ -2946,6 +2972,9 @@ <translation id="4573515936045019911">Linux আপগ্রেড করতে নেটওয়ার্ক কানেকশন দরকার। ইন্টারনেটে কানেক্ট করে আবার চেষ্টা করুন।</translation> <translation id="457386861538956877">আরও...</translation> <translation id="4574741712540401491">• <ph name="LIST_ITEM_TEXT" /></translation> +<translation id="457564749856982089">স্কুল অ্যাকাউন্ট যোগ করলে শিক্ষার্থী হিসেবে ওয়েবসাইট, এক্সটেনশন ও অ্যাপে সহজে সাইন-ইন করা যায়, যদিও তাকে তখনও অভিভাবকীয় নিয়ন্ত্রণের অধীনেই কাজ করতে হয়। এটি কোনও বাচ্চাকে স্কুল অ্যাকাউন্টের সাথে সিঙ্ক করা বুকমার্ক, পাসওয়ার্ড বা অন্যান্য ব্রাউজিং ডেটা অ্যাক্সেস করতে দেয় না।<br><br> + আপনার সন্তান স্কুলে Chromebook ব্যবহার করলে এবং সব ক্লাসওয়ার্ক অ্যাক্সেস করার জন্য সে বাড়িতেও স্কুলের মতোই অভিজ্ঞতা পাক বলে আপনি চাইলে, এই Family Link অ্যাকাউন্ট থেকে সাইন-আউট করুন এবং Chrome OS অ্যাকাউন্ট পৃষ্ঠা থেকে স্কুল অ্যাকাউন্টে সাইন-ইন করুন (মনে রাখবেন: এর ফলে Family Link অভিভাবকীয় নিয়ন্ত্রণ আর প্রযোজ্য হবে না)।<br><br> + আপনার সন্তান স্কুলে Chromebook ব্যবহার না করলে অথবা বাড়িতে Family Link-এর মাধ্যমে তার অভিজ্ঞতা ম্যানেজ করতে চাইলে, এই প্রোফাইলে স্কুল অ্যাকাউন্ট যোগ করতে নিচে "পরের পৃষ্ঠাতে যান" বোতামটি টিপুন।</translation> <translation id="4576541033847873020">ব্লুটুথ ডিভাইস যুক্ত করুন</translation> <translation id="4579453506923101210">যুক্ত থাকা ফোন ডিসকানেক্ট করুন</translation> <translation id="4579581181964204535"><ph name="HOST_NAME" /> কাস্ট করতে ব্যর্থ হয়েছে।</translation> @@ -2953,6 +2982,7 @@ <translation id="4582563038311694664">সব সেটিংস রিসেট করুন</translation> <translation id="4585793705637313973">পৃষ্ঠা সম্পাদনা করুন</translation> <translation id="4586275095964870617">অন্য ব্রাউজারে <ph name="URL" /> খোলা যায়নি। আপনার সিস্টেম অ্যাডমিনিস্ট্রেটরের সাথে যোগাযোগ করুন।</translation> +<translation id="458794348635939462">সব হোস্ট নেম যাচাই করা ব্যর্থ হয়েছে</translation> <translation id="4589713469967853491">ডাউনলোড ডিরেক্টরিতে লগ সেভ করা হয়েছে।</translation> <translation id="4590324241397107707">ডেটাবেস সঞ্চয়স্থান</translation> <translation id="4592891116925567110">স্টাইলাস ব্যবহার করে আঁকার অ্যাপ</translation> @@ -3083,6 +3113,7 @@ <translation id="4763408175235639573">আপনি যখন এই পৃষ্ঠাটি দেখেছিলেন তখন নিম্নোক্ত কুকিগুলি সেট হয়েছিল</translation> <translation id="4765582662863429759">Android Messages-কে আপনার ফোন থেকে Chromebook-এ টেক্সট রিলে করতে অনুমতি দেয়</translation> <translation id="4768332406694066911">আপনার পরিচয় শনাক্ত করে এমন সংস্থাগুলি থেকে শংসাপত্র আপনার কাছে আছে</translation> +<translation id="477647109558161443">ডেস্কটপ শর্টকাট তৈরি করুন</translation> <translation id="4776917500594043016"><ph name="USER_EMAIL_ADDRESS" />-এর জন্য পাসওয়ার্ড</translation> <translation id="4777825441726637019">Play স্টোর</translation> <translation id="4777943778632837590">নেটওয়ার্ক সার্ভারের নাম কনফিগার করুন</translation> @@ -3335,6 +3366,7 @@ <translation id="5089810972385038852">রাজ্য</translation> <translation id="5094721898978802975">সহযোগী ন্যাটিভ অ্যাপ্লিকেশানগুলির সাথে যোগাযোগ করুন</translation> <translation id="5097002363526479830">'<ph name="NAME" />': <ph name="DETAILS" /> নেটওয়ার্কে সংযোগ করা গেল না </translation> +<translation id="5097649414558628673">টুল: <ph name="PRINT_NAME" /></translation> <translation id="5097874180538493929">কার্সর থেমে যাওয়া মাত্রই অটোমেটিক ক্লিক করুন</translation> <translation id="5101042277149003567">সব বুকমার্ক খুলুন</translation> <translation id="5101839224773798795">মাউস কার্সার বন্ধ হয়ে গেলে অটোমেটিক ক্লিক হবে</translation> @@ -3454,6 +3486,7 @@ <translation id="5249624017678798539">ব্রাউজারটি ডাউনলোড সম্পূর্ণ হওয়ার আগে ক্র্যাশ করেছে৷</translation> <translation id="5250372599208556903"><ph name="SEARCH_ENGINE_NAME" /> আপনাকে স্থানীয় কন্টেন্ট দেওয়ার জন্য আপনার লোকেশন ব্যবহার করে। আপনি <ph name="SETTINGS_LINK" /> থেকে এটি পরিবর্তন করতে পারেন।</translation> <translation id="5252456968953390977">রোমিং</translation> +<translation id="5252496130205799136">পাসওয়ার্ড সেভ ও অটোফিল করতে আপনার Google অ্যাকাউন্ট ব্যবহার করতে চান?</translation> <translation id="5252653240322147470">পিন অবশ্যই <ph name="MAXIMUM" /> সংখ্যার কম হতে হবে</translation> <translation id="5254368820972107711">যে ফাইলগুলি সরানো হবে সেগুলি দেখান</translation> <translation id="52550593576409946">Kiosk অ্যাপ্লিকেশান লঞ্চ করা যায়নি৷</translation> @@ -3552,6 +3585,7 @@ <translation id="5370819323174483825">&পুনরায় লোড করুন</translation> <translation id="5372529912055771682">সরবরাহকৃত তালিকাভুক্তি মোড অপারেটিং সিস্টেমের এই ভার্সন দ্বারা সমর্থিত নয়৷ নিশ্চিত করুন যে আপনি নতুন ভার্সন চালাচ্ছেন এবং পুনরায় চেষ্টা করুন৷</translation> <translation id="5372579129492968947">এক্সটেনশন আনপিন করুন</translation> +<translation id="5372659122375744710">ওয়াই-ফাই নেটওয়ার্ক সুরক্ষিত নয়</translation> <translation id="5376169624176189338">পিছনে যাওয়ার জন্য ক্লিক করুন, ইতিহাস দেখার জন্য ধরে রাখুন</translation> <translation id="5376931455988532197">ফাইল অত্যন্ত বড়</translation> <translation id="5377721922656071359">{COUNT,plural, =1{<ph name="DEVICE_NAME" />-এ <ph name="ATTACHMENTS" /> পাঠানো হয়েছে}one{<ph name="DEVICE_NAME" />-এ <ph name="ATTACHMENTS" /> পাঠানো হয়েছে}other{<ph name="DEVICE_NAME" />-এ <ph name="ATTACHMENTS" /> পাঠানো হয়েছে}}</translation> @@ -3581,6 +3615,7 @@ <translation id="5414566801737831689">আপনার দেখা ওয়েবসাইটগুলির আইকনগুলি পড়ুন</translation> <translation id="5417312524372586921">ব্রাউজারের থিম</translation> <translation id="5419405654816502573">Voice match</translation> +<translation id="5420274697768050645">অতিরিক্ত সুরক্ষার জন্য, ডিভাইস আনলক করতে পাসওয়ার্ড ব্যবহার করতে হবে</translation> <translation id="5420438158931847627">টেক্সট এবং ছবির তীক্ষ্ণতা নির্ধারণ করে</translation> <translation id="5422221874247253874">অ্যাক্সেস পয়েন্ট</translation> <translation id="5422781158178868512">আপনার বাহ্যিক স্টোরেজের ডিভাইসটি শনাক্ত করা যায়নি৷</translation> @@ -3705,6 +3740,7 @@ <translation id="5548606607480005320">নিরাপত্তা সংক্রান্ত পরীক্ষা</translation> <translation id="5551573675707792127">কীবোর্ড এবং টেক্সট ইনপুট</translation> <translation id="5553089923092577885">সার্টিফিকেট নীতি ম্যাপিং</translation> +<translation id="5554403733534868102">এরপরে, আপডেটের প্রসেস চলার সময় আর অপেক্ষা করতে হবে না</translation> <translation id="5554489410841842733">এক্সটেনশনটি বর্তমান পৃষ্ঠাতে কাজ করলে এই আইনকটিকে দেখা যাবে৷</translation> <translation id="5554720593229208774">ইমেল সার্টিফিকেশন কর্তৃপক্ষ</translation> <translation id="5556459405103347317">রিলোড করুন</translation> @@ -3718,6 +3754,7 @@ <translation id="5565735124758917034">সক্রিয়</translation> <translation id="5567989639534621706">অ্যাপ্লিকেশন ক্যাশে</translation> <translation id="5568069709869097550">প্রবেশ করতে পারছেন না</translation> +<translation id="5571832155627049070">আপনার প্রোফাইল কাস্টমাইজ করুন</translation> <translation id="5572851009514199876">আপনার এই সাইটে অ্যাক্সেস আছে কিনা, তা দেখার জন্য Chrome চালু করে সাইন-ইন করুন।</translation> <translation id="5575473780076478375">ছদ্মবেশী এক্সটেনশন: <ph name="EXTENSION_NAME" /></translation> <translation id="5575528586625653441">ডেমো রেজিস্টার করার অনুরোধ নিয়ে একটি সমস্যা হয়েছে।</translation> @@ -4118,6 +4155,7 @@ <translation id="6061882183774845124">আপনার ডিভাইসে লিঙ্ক পাঠান</translation> <translation id="6064217302520318294">স্ক্রিন লক</translation> <translation id="6065289257230303064">সার্টিফিকেট বিষয় নির্দেশিকা গুণাবলী</translation> +<translation id="6069464830445383022">আপনার Google অ্যাকাউন্ট ব্যবহার করে Chromebook-এ সাইন-ইন করতে হবে</translation> <translation id="6069671174561668781">ওয়ালপেপার সেট করুন</translation> <translation id="6071181508177083058">পাসওয়ার্ড নিশ্চিত করুন</translation> <translation id="6071576563962215370">সিস্টেমটি ডিভাইস ইনস্টলেশন-টাইম অ্যাট্রিবিউট লক স্থাপন করতে পারেনি।</translation> @@ -4160,6 +4198,7 @@ <translation id="6104311680260824317">ডোমেনে ডিভাইসটি যোগ করা যাবে না। সার্ভারটি নির্দিষ্ট Kerberos এনক্রিপশনের ধরন সমর্থন করে না। এনক্রিপশন সেটিংসের জন্য "আরও বিকল্প" দেখুন।</translation> <translation id="6104796831253957966">প্রিন্টারের সারি ভরে গেছে</translation> <translation id="6105994589138235234">Chrome ব্রাউজার সিঙ্ক করা</translation> +<translation id="6108689792487843350">নেটওয়ার্ক গেটওয়ে অ্যাক্সেস করা যাচ্ছে না</translation> <translation id="6111972606040028426">Google Assistant অ্যাপ চালু করুন</translation> <translation id="6112294629795967147">সাইজ পরিবর্তন করতে টাচ করুন</translation> <translation id="6112727384379533756">একটি টিকিট যোগ করুন</translation> @@ -4221,6 +4260,7 @@ <translation id="6178664161104547336">একটি সার্টিফিকেট বেছে নিন</translation> <translation id="6181431612547969857">ডাউনলোড ব্লক করা হয়েছে</translation> <translation id="6185132558746749656">ডিভাইসের লোকেশন</translation> +<translation id="6191293864534840972">ডোমেন নেম সার্ভারের ফর্ম্যাট ঠিক নেই</translation> <translation id="6195446518998936840">অভিভাবকীয় নিয়ন্ত্রণ সেট আপ করতে আপনার সন্তানের অবশ্যই একটি Google অ্যাকাউন্ট থাকতে হবে যা আপনি ম্যানেজ করতে সাহায্য করবেন। আপনি Family Link অ্যাপের মাধ্যমে স্ক্রিনের সময়সীমা সেট করা, কোনও ওয়েবসাইট দেখার অনুমতি দেওয়া বা সেটি ব্লক করা এবং আরও অনেক কিছু করতে পারবেন।</translation> <translation id="6195693561221576702">এই ডিভাইসটি অফলাইন ডেমো মোডে সেট-আপ করা যাবে না।</translation> <translation id="6196640612572343990">তৃতীয় পক্ষের কুকিজ অবরুদ্ধ করুন</translation> @@ -4295,6 +4335,7 @@ <translation id="6270770586500173387"><ph name="BEGIN_LINK1" />সিস্টেম ও অ্যাপ্লিকেশান তথ্য<ph name="END_LINK1" />, এবং <ph name="BEGIN_LINK2" />মেট্রিক্স<ph name="END_LINK2" /> পাঠান</translation> <translation id="6272643420381259437">প্লাগ-ইনটি ডাউনলোড করার সময় একটি ত্রুটি (<ph name="ERROR" />) ঘটেছে</translation> <translation id="6273677812470008672">গুণমান</translation> +<translation id="6276210637549544171"><ph name="PROXY_SERVER" /> প্রক্সিতে একটি ইউজারনেম ও পাসওয়ার্ড দিতে হবে।</translation> <translation id="6277105963844135994">নেটওয়ার্কের সময় শেষ হয়েছে</translation> <translation id="6277518330158259200">স্ক্রিনশট নিন</translation> <translation id="6278057325678116358">GTK+ ব্যবহার করুন</translation> @@ -4315,6 +4356,7 @@ <translation id="6298962879096096191">Android অ্যাপ ইনস্টল করতে Google Play ব্যবহার করুন</translation> <translation id="630065524203833229">ব&ন্ধ</translation> <translation id="6300718114348072351"><ph name="PRINTER_NAME" /> অটোমেটিক কনফিগার করা যাচ্ছে না। প্রিন্টারের উন্নত বিবরণ উল্লেখ করুন। <ph name="LINK_BEGIN" />আরও জানুন<ph name="LINK_END" /></translation> +<translation id="6301076166764763868">ব্যক্তিগত ব্রাউজিং থেকে <ph name="EXISTING_USER" /> হিসেবে ব্রাউজিংকে আলাদা রাখতে, <ph name="NEW_USER" />-এর জন্য নতুন প্রোফাইল তৈরি করুন</translation> <translation id="630292539633944562">ব্যক্তিগত তথ্যের সাজেশন</translation> <translation id="6305607932814307878">সার্বিক নীতি:</translation> <translation id="6307990684951724544">সিস্টেম ব্যস্ত আছে</translation> @@ -4432,6 +4474,7 @@ <translation id="6451591602925140504">{NUM_PAGES,plural, =0{<ph name="PAGE_TITLE" />}=1{<ph name="PAGE_TITLE" /> এবং অন্য ১টি ট্যাব}one{<ph name="PAGE_TITLE" /> এবং অন্য #টি ট্যাব}other{<ph name="PAGE_TITLE" /> এবং অন্য #টি ট্যাব}}</translation> <translation id="6451689256222386810">আপনি যদি আপনার পাসফ্রেজ ভুলে যান বা এই সেটিং পরিবর্তন করতে চান, তাহলে <ph name="BEGIN_LINK" />সিঙ্ক রিসেট করুন<ph name="END_LINK" />।</translation> <translation id="6452181791372256707">প্রত্যাখ্যান</translation> +<translation id="6452251728599530347"><ph name="PERCENT" /> হয়েছে</translation> <translation id="6452961788130242735">নেটওয়ার্কের সমস্যা বা ভুল রিলম</translation> <translation id="6455264371803474013">নির্দিষ্ট সাইটগুলিতে</translation> <translation id="6455894534188563617">&নতুন ফোল্ডার</translation> @@ -4488,6 +4531,7 @@ <ph name="EVENT_NAME" /></translation> <translation id="6520876759015997832"><ph name="LIST_SIZE" />-এর মধ্যে <ph name="LIST_POSITION" /> নম্বর সার্চের ফলাফল: <ph name="SEARCH_RESULT_TEXT" />। বিভাগে যেতে "Enter" বোতামটি প্রেস করুন।</translation> <translation id="652492607360843641">আপনি <ph name="NETWORK_TYPE" /> নেটওয়ার্কে কানেক্ট করে রয়েছেন।</translation> +<translation id="6527081081771465939">ওয়াই-ফাই সুরক্ষার অজানা প্রোটোকল</translation> <translation id="6527303717912515753">শেয়ার করুন</translation> <translation id="6528513914570774834">এই ডিভাইসের অন্যান্য ব্যবহারকারীদের এই নেটওয়ার্ক ব্যবহার করতে দিন</translation> <translation id="652948702951888897">Chrome ইতিহাস</translation> @@ -4518,6 +4562,7 @@ <translation id="6556866813142980365">আবার করুন</translation> <translation id="6556903358015358733">থিম এবং ওয়ালপেপার</translation> <translation id="6557290421156335491">আমার শর্টকাট</translation> +<translation id="6560151649238390891">সাজেশন যোগ করা হয়েছে</translation> <translation id="6561560012278703671">আওয়াজ ছাড়া বিজ্ঞপ্তি (বিজ্ঞপ্তির ক্ষেত্রে আওয়াজ সহ প্রম্পট ব্লক করা হয়, যাতে কাজের সময় ব্যাঘাত না ঘটে)</translation> <translation id="6561726789132298588">লিখুন</translation> <translation id="6562117348069327379">ডাউনলোড ডিরেক্টরিতে সিস্টেম লগ সেভ করুন।</translation> @@ -4603,6 +4648,7 @@ <translation id="6680442031740878064">খালি জায়গা: <ph name="AVAILABLE_SPACE" /></translation> <translation id="6680650203439190394">দ্রুততা</translation> <translation id="6681668084120808868">ফটো তুলুন</translation> +<translation id="6684827949542560880">লেটেস্ট আপডেট ডাউনলোড করা হচ্ছে</translation> <translation id="668599234725812620">Google Play খুলুন</translation> <translation id="6686490380836145850">ডানদিকের ট্যাবগুলি বন্ধ করুন</translation> <translation id="6686817083349815241">আপনার পাসওয়ার্ড সেভ করুন</translation> @@ -4712,6 +4758,7 @@ <translation id="6812841287760418429">পরিবর্তন রাখুন</translation> <translation id="6817174620439930047">যখন কোনো সাইট MIDI ডিভাইসগুলি অ্যাক্সেস করার জন্য সিস্টেমের বিশিষ্ট বার্তাগুলি ব্যবহার করতে চায় তখন জিজ্ঞাসা করুন (প্রস্তাবিত)</translation> <translation id="6818198425579322765">অনুবাদ করার জন্য পৃষ্ঠার ভাষা</translation> +<translation id="6818802132960437751">ভাইরাস থেকে বিল্ট-ইন সুরক্ষা</translation> <translation id="682123305478866682">ডেস্কটপ কাস্ট করুন</translation> <translation id="6823174134746916417">টাচপ্যাডে ট্যাপ করে ক্লিক করা</translation> <translation id="6823506025919456619">আপনার ডিভাইসগুলি দেখতে আপনাকে Chrome-এ সাইন-ইন করতে হবে</translation> @@ -5167,6 +5214,7 @@ <translation id="7385854874724088939">প্রিন্টের চেষ্টা করার সময় কোন সমস্যা হয়েছে৷ অনুগ্রহ করে আপনার প্রিন্টার চেক করে আবার চেষ্টা করুন৷</translation> <translation id="7385896526023870365">এই এক্সটেনশনে অতিরিক্ত কোনও সাইটের অ্যাক্সেস নেই।</translation> <translation id="7388044238629873883">আপনি প্রায় সম্পন্ন করে ফেলেছেন!</translation> +<translation id="7388209873137778229">যেসব ডিভাইসে কাজ করে শুধু সেগুলিই দেখানো হচ্ছে।</translation> <translation id="7392118418926456391">ভাইরাস স্ক্যান ব্যর্থ হয়েছে</translation> <translation id="7392915005464253525">বন্ধ হওয়া উইন্ডো পু&নরায় খোলা</translation> <translation id="7396017167185131589">শেয়ার করা ফোল্ডারগুলি এখানে দেখা যাবে</translation> @@ -5190,6 +5238,7 @@ <translation id="7415454883318062233">সেট-আপ করা হয়ে গেছে</translation> <translation id="7416362041876611053">অজানা নেটওয়ার্ক ত্রুটি৷</translation> <translation id="741906494724992817">এই অ্যাপ্লিকেশানটির জন্য কোনো বিশেষ অনুমতির প্রয়োজন নেই।</translation> +<translation id="7420817660256886596"><ph name="PROXY" /> প্রক্সিতে একটি ইউজারনেম ও পাসওয়ার্ড দিয়ে নিজেকে যাচাই করতে হবে</translation> <translation id="742130257665691897">বুকমার্ক সরানো হয়েছে</translation> <translation id="7421925624202799674">পৃষ্ঠা উৎস &দেখুন</translation> <translation id="7422192691352527311">অভিরুচিসমূহ...</translation> @@ -5356,6 +5405,7 @@ <translation id="7631205654593498032">আপনি ডিভাইস কানেক্ট করার মানে হল আপনি মেনে নিচ্ছেন <ph name="DEVICE_TYPE" /> এই কাজগুলি করতে পারবে:</translation> <translation id="7631887513477658702">&সবসময় এই ধরনের ফাইল খুলুন</translation> <translation id="7632948528260659758">নিম্নলিখিত kiosk অ্যাপ্লিকেশানগুলি আপডেট হতে ব্যর্থ হয়েছে:</translation> +<translation id="7633724038415831385">শুধু এবারই আপনাকে আপডেটের প্রসেস চলার সময় অপেক্ষা করতে হবে। Chromebook-এ ব্যাকগ্রাউন্ডেই সফ্টওয়্যার আপডেট হয়ে যায়।</translation> <translation id="7634566076839829401">কিছু গন্ডগোল হয়েছে৷ দয়া করে আবার চেষ্টা করুন৷</translation> <translation id="763632859238619983">কোনও সাইটকে পেমেন্ট হ্যান্ডলার ইনস্টল করার অনুমতি দেবেন না</translation> <translation id="7636919061354591437">এই ডিভাইসে ইনস্টল করুন</translation> @@ -5449,6 +5499,7 @@ <translation id="7737115349420013392">"<ph name="DEVICE_NAME" />"-এর সাথে পেয়ার করা হয়েছে ...</translation> <translation id="7737238973539693982">Linux (বিটা) মুছে ফেলুন</translation> <translation id="7740996059027112821">মানক</translation> +<translation id="7741721175294046818">প্রক্সিতে কানেক্ট করা যাচ্ছে না, আবার চেষ্টা করুন</translation> <translation id="774377079771918250">কোথায় সেভ করবেন বেছে নিন</translation> <translation id="7744047395460924128">আপনার প্রিন্ট করার ইতিহাস দেখুন</translation> <translation id="7744192722284567281">ডেটার নিরাপত্তা লঙ্ঘন দেখা গেছে</translation> @@ -5632,6 +5683,7 @@ <translation id="7933314993013528982">{NUM_TABS,plural, =1{সাইট আনমিউট করুন}one{সাইট আনমিউট করুন}other{সাইট আনমিউট করুন}}</translation> <translation id="7933634003144813719">শেয়ার্ড ফোল্ডার ম্যানেজ করুন</translation> <translation id="793531125873261495">ভার্চুয়াল মেশিন ডাউনলোড করার সময় সমস্যা হয়েছে। আবার চেষ্টা করুন।</translation> +<translation id="7936303884198020182">ডোমেন নেম সার্ভার খুঁজে পাওয়া যায়নি</translation> <translation id="7938594894617528435">বর্তমানে অফলাইন</translation> <translation id="7939062555109487992">উন্নত বিকল্প</translation> <translation id="7939412583708276221">যে কোনও অবস্থাতেই রাখুন</translation> @@ -5692,6 +5744,7 @@ <translation id="8002670234429879764"><ph name="PRINTER_NAME" /> আর উপলভ্য নেই</translation> <translation id="8004582292198964060">ব্রাউজার</translation> <translation id="8005600846065423578"><ph name="HOST" /> কে সবসময় ক্লিপবোর্ড দেখতে দিন</translation> +<translation id="8006143138282906848">এই প্রোফাইল মুছুন</translation> <translation id="8008356846765065031">ইন্টারনেট সংযোগ বিচ্ছিন্ন হয়েছে৷ অনুগ্রহ করে আপনার ইন্টারনেট সংযোগ পরীক্ষা করুন৷</translation> <translation id="8009225694047762179">পাসওয়ার্ড পরিচালনা করুন</translation> <translation id="8012647001091218357">এই মুহূর্তে আমরা আপনার পিতামাতার কাছে পৌঁছাতে পারিনি৷ অনুগ্রহ করে আবার চেষ্টা করুন৷</translation> @@ -5758,9 +5811,11 @@ <translation id="8084114998886531721">সংরক্ষিত পাসওয়ার্ড</translation> <translation id="8086015605808120405"><ph name="PRINTER_NAME" /> কনফিগার করা হচ্ছে...</translation> <translation id="8086442853986205778"><ph name="PRINTER_NAME" /> সেট-আপ করুন</translation> +<translation id="8086550884324762001">যেমন: অফিস, ব্যক্তিগত, বাচ্চা বা কোনও নাম</translation> <translation id="80866457114322936">{NUM_FILES,plural, =1{এই ফাইল এনক্রিপ্ট করা আছে। ফাইলের মালিককে সেটি ডিক্রিপ্ট করতে বলুন।}one{এগুলির মধ্যে কিছু ফাইল এনক্রিপ্ট করা হয়েছে। ফাইলের মালিককে সেগুলি ডিক্রিপ্ট করতে বলুন।}other{এগুলির মধ্যে কিছু ফাইল এনক্রিপ্ট করা হয়েছে। ফাইলের মালিককে সেগুলি ডিক্রিপ্ট করতে বলুন।}}</translation> <translation id="808894953321890993">পাসওয়ার্ড পরিবর্তন করুন</translation> <translation id="8090234456044969073">আপনার সবচেয়ে ঘন ঘন পরিদর্শিত ওয়েবসাইটের একটি তালিকা পড়ুন</translation> +<translation id="8092681102116274204">"*" ওয়াইল্ডকার্ড সহ সেটিংস আর কাজ করে না। <ph name="BEGIN_LINK" />এই সেটিংস পরিবর্তন করতে<ph name="END_LINK" /> এক্সটেনশন ডেভেলপার বা আপনার অ্যাডমিনিস্ট্রেটরের সাথে যোগাযোগ করুন।</translation> <translation id="8093359998839330381"><ph name="PLUGIN_NAME" /> এর কোনও প্রতিক্রিয়া নেই</translation> <translation id="8095105960962832018"><ph name="BEGIN_PARAGRAPH1" />Google ড্রাইভে ব্যাক-আপ নিন। যেকোনও সময় সহজেই আপনার ডেটা ফিরিয়ে আনুন বা ডিভাইস পাল্টান। আপনার ব্যাক-আপে অ্যাপ ডেটা থাকে।<ph name="END_PARAGRAPH1" /> <ph name="BEGIN_PARAGRAPH2" />আপনার ব্যাক-আপ ডেটা Google-এ আপলোড করা হবে এবং আপনার Google অ্যাকাউন্টের পাসওয়ার্ড ব্যবহার করে সেগুলিকে এনক্রিপ্ট করা হবে।<ph name="END_PARAGRAPH2" /> @@ -5812,6 +5867,7 @@ <translation id="8146177459103116374">আপনি যদি এই ডিভাইসে ইতিমধ্যেই রেজিস্টার করে থাকেন, তাহলে আপনি <ph name="LINK2_START" />একজন বর্তমান ব্যবহারকারী হিসাবে সাইন-ইন করতে পারেন<ph name="LINK2_END" />৷</translation> <translation id="8146793085009540321">সাইন-ইন করা যায়নি। অনুগ্রহ করে আপনার অ্যাডমিনিস্ট্রেটরের সাথে যোগাযোগ করে আবার চেষ্টা করুন।</translation> <translation id="8148760431881541277">সাইন-ইন করা সীমিত করুন</translation> +<translation id="8151579390896831136">নাম সহ প্রোফাইল এডিট করুন</translation> <translation id="8151638057146502721">কনফিগার করুন</translation> <translation id="8152091997436726702">প্রিন্ট নিবন্ধনের জন্য নির্ধারিত সময়সীমা শেষ হয়ে গেছে৷ একটি প্রিন্ট নিবন্ধন করতে, আপনাকে অবশ্যই প্রিন্টে নিবন্ধন নিশ্চিত করতে হবে৷</translation> <translation id="8154790740888707867">কোনো ফাইল নেই</translation> @@ -5870,6 +5926,7 @@ <translation id="8226742006292257240">আপনার কম্পিউটারে অ্যাসাইন করা হয়েছে এমন এলোমেলোভাবে জেনারেট হওয়া TPM পাসওয়ার্ডটি নিচে:</translation> <translation id="8227119283605456246">ফাইল সংযুক্ত করুন</translation> <translation id="8230134520748321204"><ph name="ORIGIN" />-এর জন্য পাসওয়ার্ড সেভ করবেন?</translation> +<translation id="8230672074305416752">ডিফল্ট নেটওয়ার্ক গেটওয়েতে পিং করা যায়নি</translation> <translation id="8234795456569844941">এই সমস্যাটির সমাধান করতে আমাদের ইঞ্জিনিয়ারদের সাহায্য করুন। আমাদের জানান, ঠিক কি হওয়ার পরে এই প্রোফাইল ত্রুটির মেসেজটি দেখেছিলেন:</translation> <translation id="8236917170563564587">পরিবর্তে এই ট্যাব শেয়ার করুন</translation> <translation id="8237647586961940482">গাঢ় গোলাপি ও লাল</translation> @@ -5930,6 +5987,7 @@ <translation id="8288032458496410887"><ph name="APP" /> আনইনস্টল করুন...</translation> <translation id="8289128870594824098">ডিস্ক সাইজ</translation> <translation id="8291967909914612644">হোম পরিষেবা প্রদানকারী দেশ</translation> +<translation id="8293206222192510085">বুকমার্ক যুক্ত করুন</translation> <translation id="8294431847097064396">উৎস</translation> <translation id="8297006494302853456">দুর্বল</translation> <translation id="8299319456683969623">আপনি বর্তমানে অফলাইনে আছেন৷</translation> @@ -5979,6 +6037,7 @@ <translation id="8363095875018065315">স্থায়ী</translation> <translation id="8363142353806532503">মাইক্রোফোনের ব্যবহার ব্লক করা হয়েছে</translation> <translation id="8363763184161554204"><ph name="PERMISSION" />-এর অনুমতি দেওয়া হয়েছে</translation> +<translation id="8364946094152050673">ডোমেন নেম সার্ভার খালি রয়েছে</translation> <translation id="8366396658833131068">আপনার নেটওয়ার্ক আবার কানেক্ট করা হয়েছে৷ আপনার কিয়স্ক অ্যাপ লঞ্চ করার জন্য অনুগ্রহ করে একটি ভিন্ন নেটওয়ার্ক বেছে নিন অথবা নীচের 'অবিরত থাকুন' বোতাম টিপুন৷</translation> <translation id="8368027906805972958">অপরিচিত বা কাজ করে না এমন ডিভাইস (<ph name="DEVICE_ID" />)</translation> <translation id="8368859634510605990">ও সকল বুকমার্ক খুলুন</translation> @@ -6064,8 +6123,10 @@ <translation id="8472623782143987204">hardware-backed</translation> <translation id="8473863474539038330">ঠিকানা ও আরও অনেককিছু</translation> <translation id="8475313423285172237">আপনার কম্পিউটারের অন্য একটি প্রোগ্রাম এক্সটেনশন যোগ করেছে যা Chrome-এর কাজ করার ধরন পাল্টে দিতে পারে৷</translation> +<translation id="8475690821716466388">দুর্বল WEP PSK প্রোটোকল ব্যবহার করে ওয়াই-ফাই নেটওয়ার্ক সুরক্ষিত করা হয়েছে</translation> <translation id="8477241577829954800">বাতিল করা</translation> <translation id="8477384620836102176">&সাধারণ</translation> +<translation id="8477551185774834963">যতদূর পর্যন্ত লেটেন্সির ঊর্ধ্বসীমা অনুমোদন করা যায়, ডিএনএস লেটেন্সি তার চেয়ে বেশি</translation> <translation id="8480082892550707549">এমনকি আপনি যদি আগে এই সাইটটি থেকে ফাইল ডাউনলোড করে থাকেন, তাহলেও সাইটটি সাময়িকভাবে অনিরাপদ (হ্যাক হয়ে থাকতে পারে) হতে পারে। এই ফাইলটি পরে ডাউনলোড করার চেষ্টা করুন।</translation> <translation id="8480869669560681089"><ph name="VENDOR_NAME" /> থেকে অজানা ডিভাইস</translation> <translation id="8481187309597259238">ইউএসবি অ্যাক্সেস করার অনুমতি নিশ্চিত করুন</translation> @@ -6117,6 +6178,7 @@ <translation id="8546930481464505581">টাচ বার কাস্টমাইজ করুন</translation> <translation id="8547013269961688403">ফুলস্ক্রিন ম্যাগনিফায়ার চালু করুন</translation> <translation id="85486688517848470">সবথেকে উপরের-সারির বোতামগুলির আচরণ পরিবর্তন করতে সার্চ বোতাম ধরে থাকুন</translation> +<translation id="8549316893834449916">Gmail, Drive, YouTube এবং এই ধরনের আরও পরিষেবা অ্যাক্সেস করার জন্য আপনি যে Google অ্যাকাউন্ট ব্যবহার করেন, সেটি আপনার Chromebook-এ সাইন-ইন করতেও কাজে লাগবে।</translation> <translation id="8551388862522347954">লাইসেন্সগুলি</translation> <translation id="8551588720239073785">তারিখ ও সময়ের সেটিংস</translation> <translation id="8553342806078037065">অন্যান্য ব্যক্তিদের পরিচালনা করুন</translation> @@ -6255,6 +6317,7 @@ <translation id="8720200012906404956">মোবাইল নেটওয়ার্ক খোঁজা হচ্ছে। <ph name="BEGIN_LINK" />আরও জানুন<ph name="END_LINK" /></translation> <translation id="8720816553731218127">টাইম-আউট হয়ে যাওয়ার ফলে ইনস্টলেশন-টাইম অ্যাট্রিবিউট শুরু করা যায়নি।</translation> <translation id="8722912030556880711">ব্যবহার এবং ডায়াগনস্টিক ডেটা পাঠান। এখন এই ডিভাইসটি নিজে থেকেই Google-এ ডায়াগনিস্টিক, ডিভাইস এবং অ্যাপ ব্যবহারের ডেটা পাঠাচ্ছে। এটি সিস্টেম ও অ্যাপের স্থিতিশীলতা এবং অন্যান্য উন্নতিতে সাহায্য করে। ব্যবহারকারীদের কিছু সম্মিলিত ডেটা Google অ্যাপ এবং Android ডেভেলপারদের মতো পার্টনারদের কাজে লাগবে। আপনার অতিরিক্ত ওয়েব ও অ্যাপ অ্যাক্টিভিটি সেটিং চালু থাকলে, এই ডেটা আপনার Google অ্যাকাউন্টে সেভ করা হতে পারে। <ph name="BEGIN_LINK2" />আরও জানুন<ph name="END_LINK2" /></translation> +<translation id="8723108084122415655">নেটওয়ার্ক লেটেন্সির যে ঊর্ধসীমা রয়েছে, তার চেয়ে ডিফল্ট অবস্থায় নেই এমন নেটওয়ার্ক গেটওয়ের লেটেন্সি বেশি</translation> <translation id="8724405322205516354">আপনি এই আইকনটি দেখতে পেলে, শনাক্তকরণ অথবা কেনাকাটাগুলি অনুমোদনের জন্য আপনার আঙ্গুলের ছাপ ব্যবহার করুন।</translation> <translation id="8724409975248965964">আঙ্গুলের ছাপ যোগ করা হয়েছে</translation> <translation id="8724859055372736596">ফোল্ডারে &দেখান</translation> @@ -6432,6 +6495,7 @@ <translation id="8909833622202089127">সাইটটি আপনার লোকেশন ট্র্যাক করছে</translation> <translation id="8910146161325739742">আপনার স্ক্রিন শেয়ার করুন</translation> <translation id="8910222113987937043">আপনার বুকমার্ক, ইতিহাস, পাসওয়ার্ড এবং অন্যান্য সেটিংসের পরিবর্তনগুলি এখন আর আপনার Google অ্যাকাউন্টের সাথে সিঙ্ক করা হবে না। তবে, আপনার বর্তমান ডেটা আপনার Google অ্যাকাউন্টে সঞ্চিত থাকবে এবং <ph name="BEGIN_LINK" />Google ড্যাশবোর্ড<ph name="END_LINK" /> থেকে ম্যানেজ করা যাবে।</translation> +<translation id="8910721771319628100">নেটওয়ার্ক লেটেন্সির যে ঊর্ধসীমা রয়েছে, তার চেয়ে ডিফল্ট নেটওয়ার্ক গেটওয়ের লেটেন্সি বেশি</translation> <translation id="8912362522468806198">Google অ্যাকাউন্ট</translation> <translation id="8912793549644936705">বিস্তার</translation> <translation id="8912810933860534797">অটো-স্ক্যান চালু করুন</translation> @@ -6535,6 +6599,7 @@ <translation id="9031549947500880805">Google Drive-এ ব্যাক-আপ নিন। যেকোনও সময় সহজেই ডেটা রিস্টোর করুন অথবা অন্য ডিভাইস ব্যবহার করুন। আপনার ব্যাক-আপে অ্যাপ ডেটা থাকে।</translation> <translation id="9033765790910064284">যাই হোক, চালিয়ে যান</translation> <translation id="9033857511263905942">&প্রতিলেপন</translation> +<translation id="9037818663270399707">সব নেটওয়ার্ক ট্রাফিকের ক্ষেত্রে আপনার কানেকশন নিরাপদ নয়</translation> <translation id="9037965129289936994">প্রকৃত রূপ দেখান</translation> <translation id="9039014462651733343">{NUM_ATTEMPTS,plural, =1{আপনি আর মাত্র একবার চেষ্টা করতে পারবেন।}one{আপনি আর মাত্র # বার চেষ্টা করতে পারবেন।}other{আপনি আর # বার চেষ্টা করতে পারবেন।}}</translation> <translation id="9039663905644212491">PEAP</translation>
diff --git a/chrome/app/resources/generated_resources_bs.xtb b/chrome/app/resources/generated_resources_bs.xtb index e1f937a..896152d 100644 --- a/chrome/app/resources/generated_resources_bs.xtb +++ b/chrome/app/resources/generated_resources_bs.xtb
@@ -71,7 +71,7 @@ <translation id="1070705170564860382">Otvaranje u alternativnom pregledniku za <ph name="COUNTDOWN_SECONDS" /> s</translation> <translation id="1071917609930274619">Šifriranje podataka</translation> <translation id="1072700771426194907">USB uređaj je pronađen</translation> -<translation id="107278043869924952">Koristite PIN uz zaporku</translation> +<translation id="107278043869924952">Koristi PIN pored lozinke</translation> <translation id="1076176485976385390">Navigiranje stranicama pomoću kursora za tekst</translation> <translation id="1076698951459398590">Omogući temu</translation> <translation id="1076818208934827215">Microsoft Internet Explorer</translation> @@ -525,7 +525,6 @@ <translation id="1608668830839595724">Više radnji za odabrane stavke</translation> <translation id="161042844686301425">Cijan</translation> <translation id="1611432201750675208">Vaš uređaj je zaključan</translation> -<translation id="1611584202130317952">Tok pružanja usluga je prekinut. Pokušajte ponovo ili kontaktirajte vlasnika uređaja ili administratora.</translation> <translation id="1614511179807650956">Moguće je da ste iskoristili ograničenje prijenosa podataka na mobilnoj mreži. Posjetite portal za aktivaciju <ph name="NAME" /> da kupite još prijenosa podataka</translation> <translation id="161460670679785907">Nije moguće zaštititi vaš telefon</translation> <translation id="1616206807336925449">Za ovu ekstenziju nisu potrebna posebna odobrenja.</translation> @@ -534,7 +533,7 @@ <translation id="1618268899808219593">C&entar za pomoć</translation> <translation id="1620307519959413822">Pogrešna lozinka. Pokušajte ponovo ili kliknite na Zaboravili ste lozinku da je poništite.</translation> <translation id="1620510694547887537">Kamera</translation> -<translation id="1621831347985899379">Izbrisat će se podaci uređaja <ph name="DEVICE_TYPE" /></translation> +<translation id="1621831347985899379">Podaci uređaja <ph name="DEVICE_TYPE" /> će se izbrisati</translation> <translation id="1622054403950683339">Zanemari WiFi mrežu</translation> <translation id="1623132449929929218">Slike trenutno nisu dostupne. Ponovo se povežite na internet da vidite kolekcije pozadinskih slika.</translation> <translation id="1623723619460186680">Smanjenje plavog svjetla</translation> @@ -762,7 +761,7 @@ <translation id="1877377290348678128">Oznaka (nije obavezno)</translation> <translation id="1877520246462554164">Preuzimanje tokena za autentifikaciju nije uspjelo. Prijavite se, pa se odjavite da pokušate ponovo.</translation> <translation id="1877860345998737529">Dodjela prekidača radnjama</translation> -<translation id="1878155070920054810">Čini se da će se baterija vašeg Chromebooka isprazniti prije dovršetka ažuriranja. Provjerite puni li se ispravno da biste izbjegli prekid.</translation> +<translation id="1878155070920054810">Izgleda da će se baterija Chromebooka istrošiti prije završetka ažuriranja. Provjerite puni li se ispravno da izbjegnete prekide.</translation> <translation id="1879000426787380528">Prijavi se kao</translation> <translation id="1880905663253319515">Izbrisati potvrdu "<ph name="CERTIFICATE_NAME" />"?</translation> <translation id="1881445033931614352">Raspored tastature</translation> @@ -967,6 +966,7 @@ <translation id="2148219725039824548">Greška prilikom aktiviranja dijeljenog sadržaja. Navedeni dijeljeni sadržaj nije pronađen na mreži.</translation> <translation id="2148756636027685713">Formatiranje je završeno</translation> <translation id="2148892889047469596">Emitiraj karticu</translation> +<translation id="2149973817440762519">Uredi oznaku</translation> <translation id="2150139952286079145">Odredišta za pretraživanje</translation> <translation id="2150661552845026580">Dodati ekstenziju "<ph name="EXTENSION_NAME" />"?</translation> <translation id="2151576029659734873">Unesen je nevažeći indeks za karticu.</translation> @@ -1076,7 +1076,7 @@ <translation id="2270627217422354837">razmjenjivati podatke s bilo kojim uređajem na domenama: <ph name="DOMAINS" /></translation> <translation id="2272570998639520080">Čaša s martinijem</translation> <translation id="2273119997271134996">Problem s priključkom za videozapis na priključnoj stanici</translation> -<translation id="2274840746523584236">Punjenje Chromebooka</translation> +<translation id="2274840746523584236">Napunite Chromebook</translation> <translation id="2276503375879033601">Dodajte još aplikacija</translation> <translation id="2277255602909579701">Svi kolačići i podaci web lokacije</translation> <translation id="2277769717710009150">{COUNT,plural, =1{1 stavka je kopirana}one{# stavka je kopirana}few{# stavke su kopirane}other{# stavki je kopirano}}</translation> @@ -1919,7 +1919,7 @@ <translation id="3308116878371095290">Spriječeno je postavljanje kolačića ove strance.</translation> <translation id="3308134619352333507">Dugme za sakrivanje</translation> <translation id="3308852433423051161">Učitavanje Google Asistenta...</translation> -<translation id="3310640316857623290">Latencija DNS-a značajno iznad dopuštenog praga</translation> +<translation id="3310640316857623290">Latentnost DNS-a je znatno iznad dozvoljenog praga</translation> <translation id="3311445899360743395">Podaci koji su povezani s ovom aplikacijom se mogu ukloniti s ovog uređaja.</translation> <translation id="3312424061798279731">Omogućeni jezici</translation> <translation id="3313622045786997898">Vrijednost potpisa potvrde</translation> @@ -1932,7 +1932,7 @@ <translation id="3323295311852517824">{NUM_FILES,plural, =0{U ovim podacima postoji osjetljiv ili opasan sadržaj. Uklonite taj sadržaj i pokušajte ponovo.}=1{U ovom fajlu postoji osjetljiv ili opasan sadržaj. Uklonite taj sadržaj i pokušajte ponovo.}one{U ovim fajlovima postoji osjetljiv ili opasan sadržaj. Uklonite taj sadržaj i pokušajte ponovo.}few{U ovim fajlovima postoji osjetljiv ili opasan sadržaj. Uklonite taj sadržaj i pokušajte ponovo.}other{U ovim fajlovima postoji osjetljiv ili opasan sadržaj. Uklonite taj sadržaj i pokušajte ponovo.}}</translation> <translation id="3323521181261657960">Bonus! Vrijeme korištenja uređaja ti je produženo</translation> <translation id="3325910708063135066">Kamera i mikrofon su isključeni u Postavkama Mac sistema</translation> -<translation id="3327050066667856415">Chromebookovi su osmišljeni za sigurnost. Vaš uređaj automatski je zaštićen od zlonamjernih softvera – nije potreban dodatni softver.</translation> +<translation id="3327050066667856415">Chromebook uređaji su dizajnirani da budu sigurni. Vaš uređaj je automatski zaštićen od zlonamjernog softvera i nije potreban dodatni softver.</translation> <translation id="3328489342742826322">Vraćanje iz sigurnosne kopije će izbrisati postojeće Linux aplikacije i podatke u vašem folderu s Linux fajlovima.</translation> <translation id="3331321258768829690">(<ph name="UTCOFFSET" />) <ph name="LONGTZNAME" /> (<ph name="EXEMPLARCITY" />)</translation> <translation id="3331974543021145906">Informacije o aplikaciji</translation> @@ -2122,7 +2122,7 @@ <translation id="3556433843310711081">Vaš upravitelj ga može deblokirati za vas</translation> <translation id="3557101512409028104">Postavite ograničenja pristupa web lokacijama i ograničenja vremena korištenja uređaja s Family Linkom.</translation> <translation id="3559262020195162408">Instaliranje pravila na ovaj uređaj nije uspjelo.</translation> -<translation id="3559533181353831840">Još oko <ph name="TIME_LEFT" /></translation> +<translation id="3559533181353831840">Preostalo je oko <ph name="TIME_LEFT" /></translation> <translation id="3560034655160545939">&Provjera pravopisa</translation> <translation id="3562423906127931518">Ovo može potrajati nekoliko minuta. Postavljanje spremnika za Linux.</translation> <translation id="3563432852173030730">Nije uspjelo preuzimanje aplikacije za kiosk.</translation> @@ -2165,7 +2165,7 @@ <translation id="3602290021589620013">Pregled</translation> <translation id="3603622770190368340">Nabavite novu potvrdu</translation> <translation id="3604713164406837697">Promijenite pozadinsku sliku</translation> -<translation id="360565022852130722">Wi-Fi mreža zaštićena je slabim protokolom WEP 802.1x</translation> +<translation id="360565022852130722">WiFi mreža je zaštićena slabim protokolom WEP 802.1x</translation> <translation id="3605780360466892872">Biznismen</translation> <translation id="3608576286259426129">Pregled korisnikove slike</translation> <translation id="3610369246614755442">Ventilator priključne stanice treba servisirati</translation> @@ -2202,7 +2202,7 @@ <translation id="3639220004740062347">Izađi iz načina rada za čitanje</translation> <translation id="3640214691812501263">Dodati ekstenziju "<ph name="EXTENSION_NAME" />" za korisnika<ph name="USER_NAME" />?</translation> <translation id="3640613767643722554">Naučite Asistenta da prepoznaje vaš glas</translation> -<translation id="3643014427358482789"><ph name="DOMAIN" /> onemogućuje ADB otklanjanje pogrešaka, čime će se vaš uređaj <ph name="DEVICE_TYPE" /> vratiti na zadano. Sigurnosno kopirajte datoteke prije ponovnog pokretanja.</translation> +<translation id="3643014427358482789">Domena <ph name="DOMAIN" /> onemogućava otklanjanje grešaka putem ADB-a čime će se vaš uređaj <ph name="DEVICE_TYPE" /> vratiti na zadano. Prije ponovnog pokretanja napravite sigurnosne kopije fajlova.</translation> <translation id="3645372836428131288">Pomjerite malo udesno da snimite drugi dio otiska prsta.</translation> <translation id="3647998456578545569">{COUNT,plural, =1{<ph name="ATTACHMENTS" /> je primljena s uređaja <ph name="DEVICE_NAME" />}one{<ph name="ATTACHMENTS" /> je primljena s uređaja <ph name="DEVICE_NAME" />}few{<ph name="ATTACHMENTS" /> su primljene s uređaja <ph name="DEVICE_NAME" />}other{<ph name="ATTACHMENTS" /> je primljeno s uređaja <ph name="DEVICE_NAME" />}}</translation> <translation id="3648348069317717750">Prepoznat je USB uređaj <ph name="USB_DEVICE_NAME" /></translation> @@ -2291,7 +2291,7 @@ <translation id="3732857534841813090">Informacije povezane s Google Asistentom</translation> <translation id="3733127536501031542">SSL server s nadogradnjom</translation> <translation id="3735740477244556633">Poredaj po</translation> -<translation id="3738632186060045350">Podaci uređaja <ph name="DEVICE_TYPE" /> izbrisat će se za 24 sata</translation> +<translation id="3738632186060045350">Podaci na uređaju <ph name="DEVICE_TYPE" /> će se izbrisati za 24 sata</translation> <translation id="3738924763801731196"><ph name="OID" />:</translation> <translation id="3739254215541673094">Otvoriti <ph name="APPLICATION" />?</translation> <translation id="3742055079367172538">Snimak ekrana je napravljen</translation> @@ -2479,7 +2479,7 @@ <translation id="3937734102568271121">Uvijek prevedi <ph name="LANGUAGE" /></translation> <translation id="3938128855950761626">Uređaji dobavljača <ph name="VENDOR_ID" /></translation> <translation id="3940233957883229251">Omogući automatsko ponavljanje</translation> -<translation id="3941014780699102620">Razrješavanje hosta nije uspjelo</translation> +<translation id="3941014780699102620">Rješavanje hosta nije uspjelo</translation> <translation id="3941565636838060942">Da sakrijete pristup ovom programu, morat ćete ga deinstalirati pomoću aplikacije <ph name="CONTROL_PANEL_APPLET_NAME" /> na Kontrolnoj ploči. @@ -2642,7 +2642,7 @@ <translation id="413121957363593859">Komponente</translation> <translation id="4131410914670010031">Crno-bijelo</translation> <translation id="413193092008917129">Rutine dijagnostike mreže</translation> -<translation id="4132183752438206707">Pronađite aplikacije u Trgovini Google Play</translation> +<translation id="4132183752438206707">Pronađite aplikacije u Google Play trgovini</translation> <translation id="4133076602192971179">Otvorite aplikaciju da promijenite lozinku</translation> <translation id="4136203100490971508">Noćno svjetlo će se automatski isključiti u svitanje</translation> <translation id="41365691917097717">Ako nastavite, omogućit ćete otklanjanje grešaka putem ADB-a za kreiranje i testiranje Android aplikacija. Imajte na umu da ova radnja omogućava instaliranje Android aplikacija koje Google nije potvrdio. Da onemogućite, vratite na fabričke postavke.</translation> @@ -2892,8 +2892,8 @@ <translation id="4479877282574735775">Konfiguriranje virtualne mašine. Ovo može potrajati nekoliko minuta.</translation> <translation id="4480590691557335796">Chrome može pronaći štetni softver na vašem računaru i ukloniti ga.</translation> <translation id="4481530544597605423">Uređaj čije je uparivanje okončano</translation> -<translation id="4483049906298469269">Pinganje pristupnika mreže koja nije zadana nije uspjelo</translation> -<translation id="4487489714832036847">Chromebookovi upotrebljavaju aplikacije umjesto uobičajenih softvera. Preuzmite aplikacije za produktivnost, zabavu i mnoge druge.</translation> +<translation id="4483049906298469269">Provjera pingom mrežnog pristupnika koji nije zadan nije uspjela</translation> +<translation id="4487489714832036847">Chromebook uređaji koriste aplikacije umjesto tradicionalnog softvera. Preuzmite aplikacije za produktivnost, zabavu i još mnogo toga.</translation> <translation id="4488502501195719518">Obrisati sve podatke?</translation> <translation id="4493468155686877504">Preporučeno (<ph name="INSTALL_SIZE" />)</translation> <translation id="4495419450179050807">Ne prikazuj na ovoj stranici</translation> @@ -2944,7 +2944,7 @@ <translation id="4546692474302123343">Glasovni unos Google Asistenta</translation> <translation id="4547659257713117923">Nema kartica iz drugih uređaja</translation> <translation id="4547672827276975204">Postavi automatski</translation> -<translation id="4548483925627140043">Signal nije pronađen</translation> +<translation id="4548483925627140043">Nije pronađen nijedan signal</translation> <translation id="4549791035683739768">Na vašem sigurnosnom ključu nisu pohranjeni otisci prstiju</translation> <translation id="4551763574344810652">Pritisnite tipku <ph name="MODIFIER_KEY_DESCRIPTION" /> da opozovete radnju</translation> <translation id="4552089082226364758">Flash</translation> @@ -2984,7 +2984,7 @@ <translation id="4582563038311694664">Vrati sve postavke na zadano</translation> <translation id="4585793705637313973">Uredite stranicu</translation> <translation id="4586275095964870617">Otvaranje web lokacije <ph name="URL" /> u alternativnom pregledniku nije uspjelo. Kontaktirajte administratora sistema.</translation> -<translation id="458794348635939462">Razrješavanje svih hostova nije uspjelo</translation> +<translation id="458794348635939462">Rješavanje svih hostova nije uspjelo</translation> <translation id="4589713469967853491">Zapisnici su uspješno ispisani u direktorij Preuzimanja.</translation> <translation id="4590324241397107707">Pohrana baze podataka</translation> <translation id="4592891116925567110">Aplikacija za crtanje olovkom</translation> @@ -3587,7 +3587,7 @@ <translation id="5370819323174483825">&Ponovo učitaj</translation> <translation id="5372529912055771682">Ova verzija operativnog sistema ne podržava ponuđeni način prijave. Provjerite radite li na najnovijoj verziji i pokušajte ponovo.</translation> <translation id="5372579129492968947">Otkačite ekstenziju</translation> -<translation id="5372659122375744710">Wi-Fi mreža nije sigurna</translation> +<translation id="5372659122375744710">WiFi mreža nije sigurna</translation> <translation id="5376169624176189338">Kliknite da se vratite. Držite da vidite historiju</translation> <translation id="5376931455988532197">Fajl je prevelik</translation> <translation id="5377721922656071359">{COUNT,plural, =1{<ph name="ATTACHMENTS" /> je poslana na uređaj <ph name="DEVICE_NAME" />}one{<ph name="ATTACHMENTS" /> je poslana na uređaj <ph name="DEVICE_NAME" />}few{<ph name="ATTACHMENTS" /> su poslane na uređaj <ph name="DEVICE_NAME" />}other{<ph name="ATTACHMENTS" /> je poslano na uređaj <ph name="DEVICE_NAME" />}}</translation> @@ -3617,7 +3617,7 @@ <translation id="5414566801737831689">Očitavati ikone web lokacija koje posjetite</translation> <translation id="5417312524372586921">Teme preglednika</translation> <translation id="5419405654816502573">Voice Match</translation> -<translation id="5420274697768050645">Zatražite zaporku da biste otključali uređaj radi dodatne zaštite</translation> +<translation id="5420274697768050645">Zahtijevaj lozinku za otključavanje uređaja radi dodatne sigurnosti</translation> <translation id="5420438158931847627">Utvrđuje oštrinu teksta i slika</translation> <translation id="5422221874247253874">Pristupna tačka</translation> <translation id="5422781158178868512">Žao nam je, nije moguće prepoznati vaš vanjski uređaj za pohranu.</translation> @@ -3742,7 +3742,7 @@ <translation id="5548606607480005320">Sigurnosna provjera</translation> <translation id="5551573675707792127">Tastatura i unos teksta</translation> <translation id="5553089923092577885">Mapiranja pravila potvrda</translation> -<translation id="5554403733534868102">Nakon ovog nema više čekanja na ažuriranja</translation> +<translation id="5554403733534868102">Nakon ovoga neće više biti čekanja ažuriranja</translation> <translation id="5554489410841842733">Ikona će biti vidljiva kada ekstenzija može djelovati na trenutnoj stranici.</translation> <translation id="5554720593229208774">Tijelo za certifikaciju e-pošte</translation> <translation id="5556459405103347317">Učitaj ponovo</translation> @@ -4156,7 +4156,7 @@ <translation id="6061882183774845124">Pošaljite link na svoje uređaje</translation> <translation id="6064217302520318294">Zaključavanje ekrana</translation> <translation id="6065289257230303064">Atributi direktorija subjekta potvrde</translation> -<translation id="6069464830445383022">Vaš Google račun koristi se za prijavu na Chromebook</translation> +<translation id="6069464830445383022">Vaš Google račun služi za prijavu na Chromebook</translation> <translation id="6069671174561668781">Postavi pozadinsku sliku</translation> <translation id="6071181508177083058">potvrdite lozinku</translation> <translation id="6071576563962215370">Sustav nije uspješno uspostavio zaključavanje atributa vremena instalacije uređaja.</translation> @@ -4199,7 +4199,7 @@ <translation id="6104311680260824317">Nije moguće pridružiti uređaj domeni. Server ne podržava određene vrste Kerberos šifriranja. Provjerite "Više opcija" za postavke šifriranja.</translation> <translation id="6104796831253957966">Red čekanja štampača je pun</translation> <translation id="6105994589138235234">Sinhronizacija preglednika Chrome</translation> -<translation id="6108689792487843350">Nije moguće dosegnuti pristupnik</translation> +<translation id="6108689792487843350">Pristupnik je van dometa</translation> <translation id="6111972606040028426">Omogućite Google Asistenta</translation> <translation id="6112294629795967147">Dodirnite da promijenite veličinu</translation> <translation id="6112727384379533756">Dodaj tiket</translation> @@ -4260,7 +4260,7 @@ <translation id="6178664161104547336">Odaberite potvrdu</translation> <translation id="6181431612547969857">Preuzimanje je blokirano</translation> <translation id="6185132558746749656">Lokacija uređaja</translation> -<translation id="6191293864534840972">Pogrešni poslužitelji naziva</translation> +<translation id="6191293864534840972">Neispravno formirani serveri naziva</translation> <translation id="6195446518998936840">Da postavite roditeljski nadzor, dijete mora imati Google račun kojim ćete upravljati. Pomoću aplikacije Family Link možete postaviti ograničenja vremena korištenja uređaja, odobriti ili blokirati web lokacije i još mnogo toga.</translation> <translation id="6195693561221576702">Ovaj uređaj se ne može postaviti u demo načinu rada van mreže.</translation> <translation id="6196640612572343990">Blokiraj kolačiće trećih strana</translation> @@ -4474,7 +4474,7 @@ <translation id="6451591602925140504">{NUM_PAGES,plural, =0{<ph name="PAGE_TITLE" />}=1{<ph name="PAGE_TITLE" /> i još 1 kartica}one{<ph name="PAGE_TITLE" /> i još # kartica}few{<ph name="PAGE_TITLE" /> i još # kartice}other{<ph name="PAGE_TITLE" /> i još # kartica}}</translation> <translation id="6451689256222386810">Ako ste zaboravili pristupni izraz ili želite promijeniti ovu postavku, <ph name="BEGIN_LINK" />vratite sinhronizaciju na zadano<ph name="END_LINK" />.</translation> <translation id="6452181791372256707">Odbij</translation> -<translation id="6452251728599530347"><ph name="PERCENT" /> dovršeno</translation> +<translation id="6452251728599530347">Završeno je <ph name="PERCENT" /></translation> <translation id="6452961788130242735">Problem s mrežom ili neispravno područje</translation> <translation id="6455264371803474013">Na određenim web lokacijama</translation> <translation id="6455894534188563617">&Novi folder</translation> @@ -4531,7 +4531,7 @@ <ph name="EVENT_NAME" /></translation> <translation id="6520876759015997832">Rezultat pretraživanja: <ph name="LIST_POSITION" /> od <ph name="LIST_SIZE" /> za <ph name="SEARCH_RESULT_TEXT" />. Pritisnite Enter da posjetite odjeljak.</translation> <translation id="652492607360843641">Povezani ste na <ph name="NETWORK_TYPE" /> mrežu.</translation> -<translation id="6527081081771465939">Nepoznat sigurnosni protokol za Wi-Fi</translation> +<translation id="6527081081771465939">Nepoznati sigurnosni protokol za WiFi</translation> <translation id="6527303717912515753">Dijeli</translation> <translation id="6528513914570774834">Dozvoli drugim korisnicima ovog uređaja da koriste ovu mrežu</translation> <translation id="652948702951888897">Historija Chromea</translation> @@ -5405,7 +5405,7 @@ <translation id="7631205654593498032">Kada povežete uređaje, saglasni ste da vaš uređaj <ph name="DEVICE_TYPE" /> može:</translation> <translation id="7631887513477658702">&Uvijek otvori fajlove ove vrste</translation> <translation id="7632948528260659758">Ažuriranje sljedećih aplikacija za kiosk nije uspjelo:</translation> -<translation id="7633724038415831385">Ovo je jedini put da ćete čekati na ažuriranje. Na Chromebooku se ažuriranja softvera odvijaju u pozadini.</translation> +<translation id="7633724038415831385">Ovo je jedini put kada ćete čekati ažuriranje. Na Chromebook uređajima, softver se ažurira u pozadini.</translation> <translation id="7634566076839829401">Nešto je pošlo po zlu. Pokušajte ponovo.</translation> <translation id="763632859238619983">Ne dopusti nijednoj web-lokaciji instalaciju rukovatelja plaćanjem</translation> <translation id="7636919061354591437">Instaliraj na ovom uređaju</translation> @@ -5684,7 +5684,7 @@ <translation id="7933314993013528982">{NUM_TABS,plural, =1{Uključi zvuk na web-lokaciji}one{Uključi zvuk na web-lokacijama}few{Uključi zvuk na web-lokacijama}other{Uključi zvuk na web-lokacijama}}</translation> <translation id="7933634003144813719">Upravljanje dijeljenim folderima</translation> <translation id="793531125873261495">Došlo je do pogreške prilikom preuzimanja virtualnog računala. Pokušajte ponovo.</translation> -<translation id="7936303884198020182">Nije pronađen nijedan poslužitelj naziva</translation> +<translation id="7936303884198020182">Nije pronađen nijedan server naziva</translation> <translation id="7938594894617528435">Trenutno je van mreže</translation> <translation id="7939062555109487992">Napredne opcije</translation> <translation id="7939412583708276221">Ipak zadrži</translation> @@ -5928,7 +5928,7 @@ <translation id="8226742006292257240">U nastavku je nasumično generirana TPM lozinka koja je dodijeljena vašem računaru:</translation> <translation id="8227119283605456246">Priloži fajl</translation> <translation id="8230134520748321204">Sačuvati lozinku za <ph name="ORIGIN" />?</translation> -<translation id="8230672074305416752">Pinganje pristupnika zadane mreže nije uspjelo</translation> +<translation id="8230672074305416752">Provjera pingom zadanog mrežnog pristupnika nije uspjela</translation> <translation id="8234795456569844941">Pomozite našim inženjerima da riješe ovaj problem. Recite nam šta se dogodilo prije nego što ste dobili poruku o grešci na profilu:</translation> <translation id="8236917170563564587">Dijeli ovu karticu</translation> <translation id="8237647586961940482">Tamnoružičasta i crvena</translation> @@ -5989,6 +5989,7 @@ <translation id="8288032458496410887">Deinstaliranje aplikacije <ph name="APP" />...</translation> <translation id="8289128870594824098">Veličina diska</translation> <translation id="8291967909914612644">Zemlja domaćeg mobilnog operatera</translation> +<translation id="8293206222192510085">Dodavanje oznake</translation> <translation id="8294431847097064396">Izvor</translation> <translation id="8297006494302853456">Slabo</translation> <translation id="8299319456683969623">Trenutno ste van mreže.</translation> @@ -6038,7 +6039,7 @@ <translation id="8363095875018065315">Stabilno</translation> <translation id="8363142353806532503">Mikrofon je blokiran</translation> <translation id="8363763184161554204">je dao/la odobrenje za <ph name="PERMISSION" /></translation> -<translation id="8364946094152050673">Prazni poslužitelji naziva</translation> +<translation id="8364946094152050673">Prazni serveri naziva</translation> <translation id="8366396658833131068">Vaša mrežna veza je vraćena. Odaberite drugu mrežu ili pritisnite dugme "Nastavi" ispod da pokrenete aplikaciju za kiosk.</translation> <translation id="8368027906805972958">Nepoznat ili nepodržan uređaj (<ph name="DEVICE_ID" />)</translation> <translation id="8368859634510605990">&Otvori sve oznake</translation> @@ -6124,10 +6125,10 @@ <translation id="8472623782143987204">s hardverskom podlogom</translation> <translation id="8473863474539038330">Adrese i još mnogo toga</translation> <translation id="8475313423285172237">Drugi program na vašem računaru je dodao ekstenziju koja može promijeniti rad Chromea.</translation> -<translation id="8475690821716466388">Wi-Fi mreža zaštićena je slabim protokolom WEP PSK</translation> +<translation id="8475690821716466388">WiFi mreža je zaštićena slabim protokolom WEP PSK</translation> <translation id="8477241577829954800">Zamijenjeno</translation> <translation id="8477384620836102176">&Opće</translation> -<translation id="8477551185774834963">Latencija DNS-a malo iznad dopuštenog praga</translation> +<translation id="8477551185774834963">Latentnost DNS-a je malo iznad dozvoljenog praga</translation> <translation id="8480082892550707549">Čak iako ste nekada preuzimali fajlove s ove web lokacije, ona može biti privremeno nesigurna (izložena napadu hakera). Pokušajte preuzeti fajlove kasnije.</translation> <translation id="8480869669560681089">Nepoznat uređaj od dobavljača <ph name="VENDOR_NAME" /></translation> <translation id="8481187309597259238">Potvrdite odobrenje za USB</translation> @@ -6179,7 +6180,7 @@ <translation id="8546930481464505581">Prilagodite traku za dodir</translation> <translation id="8547013269961688403">Omogući povećalo za cijeli ekran</translation> <translation id="85486688517848470">Držite tipku za pretraživanje da promijenite ponašanje tipki u gornjem redu</translation> -<translation id="8549316893834449916">Svoj Google račun upotrebljavat ćete za prijavu na Chromebook – isti račun koji upotrebljavate za Gmail, Disk, YouTube itd.</translation> +<translation id="8549316893834449916">Koristit ćete svoj Google račun da se prijavite na Chromebook – isti račun koji koristite za Gmail, Disk, YouTube i druge usluge.</translation> <translation id="8551388862522347954">Licence</translation> <translation id="8551588720239073785">Postavke datuma i vremena</translation> <translation id="8553342806078037065">Upravljaj drugim osobama</translation> @@ -6318,7 +6319,7 @@ <translation id="8720200012906404956">Traženje mobilne mreže. <ph name="BEGIN_LINK" />Saznajte više<ph name="END_LINK" /></translation> <translation id="8720816553731218127">Inicijalizacija atributa za vrijeme instalacije je istekla.</translation> <translation id="8722912030556880711">Šaljite podatke o korištenju i dijagnostici. Ovaj uređaj trenutno automatski šalje u Google podatke o dijagnostici, uređaju i korištenju aplikacija. Ovo će pomoći stabilnosti sistema i aplikacija, kao i drugim poboljšanjima. Neki zbirni podaci će također pomoći Googleovim aplikacijama i partnerima, kao što su programeri za Android. Ako vam je uključena dodatna Aktivnost na webu i u aplikacijama, ti podaci će možda biti sačuvani na vašem Google računu. <ph name="BEGIN_LINK2" />Saznajte više<ph name="END_LINK2" /></translation> -<translation id="8723108084122415655">Mreža koja nije zadana je iznad praga latencije</translation> +<translation id="8723108084122415655">Mreža koja nije zadana je iznad praga latentnosti</translation> <translation id="8724405322205516354">Kada vidite ovu ikonu, koristite otisak prsta za identifikaciju ili odobravanje kupovine.</translation> <translation id="8724409975248965964">Dodan je otisak prsta</translation> <translation id="8724859055372736596">&Prikaži u folderu</translation> @@ -6496,7 +6497,7 @@ <translation id="8909833622202089127">Web lokacija prati vašu lokaciju</translation> <translation id="8910146161325739742">Dijelite svoj ekran</translation> <translation id="8910222113987937043">Promjene vaših oznaka, historije, lozinki i drugih postavki neće se više sinhronizirati s vašim Google računom. Međutim, vaši postojeći podaci će ostati pohranjeni na vašem Google računu i njima možete upravljati na <ph name="BEGIN_LINK" />Google Kontrolnoj tabli<ph name="END_LINK" />.</translation> -<translation id="8910721771319628100">Zadana mreža iznad praga latencije</translation> +<translation id="8910721771319628100">Zadana mreža je iznad praga latentnosti</translation> <translation id="8912362522468806198">Google račun</translation> <translation id="8912793549644936705">Razvučeno</translation> <translation id="8912810933860534797">Omogući automatsko skeniranje</translation>
diff --git a/chrome/app/resources/generated_resources_ca.xtb b/chrome/app/resources/generated_resources_ca.xtb index b4ff679..d77a761d 100644 --- a/chrome/app/resources/generated_resources_ca.xtb +++ b/chrome/app/resources/generated_resources_ca.xtb
@@ -525,7 +525,6 @@ <translation id="1608668830839595724">Més accions per als elements seleccionats</translation> <translation id="161042844686301425">Cian</translation> <translation id="1611432201750675208">El dispositiu està bloquejat</translation> -<translation id="1611584202130317952">S'ha interromput el flux d'aprovisionament. Torna-ho a provar o contacta amb el propietari o l'administrador del dispositiu.</translation> <translation id="1614511179807650956">És possible que hagis esgotat la quantitat assignada de dades mòbils. Visita el portal d'activació <ph name="NAME" /> per comprar més dades.</translation> <translation id="161460670679785907">No es pot detectar el telèfon</translation> <translation id="1616206807336925449">Aquesta extensió no requereix cap permís especial.</translation> @@ -967,6 +966,7 @@ <translation id="2148219725039824548">S'ha produït un error en activar l'ús compartit especificat perquè no s'ha trobat a la xarxa.</translation> <translation id="2148756636027685713">Format finalitzat</translation> <translation id="2148892889047469596">Emet la pestanya</translation> +<translation id="2149973817440762519">Edita l'adreça d'interès</translation> <translation id="2150139952286079145">Cerca destinacions</translation> <translation id="2150661552845026580">Voleu afegir "<ph name="EXTENSION_NAME" />"?</translation> <translation id="2151576029659734873">Heu introduït un índex de pestanya no vàlid.</translation> @@ -5988,6 +5988,7 @@ <translation id="8288032458496410887">Desinstal·la <ph name="APP" />...</translation> <translation id="8289128870594824098">Mida del disc</translation> <translation id="8291967909914612644">País del proveïdor domèstic</translation> +<translation id="8293206222192510085">Afegeix una adreça d'interès</translation> <translation id="8294431847097064396">Font</translation> <translation id="8297006494302853456">Feble</translation> <translation id="8299319456683969623">En aquests moments no tens connexió.
diff --git a/chrome/app/resources/generated_resources_cs.xtb b/chrome/app/resources/generated_resources_cs.xtb index 5ce5d94..8e1690b 100644 --- a/chrome/app/resources/generated_resources_cs.xtb +++ b/chrome/app/resources/generated_resources_cs.xtb
@@ -71,6 +71,7 @@ <translation id="1070705170564860382">Za <ph name="COUNTDOWN_SECONDS" /> s se stránka otevře v alternativním prohlížeči</translation> <translation id="1071917609930274619">Šifrování dat</translation> <translation id="1072700771426194907">Bylo zjištěno zařízení USB</translation> +<translation id="107278043869924952">Používejte vedle hesla také kód PIN</translation> <translation id="1076176485976385390">Procházet stránky pomocí textového kurzoru</translation> <translation id="1076698951459398590">Zapnout motiv</translation> <translation id="1076818208934827215">Microsoft Internet Explorer</translation> @@ -524,7 +525,6 @@ <translation id="1608668830839595724">Další akce s vybranými položkami</translation> <translation id="161042844686301425">Azurová</translation> <translation id="1611432201750675208">Zařízení je zamknuté</translation> -<translation id="1611584202130317952">Proces správy účtů byl přerušen. Zkuste to znovu nebo kontaktujte vlastníka nebo administrátora zařízení.</translation> <translation id="1614511179807650956">Pravděpodobně jste vyčerpali povolený objem mobilních datových přenosů. Chcete-li koupit více dat, navštivte aktivační portál <ph name="NAME" />.</translation> <translation id="161460670679785907">Telefon se nepodařilo najít</translation> <translation id="1616206807336925449">Toto rozšíření vyžaduje speciální oprávnění.</translation> @@ -533,6 +533,7 @@ <translation id="1618268899808219593">C&entrum nápovědy</translation> <translation id="1620307519959413822">Nesprávné heslo. Zkuste to znovu nebo heslo resetujte kliknutím na Zapomenuté heslo.</translation> <translation id="1620510694547887537">Kamera</translation> +<translation id="1621831347985899379">Data zařízení <ph name="DEVICE_TYPE" /> budou smazána</translation> <translation id="1622054403950683339">Zapomenout síť Wi-Fi</translation> <translation id="1623132449929929218">Obrázky aktuálně nejsou k dispozici. Chcete-li zobrazit sbírky tapet, znovu se připojte k internetu.</translation> <translation id="1623723619460186680">Snížení intenzity modrého světla</translation> @@ -760,6 +761,7 @@ <translation id="1877377290348678128">Štítek (volitelné)</translation> <translation id="1877520246462554164">Nepodařilo se získat ověřovací token. Chcete-li to zkusit znovu, odhlaste se a poté se znovu přihlaste.</translation> <translation id="1877860345998737529">Přepnout přiřazení akcí</translation> +<translation id="1878155070920054810">Vypadá to, že Chromebooku se před dokončením aktualizace vybije baterie. Zajistěte, aby se nabíjel správně a aktualizace nebyla přerušena.</translation> <translation id="1879000426787380528">Přihlásit se jako</translation> <translation id="1880905663253319515">Smazat certifikát <ph name="CERTIFICATE_NAME" />?</translation> <translation id="1881445033931614352">Rozložení klávesnice</translation> @@ -964,6 +966,7 @@ <translation id="2148219725039824548">Při připojování sdílené složky došlo k chybě. Zadaná sdílená složka v síti nebyla nalezena.</translation> <translation id="2148756636027685713">Formátování je dokončeno</translation> <translation id="2148892889047469596">Odeslat kartu</translation> +<translation id="2149973817440762519">Upravit záložku</translation> <translation id="2150139952286079145">Vyhledat cíle</translation> <translation id="2150661552845026580">Přidat rozšíření <ph name="EXTENSION_NAME" />?</translation> <translation id="2151576029659734873">Zadaný index karty je neplatný.</translation> @@ -1073,6 +1076,7 @@ <translation id="2270627217422354837">Výměna dat s libovolným zařízením v následujících doménách: <ph name="DOMAINS" /></translation> <translation id="2272570998639520080">Sklenička martini</translation> <translation id="2273119997271134996">Problém s videokonektorem doku</translation> +<translation id="2274840746523584236">Dobíjení Chromebooku</translation> <translation id="2276503375879033601">Přidat další aplikace</translation> <translation id="2277255602909579701">Všechny soubory cookie a data webu</translation> <translation id="2277769717710009150">{COUNT,plural, =1{Byla zkopírována 1 položka}few{Byly zkopírovány # položky}many{Bylo zkopírováno # položky}other{Bylo zkopírováno # položek}}</translation> @@ -1914,6 +1918,7 @@ <translation id="3308116878371095290">Této stránce bylo zabráněno v nastavení souborů cookie.</translation> <translation id="3308134619352333507">Skrýt tlačítko</translation> <translation id="3308852433423051161">Načítání Asistenta Google...</translation> +<translation id="3310640316857623290">DNS má latenci výrazně nad prahovou hodnotou</translation> <translation id="3311445899360743395">Je možné, že z tohoto zařízení budou odstraněna data přidružená k této aplikaci.</translation> <translation id="3312424061798279731">Povolené jazyky</translation> <translation id="3313622045786997898">Hodnota podpisu certifikátu</translation> @@ -1926,6 +1931,7 @@ <translation id="3323295311852517824">{NUM_FILES,plural, =0{Obsah těchto dat je citlivý nebo nebezpečný. Odstraňte tento obsah a zkuste to znovu.}=1{Obsah tohoto souboru je citlivý nebo nebezpečný. Odstraňte tento obsah a zkuste to znovu.}few{Obsah těchto souborů je citlivý nebo nebezpečný. Odstraňte tento obsah a zkuste to znovu.}many{Obsah těchto souborů je citlivý nebo nebezpečný. Odstraňte tento obsah a zkuste to znovu.}other{Obsah těchto souborů je citlivý nebo nebezpečný. Odstraňte tento obsah a zkuste to znovu.}}</translation> <translation id="3323521181261657960">Bonus! Získáváš víc času na zařízení</translation> <translation id="3325910708063135066">Kamera a mikrofon jsou vypnuté v předvolbách systému Macu</translation> +<translation id="3327050066667856415">Chromebooky kladou velký důraz na zabezpečení. Zařízení je automaticky chráněno před malwarem – nepotřebujete žádný další software.</translation> <translation id="3328489342742826322">Obnovením ze zálohy smažete existující aplikace pro Linux a data ve své složce souborů systému Linux.</translation> <translation id="3331321258768829690">(<ph name="UTCOFFSET" />) <ph name="LONGTZNAME" /> (<ph name="EXEMPLARCITY" />)</translation> <translation id="3331974543021145906">O aplikaci</translation> @@ -2115,6 +2121,7 @@ <translation id="3556433843310711081">Správce vám jej může odblokovat.</translation> <translation id="3557101512409028104">Nastavte pomocí služby Family Link omezení přístupu na webové stránky a limity času stráveného na zařízení</translation> <translation id="3559262020195162408">Instalace zásady do zařízení se nezdařila.</translation> +<translation id="3559533181353831840">Zbývá asi <ph name="TIME_LEFT" /></translation> <translation id="3560034655160545939">&Kontrola pravopisu</translation> <translation id="3562423906127931518">Tento proces může trvat několik minut. Probíhá nastavování kontejneru systému Linux.</translation> <translation id="3563432852173030730">Stažení aplikace pro režim veřejného terminálu se nezdařilo.</translation> @@ -2157,6 +2164,7 @@ <translation id="3602290021589620013">Náhled</translation> <translation id="3603622770190368340">Získání certifikátu sítě</translation> <translation id="3604713164406837697">Změnit tapetu</translation> +<translation id="360565022852130722">Síť Wi-Fi je zabezpečena slabým protokolem WEP 802.1x</translation> <translation id="3605780360466892872">Manažer</translation> <translation id="3608576286259426129">Náhled obrázku uživatele</translation> <translation id="3610369246614755442">Větrák doku vyžaduje servis</translation> @@ -2193,6 +2201,7 @@ <translation id="3639220004740062347">Ukončit režim čtečky</translation> <translation id="3640214691812501263">Přidat aplikaci <ph name="EXTENSION_NAME" /> pro uživatele <ph name="USER_NAME" />?</translation> <translation id="3640613767643722554">Naučte Asistenta rozpoznávat váš hlas</translation> +<translation id="3643014427358482789">Web <ph name="DOMAIN" /> deaktivuje ladění ADB, a vaše zařízení <ph name="DEVICE_TYPE" /> proto bude resetováno. Před restartováním zálohujte soubory.</translation> <translation id="3645372836428131288">Lehce prst natočte, aby se zaznamenala jiná část otisku.</translation> <translation id="3647998456578545569">{COUNT,plural, =1{Byla přijata data ze zařízení <ph name="DEVICE_NAME" /> (<ph name="ATTACHMENTS" />)}few{Byla přijata data ze zařízení <ph name="DEVICE_NAME" /> (<ph name="ATTACHMENTS" />)}many{Byla přijata data ze zařízení <ph name="DEVICE_NAME" /> (<ph name="ATTACHMENTS" />)}other{Byla přijata data ze zařízení <ph name="DEVICE_NAME" /> (<ph name="ATTACHMENTS" />)}}</translation> <translation id="3648348069317717750">Bylo rozpoznáno zařízení <ph name="USB_DEVICE_NAME" /></translation> @@ -2281,6 +2290,7 @@ <translation id="3732857534841813090">Informace související s Asistentem Google</translation> <translation id="3733127536501031542">Server SSL s technologií Step-up</translation> <translation id="3735740477244556633">Seřadit podle</translation> +<translation id="3738632186060045350">Data ze zařízení <ph name="DEVICE_TYPE" /> budou vymazána do 24 hodin</translation> <translation id="3738924763801731196"><ph name="OID" />:</translation> <translation id="3739254215541673094">Spustit aplikaci <ph name="APPLICATION" />?</translation> <translation id="3742055079367172538">Byl vytvořen snímek obrazovky</translation> @@ -2468,6 +2478,7 @@ <translation id="3937734102568271121">Jazyk <ph name="LANGUAGE" /> vždy překládat</translation> <translation id="3938128855950761626">Zařízení od dodavatele <ph name="VENDOR_ID" /></translation> <translation id="3940233957883229251">Aktivovat automatické opakování</translation> +<translation id="3941014780699102620">Hostitele se nepodařilo vyřešit</translation> <translation id="3941565636838060942">Chcete-li skrýt přístup k tomuto programu, je třeba jej odinstalovat pomocí apletu <ph name="CONTROL_PANEL_APPLET_NAME" /> v ovládacích panelech. Chcete spustit aplet <ph name="CONTROL_PANEL_APPLET_NAME" />?</translation> @@ -2629,6 +2640,7 @@ <translation id="413121957363593859">Komponenty</translation> <translation id="4131410914670010031">Černobíle</translation> <translation id="413193092008917129">Rutiny k diagnostice sítě</translation> +<translation id="4132183752438206707">Najděte aplikace v Obchodu Google Play</translation> <translation id="4133076602192971179">Heslo můžete změnit po otevření aplikace</translation> <translation id="4136203100490971508">Noční režim se vypne automaticky za úsvitu</translation> <translation id="41365691917097717">Pokračováním aktivujete ladění ADB k vytváření a testování aplikací pro Android. Upozorňujeme, že tato akce povoluje instalaci aplikací pro Android, které Google neověřil, a že je k její deaktivaci potřeba obnovení továrního nastavení.</translation> @@ -2878,6 +2890,8 @@ <translation id="4479877282574735775">Probíhá konfigurace virtuálního počítače. Může to trvat několik minut.</translation> <translation id="4480590691557335796">Chrome na vašem počítači může vyhledat škodlivý software a odstranit jej</translation> <translation id="4481530544597605423">Nespárovaná zařízení</translation> +<translation id="4483049906298469269">Nepodařilo se pingnout bránu jiné než výchozí sítě</translation> +<translation id="4487489714832036847">Chromebooky místo tradičního softwaru používají aplikace. Stáhněte si aplikace pro práci, zábavu a mnohem víc.</translation> <translation id="4488502501195719518">Vymazat všechna data?</translation> <translation id="4493468155686877504">Doporučeno (<ph name="INSTALL_SIZE" />)</translation> <translation id="4495419450179050807">Nezobrazovat na této stránce</translation> @@ -2928,6 +2942,7 @@ <translation id="4546692474302123343">Hlasový vstup Asistenta Google</translation> <translation id="4547659257713117923">Žádné karty z jiných zařízení</translation> <translation id="4547672827276975204">Nastavit automaticky</translation> +<translation id="4548483925627140043">Signál nebyl nalezen</translation> <translation id="4549791035683739768">V bezpečnostním klíči nejsou uloženy žádné otisky</translation> <translation id="4551763574344810652">Stisknutím <ph name="MODIFIER_KEY_DESCRIPTION" /> vrátíte provedenou akci zpět</translation> <translation id="4552089082226364758">Flash</translation> @@ -2967,6 +2982,7 @@ <translation id="4582563038311694664">Resetovat všechna nastavení</translation> <translation id="4585793705637313973">Úprava stránky</translation> <translation id="4586275095964870617">Adresu <ph name="URL" /> se v alternativním prohlížeči nepodařilo otevřít. Kontaktujte svého administrátora systému.</translation> +<translation id="458794348635939462">Všechny hostitele se nepodařilo vyřešit</translation> <translation id="4589713469967853491">Protokoly byly úspěšně zaznamenány do složky Stažené soubory.</translation> <translation id="4590324241397107707">Databázové úložiště</translation> <translation id="4592891116925567110">Aplikace ke kreslení dotykovým perem</translation> @@ -3350,6 +3366,7 @@ <translation id="5089810972385038852">Stát/kraj</translation> <translation id="5094721898978802975">Komunikovat se spolupracujícími nativními aplikacemi</translation> <translation id="5097002363526479830">Připojení k síti <ph name="NAME" /> se nezdařilo: <ph name="DETAILS" /></translation> +<translation id="5097649414558628673">Nástroj: <ph name="PRINT_NAME" /></translation> <translation id="5097874180538493929">Automaticky kliknout při zastavení kurzoru</translation> <translation id="5101042277149003567">Otevřít všechny záložky</translation> <translation id="5101839224773798795">Při zastavení kurzoru automaticky kliknout</translation> @@ -3568,6 +3585,7 @@ <translation id="5370819323174483825">Načíst &znovu</translation> <translation id="5372529912055771682">Uvedený režim registrace není touto verzí operačního systému podporován. Zkontrolujte prosím, zda máte spuštěnou nejnovější verzi, a zkuste to znovu.</translation> <translation id="5372579129492968947">Odepnout rozšíření</translation> +<translation id="5372659122375744710">Síť Wi-Fi není zabezpečena</translation> <translation id="5376169624176189338">Kliknutím se vrátíte zpět, přidržením se zobrazí historie</translation> <translation id="5376931455988532197">Soubor je příliš velký</translation> <translation id="5377721922656071359">{COUNT,plural, =1{Data (<ph name="ATTACHMENTS" />) byla úspěšně odeslána do zařízení <ph name="DEVICE_NAME" />}few{Data (<ph name="ATTACHMENTS" />) byla úspěšně odeslána do zařízení <ph name="DEVICE_NAME" />}many{Data (<ph name="ATTACHMENTS" />) byla úspěšně odeslána do zařízení <ph name="DEVICE_NAME" />}other{Data (<ph name="ATTACHMENTS" />) byla úspěšně odeslána do zařízení <ph name="DEVICE_NAME" />}}</translation> @@ -3597,6 +3615,7 @@ <translation id="5414566801737831689">Číst ikony navštívených webových stránek</translation> <translation id="5417312524372586921">Motivy prohlížeče</translation> <translation id="5419405654816502573">Voice Match</translation> +<translation id="5420274697768050645">Za účelem zvýšení ochrany bude při odemykání zařízení vyžadováno heslo</translation> <translation id="5420438158931847627">Určuje ostrost textu a obrázků</translation> <translation id="5422221874247253874">Přístupový bod</translation> <translation id="5422781158178868512">Je nám líto, externí paměťové zařízení nelze rozpoznat.</translation> @@ -3721,6 +3740,7 @@ <translation id="5548606607480005320">Bezpečnostní kontrola</translation> <translation id="5551573675707792127">Klávesnice a zadávání textu</translation> <translation id="5553089923092577885">Mapování zásad certifikátu</translation> +<translation id="5554403733534868102">Žádná další upozornění na aktualizace</translation> <translation id="5554489410841842733">Tato ikona se zobrazí, když bude rozšíření moci provádět akce na aktuální stránce.</translation> <translation id="5554720593229208774">Certifikační autorita pro ověřování e-mailu</translation> <translation id="5556459405103347317">Načíst znovu</translation> @@ -4134,6 +4154,7 @@ <translation id="6061882183774845124">Odeslat odkaz do vašich zařízení</translation> <translation id="6064217302520318294">Zámek obrazovky</translation> <translation id="6065289257230303064">Atributy adresáře subjektu certifikátu</translation> +<translation id="6069464830445383022">K přihlašování do Chromebooku slouží účet Google</translation> <translation id="6069671174561668781">Nastavení tapety</translation> <translation id="6071181508177083058">potvrzení hesla</translation> <translation id="6071576563962215370">Systému se nepodařilo nastavit zámek atributů z doby instalace.</translation> @@ -4176,6 +4197,7 @@ <translation id="6104311680260824317">Zařízení do domény nelze přidat. Server nepodporuje zadané typy šifrování Kerberos. Zkontrolujte nastavení šifrování v části Další možnosti.</translation> <translation id="6104796831253957966">Fronta tiskárny je plná</translation> <translation id="6105994589138235234">Synchronizace prohlížeče Chrome</translation> +<translation id="6108689792487843350">Brána není dostupná</translation> <translation id="6111972606040028426">Aktivovat Asistenta Google</translation> <translation id="6112294629795967147">Klepnutím změníte velikost</translation> <translation id="6112727384379533756">Přidat lístek</translation> @@ -4236,6 +4258,7 @@ <translation id="6178664161104547336">Vyberte certifikát</translation> <translation id="6181431612547969857">Stahování zablokováno</translation> <translation id="6185132558746749656">Poloha zařízení</translation> +<translation id="6191293864534840972">Názvové servery nemají správný formát</translation> <translation id="6195446518998936840">Aby bylo možné nastavit rodičovskou kontrolu, vaše dítě musí mít účet Google, který mu pomůžete spravovat. Pomocí aplikace Family Link můžete nastavit limity času stráveného na zařízení, schválit nebo zablokovat webové stránky a provádět další akce.</translation> <translation id="6195693561221576702">Toto zařízení nelze nastavit v offline ukázkovém režimu.</translation> <translation id="6196640612572343990">Blokovat soubory cookie třetích stran</translation> @@ -4449,6 +4472,7 @@ <translation id="6451591602925140504">{NUM_PAGES,plural, =0{<ph name="PAGE_TITLE" />}=1{<ph name="PAGE_TITLE" /> a 1 další karta}few{<ph name="PAGE_TITLE" /> a # další karty}many{<ph name="PAGE_TITLE" /> a # další karty}other{<ph name="PAGE_TITLE" /> a # dalších karet}}</translation> <translation id="6451689256222386810">Pokud jste heslovou frázi zapomněli nebo toto nastavení chcete změnit, <ph name="BEGIN_LINK" />resetujte synchronizaci<ph name="END_LINK" />.</translation> <translation id="6452181791372256707">Odmítnout</translation> +<translation id="6452251728599530347">Dokončeno <ph name="PERCENT" /></translation> <translation id="6452961788130242735">Problém se sítí nebo nesprávná sféra</translation> <translation id="6455264371803474013">Na konkrétních webech</translation> <translation id="6455894534188563617">&Nová složka</translation> @@ -4505,6 +4529,7 @@ <ph name="EVENT_NAME" /></translation> <translation id="6520876759015997832">Výsledek vyhledávání <ph name="LIST_POSITION" /> z <ph name="LIST_SIZE" />: <ph name="SEARCH_RESULT_TEXT" />. Stisknutím klávesy Enter přejdete do sekce.</translation> <translation id="652492607360843641">Jste připojení k tomuto typu sítě: <ph name="NETWORK_TYPE" />.</translation> +<translation id="6527081081771465939">Neznámý bezpečnostní protokol Wi-Fi</translation> <translation id="6527303717912515753">Sdílet</translation> <translation id="6528513914570774834">Povolit ostatním uživatelům tohoto zařízení používat tuto síť</translation> <translation id="652948702951888897">Historie Chromu</translation> @@ -4621,6 +4646,7 @@ <translation id="6680442031740878064">Volné místo: <ph name="AVAILABLE_SPACE" /></translation> <translation id="6680650203439190394">Ohodnotit</translation> <translation id="6681668084120808868">Vyfotit</translation> +<translation id="6684827949542560880">Stahování nejnovější aktualizace</translation> <translation id="668599234725812620">Otevřít Google Play</translation> <translation id="6686490380836145850">Zavřít karty napravo</translation> <translation id="6686817083349815241">Uložte si heslo</translation> @@ -4730,6 +4756,7 @@ <translation id="6812841287760418429">Uchovat změny</translation> <translation id="6817174620439930047">Zeptat se, když chce web využít exkluzivní zprávy systému pro přístup k zařízením MIDI (doporučeno)</translation> <translation id="6818198425579322765">Jazyk stránky k překladu</translation> +<translation id="6818802132960437751">Integrovaná antivirová ochrana</translation> <translation id="682123305478866682">Odeslat plochu</translation> <translation id="6823174134746916417">Kliknutí klepnutím na touchpadu</translation> <translation id="6823506025919456619">Chcete-li zobrazit svá zařízení, musíte se přihlásit do Chromu.</translation> @@ -5376,6 +5403,7 @@ <translation id="7631205654593498032">Propojením zařízení vyjadřujete souhlas s tím, že zařízení <ph name="DEVICE_TYPE" /> může:</translation> <translation id="7631887513477658702">Vždy otevír&at soubory tohoto typu</translation> <translation id="7632948528260659758">Následující aplikace veřejného terminálu se nepodařilo aktualizovat:</translation> +<translation id="7633724038415831385">Toto je jediný případ, kdy budete čekat na aktualizaci. Software Chromebooků se aktualizuje na pozadí.</translation> <translation id="7634566076839829401">Něco se pokazilo. Zkuste to znovu.</translation> <translation id="763632859238619983">Nepovolovat žádnému webu instalovat obslužné nástroje pro platby</translation> <translation id="7636919061354591437">Nainstalovat na toto zařízení</translation> @@ -5654,6 +5682,7 @@ <translation id="7933314993013528982">{NUM_TABS,plural, =1{Zapnout zvuk webu}few{Zapnout zvuk webů}many{Zapnout zvuk webů}other{Zapnout zvuk webů}}</translation> <translation id="7933634003144813719">Spravovat sdílené složky</translation> <translation id="793531125873261495">Při stahování virtuálního počítače došlo k chybě. Zkuste to znovu.</translation> +<translation id="7936303884198020182">Nebyly nalezeny žádné názvové servery</translation> <translation id="7938594894617528435">Momentálně offline</translation> <translation id="7939062555109487992">Upřesnit možnosti</translation> <translation id="7939412583708276221">Přesto ponechat</translation> @@ -5896,6 +5925,7 @@ <translation id="8226742006292257240">Níže je náhodně vygenerované heslo modulu TPM, které bylo přiřazeno vašemu počítači:</translation> <translation id="8227119283605456246">Přiložit soubor</translation> <translation id="8230134520748321204">Uložit heslo pro <ph name="ORIGIN" />?</translation> +<translation id="8230672074305416752">Nepodařilo se pingnout bránu výchozí sítě</translation> <translation id="8234795456569844941">Pomozte našim technikům opravit tento problém. Sdělte nám, co se stalo těsně před zobrazením zprávy o chybě profilu:</translation> <translation id="8236917170563564587">Sdílet namísto toho tuto kartu</translation> <translation id="8237647586961940482">Tmavě růžová a červená</translation> @@ -5956,6 +5986,7 @@ <translation id="8288032458496410887">Odinstalovat aplikaci <ph name="APP" />…</translation> <translation id="8289128870594824098">Velikost disku</translation> <translation id="8291967909914612644">Země domácího poskytovatele</translation> +<translation id="8293206222192510085">Přidat záložku</translation> <translation id="8294431847097064396">Zdroj</translation> <translation id="8297006494302853456">Slabý</translation> <translation id="8299319456683969623">Momentálně jste v režimu offline.</translation> @@ -6005,6 +6036,7 @@ <translation id="8363095875018065315">stabilní</translation> <translation id="8363142353806532503">Mikrofon je blokován</translation> <translation id="8363763184161554204">oprávnění <ph name="PERMISSION" /> povoleno</translation> +<translation id="8364946094152050673">Prázdné názvové servery</translation> <translation id="8366396658833131068">Připojení k síti je obnoveno. Vyberte jinou síť nebo stisknutím tlačítka Pokračovat níže spusťte aplikaci kiosku.</translation> <translation id="8368027906805972958">Neznámé nebo nepodporované zařízení (<ph name="DEVICE_ID" />)</translation> <translation id="8368859634510605990">&Otevřít všechny záložky</translation> @@ -6090,8 +6122,10 @@ <translation id="8472623782143987204">hardwarová</translation> <translation id="8473863474539038330">Adresy a další</translation> <translation id="8475313423285172237">Jiný program ve vašem počítači nainstaloval rozšíření, které může měnit funkce Chromu.</translation> +<translation id="8475690821716466388">Síť Wi-Fi je zabezpečena slabým protokolem WEP PSK</translation> <translation id="8477241577829954800">Nahrazen</translation> <translation id="8477384620836102176">&Obecné</translation> +<translation id="8477551185774834963">DNS má latenci mírně nad prahovou hodnotou</translation> <translation id="8480082892550707549">Stránky mohou být přechodně nebezpečné (napadené) i v případě, že jste z nich již v minulosti soubory stahovali. Zkuste soubor stáhnout později.</translation> <translation id="8480869669560681089">Neznámé zařízení od dodavatele <ph name="VENDOR_NAME" /></translation> <translation id="8481187309597259238">Potvrzení oprávnění USB</translation> @@ -6143,6 +6177,7 @@ <translation id="8546930481464505581">Přizpůsobit dotykovou plochu</translation> <translation id="8547013269961688403">Povolit zvětšení obrazovky</translation> <translation id="85486688517848470">Podržením vyhledávacího tlačítka přepnete chování tlačítek v horním řádku</translation> +<translation id="8549316893834449916">K přihlašování do Chromebooku budete používat účet Google – stejný, jaký používáte s Gmailem, Diskem, YouTube a dalšími službami.</translation> <translation id="8551388862522347954">Licence</translation> <translation id="8551588720239073785">Nastavení data a času</translation> <translation id="8553342806078037065">Spravovat ostatní uživatele</translation> @@ -6281,6 +6316,7 @@ <translation id="8720200012906404956">Vyhledávání mobilní sítě. <ph name="BEGIN_LINK" />Další informace<ph name="END_LINK" /></translation> <translation id="8720816553731218127">Vypršel časový limit inicializace atributů z doby instalace.</translation> <translation id="8722912030556880711">Odesílat údaje o využití a diagnostice. Toto zařízení aktuálně automaticky odesílá do Googlu diagnostické údaje a údaje o zařízení a využití. Tyto údaje nám pomohou se zvyšováním stability systému a aplikací a dalšími vylepšeními. Některá souhrnná data budou moci využít také naši partneři, např. vývojáři aplikací pro Android. Pokud máte zapnuté dodatečné nastavení Aktivita na webu a v aplikacích, mohou se tato data ukládat do vašeho účtu Google. <ph name="BEGIN_LINK2" />Další informace<ph name="END_LINK2" /></translation> +<translation id="8723108084122415655">Jiná než výchozí síť má latenci nad prahovou hodnotou</translation> <translation id="8724405322205516354">Když je zobrazena tato ikona, můžete se identifikovat nebo schválit nákup otiskem prstu.</translation> <translation id="8724409975248965964">Otisk byl přidán</translation> <translation id="8724859055372736596">Zobrazit ve &složce</translation> @@ -6458,6 +6494,7 @@ <translation id="8909833622202089127">Web sleduje vaši polohu</translation> <translation id="8910146161325739742">Sdílení obrazovky</translation> <translation id="8910222113987937043">Změny záložek, historie, hesel a dalších nastavení se již nebudou synchronizovat do účtu Google. Vaše existující data v účtu Google uložena zůstanou a lze je spravovat na <ph name="BEGIN_LINK" />Hlavním panelu Google<ph name="END_LINK" />.</translation> +<translation id="8910721771319628100">Výchozí síť má latenci nad prahovou hodnotou</translation> <translation id="8912362522468806198">Účet Google</translation> <translation id="8912793549644936705">Roztáhnout</translation> <translation id="8912810933860534797">Zapnout automatické prohledávání</translation>
diff --git a/chrome/app/resources/generated_resources_da.xtb b/chrome/app/resources/generated_resources_da.xtb index 9eea4fcc..45129db4 100644 --- a/chrome/app/resources/generated_resources_da.xtb +++ b/chrome/app/resources/generated_resources_da.xtb
@@ -71,6 +71,7 @@ <translation id="1070705170564860382">Åbner en alternativ browser om <ph name="COUNTDOWN_SECONDS" /> sekunder</translation> <translation id="1071917609930274619">Omsætning af data til kode</translation> <translation id="1072700771426194907">Der blev registreret en USB-enhed</translation> +<translation id="107278043869924952">Brug pinkode og adgangskode</translation> <translation id="1076176485976385390">Naviger på sider med en tekstmarkør</translation> <translation id="1076698951459398590">Aktivér tema</translation> <translation id="1076818208934827215">Microsoft Internet Explorer</translation> @@ -524,7 +525,6 @@ <translation id="1608668830839595724">Flere handlinger for de valgte elementer</translation> <translation id="161042844686301425">Cyan</translation> <translation id="1611432201750675208">Din enhed er låst</translation> -<translation id="1611584202130317952">Provisioneringsflowet blev afbrudt. Prøv igen, eller kontakt enhedsejeren eller administratoren.</translation> <translation id="1614511179807650956">Du har muligvis opbrugt den tilladte mobildatamængde. Gå til aktiveringsportalen for <ph name="NAME" /> for at købe mere data.</translation> <translation id="161460670679785907">Din telefon kan ikke registreres</translation> <translation id="1616206807336925449">Denne udvidelse kræver ikke nogen særlige tilladelser.</translation> @@ -533,6 +533,7 @@ <translation id="1618268899808219593">Hjælp</translation> <translation id="1620307519959413822">Forkert adgangskode. Prøv igen, eller klik på "Har du glemt din adgangskode?" for at nulstille koden.</translation> <translation id="1620510694547887537">Kamera</translation> +<translation id="1621831347985899379"><ph name="DEVICE_TYPE" />-data slettes</translation> <translation id="1622054403950683339">Glem Wi-Fi-netværk</translation> <translation id="1623132449929929218">Billederne er ikke tilgængelige i øjeblikket. Opret internetforbindelse igen for at se samlingerne med baggrunde.</translation> <translation id="1623723619460186680">Reduktion af blåt lys</translation> @@ -760,6 +761,7 @@ <translation id="1877377290348678128">Etiket (valgfrit)</translation> <translation id="1877520246462554164">Der kunne ikke hentes noget godkendelsestoken. Log ud, og log derefter ind igen for at prøve igen.</translation> <translation id="1877860345998737529">Tildeling af handlinger for kontakter</translation> +<translation id="1878155070920054810">Det ser ud til, at din Chromebook løber tør for strøm, før opdateringen er fuldført. Sørg for, at du oplader korrekt, så opdateringen ikke afbrydes.</translation> <translation id="1879000426787380528">Log ind som</translation> <translation id="1880905663253319515">Slet certifikatet "<ph name="CERTIFICATE_NAME" />"?</translation> <translation id="1881445033931614352">Tastaturlayout</translation> @@ -964,6 +966,7 @@ <translation id="2148219725039824548">Der opstod en fejl ved anvendelse af deling. Den angivne deling blev ikke fundet på netværket.</translation> <translation id="2148756636027685713">Formatering er fuldført</translation> <translation id="2148892889047469596">Cast fanen</translation> +<translation id="2149973817440762519">Rediger bogmærke</translation> <translation id="2150139952286079145">Søg efter destinationer</translation> <translation id="2150661552845026580">Vil du tilføje "<ph name="EXTENSION_NAME" />"?</translation> <translation id="2151576029659734873">Det angivne faneindeks er ugyldigt.</translation> @@ -1073,6 +1076,7 @@ <translation id="2270627217422354837">Udveksle data med en enhed på domænerne: <ph name="DOMAINS" /></translation> <translation id="2272570998639520080">Martiniglas</translation> <translation id="2273119997271134996">Problem med dockingstationens videoport</translation> +<translation id="2274840746523584236">Oplad din Chromebook</translation> <translation id="2276503375879033601">Tilføj flere apps</translation> <translation id="2277255602909579701">Alle cookies og websitedata</translation> <translation id="2277769717710009150">{COUNT,plural, =1{1 element er kopieret}one{# element er kopieret}other{# elementer er kopieret}}</translation> @@ -1915,6 +1919,7 @@ <translation id="3308116878371095290">Denne side blev forhindret i at konfigurere cookies.</translation> <translation id="3308134619352333507">Skjul knap</translation> <translation id="3308852433423051161">Indlæser Google Assistent...</translation> +<translation id="3310640316857623290">DNS-forsinkelsen er markant højere end den tilladte grænse</translation> <translation id="3311445899360743395">Data, der er knyttet til denne app, bliver fjernet fra enheden.</translation> <translation id="3312424061798279731">Aktiverede sprog</translation> <translation id="3313622045786997898">Signaturværdi for certifikat</translation> @@ -1927,6 +1932,7 @@ <translation id="3323295311852517824">{NUM_FILES,plural, =0{Disse data har følsomt eller farligt indhold. Fjern indholdet, og prøv igen.}=1{Denne fil har følsomt eller farligt indhold. Fjern indholdet, og prøv igen.}one{Denne fil har følsomt eller farligt indhold. Fjern indholdet, og prøv igen.}other{Disse filer har følsomt eller farligt indhold. Fjern indholdet, og prøv igen.}}</translation> <translation id="3323521181261657960">Ekstra tid! Du har fået mere skærmtid</translation> <translation id="3325910708063135066">Kameraet og mikrofonen er deaktiveret i Systemindstillinger for Mac</translation> +<translation id="3327050066667856415">Chromebooks er udviklet med fokus på sikkerhed. Din enhed er automatisk beskyttet mod malware, uden at du skal hente ekstra software.</translation> <translation id="3328489342742826322">Når du gendanner fra en sikkerhedskopi, slettes dine eksisterende Linux-apps og -data fra din mappe med Linux-filer.</translation> <translation id="3331321258768829690">(<ph name="UTCOFFSET" />) <ph name="LONGTZNAME" /> (<ph name="EXEMPLARCITY" />)</translation> <translation id="3331974543021145906">Oplysninger om appen</translation> @@ -2116,6 +2122,7 @@ <translation id="3556433843310711081">Din administrator kan fjerne blokeringen for dig</translation> <translation id="3557101512409028104">Angiv websitebegrænsninger og grænser for skærmtid ved hjælp af Family Link</translation> <translation id="3559262020195162408">Politikken kunne ikke installeres på enheden.</translation> +<translation id="3559533181353831840">Ca. <ph name="TIME_LEFT" /> tilbage</translation> <translation id="3560034655160545939">&Stavekontrol</translation> <translation id="3562423906127931518">Denne proces kan tage et par minutter. Linux-containeren konfigureres.</translation> <translation id="3563432852173030730">Terminalapplikationen kunne ikke downloades.</translation> @@ -2158,6 +2165,7 @@ <translation id="3602290021589620013">Forhåndsvisning</translation> <translation id="3603622770190368340">Få fat i et netværkscertifikat</translation> <translation id="3604713164406837697">Skift baggrund</translation> +<translation id="360565022852130722">Wi-Fi-netværket er beskyttet med den svage protokol WEP 802.1x</translation> <translation id="3605780360466892872">Asger</translation> <translation id="3608576286259426129">Forhåndsvisning af billede fra bruger</translation> <translation id="3610369246614755442">Dockingstationens blæser trænger til service</translation> @@ -2194,6 +2202,7 @@ <translation id="3639220004740062347">Afslut Læser-tilstand</translation> <translation id="3640214691812501263">Vil du tilføje "<ph name="EXTENSION_NAME" />" for <ph name="USER_NAME" />?</translation> <translation id="3640613767643722554">Lær din assistent at genkende din stemme</translation> +<translation id="3643014427358482789"><ph name="DOMAIN" /> deaktiverer ADB-fejlretning, hvilket gendanner fabriksindstillingerne på din <ph name="DEVICE_TYPE" />. Sikkerhedskopiér dine filer, før du genstarter.</translation> <translation id="3645372836428131288">Flyt fingeren en smule for at registrere en anden del af fingeraftrykket.</translation> <translation id="3647998456578545569">{COUNT,plural, =1{<ph name="ATTACHMENTS" /> blev modtaget fra <ph name="DEVICE_NAME" />}one{<ph name="ATTACHMENTS" /> received from <ph name="DEVICE_NAME" />}other{<ph name="ATTACHMENTS" /> blev modtaget fra <ph name="DEVICE_NAME" />}}</translation> <translation id="3648348069317717750"><ph name="USB_DEVICE_NAME" /> blev registreret</translation> @@ -2282,6 +2291,7 @@ <translation id="3732857534841813090">Oplysninger, der er relateret til Google Assistent</translation> <translation id="3733127536501031542">SSL-server med optrapning</translation> <translation id="3735740477244556633">Sortér efter</translation> +<translation id="3738632186060045350"><ph name="DEVICE_TYPE" />-data slettes om 24 timer</translation> <translation id="3738924763801731196"><ph name="OID" />:</translation> <translation id="3739254215541673094">Vil du åbne <ph name="APPLICATION" />?</translation> <translation id="3742055079367172538">Screenshottet blev gemt</translation> @@ -2469,6 +2479,7 @@ <translation id="3937734102568271121">Oversæt altid <ph name="LANGUAGE" /></translation> <translation id="3938128855950761626">Enheder fra leverandøren <ph name="VENDOR_ID" /></translation> <translation id="3940233957883229251">Aktivér automatisk gentagelse</translation> +<translation id="3941014780699102620">Der kunne ikke identificeres en host</translation> <translation id="3941565636838060942">Hvis du vil skjule adgangen til dette program, skal du afinstallere det via <ph name="CONTROL_PANEL_APPLET_NAME" /> i kontrolpanelet. @@ -2631,6 +2642,7 @@ <translation id="413121957363593859">Komponenter</translation> <translation id="4131410914670010031">Sort/hvid</translation> <translation id="413193092008917129">Rutiner for netværksdiagnostik</translation> +<translation id="4132183752438206707">Find apps i Google Play Butik</translation> <translation id="4133076602192971179">Åbn appen for at ændre din adgangskode</translation> <translation id="4136203100490971508">Nattelys slukkes automatisk ved solopgang</translation> <translation id="41365691917097717">Hvis du fortsætter, aktiveres ADB-fejlretning til oprettelse og test af Android-apps. Bemærk! Denne handling tillader, at Android-apps, der ikke er blevet bekræftet af Google, kan installeres. Du skal gendanne fabriksindstillingerne for at deaktivere dette.</translation> @@ -2880,6 +2892,8 @@ <translation id="4479877282574735775">Konfigurerer den virtuelle maskine. Dette kan tage et par minutter.</translation> <translation id="4480590691557335796">Chrome kan finde og fjerne skadelig software på din computer</translation> <translation id="4481530544597605423">Ikke-parrede enheder</translation> +<translation id="4483049906298469269">Gatewayen for det netværk, der ikke er angivet som standardnetværk, kunne ikke pinges</translation> +<translation id="4487489714832036847">Chromebooks bruger apps i stedet for traditionel software. Få apps til produktivitet, underholdning og meget mere.</translation> <translation id="4488502501195719518">Vil du rydde alle data?</translation> <translation id="4493468155686877504">Anbefalet (<ph name="INSTALL_SIZE" />)</translation> <translation id="4495419450179050807">Vis ikke på denne side</translation> @@ -2930,6 +2944,7 @@ <translation id="4546692474302123343">Indtaling i Google Assistent</translation> <translation id="4547659257713117923">Ingen faner fra andre enheder</translation> <translation id="4547672827276975204">Indstil automatisk</translation> +<translation id="4548483925627140043">Der blev ikke fundet noget signal</translation> <translation id="4549791035683739768">Der er ikke gemt nogen fingeraftryk i din sikkerhedsnøgle</translation> <translation id="4551763574344810652">Tryk på <ph name="MODIFIER_KEY_DESCRIPTION" /> for at fortryde</translation> <translation id="4552089082226364758">Flash</translation> @@ -2969,6 +2984,7 @@ <translation id="4582563038311694664">Nulstil alle indstillinger</translation> <translation id="4585793705637313973">Rediger side</translation> <translation id="4586275095964870617"><ph name="URL" /> kunne ikke åbnes i en alternativ browser. Kontakt din systemadministrator.</translation> +<translation id="458794348635939462">Ikke alle hosts kunne identificeres</translation> <translation id="4589713469967853491">Logs blev skrevet til mappen Downloads.</translation> <translation id="4590324241397107707">Lagring i database</translation> <translation id="4592891116925567110">App til tegning med styluspen</translation> @@ -3352,6 +3368,7 @@ <translation id="5089810972385038852">Stat</translation> <translation id="5094721898978802975">Kommunikere med indbyggede apps</translation> <translation id="5097002363526479830">Der kunne ikke oprettes forbindelse til netværket "<ph name="NAME" />": <ph name="DETAILS" /></translation> +<translation id="5097649414558628673">Værktøj: <ph name="PRINT_NAME" /></translation> <translation id="5097874180538493929">Klik automatisk, når markøren stopper</translation> <translation id="5101042277149003567">Åbn alle bogmærker</translation> <translation id="5101839224773798795">Klik automatisk, når markøren stopper</translation> @@ -3570,6 +3587,7 @@ <translation id="5370819323174483825">&Opdater</translation> <translation id="5372529912055771682">Den medfølgende tilstand for tilmelding understøttes ikke af denne version af operativsystemet. Sørg for, at du kører den nyeste version, og prøv igen.</translation> <translation id="5372579129492968947">Frigør udvidelse</translation> +<translation id="5372659122375744710">Wi-Fi-netværket er ikke sikkert</translation> <translation id="5376169624176189338">Klik for at gå tilbage. Hold knappen inde for at se historikken.</translation> <translation id="5376931455988532197">Filen er for stor</translation> <translation id="5377721922656071359">{COUNT,plural, =1{<ph name="ATTACHMENTS" /> blev sendt til <ph name="DEVICE_NAME" />}one{<ph name="ATTACHMENTS" /> successfully sent to <ph name="DEVICE_NAME" />}other{<ph name="ATTACHMENTS" /> blev sendt til <ph name="DEVICE_NAME" />}}</translation> @@ -3599,6 +3617,7 @@ <translation id="5414566801737831689">Læs ikonerne for de websites, du besøger</translation> <translation id="5417312524372586921">Browsertemaer</translation> <translation id="5419405654816502573">Voice Match</translation> +<translation id="5420274697768050645">Kræv adgangskode for at låse denne enhed op som ekstra beskyttelse</translation> <translation id="5420438158931847627">Bestemmer skarpheden af tekst og billeder</translation> <translation id="5422221874247253874">Adgangspunkt</translation> <translation id="5422781158178868512">Vi beklager, men din eksterne lagerenhed kunne ikke genkendes.</translation> @@ -3723,6 +3742,7 @@ <translation id="5548606607480005320">Sikkerhedstjek</translation> <translation id="5551573675707792127">Tastatur og tekstindtastning</translation> <translation id="5553089923092577885">Beskrivelse af certifikatpolitik</translation> +<translation id="5554403733534868102">Når du har gjort dette, behøver du ikke at vente på opdateringer igen</translation> <translation id="5554489410841842733">Dette ikon er synligt, når udvidelsen kan fungere på den aktuelle side.</translation> <translation id="5554720593229208774">Mail-certificeringsautoritet</translation> <translation id="5556459405103347317">Genindlæs</translation> @@ -4136,6 +4156,7 @@ <translation id="6061882183774845124">Send linket til dine enheder</translation> <translation id="6064217302520318294">Skærmlås</translation> <translation id="6065289257230303064">Indeksattributter for certifikatets emne</translation> +<translation id="6069464830445383022">Din Google-konto skal bruges til at logge ind på din Chromebook</translation> <translation id="6069671174561668781">Angiv baggrund</translation> <translation id="6071181508177083058">bekræft adgangskode</translation> <translation id="6071576563962215370">Systemet kunne ikke fastslå installationstidspunktet for enhedens attributlås.</translation> @@ -4178,6 +4199,7 @@ <translation id="6104311680260824317">Enheden kunne ikke knyttes til domænet. Serveren understøtter ikke de angivne Kerberos-krypteringstyper. Tjek krypteringsindstillingerne under "Flere valgmuligheder".</translation> <translation id="6104796831253957966">Printerkøen er fuld</translation> <translation id="6105994589138235234">Synkronisering af Chrome-browseren</translation> +<translation id="6108689792487843350">Denne gateway kan ikke nås</translation> <translation id="6111972606040028426">Aktivér Google Assistent</translation> <translation id="6112294629795967147">Tryk for at vælge en anden størrelse</translation> <translation id="6112727384379533756">Tilføj en billet</translation> @@ -4239,6 +4261,7 @@ <translation id="6178664161104547336">Vælg et certifikat</translation> <translation id="6181431612547969857">Downloaden blev blokeret</translation> <translation id="6185132558746749656">Enhedsplacering</translation> +<translation id="6191293864534840972">Forkert udformede navneservere</translation> <translation id="6195446518998936840">Hvis du vil konfigurere forældreindstillinger, skal dit barn have en Google-konto, som du hjælper med at administrere. Du kan angive begrænsninger for skærmtid, godkende eller blokere websites og meget mere med Family Link-appen.</translation> <translation id="6195693561221576702">Enheden kan ikke konfigureres i offlinedemotilstand.</translation> <translation id="6196640612572343990">Bloker cookies fra tredjeparter</translation> @@ -4452,6 +4475,7 @@ <translation id="6451591602925140504">{NUM_PAGES,plural, =0{<ph name="PAGE_TITLE" />}=1{<ph name="PAGE_TITLE" /> og 1 anden fane}one{<ph name="PAGE_TITLE" /> og # anden fane}other{<ph name="PAGE_TITLE" /> og # andre faner}}</translation> <translation id="6451689256222386810">Hvis du har glemt din adgangssætning eller vil ændre denne indstilling, skal du <ph name="BEGIN_LINK" />nulstille synkroniseringen<ph name="END_LINK" />.</translation> <translation id="6452181791372256707">Afvis</translation> +<translation id="6452251728599530347"><ph name="PERCENT" /> fuldført</translation> <translation id="6452961788130242735">Netværksproblem eller ugyldigt domæne</translation> <translation id="6455264371803474013">På specifikke websites</translation> <translation id="6455894534188563617">&Ny mappe</translation> @@ -4508,6 +4532,7 @@ <ph name="EVENT_NAME" /></translation> <translation id="6520876759015997832">Søgeresultat <ph name="LIST_POSITION" /> af <ph name="LIST_SIZE" />: <ph name="SEARCH_RESULT_TEXT" />. Tryk på Enter for at gå til sektionen.</translation> <translation id="652492607360843641">Du har oprettet forbindelse til et <ph name="NETWORK_TYPE" />-netværk.</translation> +<translation id="6527081081771465939">Ukendt Wi-Fi-sikkerhedsprotokol</translation> <translation id="6527303717912515753">Del</translation> <translation id="6528513914570774834">Giv andre brugere af denne enhed tilladelse til at bruge dette netværk</translation> <translation id="652948702951888897">Chrome-historik</translation> @@ -4624,6 +4649,7 @@ <translation id="6680442031740878064">Tilgængelig: <ph name="AVAILABLE_SPACE" /></translation> <translation id="6680650203439190394">Talehastighed</translation> <translation id="6681668084120808868">Tag billede</translation> +<translation id="6684827949542560880">Downloader den nyeste opdatering</translation> <translation id="668599234725812620">Åbn Google Play</translation> <translation id="6686490380836145850">Luk fanerne til højre</translation> <translation id="6686817083349815241">Gem din adgangskode</translation> @@ -4733,6 +4759,7 @@ <translation id="6812841287760418429">Behold ændringer</translation> <translation id="6817174620439930047">Spørg mig, når et website vil anvende interne systemmeddelelser til at få adgang til MIDI-enheder (anbefales)</translation> <translation id="6818198425579322765">Sidens sprog, som skal oversættes</translation> +<translation id="6818802132960437751">Indbygget virusbeskyttelse</translation> <translation id="682123305478866682">Cast skrivebordet</translation> <translation id="6823174134746916417">Tryk-hurtigt-for-at-klikke på touchplade</translation> <translation id="6823506025919456619">Du skal logge ind i Chrome for at se dine enheder</translation> @@ -5379,6 +5406,7 @@ <translation id="7631205654593498032">Når du opretter forbindelse mellem dine enheder, accepterer du, at din <ph name="DEVICE_TYPE" /> kan gøre følgende:</translation> <translation id="7631887513477658702">&Åbn altid filer af denne type</translation> <translation id="7632948528260659758">Følgende kioskapps kan ikke opdateres:</translation> +<translation id="7633724038415831385">Dette er den eneste gang, du skal vente på en opdatering. På Chromebooks foregår softwareopdateringer i baggrunden.</translation> <translation id="7634566076839829401">Der opstod en fejl. Prøv igen.</translation> <translation id="763632859238619983">Tillad ikke, at websites installerer betalingshandlere</translation> <translation id="7636919061354591437">Installer på denne enhed</translation> @@ -5656,6 +5684,7 @@ <translation id="7933314993013528982">{NUM_TABS,plural, =1{Slå lyden til på dette website}one{Slå lyden til på dette website}other{Slå lyden til på disse websites}}</translation> <translation id="7933634003144813719">Administrer delte mapper</translation> <translation id="793531125873261495">Der opstod en fejl under forsøget på at downloade den virtuelle maskine. Prøv igen.</translation> +<translation id="7936303884198020182">Der blev ikke fundet nogen navneservere</translation> <translation id="7938594894617528435">I øjeblikket offline</translation> <translation id="7939062555109487992">Avancerede valgmuligheder</translation> <translation id="7939412583708276221">Behold alligevel</translation> @@ -5899,6 +5928,7 @@ <translation id="8226742006292257240">Nedenfor ses den vilkårlige TPM-adgangskode, der er tilknyttet din computer:</translation> <translation id="8227119283605456246">Vedhæft fil</translation> <translation id="8230134520748321204">Vil du gemme adgangskoden til <ph name="ORIGIN" />?</translation> +<translation id="8230672074305416752">Standardnetværkets gateway kunne ikke pinges</translation> <translation id="8234795456569844941">Hjælp vores softwareudviklere med at løse dette problem. Fortæl os, hvad der skete, lige før du fik fejlmeddelelsen for profilen:</translation> <translation id="8236917170563564587">Del denne fane i stedet</translation> <translation id="8237647586961940482">Mørk pink og rød</translation> @@ -5959,6 +5989,7 @@ <translation id="8288032458496410887">Afinstaller <ph name="APP" />...</translation> <translation id="8289128870594824098">Diskstørrelse</translation> <translation id="8291967909914612644">Land for udbyder til hjem</translation> +<translation id="8293206222192510085">Tilføj bogmærke</translation> <translation id="8294431847097064396">Kilde</translation> <translation id="8297006494302853456">Svag</translation> <translation id="8299319456683969623">Du er i øjeblikket offline.</translation> @@ -6008,6 +6039,7 @@ <translation id="8363095875018065315">stabil</translation> <translation id="8363142353806532503">Der er blokeret for adgang til mikrofonen</translation> <translation id="8363763184161554204">tillod <ph name="PERMISSION" /></translation> +<translation id="8364946094152050673">Navneserverne er ikke angivet</translation> <translation id="8366396658833131068">Netværksforbindelsen er genoprettet. Vælg et andet netværk, eller tryk på knappen "Fortsæt" nedenfor for at åbne din terminalapp.</translation> <translation id="8368027906805972958">Ukendt eller ikke-understøttet enhed (<ph name="DEVICE_ID" />)</translation> <translation id="8368859634510605990">&Åbn alle bogmærker</translation> @@ -6093,8 +6125,10 @@ <translation id="8472623782143987204">hardwarebaseret</translation> <translation id="8473863474539038330">Adresser m.m.</translation> <translation id="8475313423285172237">Et andet program på din computer tilføjede en udvidelse, der kan ændre den måde, hvorpå Chrome fungerer.</translation> +<translation id="8475690821716466388">Wi-Fi-netværket er beskyttet med den svage protokol WEP PSK</translation> <translation id="8477241577829954800">Erstattet</translation> <translation id="8477384620836102176">&Generelt</translation> +<translation id="8477551185774834963">DNS-forsinkelsen er en smule højere end den tilladte grænse</translation> <translation id="8480082892550707549">Selvom du tidligere har downloadet filer fra dette website, kan det stadig være midlertidigt usikkert (hacket). Prøv at downloade denne fil på et senere tidspunkt.</translation> <translation id="8480869669560681089">Ukendt enhed fra <ph name="VENDOR_NAME" /></translation> <translation id="8481187309597259238">Bekræft USB-tilladelse</translation> @@ -6146,6 +6180,7 @@ <translation id="8546930481464505581">Tilpas Touch Bar</translation> <translation id="8547013269961688403">Aktivér forstørrelse af fuld skærm</translation> <translation id="85486688517848470">Hold tasten Søg nede for at skifte funktion for den øverste række taster</translation> +<translation id="8549316893834449916">Du skal bruge din Google-konto til at logge ind på din Chromebook – den samme konto, som du bruger i Gmail, i Drev, på YouTube m.m.</translation> <translation id="8551388862522347954">Licenser</translation> <translation id="8551588720239073785">Indstillinger for dato og tid</translation> <translation id="8553342806078037065">Administrer andre personer</translation> @@ -6284,6 +6319,7 @@ <translation id="8720200012906404956">Søger efter et mobilnetværk. <ph name="BEGIN_LINK" />Få flere oplysninger<ph name="END_LINK" /></translation> <translation id="8720816553731218127">Initialiseringen af attributterne for installationstid er udløbet.</translation> <translation id="8722912030556880711">Send brugs- og diagnosticeringsdata. Denne enhed sender i øjeblikket automatisk diagnosticerings- og enhedsdata samt data om brug af apps til Google. Dataene bruges til forbedring af bl.a. systemets og appens stabilitet. Visse samlede data hjælper også Google-apps og -partnere, f.eks. Android-udviklere. Hvis indstillingen til yderligere web- og appaktivitet er aktiveret, gemmes disse data muligvis på din Google-konto. <ph name="BEGIN_LINK2" />Få flere oplysninger<ph name="END_LINK2" /></translation> +<translation id="8723108084122415655">Det netværk, der ikke er angivet som standardnetværket, overstiger grænsen for forsinkelse</translation> <translation id="8724405322205516354">Når du ser dette ikon, kan du bruge dit fingeraftryk til identifikation eller til at godkende køb.</translation> <translation id="8724409975248965964">Fingeraftryk tilføjet</translation> <translation id="8724859055372736596">&Vis i mappe</translation> @@ -6462,6 +6498,7 @@ <translation id="8909833622202089127">Websitet sporer din placering</translation> <translation id="8910146161325739742">Del din skærm</translation> <translation id="8910222113987937043">Ændringer af bogmærker, historik, adgangskoder og andre indstillinger synkroniseres ikke længere med din Google-konto. Dine eksisterende data er dog stadig gemt på din Google-konto og kan administreres i <ph name="BEGIN_LINK" />Google Kontrolpanel<ph name="END_LINK" />.</translation> +<translation id="8910721771319628100">Standardnetværket overstiger grænsen for forsinkelse</translation> <translation id="8912362522468806198">Google-konto</translation> <translation id="8912793549644936705">Stræk</translation> <translation id="8912810933860534797">Aktivér automatisk scanning</translation>
diff --git a/chrome/app/resources/generated_resources_de.xtb b/chrome/app/resources/generated_resources_de.xtb index 96763a7..a0e36dd 100644 --- a/chrome/app/resources/generated_resources_de.xtb +++ b/chrome/app/resources/generated_resources_de.xtb
@@ -71,6 +71,7 @@ <translation id="1070705170564860382">Wird in <ph name="COUNTDOWN_SECONDS" /> Sekunden in einem alternativen Browser geöffnet</translation> <translation id="1071917609930274619">Datenverschlüsselung</translation> <translation id="1072700771426194907">USB-Gerät erkannt</translation> +<translation id="107278043869924952">Zusätzlich zum Passwort die PIN verwenden</translation> <translation id="1076176485976385390">Mit einem Textcursor auf den Seiten bewegen</translation> <translation id="1076698951459398590">Design aktivieren</translation> <translation id="1076818208934827215">Internet Explorer</translation> @@ -521,7 +522,6 @@ <translation id="1608668830839595724">Weitere Aktionen für ausgewählte Elemente</translation> <translation id="161042844686301425">Cyan</translation> <translation id="1611432201750675208">Gerät gesperrt</translation> -<translation id="1611584202130317952">Bereitstellungsverfahren unterbrochen. Bitte wenden Sie sich an den Eigentümer Ihres Geräts oder an den Administrator oder versuchen Sie es noch einmal.</translation> <translation id="1614511179807650956">Sie haben eventuell Ihr mobiles Datenkontingent aufgebraucht. Besuchen Sie das <ph name="NAME" />-Aktivierungsportal, um weiteres Datenkontingent zu kaufen.</translation> <translation id="161460670679785907">Ihr Smartphone wurde nicht erkannt</translation> <translation id="1616206807336925449">Diese Erweiterung erfordert keine speziellen Berechtigungen.</translation> @@ -530,6 +530,7 @@ <translation id="1618268899808219593">H&ilfe</translation> <translation id="1620307519959413822">Falsches Passwort. Versuchen Sie es noch einmal oder klicken Sie auf "Passwort vergessen?", um es zurückzusetzen.</translation> <translation id="1620510694547887537">Kamera</translation> +<translation id="1621831347985899379"><ph name="DEVICE_TYPE" />-Daten werden gelöscht</translation> <translation id="1622054403950683339">WLAN löschen</translation> <translation id="1623132449929929218">Die Bilder sind momentan nicht verfügbar. Verbinden Sie sich noch einmal, um die Sammlungen anzusehen.</translation> <translation id="1623723619460186680">Reduzierung von blauem Licht</translation> @@ -757,6 +758,7 @@ <translation id="1877377290348678128">Label (optional)</translation> <translation id="1877520246462554164">Authentifizierungs-Token konnte nicht abgerufen werden. Bitte melden Sie sich ab und dann wieder an, um es noch einmal zu versuchen.</translation> <translation id="1877860345998737529">Schalter Aktionen zuweisen</translation> +<translation id="1878155070920054810">Der Akku Ihres Chromebooks wird leer sein, bevor das Update abgeschlossen ist. Bitte schließen Sie es an die Steckdose an.</translation> <translation id="1879000426787380528">Anmelden als</translation> <translation id="1880905663253319515">Zertifikat "<ph name="CERTIFICATE_NAME" />" löschen?</translation> <translation id="1881445033931614352">Tastaturlayout</translation> @@ -961,6 +963,7 @@ <translation id="2148219725039824548">Fehler beim Bereitstellen der Freigabe. Die angegebene Freigabe wurde im Netzwerk nicht gefunden.</translation> <translation id="2148756636027685713">Formatierung beendet</translation> <translation id="2148892889047469596">Tab streamen</translation> +<translation id="2149973817440762519">Lesezeichen bearbeiten</translation> <translation id="2150139952286079145">Ziele suchen</translation> <translation id="2150661552845026580">"<ph name="EXTENSION_NAME" />" hinzufügen?</translation> <translation id="2151576029659734873">Eingegebener Tabindex ist ungültig.</translation> @@ -1070,6 +1073,7 @@ <translation id="2270627217422354837">Daten mit einem beliebigen Gerät in diesen Domains austauschen: <ph name="DOMAINS" /></translation> <translation id="2272570998639520080">Martiniglas</translation> <translation id="2273119997271134996">Problem mit Dock und Videoport</translation> +<translation id="2274840746523584236">Chromebook laden</translation> <translation id="2276503375879033601">Weitere Apps hinzufügen</translation> <translation id="2277255602909579701">Alle Cookies und Websitedaten</translation> <translation id="2277769717710009150">{COUNT,plural, =1{1 Element kopiert}other{# Elemente kopiert}}</translation> @@ -1911,6 +1915,7 @@ <translation id="3308116878371095290">Diese Seite konnte keine Cookies setzen.</translation> <translation id="3308134619352333507">Schaltfläche ausblenden</translation> <translation id="3308852433423051161">Google Assistant wird geladen...</translation> +<translation id="3310640316857623290">Die DNS-Latenz liegt deutlich über dem zulässigen Grenzwert</translation> <translation id="3311445899360743395">Daten, die dieser App zugewiesen sind, werden möglicherweise von diesem Gerät entfernt.</translation> <translation id="3312424061798279731">Aktivierte Sprachen</translation> <translation id="3313622045786997898">Wert für Zertifikatsignatur</translation> @@ -1923,6 +1928,7 @@ <translation id="3323295311852517824">{NUM_FILES,plural, =0{Diese Daten enthalten vertrauliche oder schädliche Inhalte. Entfernen Sie diese Inhalte und versuchen Sie es noch einmal.}=1{Diese Datei enthält vertrauliche oder schädliche Inhalte. Entfernen Sie diese Inhalte und versuchen Sie es noch einmal.}other{Diese Dateien enthalten vertrauliche oder schädliche Inhalte. Entfernen Sie diese Inhalte und versuchen Sie es noch einmal.}}</translation> <translation id="3323521181261657960">Bonus! Gerätenutzungsdauer verlängert</translation> <translation id="3325910708063135066">Kamera und Mikrofon wurden in den Mac-Systemeinstellungen ausgeschaltet</translation> +<translation id="3327050066667856415">Chromebooks sind auf Sicherheit ausgelegt. Ihr Gerät ist automatisch vor Malware geschützt – ganz ohne zusätzliche Software.</translation> <translation id="3328489342742826322">Bei der Wiederherstellung aus einer Sicherung werden bestehende Linux-Anwendungen und -Daten in Ihren Linux-Dateiordnern gelöscht.</translation> <translation id="3331321258768829690">(<ph name="UTCOFFSET" />) <ph name="LONGTZNAME" /> (<ph name="EXEMPLARCITY" />)</translation> <translation id="3331974543021145906">App-Info</translation> @@ -2112,6 +2118,7 @@ <translation id="3556433843310711081">Dein Administrator kann die Blockierung aufheben</translation> <translation id="3557101512409028104">Mit Family Link können Sie Website-Einschränkungen und die Gerätenutzungsdauer festlegen</translation> <translation id="3559262020195162408">Fehler beim Installieren der Richtlinie auf dem Gerät.</translation> +<translation id="3559533181353831840">Noch <ph name="TIME_LEFT" /></translation> <translation id="3560034655160545939">&Rechtschreibprüfung</translation> <translation id="3562423906127931518">Der Vorgang kann einige Minuten dauern. Linux-Container wird eingerichtet.</translation> <translation id="3563432852173030730">Die Kioskanwendung konnte nicht heruntergeladen werden.</translation> @@ -2154,6 +2161,7 @@ <translation id="3602290021589620013">Vorschau</translation> <translation id="3603622770190368340">Netzwerkzertifikat anfordern</translation> <translation id="3604713164406837697">Hintergrund ändern</translation> +<translation id="360565022852130722">Das WLAN ist mit dem schwachen Protokoll WEP 802.1x gesichert</translation> <translation id="3605780360466892872">Hemdträger</translation> <translation id="3608576286259426129">Vorschau für Nutzerbild</translation> <translation id="3610369246614755442">Lüfter des Docks muss repariert werden</translation> @@ -2190,6 +2198,7 @@ <translation id="3639220004740062347">Lesemodus deaktivieren</translation> <translation id="3640214691812501263">"<ph name="EXTENSION_NAME" />" für <ph name="USER_NAME" /> hinzufügen?</translation> <translation id="3640613767643722554">Assistant beibringen, Ihre Stimme zu erkennen</translation> +<translation id="3643014427358482789"><ph name="DOMAIN" /> deaktiviert die ADB-Fehlerbehebung, wodurch <ph name="DEVICE_TYPE" /> zurückgesetzt wird. Sichern Sie vor dem Neustart Ihre Dateien.</translation> <translation id="3645372836428131288">Bewegen Sie Ihren Finger etwas, um einen anderen Teil des Fingerabdrucks zu erfassen.</translation> <translation id="3647998456578545569">{COUNT,plural, =1{<ph name="ATTACHMENTS" /> erhalten von <ph name="DEVICE_NAME" />}other{<ph name="ATTACHMENTS" /> erhalten von <ph name="DEVICE_NAME" />}}</translation> <translation id="3648348069317717750"><ph name="USB_DEVICE_NAME" /> erkannt</translation> @@ -2278,6 +2287,7 @@ <translation id="3732857534841813090">Informationen zu Google Assistant</translation> <translation id="3733127536501031542">SSL-Server mit Step-up</translation> <translation id="3735740477244556633">Sortieren nach</translation> +<translation id="3738632186060045350">Die <ph name="DEVICE_TYPE" />-Daten werden in 24 Stunden gelöscht</translation> <translation id="3738924763801731196"><ph name="OID" />:</translation> <translation id="3739254215541673094"><ph name="APPLICATION" /> öffnen?</translation> <translation id="3742055079367172538">Screenshot erstellt</translation> @@ -2465,6 +2475,7 @@ <translation id="3937734102568271121"><ph name="LANGUAGE" /> immer übersetzen</translation> <translation id="3938128855950761626">Geräte von Anbieter <ph name="VENDOR_ID" /></translation> <translation id="3940233957883229251">Automatische Wiederholung aktivieren</translation> +<translation id="3941014780699102620">Host konnte nicht aufgelöst werden</translation> <translation id="3941565636838060942">Der Zugriff auf dieses Programm kann ausgeblendet werden, indem es mithilfe von <ph name="CONTROL_PANEL_APPLET_NAME" /> im Steuerfeld deinstalliert wird. @@ -2627,6 +2638,7 @@ <translation id="413121957363593859">Komponenten</translation> <translation id="4131410914670010031">Schwarz-Weiß</translation> <translation id="413193092008917129">Netzwerk-Diagnoseabläufe</translation> +<translation id="4132183752438206707">Entdecken Sie Apps im Google Play Store</translation> <translation id="4133076602192971179">Sie können Ihr Passwort in der App ändern</translation> <translation id="4136203100490971508">Das Nachtlicht wird automatisch bei Sonnenaufgang deaktiviert</translation> <translation id="41365691917097717">Wenn Sie fortfahren, erlauben Sie der ADB-Fehlerbehebung, Android-Apps zu erstellen und zu testen. Durch diese Aktion können Android-Apps installiert werden, die nicht von Google geprüft wurden. Zum Deaktivieren ist das Zurücksetzen auf die Werkseinstellungen erforderlich.</translation> @@ -2876,6 +2888,8 @@ <translation id="4479877282574735775">Die virtuelle Maschine wird konfiguriert. Dies kann einige Minuten dauern.</translation> <translation id="4480590691557335796">Chrome kann auf Ihrem Computer schädliche Software suchen und entfernen</translation> <translation id="4481530544597605423">Entkoppelte Geräte</translation> +<translation id="4483049906298469269">Das nicht standardmäßige Netzwerk-Gateway konnte nicht kontaktiert werden</translation> +<translation id="4487489714832036847">Chromebooks verwenden Apps anstatt traditioneller Software. Es gibt Apps für Produktivität, Unterhaltung und vieles mehr.</translation> <translation id="4488502501195719518">Alle Daten löschen?</translation> <translation id="4493468155686877504">Empfohlen (<ph name="INSTALL_SIZE" />)</translation> <translation id="4495419450179050807">Nicht auf dieser Seite anzeigen</translation> @@ -2926,6 +2940,7 @@ <translation id="4546692474302123343">Google Assistant-Spracheingabe</translation> <translation id="4547659257713117923">Keine Tabs von anderen Geräten</translation> <translation id="4547672827276975204">Automatisch festlegen</translation> +<translation id="4548483925627140043">Signal nicht gefunden</translation> <translation id="4549791035683739768">Auf Ihrem Sicherheitsschlüssel sind keine Fingerabdrücke gespeichert</translation> <translation id="4551763574344810652">"<ph name="MODIFIER_KEY_DESCRIPTION" />" drücken, um Aktion rückgängig zu machen</translation> <translation id="4552089082226364758">Flash</translation> @@ -2965,6 +2980,7 @@ <translation id="4582563038311694664">Alle Einstellungen zurücksetzen</translation> <translation id="4585793705637313973">Seite bearbeiten</translation> <translation id="4586275095964870617"><ph name="URL" /> konnte nicht in einem alternativen Browser geöffnet werden. Bitte setzen Sie sich mit dem Systemadministrator in Verbindung.</translation> +<translation id="458794348635939462">Es konnten nicht alle Hosts aufgelöst werden</translation> <translation id="4589713469967853491">Protokolle erfolgreich in Downloadverzeichnis geschrieben.</translation> <translation id="4590324241397107707">Datenbankspeicher</translation> <translation id="4592891116925567110">Zeichen-App für Eingabestift</translation> @@ -3348,6 +3364,7 @@ <translation id="5089810972385038852">Bundesstaat</translation> <translation id="5094721898978802975">Mit zusammenarbeitenden systemeigenen Anwendungen kommunizieren</translation> <translation id="5097002363526479830">Fehler beim Herstellen einer Verbindung mit dem Netzwerk "<ph name="NAME" />": <ph name="DETAILS" /></translation> +<translation id="5097649414558628673">Tool: <ph name="PRINT_NAME" /></translation> <translation id="5097874180538493929">Automatisch klicken, wenn der Cursor stoppt</translation> <translation id="5101042277149003567">Alle Lesezeichen öffnen</translation> <translation id="5101839224773798795">Automatisch klicken, wenn der Cursor anhält</translation> @@ -3566,6 +3583,7 @@ <translation id="5370819323174483825">&Neu laden</translation> <translation id="5372529912055771682">Der bereitgestellte Anmeldemodus wird von dieser Betriebssystemversion nicht unterstützt. Führen Sie eine Aktualisierung auf die neueste Version aus und versuchen Sie es dann erneut.</translation> <translation id="5372579129492968947">Erweiterung loslösen</translation> +<translation id="5372659122375744710">WLAN ist nicht sicher</translation> <translation id="5376169624176189338">Klicken, um zurückzugehen. Gedrückt halten, um den Verlauf aufzurufen</translation> <translation id="5376931455988532197">Datei zu groß</translation> <translation id="5377721922656071359">{COUNT,plural, =1{<ph name="ATTACHMENTS" /> an <ph name="DEVICE_NAME" /> gesendet}other{<ph name="ATTACHMENTS" /> an <ph name="DEVICE_NAME" /> gesendet}}</translation> @@ -3595,6 +3613,7 @@ <translation id="5414566801737831689">Die Symbole der von Ihnen besuchten Websites lesen</translation> <translation id="5417312524372586921">Browserdesigns</translation> <translation id="5419405654816502573">Voice Match</translation> +<translation id="5420274697768050645">Für zusätzliche Sicherheit beim Entsperren des Geräts nach dem Passwort fragen</translation> <translation id="5420438158931847627">Bestimmt die Schärfe von Text und Bildern</translation> <translation id="5422221874247253874">Zugangspunkt</translation> <translation id="5422781158178868512">Ihr externes Speichergerät wurde nicht erkannt.</translation> @@ -3719,6 +3738,7 @@ <translation id="5548606607480005320">Sicherheitscheck</translation> <translation id="5551573675707792127">Tastatur und Texteingabe</translation> <translation id="5553089923092577885">Zuordnungen von Zertifikatrichtlinien</translation> +<translation id="5554403733534868102">Sie müssen in Zukunft auf keine Updates mehr warten</translation> <translation id="5554489410841842733">Dieses Symbol wird eingeblendet, wenn die Erweiterung auf die aktuelle Seite angewendet werden kann.</translation> <translation id="5554720593229208774">E-Mail-Zertifizierungsstelle</translation> <translation id="5556459405103347317">Neu laden</translation> @@ -4132,6 +4152,7 @@ <translation id="6061882183774845124">Link an meine Geräte senden</translation> <translation id="6064217302520318294">Displaysperre</translation> <translation id="6065289257230303064">Verzeichnisattribute des Zertifikatsinhabers</translation> +<translation id="6069464830445383022">Verwenden Sie Ihr Google-Konto, um sich auf Ihrem Chromebook anzumelden</translation> <translation id="6069671174561668781">Hintergrund festlegen</translation> <translation id="6071181508177083058">Passwort bestätigen</translation> <translation id="6071576563962215370">Das System konnte die Attributsperre für die Geräteinstallationszeit nicht vornehmen.</translation> @@ -4174,6 +4195,7 @@ <translation id="6104311680260824317">Das Gerät konnte der Domain nicht beitreten. Der Server bietet keine Unterstützung für die angegebenen Kerberos-Verschlüsselungstypen. Unter "Weitere Optionen" finden Sie die Verschlüsselungseinstellungen.</translation> <translation id="6104796831253957966">Druckerwarteschlange voll</translation> <translation id="6105994589138235234">Chrome-Synchronisierung</translation> +<translation id="6108689792487843350">Gateway nicht erreichbar</translation> <translation id="6111972606040028426">Google Assistant aktivieren</translation> <translation id="6112294629795967147">Zum Anpassen der Größe tippen</translation> <translation id="6112727384379533756">Ticket hinzufügen</translation> @@ -4234,6 +4256,7 @@ <translation id="6178664161104547336">Zertifikat auswählen</translation> <translation id="6181431612547969857">Download blockiert</translation> <translation id="6185132558746749656">Gerätestandort</translation> +<translation id="6191293864534840972">Nameserver hat fehlerhaftes Format</translation> <translation id="6195446518998936840">Damit Jugendschutzeinstellungen eingerichtet werden können, muss dein Kind ein Google-Konto haben, das du mitverwalten kannst. Mit der Family Link App lässt sich beispielsweise die Gerätenutzungsdauer beschränken oder Websites genehmigen oder blockieren.</translation> <translation id="6195693561221576702">Dieses Gerät kann nicht im Offlinedemomodus eingerichtet werden.</translation> <translation id="6196640612572343990">Drittanbieter-Cookies blockieren</translation> @@ -4447,6 +4470,7 @@ <translation id="6451591602925140504">{NUM_PAGES,plural, =0{<ph name="PAGE_TITLE" />}=1{<ph name="PAGE_TITLE" /> und 1 weiterer Tab}other{<ph name="PAGE_TITLE" /> und # weitere Tabs}}</translation> <translation id="6451689256222386810">Wenn Sie Ihre Passphrase vergessen haben oder diese Einstellung ändern möchten, <ph name="BEGIN_LINK" />setzen Sie die Synchronisierung zurück<ph name="END_LINK" />.</translation> <translation id="6452181791372256707">Ablehnen</translation> +<translation id="6452251728599530347"><ph name="PERCENT" /> abgeschlossen</translation> <translation id="6452961788130242735">Netzwerkproblem oder falscher Bereich</translation> <translation id="6455264371803474013">Auf bestimmten Websites</translation> <translation id="6455894534188563617">&Neuer Ordner</translation> @@ -4503,6 +4527,7 @@ <ph name="EVENT_NAME" /></translation> <translation id="6520876759015997832">Suchergebnis <ph name="LIST_POSITION" /> von <ph name="LIST_SIZE" />: <ph name="SEARCH_RESULT_TEXT" />. Drücken Sie die Eingabetaste, um dorthin zu wechseln.</translation> <translation id="652492607360843641">Sie sind mit einem <ph name="NETWORK_TYPE" />-Netzwerk verbunden.</translation> +<translation id="6527081081771465939">Unbekanntes WLAN-Sicherheitsprotokoll</translation> <translation id="6527303717912515753">Teilen</translation> <translation id="6528513914570774834">Anderen Nutzern des Geräts erlauben, dieses Netzwerk zu verwenden</translation> <translation id="652948702951888897">Chrome-Verlauf</translation> @@ -4619,6 +4644,7 @@ <translation id="6680442031740878064">Verfügbar: <ph name="AVAILABLE_SPACE" /></translation> <translation id="6680650203439190394">Geschwindigkeit</translation> <translation id="6681668084120808868">Foto machen</translation> +<translation id="6684827949542560880">Das neueste Update wird heruntergeladen</translation> <translation id="668599234725812620">Google Play öffnen</translation> <translation id="6686490380836145850">Tabs rechts schließen</translation> <translation id="6686817083349815241">Passwort speichern</translation> @@ -4728,6 +4754,7 @@ <translation id="6812841287760418429">Änderungen beibehalten</translation> <translation id="6817174620439930047">Nachfragen, wenn eine Website versucht, mit systemexklusiven Meldungen auf MIDI-Geräte zuzugreifen (empfohlen)</translation> <translation id="6818198425579322765">Sprache der Seite, die übersetzt wird</translation> +<translation id="6818802132960437751">Integrierter Virenschutz</translation> <translation id="682123305478866682">Desktop streamen</translation> <translation id="6823174134746916417">Touchpad-Klick</translation> <translation id="6823506025919456619">Melden Sie sich in Chrome an, um Ihre Geräte zu sehen.</translation> @@ -5374,6 +5401,7 @@ <translation id="7631205654593498032">Durch das Verbinden Ihrer Geräte erlauben Sie "<ph name="DEVICE_TYPE" />" Folgendes:</translation> <translation id="7631887513477658702">Dateien dieses Typs &immer öffnen</translation> <translation id="7632948528260659758">Die folgenden Kiosk-Apps konnten nicht aktualisiert werden:</translation> +<translation id="7633724038415831385">Dies ist das einzige Mal, dass Sie auf ein Update warten müssen. Softwareupdates werden auf Chromebooks im Hintergrund durchgeführt.</translation> <translation id="7634566076839829401">Ein Problem ist aufgetreten. Bitte versuchen Sie es erneut.</translation> <translation id="763632859238619983">Installation von Zahlungs-Handlern auf keiner Website zulassen</translation> <translation id="7636919061354591437">Auf diesem Gerät installieren</translation> @@ -5652,6 +5680,7 @@ <translation id="7933314993013528982">{NUM_TABS,plural, =1{Stummschaltung für Website aufheben}other{Stummschaltung für Websites aufheben}}</translation> <translation id="7933634003144813719">Freigegebene Ordner verwalten</translation> <translation id="793531125873261495">Fehler beim Herunterladen der virtuellen Maschine. Bitte versuchen Sie es noch einmal.</translation> +<translation id="7936303884198020182">Es wurden keine Nameserver gefunden</translation> <translation id="7938594894617528435">Derzeit offline</translation> <translation id="7939062555109487992">Erweiterte Optionen</translation> <translation id="7939412583708276221">Trotzdem beibehalten</translation> @@ -5894,6 +5923,7 @@ <translation id="8226742006292257240">Hier ist das zufällig generierte TPM-Passwort, das Ihrem Computer zugewiesen wurde:</translation> <translation id="8227119283605456246">Datei anhängen</translation> <translation id="8230134520748321204">Passwort für <ph name="ORIGIN" /> speichern?</translation> +<translation id="8230672074305416752">Das standardmäßige Netzwerk-Gateway konnte nicht kontaktiert werden</translation> <translation id="8234795456569844941">Bitte helfen Sie unseren Entwicklern bei der Lösung dieses Problems. Beschreiben Sie genau, was passiert ist, bevor Sie die Profilfehlermeldung erhalten haben:</translation> <translation id="8236917170563564587">Stattdessen diesen Tab teilen</translation> <translation id="8237647586961940482">Dunkelrosa und Rot</translation> @@ -5954,6 +5984,7 @@ <translation id="8288032458496410887"><ph name="APP" /> deinstallieren…</translation> <translation id="8289128870594824098">Laufwerkgröße</translation> <translation id="8291967909914612644">Land des Homepageanbieters</translation> +<translation id="8293206222192510085">Lesezeichen hinzufügen</translation> <translation id="8294431847097064396">Quelle</translation> <translation id="8297006494302853456">Schwach</translation> <translation id="8299319456683969623">Sie sind momentan offline.</translation> @@ -6003,6 +6034,7 @@ <translation id="8363095875018065315">Stabil</translation> <translation id="8363142353806532503">Mikrofon blockiert</translation> <translation id="8363763184161554204"><ph name="PERMISSION" /> zugelassen</translation> +<translation id="8364946094152050673">Kein Nameserver</translation> <translation id="8366396658833131068">Ihre Netzwerkverbindung wurde wiederhergestellt. Wählen Sie ein anderes Netzwerk aus oder klicken Sie unten auf "Weiter", um Ihre Kiosk-App zu starten.</translation> <translation id="8368027906805972958">Unbekanntes oder nicht unterstütztes Gerät (<ph name="DEVICE_ID" />)</translation> <translation id="8368859634510605990">&Alle Lesezeichen öffnen</translation> @@ -6088,8 +6120,10 @@ <translation id="8472623782143987204">Hardwaregestützt</translation> <translation id="8473863474539038330">Adressen</translation> <translation id="8475313423285172237">Ein anderes Programm auf Ihrem Computer hat eine Erweiterung hinzugefügt, die sich möglicherweise auf die Funktionsweise von Chrome auswirkt.</translation> +<translation id="8475690821716466388">Das WLAN ist mit dem schwachen Protokoll WEP PSK gesichert</translation> <translation id="8477241577829954800">Außer Kraft gesetzt</translation> <translation id="8477384620836102176">&Allgemein</translation> +<translation id="8477551185774834963">Die DNS-Latenz liegt etwas über dem zulässigen Grenzwert</translation> <translation id="8480082892550707549">Selbst wenn Sie zuvor schon Dateien von dieser Website heruntergeladen haben, ist die Website derzeit eventuell kompromittiert, da sie gehackt wurde. Versuchen Sie, die Datei zu einem späteren Zeitpunkt herunterzuladen.</translation> <translation id="8480869669560681089">Unbekanntes Gerät von <ph name="VENDOR_NAME" /></translation> <translation id="8481187309597259238">USB-Berechtigung bestätigen</translation> @@ -6141,6 +6175,7 @@ <translation id="8546930481464505581">Touch Bar anpassen</translation> <translation id="8547013269961688403">Vollbildlupe aktivieren</translation> <translation id="85486688517848470">Halten Sie die Suchtaste gedrückt, um die Funktion der Tasten in der obersten Reihe zu ändern</translation> +<translation id="8549316893834449916">Die können Ihr Google-Konto verwenden, um sich auf Ihrem Chromebook anzumelden – das ist dasselbe Konto, das Sie schon für Gmail, Drive, YouTube und andere Google-Dienste verwenden.</translation> <translation id="8551388862522347954">Lizenzen</translation> <translation id="8551588720239073785">Datums- und Uhrzeiteinstellungen</translation> <translation id="8553342806078037065">Andere Personen verwalten</translation> @@ -6279,6 +6314,7 @@ <translation id="8720200012906404956">Suche nach einem mobilen Netzwerk läuft. <ph name="BEGIN_LINK" />Weitere Informationen<ph name="END_LINK" /></translation> <translation id="8720816553731218127">Zeitüberschreitung bei der Initialisierung der Attribute für die Installationszeit.</translation> <translation id="8722912030556880711">Sie haben die Möglichkeit, Nutzungsdaten & Fehlerberichte zu senden. Dieses Gerät sendet momentan automatisch Diagnose- sowie Geräte- und App-Nutzungsdaten an Google. Die Daten helfen unter anderem dabei, die Stabilität des Systems und der Apps zu verbessern. Einige aggregierte Daten sind auch für Apps und Partner von Google, beispielsweise Android-Entwickler, nützlich. Wenn zusätzlich die Einstellung "Web- & App-Aktivitäten" aktiviert ist, werden diese Daten eventuell in Ihrem Google-Konto gespeichert. <ph name="BEGIN_LINK2" />Weitere Informationen<ph name="END_LINK2" /></translation> +<translation id="8723108084122415655">Das nicht standardmäßige Netzwerk hat den Latenzgrenzwert überschritten</translation> <translation id="8724405322205516354">Wenn Sie dieses Symbol sehen, können Sie Ihren Fingerabdruck zur Identifizierung oder zur Autorisierung eines Kaufs verwenden.</translation> <translation id="8724409975248965964">Fingerabdruck hinzugefügt</translation> <translation id="8724859055372736596">&In Ordner anzeigen</translation> @@ -6456,6 +6492,7 @@ <translation id="8909833622202089127">Die Website verfolgt Ihren Standort</translation> <translation id="8910146161325739742">Bildschirm teilen</translation> <translation id="8910222113987937043">Änderungen an Ihrem Verlauf sowie an Ihren Lesezeichen, Passwörtern und sonstigen Einstellungen werden nicht mehr mit Ihrem Google-Konto synchronisiert. Bereits in Ihrem Google-Konto gespeicherte Daten bleiben dort erhalten und können über das <ph name="BEGIN_LINK" />Google Dashboard<ph name="END_LINK" /> verwaltet werden.</translation> +<translation id="8910721771319628100">Das Standardnetzwerk hat den Latenzgrenzwert überschritten</translation> <translation id="8912362522468806198">Google-Konto</translation> <translation id="8912793549644936705">Strecken</translation> <translation id="8912810933860534797">Automatischen Scan aktivieren</translation>
diff --git a/chrome/app/resources/generated_resources_el.xtb b/chrome/app/resources/generated_resources_el.xtb index c443ad3d2..30e955b 100644 --- a/chrome/app/resources/generated_resources_el.xtb +++ b/chrome/app/resources/generated_resources_el.xtb
@@ -525,7 +525,6 @@ <translation id="1608668830839595724">Περισσότερες ενέργειες για τα επιλεγμένα στοιχεία</translation> <translation id="161042844686301425">Κυανό</translation> <translation id="1611432201750675208">Η συσκευή σας είναι κλειωδωμένη</translation> -<translation id="1611584202130317952">Η ροή παροχής διακόπηκε. Δοκιμάστε ξανά ή επικοινωνήστε με τον κάτοχο ή τον διαχειριστή της συσκευής σας.</translation> <translation id="1614511179807650956">Μπορεί να έχετε εξαντλήσει τα διαθέσιμα δεδομένα κινητής τηλεφωνίας. Επισκεφτείτε την πύλη ενεργοποίησης <ph name="NAME" />, για να αγοράσετε περισσότερα δεδομένα</translation> <translation id="161460670679785907">Δεν ήταν δυνατός ο εντοπισμός του τηλεφώνου σας</translation> <translation id="1616206807336925449">Αυτή η επέκταση δεν απαιτεί ειδικά δικαιώματα.</translation> @@ -967,6 +966,7 @@ <translation id="2148219725039824548">Σφάλμα κατά την προσάρτηση του συστήματος κοινοποίησης. Το καθορισμένο σύστημα κοινοποίησης δεν βρέθηκε στο δίκτυο.</translation> <translation id="2148756636027685713">Η μορφοποίηση ολοκληρώθηκε</translation> <translation id="2148892889047469596">Μετάδοση καρτέλας</translation> +<translation id="2149973817440762519">Επεξεργασία σελιδοδείκτη</translation> <translation id="2150139952286079145">Αναζήτηση προορισμών</translation> <translation id="2150661552845026580">Να γίνει προσθήκη του "<ph name="EXTENSION_NAME" />";</translation> <translation id="2151576029659734873">Καταχωρήθηκε μη έγκυρος κατάλογος καρτελών.</translation> @@ -5990,6 +5990,7 @@ <translation id="8288032458496410887">Απεγκατάσταση εφαρμογής <ph name="APP" />…</translation> <translation id="8289128870594824098">Μέγεθος δίσκου</translation> <translation id="8291967909914612644">Χώρα παρόχου αρχικής σελίδας</translation> +<translation id="8293206222192510085">Προσθήκη σελιδοδείκτη</translation> <translation id="8294431847097064396">Πηγή</translation> <translation id="8297006494302853456">Αδύναμο</translation> <translation id="8299319456683969623">Είστε εκτός σύνδεσης αυτήν τη στιγμή</translation>
diff --git a/chrome/app/resources/generated_resources_en-GB.xtb b/chrome/app/resources/generated_resources_en-GB.xtb index 31978b70..2ff3868 100644 --- a/chrome/app/resources/generated_resources_en-GB.xtb +++ b/chrome/app/resources/generated_resources_en-GB.xtb
@@ -525,7 +525,6 @@ <translation id="1608668830839595724">More actions for selected items</translation> <translation id="161042844686301425">Cyan</translation> <translation id="1611432201750675208">Your device is locked</translation> -<translation id="1611584202130317952">Provisioning flow was interrupted. Please try again or contact your device owner or administrator.</translation> <translation id="1614511179807650956">You may have used up your mobile data allowance. Visit the <ph name="NAME" /> activation portal to buy more data</translation> <translation id="161460670679785907">Unable to detect your phone</translation> <translation id="1616206807336925449">This extension requires no special permissions.</translation> @@ -967,6 +966,7 @@ <translation id="2148219725039824548">Error mounting share. The specified share was not found on the network.</translation> <translation id="2148756636027685713">Formatting finished</translation> <translation id="2148892889047469596">Cast tab</translation> +<translation id="2149973817440762519">Edit Bookmark</translation> <translation id="2150139952286079145">Search destinations</translation> <translation id="2150661552845026580">Add "<ph name="EXTENSION_NAME" />"?</translation> <translation id="2151576029659734873">Invalid tab index entered.</translation> @@ -5989,6 +5989,7 @@ <translation id="8288032458496410887">Uninstall <ph name="APP" />...</translation> <translation id="8289128870594824098">Disk size</translation> <translation id="8291967909914612644">Home provider country</translation> +<translation id="8293206222192510085">Add Bookmark</translation> <translation id="8294431847097064396">Source</translation> <translation id="8297006494302853456">Weak</translation> <translation id="8299319456683969623">You are currently offline.</translation>
diff --git a/chrome/app/resources/generated_resources_es-419.xtb b/chrome/app/resources/generated_resources_es-419.xtb index c5dfec6..7a34cc9 100644 --- a/chrome/app/resources/generated_resources_es-419.xtb +++ b/chrome/app/resources/generated_resources_es-419.xtb
@@ -521,7 +521,6 @@ <translation id="1608668830839595724">Más acciones para los elementos seleccionados</translation> <translation id="161042844686301425">Cian</translation> <translation id="1611432201750675208">Tu dispositivo está bloqueado</translation> -<translation id="1611584202130317952">Se interrumpió el flujo de aprovisionamiento. Vuelve a intentarlo o comunícate con el administrador o propietario de tu dispositivo.</translation> <translation id="1614511179807650956">Es posible que hayas agotado los datos móviles. Accede al portal de activación de <ph name="NAME" /> para comprar más datos.</translation> <translation id="161460670679785907">No se puede detectar tu teléfono</translation> <translation id="1616206807336925449">Esta extensión no requiere permisos especiales.</translation> @@ -961,6 +960,7 @@ <translation id="2148219725039824548">Se produjo un error al activar el recurso compartido porque no se lo encontró en la red.</translation> <translation id="2148756636027685713">Formato terminado</translation> <translation id="2148892889047469596">Transmitir pestaña</translation> +<translation id="2149973817440762519">Editar marcador</translation> <translation id="2150139952286079145">Buscar destinos</translation> <translation id="2150661552845026580">¿Quieres instalar "<ph name="EXTENSION_NAME" />"?</translation> <translation id="2151576029659734873">Se ingresó un índice de pestaña no válido.</translation> @@ -5956,6 +5956,7 @@ <translation id="8288032458496410887">Desinstalar <ph name="APP" />…</translation> <translation id="8289128870594824098">Tamaño del disco</translation> <translation id="8291967909914612644">País del proveedor de origen</translation> +<translation id="8293206222192510085">Agregar Marcador</translation> <translation id="8294431847097064396">Fuente</translation> <translation id="8297006494302853456">Débil</translation> <translation id="8299319456683969623">Actualmente, no tienes conexión.</translation>
diff --git a/chrome/app/resources/generated_resources_es.xtb b/chrome/app/resources/generated_resources_es.xtb index 5702e88..b5e77b3b 100644 --- a/chrome/app/resources/generated_resources_es.xtb +++ b/chrome/app/resources/generated_resources_es.xtb
@@ -71,6 +71,7 @@ <translation id="1070705170564860382">Se abrirá en un navegador alternativo dentro de <ph name="COUNTDOWN_SECONDS" /> segundos</translation> <translation id="1071917609930274619">Cifrado de datos</translation> <translation id="1072700771426194907">Dispositivo USB detectado</translation> +<translation id="107278043869924952">Usar un PIN además de la contraseña</translation> <translation id="1076176485976385390">Desplazarte por las páginas con un cursor de texto</translation> <translation id="1076698951459398590">Habilitar tema</translation> <translation id="1076818208934827215">Microsoft Internet Explorer</translation> @@ -524,7 +525,6 @@ <translation id="1608668830839595724">Más acciones para los elementos seleccionados</translation> <translation id="161042844686301425">Cian</translation> <translation id="1611432201750675208">Tu dispositivo está bloqueado</translation> -<translation id="1611584202130317952">Se ha interrumpido el flujo de aprovisionamiento. Vuelve a intentarlo más tarde o ponte en contacto con el propietario o el administrador del dispositivo.</translation> <translation id="1614511179807650956">Es posible que hayas agotado los datos de tu plan de datos móviles. Visita el portal de activación de <ph name="NAME" /> para comprar más datos.</translation> <translation id="161460670679785907">No se puede detectar tu teléfono</translation> <translation id="1616206807336925449">Esta extensión no requiere permisos especiales.</translation> @@ -533,6 +533,7 @@ <translation id="1618268899808219593">C&entro de ayuda</translation> <translation id="1620307519959413822">La contraseña no es correcta. Vuelve a intentarlo o haz clic en "¿Has olvidado la contraseña?" para restablecerla.</translation> <translation id="1620510694547887537">Cámara</translation> +<translation id="1621831347985899379">Se eliminarán los datos de <ph name="DEVICE_TYPE" /></translation> <translation id="1622054403950683339">Olvidar red Wi-Fi</translation> <translation id="1623132449929929218">Las imágenes no están disponibles en este momento. Vuelve a conectarte a Internet para ver colecciones de fondos de pantalla.</translation> <translation id="1623723619460186680">Reducción de luz azul</translation> @@ -760,6 +761,7 @@ <translation id="1877377290348678128">Etiqueta (opcional)</translation> <translation id="1877520246462554164">No se ha podido obtener el token de autenticación. Cierra la sesión y vuelve a iniciarla para intentarlo de nuevo.</translation> <translation id="1877860345998737529">Asignación de interruptores a acciones</translation> +<translation id="1878155070920054810">Parece que tu Chromebook se quedará sin batería antes de que finalice la actualización. Para evitar interrupciones, comprueba que se esté cargando correctamente.</translation> <translation id="1879000426787380528">Iniciar sesión como</translation> <translation id="1880905663253319515">¿Eliminar el certificado "<ph name="CERTIFICATE_NAME" />"?</translation> <translation id="1881445033931614352">Diseño de teclado</translation> @@ -964,6 +966,7 @@ <translation id="2148219725039824548">No se ha podido activar el recurso compartido. No se ha encontrado el recurso especificado en la red.</translation> <translation id="2148756636027685713">El proceso de formateo ha terminado.</translation> <translation id="2148892889047469596">Enviar pestaña</translation> +<translation id="2149973817440762519">Editar marcador</translation> <translation id="2150139952286079145">Buscar destinos</translation> <translation id="2150661552845026580">¿Quieres instalar "<ph name="EXTENSION_NAME" />"?</translation> <translation id="2151576029659734873">Índice de tabulación no válido introducido</translation> @@ -1073,6 +1076,7 @@ <translation id="2270627217422354837">Intercambiar datos con cualquier dispositivo de los dominios <ph name="DOMAINS" /></translation> <translation id="2272570998639520080">Copa de Martini</translation> <translation id="2273119997271134996">Problema con el puerto de vídeo de la base</translation> +<translation id="2274840746523584236">Carga tu Chromebook</translation> <translation id="2276503375879033601">Añadir más aplicaciones</translation> <translation id="2277255602909579701">Todas las cookies y los datos de sitios web</translation> <translation id="2277769717710009150">{COUNT,plural, =1{Se ha copiado 1 elemento}other{Se han copiado # elementos}}</translation> @@ -1915,6 +1919,7 @@ <translation id="3308116878371095290">Se ha evitado el uso de cookies en esta página.</translation> <translation id="3308134619352333507">Ocultar botón</translation> <translation id="3308852433423051161">Cargando el Asistente de Google...</translation> +<translation id="3310640316857623290">La latencia DNS supera considerablemente el umbral permitido</translation> <translation id="3311445899360743395">Los datos asociados a la aplicación se eliminarán de este dispositivo.</translation> <translation id="3312424061798279731">Idiomas habilitados</translation> <translation id="3313622045786997898">Valor de firma de certificados</translation> @@ -1927,6 +1932,7 @@ <translation id="3323295311852517824">{NUM_FILES,plural, =0{Estos datos incluyen contenido sensible o peligroso. Elimina ese contenido e inténtalo de nuevo.}=1{Este archivo incluye contenido sensible o peligroso. Elimina ese contenido e inténtalo de nuevo.}other{Estos archivos incluyen contenido sensible o peligroso. Elimina ese contenido e inténtalo de nuevo.}}</translation> <translation id="3323521181261657960">¡Extra! Has conseguido más tiempo de pantalla</translation> <translation id="3325910708063135066">La cámara y el micrófono están desactivados en las Preferencias del Sistema de Mac</translation> +<translation id="3327050066667856415">Los Chromebooks se han diseñado para la seguridad. Tu dispositivo está protegido automáticamente contra el software malicioso. No necesita software adicional.</translation> <translation id="3328489342742826322">Al restaurar una copia de seguridad, se eliminarán las aplicaciones y los datos actuales de Linux de la carpeta Archivos de Linux.</translation> <translation id="3331321258768829690">(<ph name="UTCOFFSET" />) <ph name="LONGTZNAME" /> (<ph name="EXEMPLARCITY" />)</translation> <translation id="3331974543021145906">Información de la app</translation> @@ -2116,6 +2122,7 @@ <translation id="3556433843310711081">Tu administrador puede desbloquearlo</translation> <translation id="3557101512409028104">Define restricciones de sitios web y límites de tiempo de pantalla con Family Link</translation> <translation id="3559262020195162408">Se ha producido un error al instalar la política en el dispositivo.</translation> +<translation id="3559533181353831840">Tiempo restante aproximado: <ph name="TIME_LEFT" /></translation> <translation id="3560034655160545939">Revi&sión ortográfica</translation> <translation id="3562423906127931518">Este proceso puede tardar unos minutos. Iniciando el contenedor de Linux.</translation> <translation id="3563432852173030730">La aplicación de kiosco no se ha podido descargar.</translation> @@ -2158,6 +2165,7 @@ <translation id="3602290021589620013">Vista previa</translation> <translation id="3603622770190368340">Obtener certificado de red</translation> <translation id="3604713164406837697">Cambiar fondo de pantalla</translation> +<translation id="360565022852130722">La red Wi-Fi está protegida con un protocolo poco seguro WEP 802.1x</translation> <translation id="3605780360466892872">Amancio</translation> <translation id="3608576286259426129">Vista previa de imagen de usuario</translation> <translation id="3610369246614755442">El ventilador de la base necesita reparación</translation> @@ -2194,6 +2202,7 @@ <translation id="3639220004740062347">Desactivar modo de lectura</translation> <translation id="3640214691812501263">¿Añadir <ph name="EXTENSION_NAME" /> para <ph name="USER_NAME" />?</translation> <translation id="3640613767643722554">Enseña al Asistente a reconocer tu voz</translation> +<translation id="3643014427358482789"><ph name="DOMAIN" /> está inhabilitando la depuración adb, lo cual restablecerá tu <ph name="DEVICE_TYPE" />. Haz una copia de seguridad de tus archivos antes de reiniciar.</translation> <translation id="3645372836428131288">Mueve el dedo ligeramente para capturar otra parte de la huella digital.</translation> <translation id="3647998456578545569">{COUNT,plural, =1{<ph name="ATTACHMENTS" /> recibidos de <ph name="DEVICE_NAME" />}other{<ph name="ATTACHMENTS" /> recibidos de <ph name="DEVICE_NAME" />}}</translation> <translation id="3648348069317717750">Se ha detectado <ph name="USB_DEVICE_NAME" /></translation> @@ -2282,6 +2291,7 @@ <translation id="3732857534841813090">Información relacionada con el Asistente de Google</translation> <translation id="3733127536501031542">Servidor SSL con certificado Step-Up</translation> <translation id="3735740477244556633">Ordenar por</translation> +<translation id="3738632186060045350">Se eliminarán los datos del <ph name="DEVICE_TYPE" /> dentro de 24 horas</translation> <translation id="3738924763801731196"><ph name="OID" />:</translation> <translation id="3739254215541673094">¿Abrir <ph name="APPLICATION" />?</translation> <translation id="3742055079367172538">Captura de pantalla hecha</translation> @@ -2469,6 +2479,7 @@ <translation id="3937734102568271121">Traducir siempre del <ph name="LANGUAGE" /></translation> <translation id="3938128855950761626">Dispositivos del proveedor <ph name="VENDOR_ID" /></translation> <translation id="3940233957883229251">Habilitar repetición automática</translation> +<translation id="3941014780699102620">No se ha podido resolver el host</translation> <translation id="3941565636838060942">Para ocultar el acceso a este programa, debes desinstalarlo utilizando la función <ph name="CONTROL_PANEL_APPLET_NAME" /> del Panel de control. ¿Quieres iniciar <ph name="CONTROL_PANEL_APPLET_NAME" />?</translation> @@ -2630,6 +2641,7 @@ <translation id="413121957363593859">Componentes</translation> <translation id="4131410914670010031">Blanco y negro</translation> <translation id="413193092008917129">Rutinas de diagnóstico de redes</translation> +<translation id="4132183752438206707">Buscar aplicaciones en Google Play Store</translation> <translation id="4133076602192971179">Abre la aplicación para cambiar la contraseña</translation> <translation id="4136203100490971508">La luz nocturna se desactivará automáticamente al amanecer</translation> <translation id="41365691917097717">Si continúas, se habilitará la depuración adb para crear y probar aplicaciones Android. Ten en cuenta que esta acción permitirá la instalación de aplicaciones Android que no hayan sido verificadas por Google y para inhabilitarlas es necesario restablecer la configuración de fábrica.</translation> @@ -2879,6 +2891,8 @@ <translation id="4479877282574735775">Se está configurando la máquina virtual. Este proceso puede tardar unos minutos.</translation> <translation id="4480590691557335796">Chrome puede encontrar software dañino en tu ordenador y eliminarlo</translation> <translation id="4481530544597605423">Dispositivos desvinculados</translation> +<translation id="4483049906298469269">No se ha podido hacer ping en la puerta de enlace de red no predeterminada</translation> +<translation id="4487489714832036847">Los Chromebooks usan aplicaciones en lugar de software tradicional. Consigue aplicaciones de productividad, entretenimiento y mucho más.</translation> <translation id="4488502501195719518">¿Quieres borrar todos los datos?</translation> <translation id="4493468155686877504">Recomendado (<ph name="INSTALL_SIZE" />)</translation> <translation id="4495419450179050807">No mostrar en esta página</translation> @@ -2929,6 +2943,7 @@ <translation id="4546692474302123343">Entrada de voz del Asistente de Google</translation> <translation id="4547659257713117923">No hay pestañas de otros dispositivos</translation> <translation id="4547672827276975204">Definir automáticamente</translation> +<translation id="4548483925627140043">Señal no encontrada</translation> <translation id="4549791035683739768">No hay ninguna huella digital almacenada en tu llave de seguridad</translation> <translation id="4551763574344810652">Pulsa <ph name="MODIFIER_KEY_DESCRIPTION" /> para deshacer</translation> <translation id="4552089082226364758">Flash</translation> @@ -2968,6 +2983,7 @@ <translation id="4582563038311694664">Recuperar configuración completa</translation> <translation id="4585793705637313973">Editar página</translation> <translation id="4586275095964870617"><ph name="URL" /> no se ha podido abrir en un navegador alternativo. Ponte en contacto con el administrador del sistema.</translation> +<translation id="458794348635939462">No se han podido resolver todos los hosts</translation> <translation id="4589713469967853491">Registros escritos correctamente en el directorio Descargas.</translation> <translation id="4590324241397107707">Almacenamiento en bases de datos</translation> <translation id="4592891116925567110">Aplicación de dibujo con lápiz óptico</translation> @@ -3351,6 +3367,7 @@ <translation id="5089810972385038852">Estado/provincia</translation> <translation id="5094721898978802975">Comunicarse con aplicaciones nativas cooperativas</translation> <translation id="5097002363526479830">Error al establecer conexión con la red "<ph name="NAME" />": <ph name="DETAILS" /></translation> +<translation id="5097649414558628673">Herramienta: <ph name="PRINT_NAME" /></translation> <translation id="5097874180538493929">Hacer clic automáticamente cuando se detenga el cursor</translation> <translation id="5101042277149003567">Abrir todos los marcadores</translation> <translation id="5101839224773798795">Hacer clic automáticamente cuando se detenga el cursor</translation> @@ -3569,6 +3586,7 @@ <translation id="5370819323174483825">&Volver a cargar</translation> <translation id="5372529912055771682">El modo de registro proporcionado no es compatible con esta versión del sistema operativo. Comprueba que estés utilizando la última versión y vuelve a intentarlo.</translation> <translation id="5372579129492968947">No fijar extensión</translation> +<translation id="5372659122375744710">La red Wi-Fi no es segura</translation> <translation id="5376169624176189338">Haz clic para retroceder una página o pulsa unos segundos para ver el historial</translation> <translation id="5376931455988532197">El archivo es demasiado grande.</translation> <translation id="5377721922656071359">{COUNT,plural, =1{<ph name="ATTACHMENTS" /> enviado correctamente a <ph name="DEVICE_NAME" />}other{<ph name="ATTACHMENTS" /> enviados correctamente a <ph name="DEVICE_NAME" />}}</translation> @@ -3598,6 +3616,7 @@ <translation id="5414566801737831689">Leer los iconos de los sitios web que visites</translation> <translation id="5417312524372586921">Temas del navegador</translation> <translation id="5419405654816502573">Voice Match</translation> +<translation id="5420274697768050645">Para reforzar la seguridad, solicita una contraseña para desbloquear el dispositivo</translation> <translation id="5420438158931847627">Determina la nitidez del texto y las imágenes</translation> <translation id="5422221874247253874">Punto de acceso</translation> <translation id="5422781158178868512">No se ha podido reconocer tu dispositivo de almacenamiento externo.</translation> @@ -3722,6 +3741,7 @@ <translation id="5548606607480005320">Comprobación de seguridad</translation> <translation id="5551573675707792127">Teclado e introducción de texto</translation> <translation id="5553089923092577885">Asignaciones de políticas de certificados</translation> +<translation id="5554403733534868102">En adelante, actualizaciones sin esperas</translation> <translation id="5554489410841842733">Este icono aparecerá cuando la extensión pueda actuar en la página actual.</translation> <translation id="5554720593229208774">Entidad emisora de certificados de correo electrónico</translation> <translation id="5556459405103347317">Volver a cargar</translation> @@ -4135,6 +4155,7 @@ <translation id="6061882183774845124">Enviar el enlace a tus dispositivos</translation> <translation id="6064217302520318294">Bloqueo de pantalla</translation> <translation id="6065289257230303064">Atributos de directorio de la entidad receptora del certificado</translation> +<translation id="6069464830445383022">Tu cuenta de Google te permitirá iniciar sesión en el Chromebook</translation> <translation id="6069671174561668781">Fondo de pantalla</translation> <translation id="6071181508177083058">confirmar contraseña</translation> <translation id="6071576563962215370">El sistema no ha podido establecer el bloqueo de atributos del tiempo de instalación del dispositivo.</translation> @@ -4177,6 +4198,7 @@ <translation id="6104311680260824317">No se puede vincular el dispositivo con el dominio. El servidor no admite los tipos de cifrado Kerberos específicos. Marca Más opciones para configurar el cifrado.</translation> <translation id="6104796831253957966">La cola de la impresora está llena</translation> <translation id="6105994589138235234">Sincronización del navegador Chrome</translation> +<translation id="6108689792487843350">No se puede acceder a la puerta de enlace</translation> <translation id="6111972606040028426">Habilitar el Asistente de Google</translation> <translation id="6112294629795967147">Tocar para cambiar el tamaño</translation> <translation id="6112727384379533756">Añadir un ticket</translation> @@ -4237,6 +4259,7 @@ <translation id="6178664161104547336">Seleccionar un certificado</translation> <translation id="6181431612547969857">Descarga bloqueada</translation> <translation id="6185132558746749656">Ubicación del dispositivo</translation> +<translation id="6191293864534840972">Los servidores de nombres presentan errores de formato</translation> <translation id="6195446518998936840">Para configurar el control parental, tu hijo/a debe tener una cuenta de Google que le ayudarás a gestionar. Puedes definir límites de tiempo de pantalla, aprobar o bloquear sitios web y mucho más con la aplicación Family Link.</translation> <translation id="6195693561221576702">Este dispositivo no se puede configurar en el modo de demostración sin conexión.</translation> <translation id="6196640612572343990">Bloquear cookies de terceros</translation> @@ -4450,6 +4473,7 @@ <translation id="6451591602925140504">{NUM_PAGES,plural, =0{<ph name="PAGE_TITLE" />}=1{<ph name="PAGE_TITLE" /> y 1 pestaña más}other{<ph name="PAGE_TITLE" /> y # pestañas más}}</translation> <translation id="6451689256222386810">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="6452181791372256707">Rechazar</translation> +<translation id="6452251728599530347"><ph name="PERCENT" /> completado</translation> <translation id="6452961788130242735">Problema de red o dominio erróneo</translation> <translation id="6455264371803474013">En sitios web específicos</translation> <translation id="6455894534188563617">&Nueva carpeta</translation> @@ -4506,6 +4530,7 @@ <ph name="EVENT_NAME" /></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="652492607360843641">Estás conectado a una red <ph name="NETWORK_TYPE" />.</translation> +<translation id="6527081081771465939">Protocolo de seguridad Wi-Fi desconocido</translation> <translation id="6527303717912515753">Compartir</translation> <translation id="6528513914570774834">Permitir que otros usuarios de este dispositivo usen esta red</translation> <translation id="652948702951888897">Historial de Chrome</translation> @@ -4622,6 +4647,7 @@ <translation id="6680442031740878064">Disponible: <ph name="AVAILABLE_SPACE" /></translation> <translation id="6680650203439190394">Velocidad</translation> <translation id="6681668084120808868">Sacar foto</translation> +<translation id="6684827949542560880">Descargando la última actualización</translation> <translation id="668599234725812620">Abrir Google Play</translation> <translation id="6686490380836145850">Cerrar pestañas a la derecha</translation> <translation id="6686817083349815241">Guardar tu contraseña</translation> @@ -4731,6 +4757,7 @@ <translation id="6812841287760418429">Mantener cambios</translation> <translation id="6817174620439930047">Preguntar cuando un sitio web quiera utilizar mensajes exclusivos del sistema para acceder a los dispositivos MIDI (recomendado)</translation> <translation id="6818198425579322765">Idioma de la página que quieres traducir</translation> +<translation id="6818802132960437751">Protección antivirus integrada</translation> <translation id="682123305478866682">Enviar escritorio</translation> <translation id="6823174134746916417">Tocar para hacer clic en el panel táctil</translation> <translation id="6823506025919456619">Debes iniciar sesión en Chrome para poder ver tus dispositivos</translation> @@ -5377,6 +5404,7 @@ <translation id="7631205654593498032">Al conectar tus dispositivos, aceptas que tu <ph name="DEVICE_TYPE" /> puede hacer lo siguiente:</translation> <translation id="7631887513477658702">&Abrir siempre archivos de este tipo</translation> <translation id="7632948528260659758">No se han podido actualizar las siguientes aplicaciones de kiosco:</translation> +<translation id="7633724038415831385">Esta es la única vez que tendrás que esperar por una actualización. En los Chromebooks, las actualizaciones de software se realizan en segundo plano.</translation> <translation id="7634566076839829401">Se ha producido un error. Vuelve a intentarlo.</translation> <translation id="763632859238619983">No permitir a ningún sitio web instalar controladores de pago</translation> <translation id="7636919061354591437">Instalar en este dispositivo</translation> @@ -5655,6 +5683,7 @@ <translation id="7933314993013528982">{NUM_TABS,plural, =1{Activar sonido del sitio web}other{Activar sonido de los sitios web}}</translation> <translation id="7933634003144813719">Gestionar las carpetas compartidas</translation> <translation id="793531125873261495">No se ha podido descargar la máquina virtual Inténtalo de nuevo.</translation> +<translation id="7936303884198020182">No se han encontrado servidores de nombres</translation> <translation id="7938594894617528435">Sin conexión actualmente</translation> <translation id="7939062555109487992">Opciones avanzadas</translation> <translation id="7939412583708276221">Mantener de todos modos</translation> @@ -5898,6 +5927,7 @@ <translation id="8226742006292257240">Esta es la contraseña del TPM generada aleatoriamente que se ha asignado a tu ordenador:</translation> <translation id="8227119283605456246">Adjuntar archivo</translation> <translation id="8230134520748321204">¿Quieres guardar la contraseña de <ph name="ORIGIN" />?</translation> +<translation id="8230672074305416752">No se ha podido hacer ping en la puerta de enlace de red predeterminada</translation> <translation id="8234795456569844941">Ayuda a nuestros ingenieros a solucionar este problema. Indícanos lo que ha ocurrido justo antes de que apareciera el mensaje de error del perfil:</translation> <translation id="8236917170563564587">Compartir esta pestaña</translation> <translation id="8237647586961940482">Rosa oscuro y rojo</translation> @@ -5958,6 +5988,7 @@ <translation id="8288032458496410887">Desinstalar <ph name="APP" />...</translation> <translation id="8289128870594824098">Tamaño de disco</translation> <translation id="8291967909914612644">País del proveedor inicial</translation> +<translation id="8293206222192510085">Añadir marcador</translation> <translation id="8294431847097064396">Origen</translation> <translation id="8297006494302853456">Débil</translation> <translation id="8299319456683969623">Actualmente no tienes conexión.</translation> @@ -6007,6 +6038,7 @@ <translation id="8363095875018065315">estable</translation> <translation id="8363142353806532503">Micrófono bloqueado</translation> <translation id="8363763184161554204">permitido: <ph name="PERMISSION" /></translation> +<translation id="8364946094152050673">Servidores de nombres vacíos</translation> <translation id="8366396658833131068">Tu conexión de red se ha restaurado. Selecciona una red diferente o pulsa el botón "Continuar" para ejecutar tu aplicación de kiosco.</translation> <translation id="8368027906805972958">Dispositivo desconocido o no compatible (<ph name="DEVICE_ID" />)</translation> <translation id="8368859634510605990">&Abrir todos los marcadores</translation> @@ -6092,8 +6124,10 @@ <translation id="8472623782143987204">respaldado por hardware</translation> <translation id="8473863474539038330">Direcciones y más</translation> <translation id="8475313423285172237">Otro programa de tu ordenador ha añadido una extensión que puede cambiar el funcionamiento de Chrome.</translation> +<translation id="8475690821716466388">La red Wi-Fi está protegida con un protocolo poco seguro WEP PSK</translation> <translation id="8477241577829954800">Reemplazado</translation> <translation id="8477384620836102176">&General</translation> +<translation id="8477551185774834963">La latencia DNS supera ligeramente el umbral permitido</translation> <translation id="8480082892550707549">Aunque hayas descargado archivos de este sitio web previamente, puede que no sea seguro temporalmente (pirateado). Intenta descargar de nuevo este archivo más tarde.</translation> <translation id="8480869669560681089">Dispositivo de <ph name="VENDOR_NAME" /> desconocido</translation> <translation id="8481187309597259238">Confirmar permiso de USB</translation> @@ -6145,6 +6179,7 @@ <translation id="8546930481464505581">Personalizar la barra táctil</translation> <translation id="8547013269961688403">Habilitar lupa de pantalla completa</translation> <translation id="85486688517848470">Mantén pulsada la tecla de búsqueda para cambiar el comportamiento de las teclas de la fila superior</translation> +<translation id="8549316893834449916">La cuenta de Google que uses para iniciar sesión en tu Chromebook debe ser la misma que usas para Gmail, Drive, YouTube y otros servicios.</translation> <translation id="8551388862522347954">Licencias</translation> <translation id="8551588720239073785">Configuración de fecha y hora</translation> <translation id="8553342806078037065">Gestionar otros usuarios</translation> @@ -6283,6 +6318,7 @@ <translation id="8720200012906404956">Se está buscando una red móvil. <ph name="BEGIN_LINK" />Más información<ph name="END_LINK" /></translation> <translation id="8720816553731218127">Se ha agotado el tiempo de la inicialización de los atributos de tiempo de instalación.</translation> <translation id="8722912030556880711">Enviar 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 recogidos también ayudarán a las aplicaciones y los colaboradores de Google, como los desarrolladores de Android. 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. <ph name="BEGIN_LINK2" />Más información<ph name="END_LINK2" /></translation> +<translation id="8723108084122415655">La red no predeterminada supera el umbral de latencia</translation> <translation id="8724405322205516354">Cuando veas este icono, utiliza tu huella digital para identificarte o aprobar compras.</translation> <translation id="8724409975248965964">Huella digital añadida</translation> <translation id="8724859055372736596">&Mostrar en carpeta</translation> @@ -6460,6 +6496,7 @@ <translation id="8909833622202089127">El sitio web está registrando tu ubicación</translation> <translation id="8910146161325739742">Compartir tu pantalla</translation> <translation id="8910222113987937043">Los cambios que realices en tus marcadores, tu historial, tus contraseñas y otros ajustes no se sincronizarán con tu cuenta de Google. Sin embargo, tus datos actuales permanecerán almacenados en esa cuenta y se podrán administrar en el <ph name="BEGIN_LINK" />Panel de Control de Google<ph name="END_LINK" />.</translation> +<translation id="8910721771319628100">La red predeterminada supera el umbral de latencia</translation> <translation id="8912362522468806198">cuenta de Google</translation> <translation id="8912793549644936705">Expandir</translation> <translation id="8912810933860534797">Habilitar búsqueda automática</translation>
diff --git a/chrome/app/resources/generated_resources_et.xtb b/chrome/app/resources/generated_resources_et.xtb index 2736b2d..3eb0d85 100644 --- a/chrome/app/resources/generated_resources_et.xtb +++ b/chrome/app/resources/generated_resources_et.xtb
@@ -525,7 +525,6 @@ <translation id="1608668830839595724">Rohkem toiminguid valitud üksuste jaoks</translation> <translation id="161042844686301425">Tsüaan</translation> <translation id="1611432201750675208">Teie seade on lukustatud</translation> -<translation id="1611584202130317952">Ettevalmistusvoog katkestati. Proovige uuesti või võtke ühendust oma seadme omaniku või administraatoriga.</translation> <translation id="1614511179807650956">Võimalik, et olete oma mobiilse andmeside mahu ära kasutanud. Andmesidemahtu saab juurde osta aktiveerimisportaalis <ph name="NAME" />.</translation> <translation id="161460670679785907">Teie telefoni ei saa tuvastada</translation> <translation id="1616206807336925449">Selle laienduse jaoks pole erilube vaja.</translation> @@ -967,6 +966,7 @@ <translation id="2148219725039824548">Viga jagatava üksuse ühendamisel. Jagatavat üksust võrgust ei leitud.</translation> <translation id="2148756636027685713">Vormindamine on lõpetatud</translation> <translation id="2148892889047469596">Vahelehe ülekandmine</translation> +<translation id="2149973817440762519">Muuda järjehoidjat</translation> <translation id="2150139952286079145">Otsige sihtkohti</translation> <translation id="2150661552845026580">Kas lisada „<ph name="EXTENSION_NAME" />”?</translation> <translation id="2151576029659734873">Sisestati vale vahelehe register.</translation> @@ -5989,6 +5989,7 @@ <translation id="8288032458496410887">Rakenduse <ph name="APP" /> desinstallimine …</translation> <translation id="8289128870594824098">Ketta maht</translation> <translation id="8291967909914612644">Koduteenuse pakkuja riik</translation> +<translation id="8293206222192510085">Lisa järjehoidja</translation> <translation id="8294431847097064396">Allikas</translation> <translation id="8297006494302853456">Nõrk</translation> <translation id="8299319456683969623">Võrguühendus puudub.</translation>
diff --git a/chrome/app/resources/generated_resources_eu.xtb b/chrome/app/resources/generated_resources_eu.xtb index 398c48e..2184778c 100644 --- a/chrome/app/resources/generated_resources_eu.xtb +++ b/chrome/app/resources/generated_resources_eu.xtb
@@ -71,6 +71,7 @@ <translation id="1070705170564860382">Beste arakatzaile batean irekiko da <ph name="COUNTDOWN_SECONDS" /> segundo barru</translation> <translation id="1071917609930274619">Datuak zifratzea</translation> <translation id="1072700771426194907">USB bidezko gailu bat hauteman da</translation> +<translation id="107278043869924952">Erabili PIN kodea pasahitzaz gain</translation> <translation id="1076176485976385390">Nabigatu orrietatik testu-kurtsorea erabilita</translation> <translation id="1076698951459398590">Gaitu gaia</translation> <translation id="1076818208934827215">Microsoft Internet Explorer</translation> @@ -521,7 +522,6 @@ <translation id="1608668830839595724">Ekintza gehiago hautatutako elementuetarako</translation> <translation id="161042844686301425">Ziana</translation> <translation id="1611432201750675208">Gailua blokeatuta dago</translation> -<translation id="1611584202130317952">Horniketa-fluxua eten egin da. Saiatu berriro edo jarri gailuaren jabearekin edo administratzailearekin harremanetan.</translation> <translation id="1614511179807650956">Agian mugikorreko datuen kuota osoa erabili duzu. Datu gehiago erosteko, joan <ph name="NAME" /> aktibazio-atarira.</translation> <translation id="161460670679785907">Ezin da hauteman telefonoa</translation> <translation id="1616206807336925449">Luzapen honek ez du baimen berezirik behar.</translation> @@ -530,6 +530,7 @@ <translation id="1618268899808219593">&Laguntza-zentroa</translation> <translation id="1620307519959413822">Pasahitza ez da zuzena. Saiatu berriro, edo sakatu "Pasahitza ahaztu zaizu?" eta berrezarri pasahitza.</translation> <translation id="1620510694547887537">Kamera</translation> +<translation id="1621831347985899379"><ph name="DEVICE_TYPE" /> gailuko datuak ezabatu egingo dira</translation> <translation id="1622054403950683339">Ahaztu wifi-sarea</translation> <translation id="1623132449929929218">Irudiak ez daude erabilgarri. Horma-paperen bildumak ikusteko, konektatu berriro Internetera.</translation> <translation id="1623723619460186680">Argi urdina murrizteko aukera</translation> @@ -757,6 +758,7 @@ <translation id="1877377290348678128">Etiketa (aukerakoa)</translation> <translation id="1877520246462554164">Ezin izan da eskuratu autentifikazio-tokena. Berriro saiatzeko, amaitu saioa eta has ezazu berriro.</translation> <translation id="1877860345998737529">Aldatu ekintzen esleipena</translation> +<translation id="1878155070920054810">Chromebook-aren bateria agortu egingo da eguneratzea amaitu aurretik. Ziurtatu behar bezala kargatzen ari dela, etenik gerta ez dadin.</translation> <translation id="1879000426787380528">Hasi saioa kontu honekin:</translation> <translation id="1880905663253319515">"<ph name="CERTIFICATE_NAME" />" ziurtagiria ezabatu nahi duzu?</translation> <translation id="1881445033931614352">Teklatuaren diseinua</translation> @@ -960,6 +962,7 @@ <translation id="2148219725039824548">Errore bat gertatu da fitxategiak partekatzeko biltegia muntatzean. Zehaztutako fitxategiak partekatzeko biltegia ez da aurkitu sarean.</translation> <translation id="2148756636027685713">Formateatzen amaitu da</translation> <translation id="2148892889047469596">Igorri fitxa</translation> +<translation id="2149973817440762519">Editatu laster-marka</translation> <translation id="2150139952286079145">Bilatu inprimagailuak</translation> <translation id="2150661552845026580">"<ph name="EXTENSION_NAME" />" gehitu nahi duzu?</translation> <translation id="2151576029659734873">Fitxa-indize baliogabea idatzi duzu.</translation> @@ -1068,6 +1071,7 @@ <translation id="2270627217422354837">Trukatu datuak domeinu hauetako edozein gailurekin: <ph name="DOMAINS" /></translation> <translation id="2272570998639520080">Martini-kopa</translation> <translation id="2273119997271134996">Oinarriko bideo-atakaren arazoa</translation> +<translation id="2274840746523584236">Kargatu Chromebook-a</translation> <translation id="2276503375879033601">Gehitu aplikazio gehiago</translation> <translation id="2277255602909579701">webguneko datu eta cookie guztiak</translation> <translation id="2277769717710009150">{COUNT,plural, =1{1 elementu kopiatu da}other{# elementu kopiatu dira}}</translation> @@ -1910,6 +1914,7 @@ <translation id="3308116878371095290">Orriari cookieak ezartzeko aukera ukatu zaio.</translation> <translation id="3308134619352333507">Ezkutatu botoia</translation> <translation id="3308852433423051161">Google-ren Laguntzailea kargatzen…</translation> +<translation id="3310640316857623290">DNSaren itxarote-denbora onartzen den atalasetik askoz gorago dago</translation> <translation id="3311445899360743395">Aplikazio honekin erlazionatutako datu guztiak kenduko dira gailu honetatik.</translation> <translation id="3312424061798279731">Gaitutako hizkuntzak</translation> <translation id="3313622045786997898">Ziurtagiriaren sinaduraren balioa</translation> @@ -1922,6 +1927,7 @@ <translation id="3323295311852517824">{NUM_FILES,plural, =0{Datuek kontuzko edukia edo eduki arriskutsua daukate. Kendu edukia eta saiatu berriro.}=1{Fitxategiak kontuzko edukia edo eduki arriskutsua dauka. Kendu edukia eta saiatu berriro.}other{Fitxategiek kontuzko edukia edo eduki arriskutsua daukate. Kendu edukia eta saiatu berriro.}}</translation> <translation id="3323521181261657960">Erabilera-denbora gehiago eman dizute!</translation> <translation id="3325910708063135066">Kamera eta mikrofonoa erabiltzeko baimenak desaktibatuta daude Mac sistemaren hobespenetan</translation> +<translation id="3327050066667856415">Chromebook-ak seguruak izateko daude diseinatuta. Gailuak berez dakar malwareen kontrako babesa. Ez da software gehigarririk behar.</translation> <translation id="3328489342742826322">Babeskopia bat erabiltzen baduzu leheneratzeko, ezabatu egingo dira lehendik zeuden Linux-erako aplikazioak eta Linux-eko fitxategien karpetako datuak.</translation> <translation id="3331321258768829690">(<ph name="UTCOFFSET" />) <ph name="LONGTZNAME" /> (<ph name="EXEMPLARCITY" />)</translation> <translation id="3331974543021145906">Aplikazioari buruzko informazioa</translation> @@ -2109,6 +2115,7 @@ <translation id="3556433843310711081">Kudeatzaileak desblokea diezazuke</translation> <translation id="3557101512409028104">Webguneen murriztapenak eta erabilera-orduak ezartzeko, erabili Family Link</translation> <translation id="3559262020195162408">Ezin izan da instalatu gidalerroa gailuan.</translation> +<translation id="3559533181353831840"><ph name="TIME_LEFT" /> inguru falta dira</translation> <translation id="3560034655160545939">&Ortografia-zuzentzailea</translation> <translation id="3562423906127931518">Prozesuak zenbait minutu iraun ditzake. Linux edukiontzia konfiguratzen.</translation> <translation id="3563432852173030730">Ezin izan da deskargatu aplikazio espezializatua.</translation> @@ -2151,6 +2158,7 @@ <translation id="3602290021589620013">Aurrebista</translation> <translation id="3603622770190368340">Eskuratu sareko ziurtagiria</translation> <translation id="3604713164406837697">Aldatu horma-papera</translation> +<translation id="360565022852130722">WEP 802.1x protokolo ahulak babesten du wifi-sarea</translation> <translation id="3605780360466892872">Enpresaria</translation> <translation id="3608576286259426129">Erabili irudiaren aurrebista</translation> <translation id="3610369246614755442">Oinarriaren haizagailua konpondu egin behar da</translation> @@ -2187,6 +2195,7 @@ <translation id="3639220004740062347">Irten irakurgailu modutik</translation> <translation id="3640214691812501263"><ph name="USER_NAME" /> erabiltzaileari "<ph name="EXTENSION_NAME" />" gehitu nahi diozu?</translation> <translation id="3640613767643722554">Irakatsi Laguntzailea eginbideari zure ahotsa ezagutzen</translation> +<translation id="3643014427358482789"><ph name="DOMAIN" /> domeinuak ADB arazketa desgaituko du, eta horrek <ph name="DEVICE_TYPE" /> gailua berrabiaraziko du. Egin fitxategien babeskopia gailua berrabiarazi baino lehen.</translation> <translation id="3645372836428131288">Mugitu hatza pixka bat, hatz-markaren beste zati bat hauteman dadin.</translation> <translation id="3647998456578545569">{COUNT,plural, =1{<ph name="ATTACHMENTS" /> jaso da <ph name="DEVICE_NAME" /> gailutik}other{<ph name="ATTACHMENTS" /> jaso dira <ph name="DEVICE_NAME" /> gailutik}}</translation> <translation id="3648348069317717750"><ph name="USB_DEVICE_NAME" /> hauteman da</translation> @@ -2275,6 +2284,7 @@ <translation id="3732857534841813090">Google-ren Laguntzailea eginbidearekin erlazionatutako informazioa</translation> <translation id="3733127536501031542">SSL zerbitzaria Step-up ziurtagiriarekin</translation> <translation id="3735740477244556633">Ordenatzeko irizpidea</translation> +<translation id="3738632186060045350"><ph name="DEVICE_TYPE" /> gailuko datuak 24 ordu barru ezabatuko dira</translation> <translation id="3738924763801731196"><ph name="OID" />:</translation> <translation id="3739254215541673094"><ph name="APPLICATION" /> ireki nahi duzu?</translation> <translation id="3742055079367172538">Pantaila-argazkia hartu da</translation> @@ -2461,6 +2471,7 @@ <translation id="3937734102568271121">Itzuli <ph name="LANGUAGE" /> beti</translation> <translation id="3938128855950761626"><ph name="VENDOR_ID" /> saltzailearen gailuak</translation> <translation id="3940233957883229251">Gaitu errepikatze automatikoa</translation> +<translation id="3941014780699102620">Ezin izan da konpondu ostalaria</translation> <translation id="3941565636838060942">Programarako sarbidea ezkutatzeko, desinstalatu egin behar duzu kontrol-paneleko <ph name="CONTROL_PANEL_APPLET_NAME" /> miniaplikazioa erabilita. @@ -2509,7 +2520,7 @@ <translation id="3983586614702900908">saltzaile ezezagunaren gailuak</translation> <translation id="3983764759749072418">Play Store-ko aplikazioek gailu hau atzitzeko baimena dute.</translation> <translation id="3983769721878416534">Klik egin aurretiko atzerapena</translation> -<translation id="3984135167056005094">Ez gehitu helbide elektronikoa</translation> +<translation id="3984135167056005094">Ez adierazi helbide elektronikoa</translation> <translation id="3984159763196946143">Ezin izan da abiarazi demo modua</translation> <translation id="3984431586879874039">Zure segurtasun-giltza ikusteko baimena eman nahi diozu webgune honi?</translation> <translation id="3986705137476756801">Desaktibatu Istanteko azpitituluak, momentuz</translation> @@ -2623,6 +2634,7 @@ <translation id="413121957363593859">Osagaiak</translation> <translation id="4131410914670010031">Zuri-beltzez</translation> <translation id="413193092008917129">Sarearen diagnostiko-errutinak</translation> +<translation id="4132183752438206707">Bilatu aplikazioak Google Play Store-n</translation> <translation id="4133076602192971179">Ireki aplikazioa pasahitza aldatzeko</translation> <translation id="4136203100490971508">Gaueko argia egunsentian desaktibatuko da automatikoki</translation> <translation id="41365691917097717">Aurrera eginez gero, ADB arazketa gaituko da Android-erako aplikazioak sortu eta probatzeko. 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> @@ -2870,6 +2882,8 @@ <translation id="4479877282574735775">Makina birtuala konfiguratzen. Agian minutu batzuk beharko dira.</translation> <translation id="4480590691557335796">Chrome-k ordenagailuko software kaltegarria aurkitu eta ezaba dezake</translation> <translation id="4481530544597605423">Desparekatutako gailuak</translation> +<translation id="4483049906298469269">Ezin izan da egin ping lehenetsia ez den sarerako atebidean</translation> +<translation id="4487489714832036847">Chromebook-ek aplikazioak erabiltzen dituzte ohiko softwarearen ordez. Lortu aplikazioak produktibitatea areagotzeko, aisialdirako eta gehiagorako.</translation> <translation id="4488502501195719518">Datu guztiak garbitu nahi dituzu?</translation> <translation id="4493468155686877504">Gomendatua (<ph name="INSTALL_SIZE" />)</translation> <translation id="4495419450179050807">Ez erakutsi orri honetan</translation> @@ -2919,6 +2933,7 @@ <translation id="4546692474302123343">Google-ren Laguntzailea eginbidearen ahozko idazketa</translation> <translation id="4547659257713117923">Ez dago beste gailuetako fitxarik</translation> <translation id="4547672827276975204">Ezarri automatikoki</translation> +<translation id="4548483925627140043">Ez da aurkitu seinalea</translation> <translation id="4549791035683739768">Segurtasun-giltzak ez dauka hatz-markarik gordeta</translation> <translation id="4551763574344810652">Sakatu <ph name="MODIFIER_KEY_DESCRIPTION" /> desegiteko</translation> <translation id="4552089082226364758">Flash</translation> @@ -2955,6 +2970,7 @@ <translation id="4582563038311694664">Berrezarri ezarpen guztiak</translation> <translation id="4585793705637313973">Editatu orria</translation> <translation id="4586275095964870617">Ezin izan da ireki <ph name="URL" /> beste arakatzaile batean. Jarri sistemaren administratzailearekin harremanetan.</translation> +<translation id="458794348635939462">Ezin izan da konpondu ostalari bat ere</translation> <translation id="4589713469967853491">Idatzi dira erregistroak Deskargak direktorioan.</translation> <translation id="4590324241397107707">Datu-baseen biltegiratzea</translation> <translation id="4592891116925567110">Arkatzarekin marrazteko aplikazioa</translation> @@ -3337,6 +3353,7 @@ <translation id="5089810972385038852">Estatua</translation> <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="5097649414558628673">Tresna: <ph name="PRINT_NAME" /></translation> <translation id="5097874180538493929">Sakatu automatikoki kurtsorea gelditzen denean</translation> <translation id="5101042277149003567">Ireki laster-marka guztiak</translation> <translation id="5101839224773798795">Egin klik automatikoki kurtsorea gelditzen denean</translation> @@ -3554,6 +3571,7 @@ <translation id="5370819323174483825">&Kargatu berriro</translation> <translation id="5372529912055771682">Sistema eragilearen bertsio honek ez du onartzen erregistratzeko adierazitako modua. Egiaztatu bertsiorik berriena erabiltzen ari zarela eta saiatu berriro.</translation> <translation id="5372579129492968947">Kendu aingura luzapenari</translation> +<translation id="5372659122375744710">Wifi-sarea ez da segurua</translation> <translation id="5376169624176189338">Sakatu itzultzeko; eduki sakatuta historia ikusteko</translation> <translation id="5376931455988532197">Fitxategia handiegia da</translation> <translation id="5377721922656071359">{COUNT,plural, =1{<ph name="ATTACHMENTS" /> bidali zaio <ph name="DEVICE_NAME" /> gailuari}other{<ph name="ATTACHMENTS" /> bidali zaizkio <ph name="DEVICE_NAME" /> gailuari}}</translation> @@ -3583,6 +3601,7 @@ <translation id="5414566801737831689">Irakurri bisitatzen dituzun webguneetako ikonoak</translation> <translation id="5417312524372586921">Arakatzailearen gaiak</translation> <translation id="5419405654816502573">Voice Match</translation> +<translation id="5420274697768050645">Segurtasun gehiago izate aldera, eskatu pasahitza gailua desblokeatzeko</translation> <translation id="5420438158931847627">Testuen eta irudien gardentasuna zehazten du</translation> <translation id="5422221874247253874">Sarbide-puntua</translation> <translation id="5422781158178868512">Ezin izan da ezagutu kanpoko biltegiratze-gailua.</translation> @@ -3707,6 +3726,7 @@ <translation id="5548606607480005320">Segurtasun-egiaztapena</translation> <translation id="5551573675707792127">Teklatua eta testu-idazketa</translation> <translation id="5553089923092577885">Ziurtagiri-gidalerroen esleipenak</translation> +<translation id="5554403733534868102">Hau amaitu ondoren, ez duzu berriz itxaron beharko eguneratzeko</translation> <translation id="5554489410841842733">Ikonoa ikusgai egongo da luzapenak uneko orrian ekintzak egin ditzakeenean.</translation> <translation id="5554720593229208774">Mezu elektronikoaren ziurtagiri-emailea</translation> <translation id="5556459405103347317">Kargatu berriro</translation> @@ -4119,6 +4139,7 @@ <translation id="6061882183774845124">Bidali esteka gailuetara</translation> <translation id="6064217302520318294">Pantailaren blokeoa</translation> <translation id="6065289257230303064">Ziurtagiria jasoko duen entitatearen direktorio-atributuak</translation> +<translation id="6069464830445383022">Google-ko kontuarekin hasten duzu saioa Chromebook-en</translation> <translation id="6069671174561668781">Ezarri horma-papera</translation> <translation id="6071181508177083058">berretsi pasahitza</translation> <translation id="6071576563962215370">Sistemak ezin izan du ezarri gailuaren instalazio-denboraren atributuen blokeoa.</translation> @@ -4161,6 +4182,7 @@ <translation id="6104311680260824317">Ezin da gehitu gailua domeinuan. Zerbitzariak ez ditu onartzen zehaztutako Kerberos enkriptatze motak. Joan "Aukera gehiago" atalera enkriptatze-ezarpenak ikusteko.</translation> <translation id="6104796831253957966">Beteta dago inprimagailuaren ilara</translation> <translation id="6105994589138235234">Chrome arakatzailearen sinkronizazioa</translation> +<translation id="6108689792487843350">Ezin da konektatu atebidera</translation> <translation id="6111972606040028426">Gaitu Google-ren Laguntzailea</translation> <translation id="6112294629795967147">Sakatu tamaina aldatzeko</translation> <translation id="6112727384379533756">Gehitu zerbitzu-eskaera bat</translation> @@ -4221,6 +4243,7 @@ <translation id="6178664161104547336">Hautatu ziurtagiri bat</translation> <translation id="6181431612547969857">Deskarga blokeatu da</translation> <translation id="6185132558746749656">Gailuaren kokapena</translation> +<translation id="6191293864534840972">Gaizki eratuta daude izenen zerbitzariak</translation> <translation id="6195446518998936840">Gurasoen murriztapenak konfiguratzeko, haurrak Google-ko kontu bat eduki behar du (zuk lagunduko diozu kontu hori kudeatzen). Erabilera-ordutegiak ezarri, webguneak onartu edo blokeatu, eta beste hainbat gauza egin ditzakezu Family Link aplikazioarekin.</translation> <translation id="6195693561221576702">Ezin da konfiguratu gailua konexiorik gabeko demo moduan.</translation> <translation id="6196640612572343990">Blokeatu hirugarrenen cookieak</translation> @@ -4432,6 +4455,7 @@ <translation id="6451591602925140504">{NUM_PAGES,plural, =0{<ph name="PAGE_TITLE" />}=1{<ph name="PAGE_TITLE" /> eta beste fitxa bat}other{<ph name="PAGE_TITLE" /> eta beste # fitxa}}</translation> <translation id="6451689256222386810">Pasaesaldia ahaztu bazaizu edo ezarpena aldatu nahi baduzu, <ph name="BEGIN_LINK" />berrezarri sinkronizazioa<ph name="END_LINK" />.</translation> <translation id="6452181791372256707">Baztertu</translation> +<translation id="6452251728599530347">% <ph name="PERCENT" /> osatuta</translation> <translation id="6452961788130242735">Sarean errore bat dago edo domeinua okerra da</translation> <translation id="6455264371803474013">Webgune zehatzetan</translation> <translation id="6455894534188563617">&Karpeta berria</translation> @@ -4488,6 +4512,7 @@ <ph name="EVENT_NAME" /></translation> <translation id="6520876759015997832"><ph name="LIST_POSITION" />/<ph name="LIST_SIZE" /> bilaketa-emaitza: "<ph name="SEARCH_RESULT_TEXT" />". Atal horretara joateko, sakatu Sartu.</translation> <translation id="652492607360843641">Sare <ph name="NETWORK_TYPE" /> batera zaude konektatuta.</translation> +<translation id="6527081081771465939">Wifiaren segurtasun-protokoloa ezezaguna da</translation> <translation id="6527303717912515753">Partekatu</translation> <translation id="6528513914570774834">Baimendu sare hau erabiltzea gailu hau darabiltenei</translation> <translation id="652948702951888897">Chrome-ko historia</translation> @@ -4603,6 +4628,7 @@ <translation id="6680442031740878064">Libre: <ph name="AVAILABLE_SPACE" /></translation> <translation id="6680650203439190394">Abiadura</translation> <translation id="6681668084120808868">Atera argazkia</translation> +<translation id="6684827949542560880">Azken eguneratzea deskargatzen</translation> <translation id="668599234725812620">Ireki Google Play</translation> <translation id="6686490380836145850">Itxi eskuineko fitxak</translation> <translation id="6686817083349815241">Gorde zure pasahitza</translation> @@ -4712,6 +4738,7 @@ <translation id="6812841287760418429">Mantendu aldaketak</translation> <translation id="6817174620439930047">Eskatu nire baimena webgune batek sistemaren mezu esklusiboak erabili nahi dituenean MIDI gailuak atzitzeko (gomendatua)</translation> <translation id="6818198425579322765">Orriaren jatorrizko hizkuntza</translation> +<translation id="6818802132960437751">Birusen aurkako babes integratua</translation> <translation id="682123305478866682">Igorri mahaigaina</translation> <translation id="6823174134746916417">Ukipen-panela sakatuta klik egiteko aukera</translation> <translation id="6823506025919456619">Chrome-n saioa hasi behar duzu gailuak ikusteko</translation> @@ -5356,6 +5383,7 @@ <translation id="7631205654593498032">Gailuak konektatzen dituzunean, onartu egingo duzu <ph name="DEVICE_TYPE" /> gailuak gaitasuna izango duela hauek egiteko:</translation> <translation id="7631887513477658702">Ireki beti &mota honetako fitxategiak</translation> <translation id="7632948528260659758">Aplikazio espezializatu hauek ezin izan dira eguneratu:</translation> +<translation id="7633724038415831385">Hau da eguneratzeen zain egongo zaren aldi bakarra. Izan ere, atzeko planoan eguneratzen da softwarea Chromebook-etan.</translation> <translation id="7634566076839829401">Arazoren bat izan da. Saiatu berriro geroago.</translation> <translation id="763632859238619983">Ez baimendu inongo webguneri ordainketa-kudeatzaileak instalatzea</translation> <translation id="7636919061354591437">Instalatu gailu honetan</translation> @@ -5633,6 +5661,7 @@ <translation id="7933314993013528982">{NUM_TABS,plural, =1{Aktibatu webguneko audioa}other{Aktibatu webguneetako audioa}}</translation> <translation id="7933634003144813719">Kudeatu karpeta partekatuak</translation> <translation id="793531125873261495">Errore bat gertatu da makina birtuala deskargatzean. Saiatu berriro.</translation> +<translation id="7936303884198020182">Ez da aurkitu izenen zerbitzaririk</translation> <translation id="7938594894617528435">Konektatu gabe</translation> <translation id="7939062555109487992">Aukera aurreratuak</translation> <translation id="7939412583708276221">Gorde hala ere</translation> @@ -5871,6 +5900,7 @@ <translation id="8226742006292257240">Behean duzu ausaz sortutako eta zure ordenagailuari esleitutako TPM pasahitza:</translation> <translation id="8227119283605456246">Erantsi fitxategia</translation> <translation id="8230134520748321204"><ph name="ORIGIN" /> webguneko pasahitza gorde nahi duzu?</translation> +<translation id="8230672074305416752">Ezin izan da egin ping sarerako atebide lehenetsian</translation> <translation id="8234795456569844941">Lagundu arazoa konpontzen gure ingeniariei. Esan iezaguzu zer gertatu den profileko errore-mezua jaso baino lehen:</translation> <translation id="8236917170563564587">Bestela, partekatu fitxa hau</translation> <translation id="8237647586961940482">Arrosa iluna eta gorria</translation> @@ -5931,6 +5961,7 @@ <translation id="8288032458496410887">Desinstalatu <ph name="APP" />…</translation> <translation id="8289128870594824098">Diskoaren tamaina</translation> <translation id="8291967909914612644">Hasierako hornitzailearen herrialdea</translation> +<translation id="8293206222192510085">Gehitu laster-marka</translation> <translation id="8294431847097064396">Iturburua</translation> <translation id="8297006494302853456">Ahula</translation> <translation id="8299319456683969623">Ez duzu konexiorik.</translation> @@ -5980,6 +6011,7 @@ <translation id="8363095875018065315">egonkorra</translation> <translation id="8363142353806532503">Mikrofonoa blokeatua dago</translation> <translation id="8363763184161554204"><ph name="PERMISSION" /> baimendu da</translation> +<translation id="8364946094152050673">Izenen zerbitzariak hutsik daude</translation> <translation id="8366396658833131068">Sareko konexioa leheneratu da. Hautatu beste sare bat edo sakatu hemen behean dagoen "Jarraitu" botoia aplikazio espezializatua abiarazteko.</translation> <translation id="8368027906805972958">Gailu ezezaguna edo bateraezina (<ph name="DEVICE_ID" />)</translation> <translation id="8368859634510605990">I&reki laster-marka guztiak</translation> @@ -6065,8 +6097,10 @@ <translation id="8472623782143987204">hardwarean gordeak</translation> <translation id="8473863474539038330">Helbideak eta beste</translation> <translation id="8475313423285172237">Ordenagailuan duzun beste programa batek Chrome-ren funtzionamendua alda dezakeen luzapen bat gehitu du.</translation> +<translation id="8475690821716466388">WEP PSK protokolo ahulak babesten du wifi-sarea</translation> <translation id="8477241577829954800">Ordeztua</translation> <translation id="8477384620836102176">&Orokorra</translation> +<translation id="8477551185774834963">DNSaren itxarote-denbora onartzen den atalasetik apur bat gorago dago</translation> <translation id="8480082892550707549">Aurretik webgune honetatik fitxategiak deskargatu badituzu ere, baliteke webgunea aldi baterako segurtasunik ez izatea (hackeatuta egotea). Saiatu geroago deskargatzen fitxategia.</translation> <translation id="8480869669560681089"><ph name="VENDOR_NAME" /> saltzailearen identifikatu ezin den gailua</translation> <translation id="8481187309597259238">Berretsi USB gailuak atzitzeko baimena</translation> @@ -6118,6 +6152,7 @@ <translation id="8546930481464505581">Pertsonalizatu ukipen-barra</translation> <translation id="8547013269961688403">Gaitu pantaila osoko lupa</translation> <translation id="85486688517848470">Goiko errenkadako teklen portaera aldatzeko, eduki sakatuta Bilaketa tekla</translation> +<translation id="8549316893834449916">Erabili Google-ko kontua Chromebook-en saioa hasteko. Gmail, Drive, YouTube eta zerbitzu gehiagotan erabiltzen duzun kontu bera da.</translation> <translation id="8551388862522347954">Lizentziak</translation> <translation id="8551588720239073785">Data- eta ordu-ezarpenak</translation> <translation id="8553342806078037065">Kudeatu beste pertsona batzuk</translation> @@ -6256,6 +6291,7 @@ <translation id="8720200012906404956">Sare mugikorraren bila. <ph name="BEGIN_LINK" />Lortu informazio gehiago<ph name="END_LINK" /></translation> <translation id="8720816553731218127">Instalazio-denboraren atributuak hasieratzeko denbora-muga gainditu da.</translation> <translation id="8722912030556880711">Bidali erabilera- eta diagnostiko-datuak. Gailu honek automatikoki bidaltzen dizkio Google-ri diagnostikoak eta gailu zein aplikazioen erabilerari buruzko datuak. Horri esker, sistemaren eta aplikazioen egonkortasuna hobetuko da, besteak beste. Gainera, multzokatutako datu batzuk oso baliagarriak izango dira Google-ren aplikazioak hobetzeko eta bazkideei laguntzeko (adibidez, Android-en garatzaileei). Sareko eta aplikazioetako jarduera gehigarriak ezarpena aktibatuta badago, baliteke datu horiek Google-ko kontuan gordetzea. <ph name="BEGIN_LINK2" />Lortu informazio gehiago<ph name="END_LINK2" /></translation> +<translation id="8723108084122415655">Lehenetsi gabeko sarea itxarote-denboraren atalasetik gora dago</translation> <translation id="8724405322205516354">Ikono hau ikusten duzunean, erabili hatz-marka zeure burua identifikatzeko edo erosketak onartzeko.</translation> <translation id="8724409975248965964">Gehitu da hatz-marka</translation> <translation id="8724859055372736596">&Erakutsi karpetan</translation> @@ -6433,6 +6469,7 @@ <translation id="8909833622202089127">Webgunea zure kokapenaren jarraipena egiten ari da</translation> <translation id="8910146161325739742">Partekatu pantaila</translation> <translation id="8910222113987937043">Aurrerantzean, ez dira sinkronizatuko Google-ko kontuarekin laster-marketan, historian, pasahitzetan eta bestelako ezarpenetan egindako aldaketak. Hala ere, Google-ko kontuan biltegiratuko dira lehendik dauden datuak, eta <ph name="BEGIN_LINK" />Google panelaren<ph name="END_LINK" /> bidez kudea daitezke.</translation> +<translation id="8910721771319628100">Sare lehenetsia itxarote-denboraren atalasetik gora dago</translation> <translation id="8912362522468806198">Google-ko kontua</translation> <translation id="8912793549644936705">Zabaldu</translation> <translation id="8912810933860534797">Gaitu bilaketa automatikoa</translation>
diff --git a/chrome/app/resources/generated_resources_fa.xtb b/chrome/app/resources/generated_resources_fa.xtb index 6756a5a..980cb67 100644 --- a/chrome/app/resources/generated_resources_fa.xtb +++ b/chrome/app/resources/generated_resources_fa.xtb
@@ -71,6 +71,7 @@ <translation id="1070705170564860382">باز کردن در مرورگر جایگزین پس از<ph name="COUNTDOWN_SECONDS" /> ثانیه دیگر</translation> <translation id="1071917609930274619">به رمز درآوردن داده</translation> <translation id="1072700771426194907">دستگاه USB شناسایی شد</translation> +<translation id="107278043869924952">استفاده از پین همراه با گذرواژه</translation> <translation id="1076176485976385390">پیمایش کردن صفحهها با نشانگر نوشتار</translation> <translation id="1076698951459398590">فعال کردن طرح زمینه</translation> <translation id="1076818208934827215">Microsoft Internet Explorer</translation> @@ -521,7 +522,6 @@ <translation id="1608668830839595724">کنشهای بیشتر برای مورد انتخابی</translation> <translation id="161042844686301425">فیروزهای</translation> <translation id="1611432201750675208">دستگاهتان قفل شده است</translation> -<translation id="1611584202130317952">جریان ارائه مجوز قطع شد. لطفاً دوباره امتحان کنید یا با مالک یا سرپرست دستگاه تماس بگیرید.</translation> <translation id="1614511179807650956">ممکن است حجم مجاز داده دستگاه همراهتان را مصرف کرده باشید. برای خرید داده بیشتر، از پورتال فعالسازی <ph name="NAME" /> بازدید کنید</translation> <translation id="161460670679785907">تلفن شناسایی نشد</translation> <translation id="1616206807336925449">این برنامه افزودنی به مجوز خاصی نیاز ندارد.</translation> @@ -530,6 +530,7 @@ <translation id="1618268899808219593">مرکز را&هنمایی</translation> <translation id="1620307519959413822">گذرواژه نادرست است. دوباره امتحان کنید یا روی «گذرواژه را فراموش کردهاید» کلیک کنید تا آن را بازنشانی کنید.</translation> <translation id="1620510694547887537">دوربین</translation> +<translation id="1621831347985899379">دادههای <ph name="DEVICE_TYPE" /> حذف خواهد شد</translation> <translation id="1622054403950683339">فراموش کردن شبکه Wi-Fi</translation> <translation id="1623132449929929218">درحالحاضر تصاویر دردسترس نیستند. برای دیدن مجموعههای کاغذدیواری دوباره به اینترنت متصل شوید.</translation> <translation id="1623723619460186680">کاهش نور آبی</translation> @@ -757,6 +758,7 @@ <translation id="1877377290348678128">برچسب (اختیاری)</translation> <translation id="1877520246462554164">کد احراز هویت دریافت نشد. لطفاً از سیستم خارج شوید و برای امتحان مجدد دوباره به سیستم وارد شوید.</translation> <translation id="1877860345998737529">تغییر وضعیت اختصاص دادن کلیدها به کنشها</translation> +<translation id="1878155070920054810">بهنظر میرسد شارژ Chromebook شما پیش از اتمام بهروزرسانی تمام خواهد شد. برای جلوگیری از قطع شدن بهروزرسانی، مطمئن شوید Chromebook بهدرستی شارژ میشود.</translation> <translation id="1879000426787380528">ورود به سیستم بهعنوان</translation> <translation id="1880905663253319515">مجوز "<ph name="CERTIFICATE_NAME" />" حذف شود؟</translation> <translation id="1881445033931614352">طرحبندی صفحهکلید</translation> @@ -961,6 +963,7 @@ <translation id="2148219725039824548">هنگام نشاندن دستگاه ذخیرهسازی متصل به شبکه خطایی روی داد. دستگاه ذخیرهسازی مشخصشده در شبکه پیدا نشد.</translation> <translation id="2148756636027685713">قالببندی تمام شد</translation> <translation id="2148892889047469596">برگه فرستادن</translation> +<translation id="2149973817440762519">ویرایش نشانک</translation> <translation id="2150139952286079145">جستجوی مقصدها</translation> <translation id="2150661552845026580">"<ph name="EXTENSION_NAME" />" اضافه شود؟</translation> <translation id="2151576029659734873">فهرست برگه نامعتبر وارد شده است.</translation> @@ -1070,6 +1073,7 @@ <translation id="2270627217422354837">تباد داده با هر دستگاهی در دامنههای: <ph name="DOMAINS" /></translation> <translation id="2272570998639520080">جام مارتینی</translation> <translation id="2273119997271134996">مشکل در اتصال درگاه ویدیو</translation> +<translation id="2274840746523584236">Chromebook خود را شارژ کنید</translation> <translation id="2276503375879033601">افزودن برنامههای بیشتر</translation> <translation id="2277255602909579701">همه کوکیها و دادههای سایت</translation> <translation id="2277769717710009150">{COUNT,plural, =1{۱ مورد کپی شد}one{# مورد کپی شد}other{# مورد کپی شد}}</translation> @@ -1912,6 +1916,7 @@ <translation id="3308116878371095290">این صفحه نمیتواند کوکیها را تنظیم کند.</translation> <translation id="3308134619352333507">دکمه پنهان کردن</translation> <translation id="3308852433423051161">درحال بارگیری «دستیار Google»…</translation> +<translation id="3310640316857623290">تأخیر در ساناد بهمیزان قابلتوجهی از آستانه مجاز بالاتر است</translation> <translation id="3311445899360743395">دادههای مرتبط با این برنامه ممکن است از این دستگاه پاک شود.</translation> <translation id="3312424061798279731">زبانهای فعال</translation> <translation id="3313622045786997898">ارزش امضای گواهی</translation> @@ -1924,6 +1929,7 @@ <translation id="3323295311852517824">{NUM_FILES,plural, =0{این داده محتوای حساس یا خطرناک دارد. این محتوا را حذف کنید و دوباره امتحان کنید.}=1{این فایل محتوای حساس یا خطرناک دارد. این محتوا را حذف کنید و دوباره امتحان کنید.}one{این فایلها محتوای حساس یا خطرناک دارند. این محتوا را حذف کنید و دوباره امتحان کنید.}other{این فایلها محتوای حساس یا خطرناک دارند. این محتوا را حذف کنید و دوباره امتحان کنید.}}</translation> <translation id="3323521181261657960">پاداش! وقت تماشای صفحه بیشتر شد</translation> <translation id="3325910708063135066">در «تنظیمات برگزیده سیستم Mac»، دوربین و میکروفون خاموشاند</translation> +<translation id="3327050066667856415">دستگاههای Chromebook برای امنیت طراحی شدهاند. دستگاه شما دربرابر بدافزار بهطور خودکار محافظت میشود – بدون نیاز به نرمافزار اضافی.</translation> <translation id="3328489342742826322">با بازیابی از دادههای پشتیبانگیریشده، برنامهها و دادههای Linux موجود در پوشه فایلهای Linux حذف خواهد شد.</translation> <translation id="3331321258768829690">(<ph name="UTCOFFSET" />) <ph name="LONGTZNAME" /> (<ph name="EXEMPLARCITY" />)</translation> <translation id="3331974543021145906">اطلاعات برنامه</translation> @@ -2113,6 +2119,7 @@ <translation id="3556433843310711081">مدیرتان میتواند این سایت را برای شما بگشاید</translation> <translation id="3557101512409028104">محدودیتهای وبسایت و محدودیتهای مدت تماشای صفحه با Family Link تنظیم شود</translation> <translation id="3559262020195162408">خطمشی روی دستگاه نصب نشد.</translation> +<translation id="3559533181353831840">تقریباً <ph name="TIME_LEFT" /> باقی مانده است</translation> <translation id="3560034655160545939">&غلطگیر املا</translation> <translation id="3562423906127931518">ممکن است این فرایند چند دقیقه طول بکشد. درحال راهاندازی محتوی Linux.</translation> <translation id="3563432852173030730">برنامه کیوسک بارگیری نشد.</translation> @@ -2155,6 +2162,7 @@ <translation id="3602290021589620013">پیشنمایش</translation> <translation id="3603622770190368340">دریافت گواهینامه شبکه</translation> <translation id="3604713164406837697">تغییر کاغذدیواری</translation> +<translation id="360565022852130722">شبکه Wi-Fi با پروتکل ضعیف WEP 802.1x ایمن شده است</translation> <translation id="3605780360466892872">تاجر</translation> <translation id="3608576286259426129">پیشنمایش تصویر کاربر</translation> <translation id="3610369246614755442">پنکه پایه اتصال نیاز به سرویس دارد</translation> @@ -2191,6 +2199,7 @@ <translation id="3639220004740062347">خروج از «حالت خواننده»</translation> <translation id="3640214691812501263">«<ph name="EXTENSION_NAME" />» برای «<ph name="USER_NAME" />» اضافه شود؟</translation> <translation id="3640613767643722554">به «دستیار» آموزش دهید صدایتان را تشخیص دهد</translation> +<translation id="3643014427358482789"><ph name="DOMAIN" /> اشکالزدایی «پل اشکالزدایی Android» (ADB) را غیرفعال میکند که موجب بازنشانی <ph name="DEVICE_TYPE" /> شما خواهد شد. قبل از بازراهاندازی از فایلهایتان پشتیبانگیری کنید.</translation> <translation id="3645372836428131288">انگشتتان را کمی حرکت دهید تا بخش دیگری از اثرانگشت ثبت شود.</translation> <translation id="3647998456578545569">{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="3648348069317717750"><ph name="USB_DEVICE_NAME" /> شناسایی شد</translation> @@ -2279,6 +2288,7 @@ <translation id="3732857534841813090">اطلاعات مربوط به «دستیار Google»</translation> <translation id="3733127536501031542">سرور SSL با ارتقا</translation> <translation id="3735740477244556633">مرتب کردن براساس</translation> +<translation id="3738632186060045350">دادههای <ph name="DEVICE_TYPE" /> پس از ۲۴ ساعت حذف خواهد شد</translation> <translation id="3738924763801731196"><ph name="OID" />:</translation> <translation id="3739254215541673094"><ph name="APPLICATION" /> باز شود؟</translation> <translation id="3742055079367172538">نماگرفت گرفته شد</translation> @@ -2466,6 +2476,7 @@ <translation id="3937734102568271121"><ph name="LANGUAGE" /> همیشه ترجمه شود</translation> <translation id="3938128855950761626">دستگاههای فروشنده <ph name="VENDOR_ID" /></translation> <translation id="3940233957883229251">فعال کردن تکرار خودکار</translation> +<translation id="3941014780699102620">حل کردن میزبان انجام نشد</translation> <translation id="3941565636838060942">برای پنهان کردن دسترسی به این برنامه، باید با استفاده از <ph name="CONTROL_PANEL_APPLET_NAME" /> در صفحه کنترل آن را حذف کنید. @@ -2628,6 +2639,7 @@ <translation id="413121957363593859">مؤلفهها</translation> <translation id="4131410914670010031">سیاه و سفید</translation> <translation id="413193092008917129">روالهای عیبیابی شبکه</translation> +<translation id="4132183752438206707">پیدا کردن برنامهها در «فروشگاه Google Play»</translation> <translation id="4133076602192971179">برای تغییر دادن گذرواژه، برنامه را باز کنید</translation> <translation id="4136203100490971508">«نور شب» هنگام طلوع آفتاب بهطور خودکار خاموش میشود</translation> <translation id="41365691917097717">با ادامه دادن، اشکالزدایی ADB (پل اشکالزدایی Android) برای ایجاد و آزمایش برنامههای Android فعال میشود. توجه داشته باشید که این کنش نصب برنامههای Android را که Google تأیید نکرده است مجاز میکند و برای غیرفعال شدن به بازنشانی کارخانهای نیاز دارد.</translation> @@ -2877,6 +2889,8 @@ <translation id="4479877282574735775">درحال پیکربندی ماشین مجازی. ممکن است چند دقیقه طول بکشد.</translation> <translation id="4480590691557335796">Chrome میتواند نرمافزار مضر را در رایانهتان پیدا کرده و آن را حذف کند</translation> <translation id="4481530544597605423">دستگاههای لغو ارتباطشده</translation> +<translation id="4483049906298469269">پینگ کردن دروازه شبکه غیر پیشفرض انجام نشد</translation> +<translation id="4487489714832036847">دستگاههای Chromebook بهجای نرمافزار قدیمی از برنامهها استفاده میکنند. برنامههایی ویژه بهرهوری، سرگرمی، و غیره دریافت کنید.</translation> <translation id="4488502501195719518">همه دادهها پاک شود؟</translation> <translation id="4493468155686877504">(<ph name="INSTALL_SIZE" />) توصیهشده</translation> <translation id="4495419450179050807">در این صفحه نشان داده نشود</translation> @@ -2927,6 +2941,7 @@ <translation id="4546692474302123343">ورودی گفتاری «دستیار Google»</translation> <translation id="4547659257713117923">برگهای از دیگر دستگاهها وجود ندارد</translation> <translation id="4547672827276975204">تنظیم خودکار</translation> +<translation id="4548483925627140043">سیگنال پیدا نشد</translation> <translation id="4549791035683739768">هیچ اثر انگشتی برای کلید امنیتیتان ذخیره نشده است</translation> <translation id="4551763574344810652">برای واگرد، <ph name="MODIFIER_KEY_DESCRIPTION" /> را فشار دهید</translation> <translation id="4552089082226364758">Flash</translation> @@ -2966,6 +2981,7 @@ <translation id="4582563038311694664">بازنشانی همه تنظیمات</translation> <translation id="4585793705637313973">ویرایش صفحه</translation> <translation id="4586275095964870617"><ph name="URL" /> نمیتواند در مرورگر جایگزینی باز شود. لطفاً با سرپرست سیستم تماس بگیرید.</translation> +<translation id="458794348635939462">مشکل همه میزبانان برطرف نشد</translation> <translation id="4589713469967853491">گزارشها باموفقیت در فهرست راهنمای «بارگیریها» نوشته شد.</translation> <translation id="4590324241397107707">فضای ذخیرهسازی پایگاه داده</translation> <translation id="4592891116925567110">برنامه طراحی قلم</translation> @@ -3349,6 +3365,7 @@ <translation id="5089810972385038852">ایالت</translation> <translation id="5094721898978802975">ارتباط با برنامههای بومی همکار</translation> <translation id="5097002363526479830">اتصال ناموفق به شبکه "<ph name="NAME" />":<ph name="DETAILS" /></translation> +<translation id="5097649414558628673">ابزار: <ph name="PRINT_NAME" /></translation> <translation id="5097874180538493929">کلیک کردن خودکار هنگام متوقف شدن نشانگر</translation> <translation id="5101042277149003567">باز کردن همه نشانکها</translation> <translation id="5101839224773798795">کلیک خودکار با توقف مرورگر</translation> @@ -3567,6 +3584,7 @@ <translation id="5370819323174483825">&تازهسازی</translation> <translation id="5372529912055771682">حالت ثبتنام ارائه شده توسط این نسخه از سیستمعامل پشتیبانی نمیشود. لطفاً مطمئن شوید که جدیدترین نسخه را اجرا میکنید و دوباره امتحان کنید.</translation> <translation id="5372579129492968947">برداشتن پین افزونه</translation> +<translation id="5372659122375744710">شبکه Wi-Fi ایمن نیست</translation> <translation id="5376169624176189338">برای برگشت به عقب کلیک کنید، برای دیدن سابقه نگه دارید</translation> <translation id="5376931455988532197">فایل بسیار بزرگ است</translation> <translation id="5377721922656071359">{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> @@ -3596,6 +3614,7 @@ <translation id="5414566801737831689">خواندن نمادهای وبسایتهایی که بازدید میکنید</translation> <translation id="5417312524372586921">طرحهای زمینه مرورگر</translation> <translation id="5419405654816502573">Voice match</translation> +<translation id="5420274697768050645">برای امنیت بیشتر، گذرواژه برای باز کردن قفل دستگاه الزامی باشد</translation> <translation id="5420438158931847627">وضوح نوشتار یا تصاویر را تعیین میکند</translation> <translation id="5422221874247253874">نقطه دسترسی</translation> <translation id="5422781158178868512">متأسفیم، دستگاه ذخیرهسازی خارجی شما شناسایی نشد.</translation> @@ -3720,6 +3739,7 @@ <translation id="5548606607480005320">بررسی ایمنی</translation> <translation id="5551573675707792127">صفحهکلید و ورودی نوشتاری</translation> <translation id="5553089923092577885">نگاشتهای سیاست گواهی</translation> +<translation id="5554403733534868102">پس از این، نیازی نیست برای بهروزرسانیها صبر کنید</translation> <translation id="5554489410841842733">این نماد وقتی قابل رؤیت است که برنامهٔ افزودنی بتواند برای صفحه فعلی کار کند.</translation> <translation id="5554720593229208774">ارائه دهنده مجوز ایمیل</translation> <translation id="5556459405103347317">تازهسازی</translation> @@ -4133,6 +4153,7 @@ <translation id="6061882183774845124">ارسال پیوند به دستگاههایتان</translation> <translation id="6064217302520318294">قفل صفحه</translation> <translation id="6065289257230303064">ویژگیهای دایرکتوری موضوع گواهی</translation> +<translation id="6069464830445383022">ورود به سیستم در Chromebook با «حساب Google» انجام میشود</translation> <translation id="6069671174561668781">تنظیم کاغذدیواری</translation> <translation id="6071181508177083058">تأیید گذرواژه</translation> <translation id="6071576563962215370">این سیستم نتوانست قفل ویژگیهای زمان نصب دستگاه را ایجاد کند.</translation> @@ -4175,6 +4196,7 @@ <translation id="6104311680260824317">نمیتوان دستگاه را به دامنه وصل کرد. این سرور از رمزگذاریهای Kerberos مشخصشده پشتیبانی نمیکند. برای تنظیمات رمزگذاری «گزینههای بیشتر» را بررسی کنید.</translation> <translation id="6104796831253957966">صف چاپگر پر است</translation> <translation id="6105994589138235234">همگامسازی مرورگر Chrome</translation> +<translation id="6108689792487843350">دروازه قابل دسترسی نیست</translation> <translation id="6111972606040028426">فعال کردن «دستیار Google»</translation> <translation id="6112294629795967147">لمس کردن برای تغییر اندازه</translation> <translation id="6112727384379533756">افزودن بلیت</translation> @@ -4235,6 +4257,7 @@ <translation id="6178664161104547336">انتخاب گواهی</translation> <translation id="6181431612547969857">بارگیری مسدود شد</translation> <translation id="6185132558746749656">مکان دستگاه</translation> +<translation id="6191293864534840972">سرورهای نام دامنه ناقص است</translation> <translation id="6195446518998936840">برای راهاندازی «کنترلهای والدین»، فرزندتان باید یک «حساب Google» داشته باشد که شما در مدیریت آن به او کمک خواهید کرد. میتوانید محدودیتهای مدت تماشای صفحه تنظیم کنید، وبسایتها را تأیید یا مسدود کنید، و کارهای بیشتری با برنامه Family Link انجام دهید.</translation> <translation id="6195693561221576702">این دستگاه روی حالت نمایشی آفلاین تنظیم نمیشود.</translation> <translation id="6196640612572343990">مسدود کردن کوکیهای شخص ثالث</translation> @@ -4448,6 +4471,7 @@ <translation id="6451591602925140504">{NUM_PAGES,plural, =0{<ph name="PAGE_TITLE" />}=1{<ph name="PAGE_TITLE" /> و ۱ برگه دیگر}one{<ph name="PAGE_TITLE" /> و # برگه دیگر}other{<ph name="PAGE_TITLE" /> و # برگه دیگر}}</translation> <translation id="6451689256222386810">اگر عبارت عبورتان را فراموش کردهاید یا میخواهید این تنظیم را تغییر دهید، <ph name="BEGIN_LINK" />همگامسازی را بازنشانی کنید<ph name="END_LINK" />.</translation> <translation id="6452181791372256707">عدم پذیرش</translation> +<translation id="6452251728599530347"><ph name="PERCENT" /> تکمیل شد</translation> <translation id="6452961788130242735">مشکل شبکه یا حوزه نادرست</translation> <translation id="6455264371803474013">در سایتهایی خاص</translation> <translation id="6455894534188563617">پوشه &جدید</translation> @@ -4504,6 +4528,7 @@ <ph name="EVENT_NAME" /></translation> <translation id="6520876759015997832">نتیجه جستجوی <ph name="LIST_POSITION" /> از <ph name="LIST_SIZE" />: <ph name="SEARCH_RESULT_TEXT" /> برای پیمایش کردن به بخش، Enter را فشار دهید.</translation> <translation id="652492607360843641">به یک شبکه <ph name="NETWORK_TYPE" /> متصل شدهاید.</translation> +<translation id="6527081081771465939">پروتکل امنیتی Wi-Fi ناشناس است</translation> <translation id="6527303717912515753">اشتراکگذاری</translation> <translation id="6528513914570774834">به سایر کاربران این دستگاه اجازه داده شود از این شبکه استفاده کنند</translation> <translation id="652948702951888897">سابقه Chrome</translation> @@ -4620,6 +4645,7 @@ <translation id="6680442031740878064">در دسترس: <ph name="AVAILABLE_SPACE" /></translation> <translation id="6680650203439190394">رتبهبندی</translation> <translation id="6681668084120808868">عکسبرداری</translation> +<translation id="6684827949542560880">درحال بارگیری آخرین بهروزرسانی</translation> <translation id="668599234725812620">باز کردن Google Play</translation> <translation id="6686490380836145850">بستن برگهها به چپ</translation> <translation id="6686817083349815241">ذخیره گذرواژهتان</translation> @@ -4729,6 +4755,7 @@ <translation id="6812841287760418429">حفظ تغییرات</translation> <translation id="6817174620439930047">اگر سایتی میخواهد از پیامهای انحصاری سیستم برای دسترسی به دستگاههای MIDI استفاده کند سؤال شود (توصیه میشود)</translation> <translation id="6818198425579322765">زبان صفحه موردنظر برای ترجمه</translation> +<translation id="6818802132960437751">مجهز به محافظ دربرابر ویروس</translation> <translation id="682123305478866682">فرستادن میزکار</translation> <translation id="6823174134746916417">کلیک با یک ضربه روی صفحه لمسی</translation> <translation id="6823506025919456619">برای مشاهده دستگاههایتان باید به سیستم Chrome وارد شوید</translation> @@ -5375,6 +5402,7 @@ <translation id="7631205654593498032">وقتی دستگاههایتان را متصل میکنید، موافقت میکنید که <ph name="DEVICE_TYPE" /> بتواند:</translation> <translation id="7631887513477658702">&همیشه این نوع فایلها باز شوند</translation> <translation id="7632948528260659758">بهروزرسانی برنامههای کیوسک زیر انجام نشد:</translation> +<translation id="7633724038415831385">فقط همین یکبار باید برای بهروزرسانی صبر کنید. در Chromebook، بهروزرسانیهای نرمافزار در پسزمینه انجام میشود.</translation> <translation id="7634566076839829401">مشکلی پیش آمد. لطفاً دوباره امتحان کنید.</translation> <translation id="763632859238619983">هیچ سایتی برای نصب کنترلکنندههای پرداخت مجاز نباشد</translation> <translation id="7636919061354591437">نصب در این دستگاه</translation> @@ -5653,6 +5681,7 @@ <translation id="7933314993013528982">{NUM_TABS,plural, =1{باصدا کردن سایت}one{باصدا کردن سایتها}other{باصدا کردن سایتها}}</translation> <translation id="7933634003144813719">مدیریت پوشههای همرسانیشده</translation> <translation id="793531125873261495">هنگام بارگیری دستگاه مجازی خطایی روی داد. لطفاً دوباره امتحان کنید.</translation> +<translation id="7936303884198020182">سرور نام دامنه پیدا نشد</translation> <translation id="7938594894617528435">در حال حاضر آفلاین</translation> <translation id="7939062555109487992">گزینههای پیشرفته</translation> <translation id="7939412583708276221">درهر حال حفظ شود</translation> @@ -5896,6 +5925,7 @@ <translation id="8226742006292257240">در زیر گذرواژه TPM ایجاد شده به صورت تصادفی، آورده شده که به رایانهٔ شما اختصاص داده شده است:</translation> <translation id="8227119283605456246">پیوست کردن فایل</translation> <translation id="8230134520748321204">گذرواژه <ph name="ORIGIN" /> ذخیره شود؟</translation> +<translation id="8230672074305416752">پینگ کردن دروازه شبکه پیشفرض انجام نشد</translation> <translation id="8234795456569844941">لطفاً در رفع این مشکل به مهندسان ما کمک کنید. بگویید درست قبل از اینکه پیام خطای نمایه را دریافت کنید، چه اتفاقی افتاد.</translation> <translation id="8236917170563564587">درعوض این برگه را همرسانی کنید</translation> <translation id="8237647586961940482">صورتی تیره و قرمز</translation> @@ -5956,6 +5986,7 @@ <translation id="8288032458496410887">حذف نصب <ph name="APP" />...</translation> <translation id="8289128870594824098">حجم دیسک</translation> <translation id="8291967909914612644">کشور ارائهدهنده اصلی</translation> +<translation id="8293206222192510085">افزودن نشانک</translation> <translation id="8294431847097064396">منبع</translation> <translation id="8297006494302853456">ضعیف</translation> <translation id="8299319456683969623">در حال حاضر آفلاين هستید.</translation> @@ -6005,6 +6036,7 @@ <translation id="8363095875018065315">پایدار</translation> <translation id="8363142353806532503">میکروفون مسدود شده است</translation> <translation id="8363763184161554204"><ph name="PERMISSION" /> مجاز شده است</translation> +<translation id="8364946094152050673">سرورهای نام دامنه خالی است</translation> <translation id="8366396658833131068">اتصالتان به شبکه بازیابی شد. لطفاً شبکه دیگری را انتخاب کنید یا دکمه «ادامه» را در زیر فشار دهید تا برنامه کیوسکتان را راهاندازی کنید.</translation> <translation id="8368027906805972958">دستگاه ناشناس یا پشتیبانینشده (<ph name="DEVICE_ID" />)</translation> <translation id="8368859634510605990">&باز کردن همه نشانکها</translation> @@ -6090,8 +6122,10 @@ <translation id="8472623782143987204">سختافزار پشتیبانی</translation> <translation id="8473863474539038330">نشانیها و سایر موارد</translation> <translation id="8475313423285172237">برنامهای دیگر بر روی رایانه شما یک برنامه افزودنی را اضافه کرده است که ممکن است نحوه کارکرد Chrome را تغییر دهد.</translation> +<translation id="8475690821716466388">شبکه Wi-Fi با پروتکل ضعیف WEP PSK ایمن شده است</translation> <translation id="8477241577829954800">از دور خارج شده</translation> <translation id="8477384620836102176">&عمومی</translation> +<translation id="8477551185774834963">تأخیر در ساناد اندکی از آستانه مجاز بالاتر است</translation> <translation id="8480082892550707549">حتی اگر قبلاً از این سایت فایلهایی را بارگیری کرده باشید، این سایت ممکن است بهطور موقت غیرایمن باشد (هک شده باشد). این فایل را بعداً بارگیری کنید.</translation> <translation id="8480869669560681089">دستگاه نامشخص از <ph name="VENDOR_NAME" /></translation> <translation id="8481187309597259238">تأیید مجوز USB</translation> @@ -6143,6 +6177,7 @@ <translation id="8546930481464505581">سفارشی کردن «نوار لمسی»</translation> <translation id="8547013269961688403">فعال کردن ذرهبین تمامصفحه</translation> <translation id="85486688517848470">برای جابهجایی بین رفتار کلیدهای ردیف بالا، کلید جستجو را نگهدارید</translation> +<translation id="8549316893834449916">برای ورود به سیستم در Chromebook از «حساب Google» استفاده خواهید کرد – همان حسابی که برای Gmail، Drive، YouTube، و غیره از آن استفاده میکنید.</translation> <translation id="8551388862522347954">مجوزها</translation> <translation id="8551588720239073785">تنظیمات تاریخ و ساعت</translation> <translation id="8553342806078037065">مدیریت افراد دیگر</translation> @@ -6281,6 +6316,7 @@ <translation id="8720200012906404956">شبکه تلفن همراه جستجو شود. <ph name="BEGIN_LINK" />بیشتر بدانید<ph name="END_LINK" /></translation> <translation id="8720816553731218127">مهلت مقداردهی اولیه از ویژگیهای زمان نصب به پایان رسیده است.</translation> <translation id="8722912030556880711">دادههای استفاده و عیبیابی را ارسال کنید. این دستگاه درحالحاضر بهصورت خودکار دادههای عیبیابی و دادههای استفاده از دستگاه و برنامه را برای Google ارسال میکند. این دادهها به بهبود پایداری سیستم و برنامه و موارد دیگر کمک خواهد کرد. بعضی دادههای انبوه نیز به برنامهها و شرکای Google (مانند برنامهنویسهای Android) کمک میکند. اگر تنظیم «فعالیت وب و برنامه» تکمیلی روشن باشد، ممکن است این دادهها در حساب Google شما ذخیره شود. <ph name="BEGIN_LINK2" />بیشتر بدانید<ph name="END_LINK2" /></translation> +<translation id="8723108084122415655">آستانه تأخیر در شبکه غیر پیشفرض خیلی زیاد است</translation> <translation id="8724405322205516354">وقتی این نماد را میبینید، از اثر انگشتتان برای شناسایی یا تأیید خریدها استفاده کنید.</translation> <translation id="8724409975248965964">اثر انگشت اضافه شد</translation> <translation id="8724859055372736596">&نمایش در پوشه</translation> @@ -6458,6 +6494,7 @@ <translation id="8909833622202089127">سایت درحال ردیابی مکان شما است</translation> <translation id="8910146161325739742">اشتراکگذاری صفحه</translation> <translation id="8910222113987937043">تغییرات ایجادشده در نشانکها، سابقه، گذرواژهها و سایر تنظیمات شما با حساب Google شما دیگر همگامسازی نخواهد شد. بااینوجود دادههای قبلاً ذخیرهشده در حساب Google شما در آنجا میمانند و در <ph name="BEGIN_LINK" />داشبورد Google<ph name="END_LINK" /> میتوانید آنها را مدیریت کنید.</translation> +<translation id="8910721771319628100">آستانه تأخیر در شبکه پیشفرض خیلی زیاد است</translation> <translation id="8912362522468806198">حساب Google</translation> <translation id="8912793549644936705">گسترده کردن</translation> <translation id="8912810933860534797">فعال کردن اسکن خودکار</translation>
diff --git a/chrome/app/resources/generated_resources_fi.xtb b/chrome/app/resources/generated_resources_fi.xtb index a3c5742c..9979374 100644 --- a/chrome/app/resources/generated_resources_fi.xtb +++ b/chrome/app/resources/generated_resources_fi.xtb
@@ -525,7 +525,6 @@ <translation id="1608668830839595724">Lisää toimintoja valituille kohteille</translation> <translation id="161042844686301425">Turkoosi</translation> <translation id="1611432201750675208">Laitteesi on lukittu</translation> -<translation id="1611584202130317952">Käyttäjien hallinnan kulku keskeytettiin. Yritä uudelleen tai ota yhteyttä laitteen omistajaan tai järjestelmänvalvojaan.</translation> <translation id="1614511179807650956">Olet saattanut käyttää mobiilidatasaldosi loppuun. Käy aktivointiportaalissa (<ph name="NAME" />) ostamassa lisää saldoa.</translation> <translation id="161460670679785907">Puhelinta ei havaittu</translation> <translation id="1616206807336925449">Tämä laajennus ei vaadi erityisiä käyttöoikeuksia.</translation> @@ -967,6 +966,7 @@ <translation id="2148219725039824548">Virhe jaon käyttöönotossa. Kyseistä jakoa ei löytynyt verkosta.</translation> <translation id="2148756636027685713">Alustus valmis</translation> <translation id="2148892889047469596">Suoratoista välilehti</translation> +<translation id="2149973817440762519">Muokkaa kirjanmerkkiä</translation> <translation id="2150139952286079145">Hae kohteita</translation> <translation id="2150661552845026580">Lisätäänkö <ph name="EXTENSION_NAME" />?</translation> <translation id="2151576029659734873">Annoit virheellisen välilehden numeron.</translation> @@ -3485,7 +3485,7 @@ <translation id="5249624017678798539">Selain kaatui ennen latauksen päättymistä.</translation> <translation id="5250372599208556903"><ph name="SEARCH_ENGINE_NAME" /> tarjoaa paikallista sisältöä sijaintisi avulla. Voit muuttaa asetusta osoitteessa <ph name="SETTINGS_LINK" />.</translation> <translation id="5252456968953390977">Roaming</translation> -<translation id="5252496130205799136">Saako Google Account tallentaa ja täyttää salasanoja?</translation> +<translation id="5252496130205799136">Saako Google-tili tallentaa ja täyttää salasanoja?</translation> <translation id="5252653240322147470">PIN-koodissa saa olla korkeintaan <ph name="MAXIMUM" /> numeroa.</translation> <translation id="5254368820972107711">Näytä poistettavat tiedostot</translation> <translation id="52550593576409946">Kioskisovelluksen käynnistäminen ei onnistunut.</translation> @@ -5987,6 +5987,7 @@ <translation id="8288032458496410887">Poista <ph name="APP" />…</translation> <translation id="8289128870594824098">Levyn koko</translation> <translation id="8291967909914612644">Kotiverkon palveluntarjoajan maa</translation> +<translation id="8293206222192510085">Lisää kirjanmerkki</translation> <translation id="8294431847097064396">Lähde</translation> <translation id="8297006494302853456">Heikko</translation> <translation id="8299319456683969623">Olet tällä hetkellä offline-tilassa.</translation>
diff --git a/chrome/app/resources/generated_resources_fil.xtb b/chrome/app/resources/generated_resources_fil.xtb index a25b6fe9..d15076d 100644 --- a/chrome/app/resources/generated_resources_fil.xtb +++ b/chrome/app/resources/generated_resources_fil.xtb
@@ -71,6 +71,7 @@ <translation id="1070705170564860382">Bubuksan sa alternatibong browser pagkalipas ng <ph name="COUNTDOWN_SECONDS" /> (na) segundo</translation> <translation id="1071917609930274619">Pag-encipher ng Data</translation> <translation id="1072700771426194907">Na-detect ang USB device</translation> +<translation id="107278043869924952">Gumamit ng PIN bilang karagdagan sa password</translation> <translation id="1076176485976385390">Mag-navigate sa mga page gamit ang text cursor</translation> <translation id="1076698951459398590">I-enable ang Tema</translation> <translation id="1076818208934827215">Microsoft Internet Explorer</translation> @@ -524,7 +525,6 @@ <translation id="1608668830839595724">Higit pang pagkilos para sa mga napiling item</translation> <translation id="161042844686301425">Cyan</translation> <translation id="1611432201750675208">Naka-lock ang iyong device</translation> -<translation id="1611584202130317952">Nagambala ang daloy ng provisioning. Pakisubukang muli o makipag-ugnayan sa may-ari o administrator ng iyong device.</translation> <translation id="1614511179807650956">Maaaring naubos mo na ang iyong allowance sa mobile data. Bisitahin ang portal sa pag-activate ng <ph name="NAME" /> para bumili ng higit pang data</translation> <translation id="161460670679785907">Hindi makita ang iyong telepono</translation> <translation id="1616206807336925449">Hindi nangangailangan ang extension na ito ng mga espesyal na pahintulot.</translation> @@ -533,6 +533,7 @@ <translation id="1618268899808219593">Help Center</translation> <translation id="1620307519959413822">Mali ang password. Subukan ulit o i-click ang Nakalimutan ang password para ma-reset ito.</translation> <translation id="1620510694547887537">Camera</translation> +<translation id="1621831347985899379">Made-delete ang data ng <ph name="DEVICE_TYPE" /></translation> <translation id="1622054403950683339">Kalimutan ang Wi-Fi network</translation> <translation id="1623132449929929218">Kasalukuyang hindi available ang mga larawan. Kumonektang muli sa internet para makita ang mga koleksyon ng wallpaper.</translation> <translation id="1623723619460186680">Pag-dim sa blue light</translation> @@ -760,6 +761,7 @@ <translation id="1877377290348678128">Label (opsyonal)</translation> <translation id="1877520246462554164">Hindi nakuha ang token sa pag-authenticate. Mag-sign out at muling mag-sign in upang subukang muli.</translation> <translation id="1877860345998737529">Pagtatakda ng switch sa pagkilos</translation> +<translation id="1878155070920054810">Mukhang mauubusan na ng power ang iyong Chromebook bago pa matapos ang pag-update. Tiyaking nagcha-charge ito nang tama para maiwasan ang pagkaantala.</translation> <translation id="1879000426787380528">Mag-sign in bilang</translation> <translation id="1880905663253319515">Tanggalin ang certificate na "<ph name="CERTIFICATE_NAME" />"?</translation> <translation id="1881445033931614352">Layout ng keyboard</translation> @@ -964,6 +966,7 @@ <translation id="2148219725039824548">Nagka-error sa pag-mount ng share. Hindi nakita ang isinaad na share sa network.</translation> <translation id="2148756636027685713">Tapos na ang pag-format</translation> <translation id="2148892889047469596">I-cast ang tab</translation> +<translation id="2149973817440762519">I-edit ang Bookmark</translation> <translation id="2150139952286079145">Maghanap ng mga patutunguhan</translation> <translation id="2150661552845026580">Idagdag ang "<ph name="EXTENSION_NAME" />"?</translation> <translation id="2151576029659734873">Di-wastong index ng tab ang ipinasok.</translation> @@ -1073,6 +1076,7 @@ <translation id="2270627217422354837">Makipagpalit ng data sa device na nasa mga domain: <ph name="DOMAINS" /></translation> <translation id="2272570998639520080">Baso ng martini</translation> <translation id="2273119997271134996">Isyu sa dock video-port</translation> +<translation id="2274840746523584236">I-charge ang iyong Chromebook</translation> <translation id="2276503375879033601">Magdagdag ng higit pang apps</translation> <translation id="2277255602909579701">Lahat ng data ng cookies at site</translation> <translation id="2277769717710009150">{COUNT,plural, =1{Nakopya ang 1 item}one{Nakopya ang # item}other{Nakopya ang # na item}}</translation> @@ -1915,6 +1919,7 @@ <translation id="3308116878371095290">Naharangan ang pahinang ito mula sa pagtatakda ng cookies.</translation> <translation id="3308134619352333507">Itago ang Button</translation> <translation id="3308852433423051161">Nilo-load ang Google Assistant...</translation> +<translation id="3310640316857623290">Napakataas kumpara sa pinapayagang limitasyon ang latency ng DNS</translation> <translation id="3311445899360743395">Posibleng alisin sa device na ito ang data na nauugnay sa app na ito.</translation> <translation id="3312424061798279731">Mga naka-enable na wika</translation> <translation id="3313622045786997898">Certificate Signature Value</translation> @@ -1927,6 +1932,7 @@ <translation id="3323295311852517824">{NUM_FILES,plural, =0{May sensitibo o mapanganib na content ang data na ito. Alisin ang content na ito at subukan ulit.}=1{May sensitibo o mapanganib na content ang file na ito. Alisin ang content na ito at subukan ulit.}one{May sensitibo o mapanganib na content ang mga file na ito. Alisin ang content na ito at subukan ulit.}other{May sensitibo o mapanganib na content ang mga file na ito. Alisin ang content na ito at subukan ulit.}}</translation> <translation id="3323521181261657960">Bonus! Nadagdagan ang tagal ng paggamit</translation> <translation id="3325910708063135066">Naka-off ang camera at mikropono sa System Preferences ng Mac</translation> +<translation id="3327050066667856415">Idinisenyo ang mga Chromebook para sa seguridad. Awtomatikong pinoprotektahan ang iyong device laban sa malware – walang kinakailangang karagdagang software.</translation> <translation id="3328489342742826322">Kapag nag-restore mula sa isang pag-backup, made-delete ang mga dati nang application ng Linux at data sa iyong mga folder ng mga file ng Linux.</translation> <translation id="3331321258768829690">(<ph name="UTCOFFSET" />) <ph name="LONGTZNAME" /> (<ph name="EXEMPLARCITY" />)</translation> <translation id="3331974543021145906">Impormasyon ng app</translation> @@ -2116,6 +2122,7 @@ <translation id="3556433843310711081">Maaari itong i-unblock ng iyong manager para sa iyo</translation> <translation id="3557101512409028104">Magtakda ng mga paghihigpit sa website at limitasyon sa tagal ng paggamit gamit ang Family Link</translation> <translation id="3559262020195162408">Hindi na-install ang patakaran sa device.</translation> +<translation id="3559533181353831840">Humigit-kumulang <ph name="TIME_LEFT" /> pa ang natitira</translation> <translation id="3560034655160545939">&Spell check</translation> <translation id="3562423906127931518">Maaaring abutin nang ilang minuto ang prosesong ito. Sine-set up ang Linux container.</translation> <translation id="3563432852173030730">Hindi ma-download ang Kiosk application.</translation> @@ -2158,6 +2165,7 @@ <translation id="3602290021589620013">I-preview</translation> <translation id="3603622770190368340">Kunin ang certificate ng network</translation> <translation id="3604713164406837697">Palitan ang wallpaper</translation> +<translation id="360565022852130722">Naka-secure ang WiFi network gamit ang mahinang protocol na WEP 802.1x</translation> <translation id="3605780360466892872">Bossing</translation> <translation id="3608576286259426129">Preview ng larawan ng user</translation> <translation id="3610369246614755442">Nangangailangan ng serbisyo ang dock fan</translation> @@ -2194,6 +2202,7 @@ <translation id="3639220004740062347">I-off ang Reader Mode</translation> <translation id="3640214691812501263">Idagdag ang "<ph name="EXTENSION_NAME" />" para sa <ph name="USER_NAME" />?</translation> <translation id="3640613767643722554">Turuan ang iyong Assistant na makilala ang boses mo</translation> +<translation id="3643014427358482789">Idi-disable ng <ph name="DOMAIN" /> ang pag-debug ng ADB, na magre-reset sa iyong <ph name="DEVICE_TYPE" />. I-back up ang iyong mga file bago mag-restart.</translation> <translation id="3645372836428131288">Gumalaw nang bahagya para mag-capture ng ibang bahagi ng fingerprint.</translation> <translation id="3647998456578545569">{COUNT,plural, =1{<ph name="ATTACHMENTS" /> ang natanggap mula sa <ph name="DEVICE_NAME" />}one{<ph name="ATTACHMENTS" /> ang natanggap mula sa <ph name="DEVICE_NAME" />}other{<ph name="ATTACHMENTS" /> ang natanggap mula sa <ph name="DEVICE_NAME" />}}</translation> <translation id="3648348069317717750">Natukoy ang <ph name="USB_DEVICE_NAME" /></translation> @@ -2282,6 +2291,7 @@ <translation id="3732857534841813090">Impormasyong nauugnay sa Google Assistant</translation> <translation id="3733127536501031542">SSL Server na may Step-up</translation> <translation id="3735740477244556633">Pagbukud-bukurin ayon sa</translation> +<translation id="3738632186060045350">Made-delete ang data ng <ph name="DEVICE_TYPE" /> pagkalipas ng 24 na oras</translation> <translation id="3738924763801731196"><ph name="OID" />:</translation> <translation id="3739254215541673094">Buksan ang <ph name="APPLICATION" />?</translation> <translation id="3742055079367172538">Nakakuha na ng screenshot</translation> @@ -2469,6 +2479,7 @@ <translation id="3937734102568271121">Palaging I-translate ang <ph name="LANGUAGE" /></translation> <translation id="3938128855950761626">Mga device mula sa vendor na <ph name="VENDOR_ID" /></translation> <translation id="3940233957883229251">I-enable ang auto-repeat</translation> +<translation id="3941014780699102620">Hindi nalutas ang host</translation> <translation id="3941565636838060942">Upang itago ang access sa program na ito, kailangan mo itong i-uninstall sa pamamagitan ng paggamit ng <ph name="CONTROL_PANEL_APPLET_NAME" /> sa Control Panel. @@ -2631,6 +2642,7 @@ <translation id="413121957363593859">Mga Bahagi</translation> <translation id="4131410914670010031">Itim at puti</translation> <translation id="413193092008917129">Mga Routine para sa Diagnostic ng Network</translation> +<translation id="4132183752438206707">Maghanap ng mga app sa Google Play Store</translation> <translation id="4133076602192971179">Buksan ang app para mapalitan ang iyong password</translation> <translation id="4136203100490971508">Awtomatikong mag-o-on ang Night Light sa pagsikat ng araw</translation> <translation id="41365691917097717">Kapag nagpatuloy, mae-enable ang pag-debug ng ADB para sa paggawa at pagsubok ng mga Android app. Tandaang binibigyang-daan ng pagkilos na ito ang pag-install ng mga Android app na hindi pa na-verify ng Google, at nangangailangan ito ng factory reset para ma-disable.</translation> @@ -2880,6 +2892,8 @@ <translation id="4479877282574735775">Kino-configure ang virtual machine. Puwede itong tumagal nang ilang minuto.</translation> <translation id="4480590691557335796">Makakahanap at makakapag-alis ang Chrome ng mapaminsalang software sa iyong computer</translation> <translation id="4481530544597605423">Mga hindi nakapares na device</translation> +<translation id="4483049906298469269">Hindi na-ping ang hindi default na network gateway</translation> +<translation id="4487489714832036847">Gumagamit ng mga app ang mga Chromebook sa halip na tradisyonal na software. Kumuha ng mga app para sa pagiging produktibo, entertainment, at higit pa.</translation> <translation id="4488502501195719518">I-clear ang lahat ng data?</translation> <translation id="4493468155686877504">Inirerekomenda (<ph name="INSTALL_SIZE" />)</translation> <translation id="4495419450179050807">Huwag ipakita sa pahinang ito</translation> @@ -2930,6 +2944,7 @@ <translation id="4546692474302123343">Input na boses ng Google Assistant</translation> <translation id="4547659257713117923">Walang Mga Tab Mula Sa Ibang Mga Device</translation> <translation id="4547672827276975204">Awtomatikong itakda</translation> +<translation id="4548483925627140043">Walang nakitang signal</translation> <translation id="4549791035683739768">Walang naka-store na fingerprint sa iyong security key</translation> <translation id="4551763574344810652">Pindutin ang <ph name="MODIFIER_KEY_DESCRIPTION" /> para i-undo</translation> <translation id="4552089082226364758">Flash</translation> @@ -2969,6 +2984,7 @@ <translation id="4582563038311694664">I-reset lahat ng setting</translation> <translation id="4585793705637313973">I-edit ang page</translation> <translation id="4586275095964870617">Hindi mabuksan ang <ph name="URL" /> sa isang alternatibong browser. Mangyaring makipag-ugnayan sa iyong system administrator.</translation> +<translation id="458794348635939462">Hindi nalutas ang lahat ng host</translation> <translation id="4589713469967853491">Na-write na ang mga log sa directory na Mga Download.</translation> <translation id="4590324241397107707">Storage ng database</translation> <translation id="4592891116925567110">App sa pagguhit gamit ang stylus</translation> @@ -3352,6 +3368,7 @@ <translation id="5089810972385038852">Estado</translation> <translation id="5094721898978802975">Makipag-ugnay sa mga nakikipagtulungang native na application</translation> <translation id="5097002363526479830">Nabigong kumonekta sa network na '<ph name="NAME" />': <ph name="DETAILS" /></translation> +<translation id="5097649414558628673">Tool: <ph name="PRINT_NAME" /></translation> <translation id="5097874180538493929">Awtomatikong mag-click kapag huminto ang cursor</translation> <translation id="5101042277149003567">Buksan lahat ng mga bookmark</translation> <translation id="5101839224773798795">Awtomatikong mag-click kapag huminto ang cursor</translation> @@ -3570,6 +3587,7 @@ <translation id="5370819323174483825">I-&reload</translation> <translation id="5372529912055771682">Hindi sinusuportahan ng bersyong ito ng operating system ang ibinigay na mode ng pagpapatala. Pakitiyak na pinapatakbo mo ang pinakabagong bersyon at subukang muli.</translation> <translation id="5372579129492968947">I-unpin ang extension</translation> +<translation id="5372659122375744710">Hindi secure ang WiFi network</translation> <translation id="5376169624176189338">I-click upang bumalik, pindutin nang matagal upang makita ang history</translation> <translation id="5376931455988532197">Masyadong malaki ang file</translation> <translation id="5377721922656071359">{COUNT,plural, =1{<ph name="ATTACHMENTS" /> ang naipadala sa <ph name="DEVICE_NAME" />}one{<ph name="ATTACHMENTS" /> ang naipadala sa <ph name="DEVICE_NAME" />}other{<ph name="ATTACHMENTS" /> ang naipadala sa <ph name="DEVICE_NAME" />}}</translation> @@ -3599,6 +3617,7 @@ <translation id="5414566801737831689">Basahin ang mga icon ng mga website na iyong binibisita</translation> <translation id="5417312524372586921">Mga tema ng browser</translation> <translation id="5419405654816502573">Voice match</translation> +<translation id="5420274697768050645">Humiling ng password para i-unlock ang device para sa karagdagang seguridad</translation> <translation id="5420438158931847627">Tumutukoy sa sharpness ng text at mga larawan</translation> <translation id="5422221874247253874">Access Point</translation> <translation id="5422781158178868512">Paumanhin, hindi makilala ang iyong panlabas na device sa storage.</translation> @@ -3723,6 +3742,7 @@ <translation id="5548606607480005320">Pag-check sa kaligtasan</translation> <translation id="5551573675707792127">Keyboard at pag-input ng text</translation> <translation id="5553089923092577885">Certificate Policy Mappings</translation> +<translation id="5554403733534868102">Pagkatapos nito, hindi na maghihintay ng mga update</translation> <translation id="5554489410841842733">Makikita ang icon na ito kapag maaaring kumilos ang extension sa kasalukuyang pahina.</translation> <translation id="5554720593229208774">Email Certification Authority</translation> <translation id="5556459405103347317">I-reload</translation> @@ -4136,6 +4156,7 @@ <translation id="6061882183774845124">Ipadala ang link sa iyong mga device</translation> <translation id="6064217302520318294">Lock ng screen</translation> <translation id="6065289257230303064">Mga Katangian ng Direktoryo ng Paksa ng Certificate</translation> +<translation id="6069464830445383022">Ang iyong Google Account ang gagamitin mo sa pag-sign in sa Chromebook</translation> <translation id="6069671174561668781">Magtakda ng Wallpaper</translation> <translation id="6071181508177083058">kumpirmahin ang password</translation> <translation id="6071576563962215370">Hindi naitakda ng system ang lock sa mga attribute sa oras ng pag-install ng device.</translation> @@ -4178,6 +4199,7 @@ <translation id="6104311680260824317">Hindi maisama ang device sa domain. Hindi sinusuportahan ng server ang mga natukoy na uri ng Kerberos na pag-encrypt. Suriin ang "Higit pang opsyon" para sa mga setting ng pag-encrypt.</translation> <translation id="6104796831253957966">Puno ang queue ng printer</translation> <translation id="6105994589138235234">Pag-sync sa Chrome browser</translation> +<translation id="6108689792487843350">Hindi makakonekta sa gateway</translation> <translation id="6111972606040028426">I-enable ang Google Assistant</translation> <translation id="6112294629795967147">Pindutin para i-resize</translation> <translation id="6112727384379533756">Magdagdag ng ticket</translation> @@ -4238,6 +4260,7 @@ <translation id="6178664161104547336">Pumili ng certificate</translation> <translation id="6181431612547969857">Na-block ang pagda-download</translation> <translation id="6185132558746749656">Lokasyon ng Device</translation> +<translation id="6191293864534840972">Mali ang format ng mga name server</translation> <translation id="6195446518998936840">Para i-set up ang parental controls, kailangang may Google Account ang iyong anak na tutulungan mong pamahalaan. Puwede kang magtakda ng mga limitasyon sa tagal ng paggamit, mag-apruba o mag-block ng mga website, at higit pa gamit ang Family Link app.</translation> <translation id="6195693561221576702">Hindi ma-set up ang device na ito sa offline na demo mode.</translation> <translation id="6196640612572343990">I-block ang mga third-party na cookie</translation> @@ -4451,6 +4474,7 @@ <translation id="6451591602925140504">{NUM_PAGES,plural, =0{<ph name="PAGE_TITLE" />}=1{<ph name="PAGE_TITLE" /> at 1 pang tab}one{<ph name="PAGE_TITLE" /> at # pang tab}other{<ph name="PAGE_TITLE" /> at # pang tab}}</translation> <translation id="6451689256222386810">Kung nakalimutan mo ang iyong passphrase o gusto mong baguhin ang setting na ito, <ph name="BEGIN_LINK" />i-reset ang pag-sync<ph name="END_LINK" />.</translation> <translation id="6452181791372256707">Tanggihan</translation> +<translation id="6452251728599530347"><ph name="PERCENT" /> kumpleto</translation> <translation id="6452961788130242735">May problema sa network o sira ang realm</translation> <translation id="6455264371803474013">Sa mga partikular na site</translation> <translation id="6455894534188563617">&Bagong Folder</translation> @@ -4507,6 +4531,7 @@ <ph name="EVENT_NAME" /></translation> <translation id="6520876759015997832">Resulta ng paghahanap sa <ph name="LIST_POSITION" /> sa <ph name="LIST_SIZE" />: <ph name="SEARCH_RESULT_TEXT" />. Pindutin ang Enter para mag-navigate sa seksyon.</translation> <translation id="652492607360843641">Nakakonekta ka sa isang <ph name="NETWORK_TYPE" /> network.</translation> +<translation id="6527081081771465939">Hindi alam na panseguridad na protocol ng WiFi</translation> <translation id="6527303717912515753">Ibahagi</translation> <translation id="6528513914570774834">Payagan ang iba pang user ng device na ito na gamitin ang network na ito</translation> <translation id="652948702951888897">History sa Chrome</translation> @@ -4623,6 +4648,7 @@ <translation id="6680442031740878064">Available: <ph name="AVAILABLE_SPACE" /></translation> <translation id="6680650203439190394">I-rate</translation> <translation id="6681668084120808868">Kumuha ng larawan</translation> +<translation id="6684827949542560880">Dina-download ang pinakabagong update</translation> <translation id="668599234725812620">Buksan ang Google Play</translation> <translation id="6686490380836145850">Isara ang mga tab sa kanan</translation> <translation id="6686817083349815241">I-save ang iyong password</translation> @@ -4732,6 +4758,7 @@ <translation id="6812841287760418429">Panatilihin ang mga pagbabago</translation> <translation id="6817174620439930047">Magtanong kapag gustong gumamit ng isang site ng mga eksklusibong mensahe ng system upang mag-access ng mga MIDI device (inirerekomenda)</translation> <translation id="6818198425579322765">Wika ng Page na Isasalin</translation> +<translation id="6818802132960437751">Built-in na proteksyon laban sa virus</translation> <translation id="682123305478866682">I-cast ang desktop</translation> <translation id="6823174134746916417">Tap-to-click gamit ang touchpad</translation> <translation id="6823506025919456619">Kailangan mong mag-sign in sa Chrome upang makita ang iyong mga device</translation> @@ -5378,6 +5405,7 @@ <translation id="7631205654593498032">Kapag ikinonekta mo ang iyong mga device, sumasang-ayon kang magagawa ng iyong <ph name="DEVICE_TYPE" /> na:</translation> <translation id="7631887513477658702">&Palaging Magbukas ng Mga File na Ganitong Uri</translation> <translation id="7632948528260659758">Hindi na-update ang mga sumusunod na kiosk app:</translation> +<translation id="7633724038415831385">Ito lang ang panahong maghihintay ka ng update. Sa mga Chromebook, nangyayari sa background ang mga pag-update ng software.</translation> <translation id="7634566076839829401">Nagkaroon ng problema. Pakisubukang muli.</translation> <translation id="763632859238619983">Huwag payagan ang anumang site na mag-install ng mga tagapangasiwa ng pagbabayad</translation> <translation id="7636919061354591437">I-install sa Device na ito</translation> @@ -5656,6 +5684,7 @@ <translation id="7933314993013528982">{NUM_TABS,plural, =1{I-unmute ang Site}one{I-unmute ang Mga Site}other{I-unmute ang Mga Site}}</translation> <translation id="7933634003144813719">Pamahalaan ang mga nakabahaging folder</translation> <translation id="793531125873261495">Nagkaroon ng error sa pag-download ng virtual machine. Pakisubukang muli.</translation> +<translation id="7936303884198020182">Walang nakitang name server</translation> <translation id="7938594894617528435">Kasalukuyang offline</translation> <translation id="7939062555109487992">Mga advanced na pagpipilian</translation> <translation id="7939412583708276221">Panatilihin pa rin</translation> @@ -5899,6 +5928,7 @@ <translation id="8226742006292257240">Sa ibaba ay ang random na binubuong TPM password na itinalaga sa iyong computer:</translation> <translation id="8227119283605456246">Mag-attach ng file</translation> <translation id="8230134520748321204">I-save ang password para sa <ph name="ORIGIN" />?</translation> +<translation id="8230672074305416752">Hindi na-ping ang default na network gateway</translation> <translation id="8234795456569844941">Pakitulungan ang aming mga engineer na ayusin ang problemang ito. Sabihin sa amin kung ano ang nangyari bago mo nakuha ang mensahe ng error sa profile:</translation> <translation id="8236917170563564587">Sa halip, ibahagi ang tab na ito</translation> <translation id="8237647586961940482">Dark pink at pula</translation> @@ -5959,6 +5989,7 @@ <translation id="8288032458496410887">I-uninstall ang <ph name="APP" />...</translation> <translation id="8289128870594824098">Laki ng disk</translation> <translation id="8291967909914612644">Bansa ng home provider</translation> +<translation id="8293206222192510085">Magdagdag ng Bookmark</translation> <translation id="8294431847097064396">Pinagmulan</translation> <translation id="8297006494302853456">Mahina</translation> <translation id="8299319456683969623">Kasalukuyan kang offline.</translation> @@ -6008,6 +6039,7 @@ <translation id="8363095875018065315">matatag</translation> <translation id="8363142353806532503">Naka-block ang mikropono</translation> <translation id="8363763184161554204">pinayagan ang <ph name="PERMISSION" /></translation> +<translation id="8364946094152050673">Mga walang lamang name server</translation> <translation id="8366396658833131068">Naipanumbalik na ang connectivity ng iyong network. Mangyaring pumili ng ibang network o pindutin ang button sa ibaba na 'Magpatuloy' upang ilunsad ang iyong kiosk app.</translation> <translation id="8368027906805972958">Hindi alam o hindi sinusuportahang device (<ph name="DEVICE_ID" />)</translation> <translation id="8368859634510605990">&Buksan ang lahat ng bookmark</translation> @@ -6094,8 +6126,10 @@ <translation id="8472623782143987204">na-hardware-back</translation> <translation id="8473863474539038330">Mga address at higit pa</translation> <translation id="8475313423285172237">Ang isa pang program sa iyong computer ay nagdagdag ng extension na maaaring magpabago sa paraan ng paggana ng Chrome.</translation> +<translation id="8475690821716466388">Naka-secure ang WiFi network gamit ang mahinang protocol na WEP PSK</translation> <translation id="8477241577829954800">Humalili</translation> <translation id="8477384620836102176">&Pangkalahatan</translation> +<translation id="8477551185774834963">Medyo mas mataas sa pinapayagang limitasyon ang latency ng DNS</translation> <translation id="8480082892550707549">Kahit na nakapag-download ka na ng mga file mula sa site na ito dati, maaaring pansamantalang hindi ligtas (na-hack) ang site. Subukang i-download ang file na ito sa ibang pagkakataon.</translation> <translation id="8480869669560681089">Hindi kilalang device mula sa <ph name="VENDOR_NAME" /></translation> <translation id="8481187309597259238">Kumpirmahin ang Pahintulot sa USB</translation> @@ -6147,6 +6181,7 @@ <translation id="8546930481464505581">I-customize ang Touch Bar</translation> <translation id="8547013269961688403">I-enable ang fullscreen magnifier</translation> <translation id="85486688517848470">Pindutin nang matagal ang Key sa paghahanap upang palitan ang gawi ng mga key sa itaas na row</translation> +<translation id="8549316893834449916">Gagamitin mo ang iyong Google Account para mag-sign in sa Chromebook mo – ang parehong account na ginagamit mo para sa Gmail, Drive, YouTube, at higit pa.</translation> <translation id="8551388862522347954">Mga Lisensya</translation> <translation id="8551588720239073785">Mga setting ng petsa at oras</translation> <translation id="8553342806078037065">Pamahalaan ang iba pang mga tao</translation> @@ -6285,6 +6320,7 @@ <translation id="8720200012906404956">Naghahanap ng mobile network. <ph name="BEGIN_LINK" />Matuto pa<ph name="END_LINK" /></translation> <translation id="8720816553731218127">Nag-time out ang pagsisimula ng mga attribute ng pag-install at oras.</translation> <translation id="8722912030556880711">Magpadala ng data ng paggamit at diagnostic na data. Sa kasalukuyan, ang device na ito ay awtomatikong nagpapadala ng diagnostic na data, data ng device, at data ng paggamit sa app sa Google. Makakatulong ito sa stability ng system at ng app, at sa iba pang pagpapahusay. Makakatulong din ang ilang pinagsama-samang data sa mga app at partner ng Google, gaya ng mga developer ng Android. Kung naka-on ang iyong karagdagang setting ng Aktibidad sa Web at App, maaaring ma-save ang data na ito sa Google Account mo. <ph name="BEGIN_LINK2" />Matuto Pa<ph name="END_LINK2" /></translation> +<translation id="8723108084122415655">Mas mataas sa limitasyon ng latency ang hindi default na network</translation> <translation id="8724405322205516354">Kapag nakita mo ang icon na ito, gamitin ang iyong fingerprint para sa pagkakakilanlan o para aprubahan ang mga pagbili.</translation> <translation id="8724409975248965964">Naidagdag ang fingerprint</translation> <translation id="8724859055372736596">&Ipakita sa Folder</translation> @@ -6463,6 +6499,7 @@ <translation id="8909833622202089127">Sinusubaybayan ng site ang iyong lokasyon</translation> <translation id="8910146161325739742">Ibahagi ang iyong screen</translation> <translation id="8910222113987937043">Hindi na isi-sync sa Google Account mo ang mga pagbabago sa iyong mga bookmark, history, password at iba pang mga setting. Gayunpaman, mananatiling naka-store sa Google Account mo ang iyong kasalukuyang data at mapamamahalaan ito sa <ph name="BEGIN_LINK" />Google Dashboard<ph name="END_LINK" />.</translation> +<translation id="8910721771319628100">Mas mataas sa limitasyon ng latency ang default na network</translation> <translation id="8912362522468806198">Google Account</translation> <translation id="8912793549644936705">Naka-stretch</translation> <translation id="8912810933860534797">I-enable ang awtomatikong pag-scan</translation>
diff --git a/chrome/app/resources/generated_resources_fr-CA.xtb b/chrome/app/resources/generated_resources_fr-CA.xtb index d724efe..68fbf7c 100644 --- a/chrome/app/resources/generated_resources_fr-CA.xtb +++ b/chrome/app/resources/generated_resources_fr-CA.xtb
@@ -71,6 +71,7 @@ <translation id="1070705170564860382">Ouverture dans un navigateur secondaire dans <ph name="COUNTDOWN_SECONDS" /> secondes</translation> <translation id="1071917609930274619">Chiffrement des données</translation> <translation id="1072700771426194907">Appareil USB détecté</translation> +<translation id="107278043869924952">Demander le NIP en plus du mot de passe</translation> <translation id="1076176485976385390">Parcourir les pages à l'aide d'un curseur de texte</translation> <translation id="1076698951459398590">Activer le thème</translation> <translation id="1076818208934827215">Microsoft Internet Explorer</translation> @@ -524,7 +525,6 @@ <translation id="1608668830839595724">Plus d'actions pour les éléments sélectionnés</translation> <translation id="161042844686301425">Cyan</translation> <translation id="1611432201750675208">Votre appareil est verrouillé</translation> -<translation id="1611584202130317952">Le flux d'approvisionnement a été interrompu. Veuillez réessayer ou communiquer avec l'administrateur ou le propriétaire de votre appareil.</translation> <translation id="1614511179807650956">Il semble que vous ayez atteint votre quota de données mobiles. Veuillez accéder au portail d'activation <ph name="NAME" /> pour acheter des données supplémentaires.</translation> <translation id="161460670679785907">Impossible de détecter votre téléphone</translation> <translation id="1616206807336925449">Cette extension fonctionne sans autorisation spéciale.</translation> @@ -533,6 +533,7 @@ <translation id="1618268899808219593">Centre d'aide</translation> <translation id="1620307519959413822">Mot de passe incorrect. Réessayez ou cliquez sur Mot de passe oublié pour le réinitialiser.</translation> <translation id="1620510694547887537">Caméra</translation> +<translation id="1621831347985899379">Les données du <ph name="DEVICE_TYPE" /> seront supprimées</translation> <translation id="1622054403950683339">Oublier le réseau Wi-Fi</translation> <translation id="1623132449929929218">Les images ne sont pas disponibles pour l'instant. Veuillez vous reconnecter à Internet pour afficher les collections de fonds d'écran.</translation> <translation id="1623723619460186680">Réduction de la lumière bleue</translation> @@ -760,6 +761,7 @@ <translation id="1877377290348678128">Étiquette (facultatif)</translation> <translation id="1877520246462554164">Échec de l'obtention du jeton d'authentification. Veuillez vous déconnecter, puis vous reconnecter pour réessayer.</translation> <translation id="1877860345998737529">Changer l'attribution de l'action</translation> +<translation id="1878155070920054810">Il semble que la pile de votre Chromebook s'épuisera avant la fin de la mise à jour. Assurez-vous qu'il est branché sur un chargeur fonctionnel afin d'éviter une interruption.</translation> <translation id="1879000426787380528">Se connecter en tant que</translation> <translation id="1880905663253319515">Supprimer le certificat « <ph name="CERTIFICATE_NAME" /> »?</translation> <translation id="1881445033931614352">Disposition du clavier</translation> @@ -964,6 +966,7 @@ <translation id="2148219725039824548">Erreur lors du partage. Le partage spécifié n'a pas été trouvé sur le réseau.</translation> <translation id="2148756636027685713">Formatage terminé</translation> <translation id="2148892889047469596">Diffuser l’onglet</translation> +<translation id="2149973817440762519">Modifier le favori</translation> <translation id="2150139952286079145">Rechercher des destinations</translation> <translation id="2150661552845026580">Installer « <ph name="EXTENSION_NAME" /> »?</translation> <translation id="2151576029659734873">L'index de l'onglet entré est incorrect.</translation> @@ -1073,6 +1076,7 @@ <translation id="2270627217422354837">Échanger des données avec n'importe quel appareil des domaines : <ph name="DOMAINS" /></translation> <translation id="2272570998639520080">Verre de martini</translation> <translation id="2273119997271134996">Problème avec le port vidéo de la station d'accueil</translation> +<translation id="2274840746523584236">Recharger votre Chromebook</translation> <translation id="2276503375879033601">Ajouter d'autres applications</translation> <translation id="2277255602909579701">Tous les témoins et toutes les données du site</translation> <translation id="2277769717710009150">{COUNT,plural, =1{1 élément copié}one{# élément copié}other{# éléments copiés}}</translation> @@ -1916,6 +1920,7 @@ <translation id="3308116878371095290">Cette page a été empêchée d'enregistrer des témoins.</translation> <translation id="3308134619352333507">Bouton Masquer</translation> <translation id="3308852433423051161">Chargement de l'Assistant Google en cours…</translation> +<translation id="3310640316857623290">La latence du DNS dépasse le seuil acceptable de manière considérable</translation> <translation id="3311445899360743395">Les données associées à cette application pourraient être supprimées de cet appareil.</translation> <translation id="3312424061798279731">Langues activées</translation> <translation id="3313622045786997898">Valeur de la signature du certificat</translation> @@ -1928,6 +1933,7 @@ <translation id="3323295311852517824">{NUM_FILES,plural, =0{Le contenu de ces données est délicat ou dangereux. Supprimez-le et réessayez.}=1{Le contenu de ce fichier est délicat ou dangereux. Supprimez-le et réessayez.}one{Le contenu de ce fichier est délicat ou dangereux. Supprimez-le et réessayez.}other{Le contenu de ces fichiers est délicat ou dangereux. Supprimez-le et réessayez.}}</translation> <translation id="3323521181261657960">Hé hé! Ton temps d'écran a été prolongé!</translation> <translation id="3325910708063135066">L'appareil photo et le microphone sont désactivés dans les Préférences Système du Mac</translation> +<translation id="3327050066667856415">Les Chromebook sont conçus en fonction de la sécurité. Votre appareil est automatiquement protégé contre les logiciels malveillants. Aucun logiciel supplémentaire n'est requis.</translation> <translation id="3328489342742826322">La restauration à partir d'une sauvegarde supprimera les applications Linux existantes et les données dans vos dossiers Linux.</translation> <translation id="3331321258768829690">(<ph name="UTCOFFSET" />) <ph name="LONGTZNAME" /> (<ph name="EXEMPLARCITY" />)</translation> <translation id="3331974543021145906">Détails de l'application</translation> @@ -2117,6 +2123,7 @@ <translation id="3556433843310711081">Votre gestionnaire peut le débloquer pour vous</translation> <translation id="3557101512409028104">Définissez des restrictions de sites Web et des limites de temps d'utilisation des écrans avec Family Link</translation> <translation id="3559262020195162408">Échec de l'installation de la politique sur l'appareil.</translation> +<translation id="3559533181353831840">Il reste environ <ph name="TIME_LEFT" /></translation> <translation id="3560034655160545939">&Correction orthographique</translation> <translation id="3562423906127931518">Ce processus peut prendre quelques minutes. Configuration du conteneur Linux.</translation> <translation id="3563432852173030730">Impossible de télécharger l'application Kiosque.</translation> @@ -2159,6 +2166,7 @@ <translation id="3602290021589620013">Aperçu</translation> <translation id="3603622770190368340">Obtenir un certificat réseau</translation> <translation id="3604713164406837697">Changer de fond d'écran</translation> +<translation id="360565022852130722">Le réseau Wi-Fi est sécurisé par un protocole faible : WEP 802.1x</translation> <translation id="3605780360466892872">Businessman</translation> <translation id="3608576286259426129">Aperçu de l'image de l'utilisateur</translation> <translation id="3610369246614755442">Le ventilateur de la station d'accueil doit être réparé</translation> @@ -2195,6 +2203,7 @@ <translation id="3639220004740062347">Désactiver le mode Lecture</translation> <translation id="3640214691812501263">Ajouter « <ph name="EXTENSION_NAME" /> » pour <ph name="USER_NAME" />?</translation> <translation id="3640613767643722554">Apprenez à l'Assistant Google à reconnaître votre voix</translation> +<translation id="3643014427358482789"><ph name="DOMAIN" /> désactive le débogage PDA, ce qui réinitialisera votre <ph name="DEVICE_TYPE" />. Sauvegardez vos fichiers avant de redémarrer l'appareil.</translation> <translation id="3645372836428131288">Déplacez votre doigt légèrement afin de capturer une autre partie de votre empreinte digitale.</translation> <translation id="3647998456578545569">{COUNT,plural, =1{<ph name="ATTACHMENTS" /> reçu de l'appareil <ph name="DEVICE_NAME" />}one{<ph name="ATTACHMENTS" /> reçu de l'appareil <ph name="DEVICE_NAME" />}other{<ph name="ATTACHMENTS" /> reçus de l'appareil <ph name="DEVICE_NAME" />}}</translation> <translation id="3648348069317717750">Appareil <ph name="USB_DEVICE_NAME" /> détecté</translation> @@ -2283,6 +2292,7 @@ <translation id="3732857534841813090">Renseignements connexes, Assistant Google</translation> <translation id="3733127536501031542">Serveur SSL avec fonction d'optimisation</translation> <translation id="3735740477244556633">Trier par</translation> +<translation id="3738632186060045350">Les données du <ph name="DEVICE_TYPE" /> seront supprimées dans 24 heures</translation> <translation id="3738924763801731196"><ph name="OID" /> :</translation> <translation id="3739254215541673094">Ouvrir l'application <ph name="APPLICATION" />?</translation> <translation id="3742055079367172538">Saisie d'écran enregistrée</translation> @@ -2470,6 +2480,7 @@ <translation id="3937734102568271121">Toujours traduire les pages rédigées en <ph name="LANGUAGE" /></translation> <translation id="3938128855950761626">Appareils du fournisseur <ph name="VENDOR_ID" /></translation> <translation id="3940233957883229251">Activer la répétition automatique</translation> +<translation id="3941014780699102620">Impossible de résoudre l'hôte</translation> <translation id="3941565636838060942">Pour masquer l'accès à ce programme, vous devez le désinstaller au moyen de <ph name="CONTROL_PANEL_APPLET_NAME" /> dans le panneau de configuration. @@ -2632,6 +2643,7 @@ <translation id="413121957363593859">Composants</translation> <translation id="4131410914670010031">Noir et blanc</translation> <translation id="413193092008917129">Routines de diagnostic réseau</translation> +<translation id="4132183752438206707">Trouver des applications dans la boutique Google Play Store</translation> <translation id="4133076602192971179">Ouvrez l'application pour modifier votre mot de passe</translation> <translation id="4136203100490971508">La fonction Éclairage nocturne se désactivera automatiquement au lever du soleil</translation> <translation id="41365691917097717">Si vous continuez, le débogage PDA sera activé pour la création et le test d'applications Android. Prenez note que cette action permet d'installer des applications Android qui n'ont pas été vérifiées par Google. Pour désactiver cette fonctionnalité, vous devrez réinitialiser l'appareil à ses paramètres par défaut.</translation> @@ -2881,6 +2893,8 @@ <translation id="4479877282574735775">Configuration de la machine virtuelle. Cette opération peut prendre quelques minutes.</translation> <translation id="4480590691557335796">Google Chrome peut rechercher un logiciel nuisible sur votre ordinateur et le supprimer</translation> <translation id="4481530544597605423">Appareils dissociés</translation> +<translation id="4483049906298469269">Impossible d'effectuer un ping avec la passerelle réseau autre que celle par défaut</translation> +<translation id="4487489714832036847">Les Chromebook utilisent des applications au lieu de logiciels traditionnels. Vous trouverez des applications pour la productivité, les divertissements et plus encore.</translation> <translation id="4488502501195719518">Effacer toutes les données?</translation> <translation id="4493468155686877504">Recommandé (<ph name="INSTALL_SIZE" />)</translation> <translation id="4495419450179050807">Ne pas afficher sur cette page</translation> @@ -2931,6 +2945,7 @@ <translation id="4546692474302123343">Entrée vocale pour l'Assistant Google</translation> <translation id="4547659257713117923">Pas d'onglets provenant d'autres appareils</translation> <translation id="4547672827276975204">Définir automatiquement</translation> +<translation id="4548483925627140043">Signal introuvable</translation> <translation id="4549791035683739768">Votre clé de sécurité ne contient aucune empreinte digitale enregistrée</translation> <translation id="4551763574344810652">Appuyez sur <ph name="MODIFIER_KEY_DESCRIPTION" /> pour annuler l'action</translation> <translation id="4552089082226364758">Flash</translation> @@ -2970,6 +2985,7 @@ <translation id="4582563038311694664">Réinitialiser tous les paramètres</translation> <translation id="4585793705637313973">Modifier la page</translation> <translation id="4586275095964870617">L'adresse <ph name="URL" /> n'a pas pu être ouverte dans un navigateur secondaire. Veuillez communiquer avec votre administrateur système.</translation> +<translation id="458794348635939462">Impossible de résoudre tous les hôtes</translation> <translation id="4589713469967853491">Les journaux ont été écrits dans le répertoire Téléchargements.</translation> <translation id="4590324241397107707">Stockage de base de données</translation> <translation id="4592891116925567110">Application de dessin avec stylet</translation> @@ -3353,6 +3369,7 @@ <translation id="5089810972385038852">État/province</translation> <translation id="5094721898978802975">Permettre la communication avec les applications natives associées</translation> <translation id="5097002363526479830">Échec de la connexion au réseau « <ph name="NAME" /> » : <ph name="DETAILS" />.</translation> +<translation id="5097649414558628673">Outil : <ph name="PRINT_NAME" /></translation> <translation id="5097874180538493929">Cliquer automatiquement lorsque le curseur s'arrête</translation> <translation id="5101042277149003567">Ouvrir tous les favoris</translation> <translation id="5101839224773798795">Cliquer automatiquement lorsque le curseur s'arrête</translation> @@ -3571,6 +3588,7 @@ <translation id="5370819323174483825">Actua&liser</translation> <translation id="5372529912055771682">Le mode d'inscription fourni n'est pas compatible avec cette version du système d'exploitation. Veuillez vous assurer que vous utilisez bien la dernière version, puis réessayer.</translation> <translation id="5372579129492968947">Annuler l'épinglage de l'extension</translation> +<translation id="5372659122375744710">Le réseau Wi-Fi n'est pas sécurisé</translation> <translation id="5376169624176189338">Cliquer pour revenir en arrière, maintenir enfoncé pour voir l'historique</translation> <translation id="5376931455988532197">Fichier trop volumineux</translation> <translation id="5377721922656071359">{COUNT,plural, =1{<ph name="ATTACHMENTS" /> envoyé à l'appareil <ph name="DEVICE_NAME" />}one{<ph name="ATTACHMENTS" /> envoyé à l'appareil <ph name="DEVICE_NAME" />}other{<ph name="ATTACHMENTS" /> envoyés à l'appareil <ph name="DEVICE_NAME" />}}</translation> @@ -3600,6 +3618,7 @@ <translation id="5414566801737831689">Lire les icônes des sites que vous visitez</translation> <translation id="5417312524372586921">Thèmes du navigateur</translation> <translation id="5419405654816502573">Fonction Voice Match</translation> +<translation id="5420274697768050645">Demander un mot de passe pour déverrouiller l'appareil comme mesure de sécurité supplémentaire</translation> <translation id="5420438158931847627">Détermine la netteté du texte et des images</translation> <translation id="5422221874247253874">Point d'accès</translation> <translation id="5422781158178868512">Désolés, il est impossible de reconnaître votre périphérique de stockage externe.</translation> @@ -3724,6 +3743,7 @@ <translation id="5548606607480005320">Vérification de sécurité</translation> <translation id="5551573675707792127">Clavier et entrée de texte</translation> <translation id="5553089923092577885">Mappages des règles de certificat</translation> +<translation id="5554403733534868102">Après cette fois-ci, vous n'aurez plus à attendre que les mises à jour s'installent</translation> <translation id="5554489410841842733">Cette icône sera visible lorsque l'extension pourra agir sur la page en cours.</translation> <translation id="5554720593229208774">Autorité de certification de courrier électronique</translation> <translation id="5556459405103347317">Actualiser</translation> @@ -4137,6 +4157,7 @@ <translation id="6061882183774845124">Envoyer le lien à vos appareils</translation> <translation id="6064217302520318294">Verrouillage de l'écran</translation> <translation id="6065289257230303064">Attributs du répertoire de l'objet du certificat</translation> +<translation id="6069464830445383022">Pour vous connecter à votre Chromebook, servez-vous de votre compte Google</translation> <translation id="6069671174561668781">Définir le fond d'écran</translation> <translation id="6071181508177083058">confirmer le mot de passe</translation> <translation id="6071576563962215370">Le système n'a pas réussi à établir le verrouillage des attributs du temps d'installation de l'appareil.</translation> @@ -4179,6 +4200,7 @@ <translation id="6104311680260824317">Impossible d'associer l'appareil au domaine. Le serveur ne prend pas en charge les types de chiffrement Kerberos spécifiés. Consultez « Plus d'options » pour afficher les paramètres de chiffrement.</translation> <translation id="6104796831253957966">La file d'attente de l'imprimante est pleine</translation> <translation id="6105994589138235234">Synchronisation du navigateur Chrome</translation> +<translation id="6108689792487843350">Impossible d'atteindre la passerelle</translation> <translation id="6111972606040028426">Activer l'Assistant Google</translation> <translation id="6112294629795967147">Touchez pour redimensionner</translation> <translation id="6112727384379533756">Ajouter un ticket</translation> @@ -4239,6 +4261,7 @@ <translation id="6178664161104547336">Sélectionner un certificat</translation> <translation id="6181431612547969857">Téléchargement bloqué</translation> <translation id="6185132558746749656">Position de l'appareil</translation> +<translation id="6191293864534840972">Le format des serveurs de nom est incorrect</translation> <translation id="6195446518998936840">Pour que vous puissiez configurer les contrôles parentaux, votre enfant doit posséder un compte Google que vous aiderez à gérer. Vous pouvez définir des limites de temps d'utilisation des écrans, approuver ou bloquer des sites Web et plus encore grâce à l'application Family Link.</translation> <translation id="6195693561221576702">Cet appareil ne peut pas être configuré en mode démo hors ligne.</translation> <translation id="6196640612572343990">Bloquer les témoins de tiers</translation> @@ -4452,6 +4475,7 @@ <translation id="6451591602925140504">{NUM_PAGES,plural, =0{<ph name="PAGE_TITLE" />}=1{<ph name="PAGE_TITLE" /> et 1 autre onglet}one{<ph name="PAGE_TITLE" /> et # autre onglet}other{<ph name="PAGE_TITLE" /> et # autres onglets}}</translation> <translation id="6451689256222386810">Si vous avez oublié votre phrase de passe ou souhaitez modifier ce paramètre, veuillez <ph name="BEGIN_LINK" />réinitialiser la synchronisation<ph name="END_LINK" />.</translation> <translation id="6452181791372256707">Refuser</translation> +<translation id="6452251728599530347"><ph name="PERCENT" /> terminé</translation> <translation id="6452961788130242735">Problème de réseau ou domaine non valide</translation> <translation id="6455264371803474013">Sur certains sites</translation> <translation id="6455894534188563617">&Nouveau dossier</translation> @@ -4508,6 +4532,7 @@ <ph name="EVENT_NAME" /></translation> <translation id="6520876759015997832">Résultat de recherche <ph name="LIST_POSITION" /> sur <ph name="LIST_SIZE" /> : <ph name="SEARCH_RESULT_TEXT" />. Appuyez sur la touche Entrée pour naviguer jusqu'à cette section.</translation> <translation id="652492607360843641">Vous êtes connecté à un réseau <ph name="NETWORK_TYPE" />.</translation> +<translation id="6527081081771465939">Protocole de sécurité Wi-Fi inconnu</translation> <translation id="6527303717912515753">Partager</translation> <translation id="6528513914570774834">Autoriser d'autres utilisateurs de cet appareil à utiliser ce réseau</translation> <translation id="652948702951888897">Historique de Google Chrome</translation> @@ -4624,6 +4649,7 @@ <translation id="6680442031740878064">Disponible : <ph name="AVAILABLE_SPACE" /></translation> <translation id="6680650203439190394">Vitesse</translation> <translation id="6681668084120808868">Prendre une photo</translation> +<translation id="6684827949542560880">Téléchargement de la dernière mise à jour en cours…</translation> <translation id="668599234725812620">Ouvrir Google Play</translation> <translation id="6686490380836145850">Fermer les onglets à la droite</translation> <translation id="6686817083349815241">Enregistrer votre mot de passe</translation> @@ -4733,6 +4759,7 @@ <translation id="6812841287760418429">Conserver les modifications</translation> <translation id="6817174620439930047">Demander une autorisation lorsqu'un site veut utiliser des messages exclusifs au système pour accéder aux appareils MIDI (recommandé)</translation> <translation id="6818198425579322765">Langue source</translation> +<translation id="6818802132960437751">Protection antivirus intégrée</translation> <translation id="682123305478866682">Diffuser le bureau</translation> <translation id="6823174134746916417">Toucher pour cliquer sur le pavé tactile</translation> <translation id="6823506025919456619">Vous devez vous connecter à Chrome pour voir vos périphériques.</translation> @@ -5379,6 +5406,7 @@ <translation id="7631205654593498032">En connectant vos appareils, vous acceptez que votre <ph name="DEVICE_TYPE" /> puisse :</translation> <translation id="7631887513477658702">&Toujours ouvrir les fichiers de ce type</translation> <translation id="7632948528260659758">Échec de la mise à jour des applications de kiosque suivantes :</translation> +<translation id="7633724038415831385">C'est la seule fois où vous attendrez pour une mise à jour. Sur les Chromebook, les mises à jour logicielles se produisent en arrière-plan.</translation> <translation id="7634566076839829401">Une erreur s'est produite. Veuillez réessayer.</translation> <translation id="763632859238619983">N'autoriser aucun site à installer des modules de traitement des paiements</translation> <translation id="7636919061354591437">Installer sur cet appareil</translation> @@ -5657,6 +5685,7 @@ <translation id="7933314993013528982">{NUM_TABS,plural, =1{Réactiver le son sur le site}one{Réactiver le son sur le site}other{Réactiver le son sur les sites}}</translation> <translation id="7933634003144813719">Gérer les dossiers partagés</translation> <translation id="793531125873261495">Erreur lors du téléchargement de la machine virtuelle. Veuillez réessayer.</translation> +<translation id="7936303884198020182">Aucun serveur de nom n'a été trouvé</translation> <translation id="7938594894617528435">Actuellement hors ligne</translation> <translation id="7939062555109487992">Options avancées</translation> <translation id="7939412583708276221">Conserver quand même</translation> @@ -5899,6 +5928,7 @@ <translation id="8226742006292257240">Le mot de passe TPM ci-dessous, généré de façon aléatoire, a été attribué à votre ordinateur :</translation> <translation id="8227119283605456246">Joindre un fichier</translation> <translation id="8230134520748321204">Enregistrer le mot de passe pour <ph name="ORIGIN" />?</translation> +<translation id="8230672074305416752">Impossible d'effectuer un ping avec la passerelle réseau par défaut</translation> <translation id="8234795456569844941">Veuillez aider nos ingénieurs à corriger ce problème. Dites-nous ce qui s'est passé juste avant que vous receviez le message d'erreur lié au profil :</translation> <translation id="8236917170563564587">Partager cet onglet à la place</translation> <translation id="8237647586961940482">Rose foncé et rouge</translation> @@ -5959,6 +5989,7 @@ <translation id="8288032458496410887">Désinstaller <ph name="APP" />…</translation> <translation id="8289128870594824098">Taille du disque</translation> <translation id="8291967909914612644">Pays du propriétaire</translation> +<translation id="8293206222192510085">Ajouter aux favoris</translation> <translation id="8294431847097064396">Source</translation> <translation id="8297006494302853456">Faible</translation> <translation id="8299319456683969623">Vous êtes actuellement hors connexion.</translation> @@ -6008,6 +6039,7 @@ <translation id="8363095875018065315">stable</translation> <translation id="8363142353806532503">Le microphone est bloqué</translation> <translation id="8363763184161554204">autorisé <ph name="PERMISSION" /></translation> +<translation id="8364946094152050673">Le champ des serveurs de nom est vide</translation> <translation id="8366396658833131068">Votre connexion réseau est rétablie. Veuillez sélectionner un autre réseau ou appuyer sur « Continuer » ci-dessous pour lancer votre application de kiosque.</translation> <translation id="8368027906805972958">Appareil inconnu ou non pris en charge (<ph name="DEVICE_ID" />)</translation> <translation id="8368859634510605990">&Ouvrir tous les favoris</translation> @@ -6093,8 +6125,10 @@ <translation id="8472623782143987204">soutenue par du matériel</translation> <translation id="8473863474539038330">Adresses et plus</translation> <translation id="8475313423285172237">Un autre programme sur votre ordinateur a ajouté une extension qui risque de modifier le fonctionnement de Google Chrome.</translation> +<translation id="8475690821716466388">Le réseau Wi-Fi est sécurisé par un protocole faible : WEP PSK</translation> <translation id="8477241577829954800">Remplacé</translation> <translation id="8477384620836102176">&Général</translation> +<translation id="8477551185774834963">La latence du DNS dépasse un peu le seuil acceptable</translation> <translation id="8480082892550707549">Même si vous avez déjà téléchargé des fichiers de ce site, il se peut que ce dernier soit temporairement dangereux (suite à du piratage). Réessayez de télécharger ce fichier plus tard.</translation> <translation id="8480869669560681089">Appareil inconnu de <ph name="VENDOR_NAME" /></translation> <translation id="8481187309597259238">Confirmer l'autorisation USB</translation> @@ -6146,6 +6180,7 @@ <translation id="8546930481464505581">Personnaliser la barre tactile</translation> <translation id="8547013269961688403">Activer la loupe en mode plein écran</translation> <translation id="85486688517848470">Maintenez le doigt sur la touche de recherche pour modifier la fonction des touches de la rangée supérieure</translation> +<translation id="8549316893834449916">Vous utiliserez votre compte Google pour vous connecter à votre Chromebook. Il s'agit du même compte que vous utilisez pour Gmail, Disque, YouTube et d'autres produits.</translation> <translation id="8551388862522347954">Licences</translation> <translation id="8551588720239073785">Paramètres de date et d'heure</translation> <translation id="8553342806078037065">Gérer d'autres personnes</translation> @@ -6284,6 +6319,7 @@ <translation id="8720200012906404956">Recherche de réseau cellulaire en cours… <ph name="BEGIN_LINK" />En savoir plus<ph name="END_LINK" /></translation> <translation id="8720816553731218127">L'initialisation des attributs de temps d'installation a expiré.</translation> <translation id="8722912030556880711">Envoyer les données d'utilisation et de diagnostic. Actuellement, cet appareil envoie automatiquement à Google des données de diagnostic, de l'appareil et d'utilisation des applications. Cela nous permettra d'assurer la stabilité du système et des applications, et d'apporter d'autres améliorations. Certaines données collectées contribueront également à améliorer les applications Google et aideront nos partenaires, comme les concepteurs Android. Si le paramètre relatif aux autres activités sur le Web et dans les applications est activé, ces données peuvent être enregistrées dans votre compte Google. <ph name="BEGIN_LINK2" />En savoir plus<ph name="END_LINK2" /></translation> +<translation id="8723108084122415655">Le seuil de latence du réseau autre que par défaut est trop élevé</translation> <translation id="8724405322205516354">Lorsque vous voyez cette icône, vous pouvez utiliser votre empreinte digitale pour vous identifier ou pour autoriser un achat.</translation> <translation id="8724409975248965964">Empreinte digitale ajoutée</translation> <translation id="8724859055372736596">Afficher dans le do&ssier</translation> @@ -6461,6 +6497,7 @@ <translation id="8909833622202089127">Le site effectue le suivi de votre position</translation> <translation id="8910146161325739742">Partager votre écran</translation> <translation id="8910222113987937043">Les modifications apportées à vos favoris, à votre historique, à vos mots de passe et autres paramètres ne seront plus synchronisés avec votre compte Google. Cependant, vos données existantes resteront stockées dans votre compte Google et peuvent être gérées sur <ph name="BEGIN_LINK" />Google Dashboard<ph name="END_LINK" />.</translation> +<translation id="8910721771319628100">Le seuil de latence du réseau par défaut est trop élevé</translation> <translation id="8912362522468806198">Compte Google</translation> <translation id="8912793549644936705">Étirer</translation> <translation id="8912810933860534797">Activer l'analyse automatique</translation>
diff --git a/chrome/app/resources/generated_resources_fr.xtb b/chrome/app/resources/generated_resources_fr.xtb index 8798096..34e659a 100644 --- a/chrome/app/resources/generated_resources_fr.xtb +++ b/chrome/app/resources/generated_resources_fr.xtb
@@ -71,6 +71,7 @@ <translation id="1070705170564860382">Ouverture dans le navigateur secondaire dans <ph name="COUNTDOWN_SECONDS" /> secondes</translation> <translation id="1071917609930274619">Chiffrement des données</translation> <translation id="1072700771426194907">Périphérique USB détecté</translation> +<translation id="107278043869924952">Utiliser un code en plus du mot de passe</translation> <translation id="1076176485976385390">Parcourir les pages à l'aide d'un curseur de texte</translation> <translation id="1076698951459398590">Activer le thème</translation> <translation id="1076818208934827215">Microsoft Internet Explorer</translation> @@ -329,6 +330,7 @@ <translation id="1383876407941801731">Rechercher</translation> <translation id="1386387014181100145">Bonjour</translation> <translation id="1386791642444521222">Activer une carte SIM physique</translation> +<translation id="1387519831959169718">Pour distinguer votre navigation, vous pouvez créer un nouveau profil pour <ph name="NEW_USER" /></translation> <translation id="138784436342154190">Restaurer la page de démarrage par défaut ?</translation> <translation id="1388728792929436380">Ce <ph name="DEVICE_TYPE" /> va redémarrer lorsque les mises à jour seront installées.</translation> <translation id="1390548061267426325">Ouvrir dans un onglet standard</translation> @@ -343,6 +345,7 @@ <translation id="139911022479327130">Déverrouillez votre téléphone et confirmez votre identité</translation> <translation id="1399511500114202393">Aucun certificat utilisateur</translation> <translation id="1401308693935339022">Utiliser la localisation. Permettre aux services et applications d'utiliser la position de cet appareil s'ils disposent de l'autorisation d'accès nécessaire. Google peut collecter des données de localisation régulièrement et s'en servir de manière anonyme pour améliorer la précision de la localisation et les services géolocalisés.</translation> +<translation id="1403222014593521787">Impossible de se connecter au proxy</translation> <translation id="140520891692800925"><ph name="PROFILE_DISPLAY_NAME" /> (supervisé)</translation> <translation id="1405779994569073824">A planté.</translation> <translation id="1406500794671479665">Vérification en cours…</translation> @@ -479,6 +482,7 @@ <translation id="1555130319947370107">Bleu</translation> <translation id="1556537182262721003">Impossible de déplacer le répertoire d'extensions dans le profil.</translation> <translation id="155865706765934889">Pavé tactile</translation> +<translation id="1563702743503072935">Les mots de passe enregistrés dans votre compte Google seront également disponibles sur cet appareil lorsque vous serez connecté</translation> <translation id="1566049601598938765">Site Web</translation> <translation id="15662109988763471">L'imprimante sélectionnée n'est pas disponible ou n'est pas installée correctement. Vérifiez votre imprimante ou sélectionnez-en une autre.</translation> <translation id="1567387640189251553">Un clavier différent a été branché depuis la dernière fois où vous avez saisi votre mot de passe. Il est possible que ce soit pour enregistrer les touches sur lesquelles vous appuyez et vous soutirer ainsi des informations.</translation> @@ -521,7 +525,6 @@ <translation id="1608668830839595724">Autres actions pour les éléments sélectionnés</translation> <translation id="161042844686301425">Cyan</translation> <translation id="1611432201750675208">Votre appareil est verrouillé</translation> -<translation id="1611584202130317952">Flux d'accès interrompu. Veuillez réessayer ou contacter le propriétaire/l'administrateur de l'appareil.</translation> <translation id="1614511179807650956">Il semble que vous ayez utilisé l'intégralité de votre quota de données mobiles. Accédez au portail d'activation <ph name="NAME" /> pour acheter des données supplémentaires</translation> <translation id="161460670679785907">Impossible de détecter votre téléphone</translation> <translation id="1616206807336925449">Cette extension ne nécessite aucune autorisation spéciale.</translation> @@ -530,6 +533,7 @@ <translation id="1618268899808219593">C&entre d'aide</translation> <translation id="1620307519959413822">Mot de passe incorrect. Réessayez ou cliquez sur "Mot de passe oublié" pour le réinitialiser.</translation> <translation id="1620510694547887537">Caméra</translation> +<translation id="1621831347985899379">Les données du <ph name="DEVICE_TYPE" /> seront supprimées</translation> <translation id="1622054403950683339">Supprimer le réseau Wi-Fi</translation> <translation id="1623132449929929218">Les images ne sont actuellement pas disponibles. Veuillez vous reconnecter pour afficher les collections de fonds d'écran.</translation> <translation id="1623723619460186680">Réduction de la lumière bleue</translation> @@ -757,6 +761,7 @@ <translation id="1877377290348678128">Libellé (facultatif)</translation> <translation id="1877520246462554164">Échec de l'obtention du jeton d'authentification. Veuillez vous déconnecter, puis vous reconnecter, ou bien réessayez.</translation> <translation id="1877860345998737529">Attribuer des actions à des commutateurs</translation> +<translation id="1878155070920054810">La batterie de votre Chromebook risque d'être déchargée avant la fin de la mise à jour. Assurez-vous de le charger correctement afin d'éviter toute interruption.</translation> <translation id="1879000426787380528">Se connecter à l'aide du compte</translation> <translation id="1880905663253319515">Supprimer le certificat "<ph name="CERTIFICATE_NAME" />" ?</translation> <translation id="1881445033931614352">Disposition des touches du clavier</translation> @@ -906,6 +911,7 @@ <translation id="2080070583977670716">Plus de paramètres</translation> <translation id="2081816110395725788">Mode veille lorsque l'appareil fonctionne sur batterie</translation> <translation id="2082187087049518845">Regrouper les onglets</translation> +<translation id="2082510809738716738">Choisissez une couleur de thème</translation> <translation id="2087822576218954668">Imprimer : <ph name="PRINT_NAME" /></translation> <translation id="2088690981887365033">Réseau VPN</translation> <translation id="208928984520943006">Vous pouvez accéder à l'écran d'accueil à tout moment en balayant l'écran de bas en haut.</translation> @@ -960,6 +966,7 @@ <translation id="2148219725039824548">Erreur lors de l'installation du partage. Le partage indiqué est introuvable sur le réseau.</translation> <translation id="2148756636027685713">Formatage terminé</translation> <translation id="2148892889047469596">Caster l'onglet</translation> +<translation id="2149973817440762519">Modifier le favori</translation> <translation id="2150139952286079145">Rechercher des emplacements de destination</translation> <translation id="2150661552845026580">Installer "<ph name="EXTENSION_NAME" />" ?</translation> <translation id="2151576029659734873">L'index de l'onglet indiqué est incorrect.</translation> @@ -1056,6 +1063,7 @@ <translation id="2256115617011615191">Redémarrer maintenant</translation> <translation id="225614027745146050">Bienvenue</translation> <translation id="225692081236532131">État d'activation</translation> +<translation id="2257053455312861282">L'ajout d'un compte scolaire permet de se connecter facilement aux sites Web, aux extensions et aux applications en tant qu'élève. Le contrôle parental n'est pas désactivé.</translation> <translation id="2261323523305321874">Votre administrateur a effectué une modification s'appliquant à tout le système qui désactive certains anciens profils.</translation> <translation id="2262332168014443534">Désormais, le mode simplifié accélère la navigation sur toutes les pages, y compris sur les pages HTTPS.</translation> <translation id="2262477216570151239">Délai avant répétition</translation> @@ -1068,6 +1076,7 @@ <translation id="2270627217422354837">Échanger des données avec n'importe quel appareil dans les domaines suivants : "<ph name="DOMAINS" />"</translation> <translation id="2272570998639520080">Verre à martini</translation> <translation id="2273119997271134996">Problème rencontré au niveau du port vidéo de la station d'accueil</translation> +<translation id="2274840746523584236">Chargez votre Chromebook</translation> <translation id="2276503375879033601">Ajouter d'autres applications</translation> <translation id="2277255602909579701">Ensemble des cookies et données de site</translation> <translation id="2277769717710009150">{COUNT,plural, =1{1 élément copié}one{# élément copié}other{# éléments copiés}}</translation> @@ -1910,6 +1919,7 @@ <translation id="3308116878371095290">Le stockage des cookies n'est pas autorisé pour cette page.</translation> <translation id="3308134619352333507">Masquer le bouton</translation> <translation id="3308852433423051161">Chargement de l'Assistant Google…</translation> +<translation id="3310640316857623290">Seuil de latence autorisé largement dépassé par le DNS</translation> <translation id="3311445899360743395">Les données associées à cette application pourront être supprimées de cet appareil.</translation> <translation id="3312424061798279731">Langues activées</translation> <translation id="3313622045786997898">Valeur de signature du certificat</translation> @@ -1922,6 +1932,7 @@ <translation id="3323295311852517824">{NUM_FILES,plural, =0{Le contenu de ces données est sensible ou dangereux. Supprimez-le et réessayez.}=1{Le contenu de ce fichier est sensible ou dangereux. Supprimez-le et réessayez.}one{Le contenu de ce fichier est sensible ou dangereux. Supprimez-le et réessayez.}other{Le contenu de ces fichiers est sensible ou dangereux. Supprimez-le et réessayez.}}</translation> <translation id="3323521181261657960">Super ! Tu as plus de temps d'utilisation</translation> <translation id="3325910708063135066">Caméra et micro désactivés dans les préférences système Mac</translation> +<translation id="3327050066667856415">Les Chromebooks sont conçus pour une sécurité optimale. Votre appareil est automatiquement protégé contre les logiciels malveillants. Aucun logiciel supplémentaire n'est requis.</translation> <translation id="3328489342742826322">La restauration depuis une sauvegarde entraîne la suppression des applications et des données Linux existantes de votre dossier Fichiers Linux.</translation> <translation id="3331321258768829690">(<ph name="UTCOFFSET" />) <ph name="LONGTZNAME" /> (<ph name="EXEMPLARCITY" />)</translation> <translation id="3331974543021145906">Infos sur l'appli</translation> @@ -1970,6 +1981,7 @@ <translation id="3396800784455899911">En cliquant sur le bouton "Accepter et continuer", vous acceptez le processus décrit ci-dessus pour ces services Google.</translation> <translation id="3399432415385675819">Les notifications seront désactivées</translation> <translation id="3400390787768057815"><ph name="WIDTH" /> x <ph name="HEIGHT" /> (<ph name="REFRESH_RATE" /> Hz) – entrelacé</translation> +<translation id="3402255108239926910">Choisissez un avatar</translation> <translation id="3402585168444815892">Inscription au mode démo</translation> <translation id="340282674066624"><ph name="DOWNLOAD_RECEIVED" />, <ph name="TIME_LEFT" /></translation> <translation id="3404065873681873169">Aucun mot de passe enregistré pour ce site</translation> @@ -1997,6 +2009,7 @@ <translation id="3428747202529429621">Ce mode assure votre sécurité dans Chrome et peut être utilisé pour améliorer votre sécurité dans d'autres applications Google lorsque vous êtes connecté</translation> <translation id="3428800329481094896">Extraction des clés SSH du conteneur Linux…</translation> <translation id="3429275422858276529">Ajoutez cette page aux favoris pour la retrouver facilement</translation> +<translation id="3431370546335300761">Identifiez-vous pour vous connecter au proxy</translation> <translation id="3432227430032737297">Supprimer tous les cookies affichés</translation> <translation id="3432757130254800023">Envoyer les contenus audio et vidéo aux écrans sur le réseau local</translation> <translation id="3432762828853624962">Shared Workers</translation> @@ -2109,6 +2122,7 @@ <translation id="3556433843310711081">Votre responsable peut vous le débloquer</translation> <translation id="3557101512409028104">Définissez des restrictions liées aux sites Web et des limites de temps d'utilisation avec Family Link</translation> <translation id="3559262020195162408">Échec de l'installation de la règle sur l'appareil.</translation> +<translation id="3559533181353831840">Il reste environ <ph name="TIME_LEFT" /></translation> <translation id="3560034655160545939">&Correcteur orthographique</translation> <translation id="3562423906127931518">Cette opération peut prendre quelques minutes. Configuration du conteneur Linux…</translation> <translation id="3563432852173030730">Impossible de télécharger l'application kiosque.</translation> @@ -2151,6 +2165,7 @@ <translation id="3602290021589620013">Aperçu</translation> <translation id="3603622770190368340">Obtenir un certificat réseau</translation> <translation id="3604713164406837697">Changer de fond d'écran</translation> +<translation id="360565022852130722">Le réseau Wi-Fi est protégé par le protocole peu sécurisé WEP 802.1x</translation> <translation id="3605780360466892872">Businessman</translation> <translation id="3608576286259426129">Aperçu de l'image de l'utilisateur</translation> <translation id="3610369246614755442">Le ventilateur de la station doit être réparé</translation> @@ -2187,6 +2202,7 @@ <translation id="3639220004740062347">Quitter le mode Lecteur</translation> <translation id="3640214691812501263">Ajouter <ph name="EXTENSION_NAME" /> pour <ph name="USER_NAME" /> ?</translation> <translation id="3640613767643722554">Apprendre à l'Assistant à reconnaître votre voix</translation> +<translation id="3643014427358482789"><ph name="DOMAIN" /> désactive le débogage ADB, ce qui entraînera la réinitialisation de votre <ph name="DEVICE_TYPE" />. Sauvegardez vos fichiers avant le redémarrage.</translation> <translation id="3645372836428131288">Déplacez légèrement votre doigt pour enregistrer une autre partie de votre empreinte digitale.</translation> <translation id="3647998456578545569">{COUNT,plural, =1{<ph name="ATTACHMENTS" /> reçu de l'appareil "<ph name="DEVICE_NAME" />"}one{<ph name="ATTACHMENTS" /> reçu de l'appareil "<ph name="DEVICE_NAME" />"}other{<ph name="ATTACHMENTS" /> reçus de l'appareil "<ph name="DEVICE_NAME" />"}}</translation> <translation id="3648348069317717750">L'appareil "<ph name="USB_DEVICE_NAME" />" a été détecté</translation> @@ -2275,6 +2291,7 @@ <translation id="3732857534841813090">Informations sur l'Assistant Google</translation> <translation id="3733127536501031542">Serveur SSL avec fonction d'optimisation</translation> <translation id="3735740477244556633">Trier par</translation> +<translation id="3738632186060045350">Les données du <ph name="DEVICE_TYPE" /> seront supprimées dans 24 heures</translation> <translation id="3738924763801731196"><ph name="OID" /> :</translation> <translation id="3739254215541673094">Ouvrir <ph name="APPLICATION" /> ?</translation> <translation id="3742055079367172538">Capture d'écran réalisée</translation> @@ -2378,6 +2395,7 @@ <translation id="3841964634449506551">Mot de passe non valide</translation> <translation id="3842552989725514455">Police Serif</translation> <translation id="3843464315703645664">Ajouté à la liste d'autorisation interne</translation> +<translation id="3844888638014364087">Emoji ajouté</translation> <translation id="3846116211488856547">Accédez à des outils conçus pour développer des sites Web, des applications Android, etc. En installant Linux, vous téléchargerez <ph name="DOWNLOAD_SIZE" /> de données.</translation> <translation id="3847319713229060696">Contribuer à améliorer la sécurité sur le Web pour tous</translation> <translation id="385051799172605136">Retour</translation> @@ -2461,6 +2479,7 @@ <translation id="3937734102568271121">Toujours traduire les pages en <ph name="LANGUAGE" /></translation> <translation id="3938128855950761626">Appareils du fournisseur <ph name="VENDOR_ID" /></translation> <translation id="3940233957883229251">Activer la répétition automatique</translation> +<translation id="3941014780699102620">Impossible de résoudre un hôte</translation> <translation id="3941565636838060942">Pour masquer l'accès à ce programme, vous devez le désinstaller au moyen de <ph name="CONTROL_PANEL_APPLET_NAME" /> dans le panneau de configuration. @@ -2623,6 +2642,7 @@ <translation id="413121957363593859">Composants</translation> <translation id="4131410914670010031">Noir et blanc</translation> <translation id="413193092008917129">Routines de diagnostics réseau</translation> +<translation id="4132183752438206707">Découvrez les applications du Google Play Store</translation> <translation id="4133076602192971179">Ouvrez l'application pour modifier votre mot de passe</translation> <translation id="4136203100490971508">L'éclairage nocturne sera désactivé automatiquement au lever du soleil</translation> <translation id="41365691917097717">Si vous continuez, le débogage ADB pourra créer et tester des applications Android. Notez que vous autoriserez ainsi l'installation d'applications Android non validées par Google et que le débogage ADB ne pourra être désactivé qu'en rétablissant la configuration d'usine.</translation> @@ -2681,6 +2701,7 @@ <translation id="4232375817808480934">Configurer Kerberos</translation> <translation id="4235200303672858594">Plein écran</translation> <translation id="4235965441080806197">Annuler la connexion</translation> +<translation id="4237773362828263530">Les paramètres avec des caractères génériques "*" ne sont plus acceptés. Contactez votre administrateur pour <ph name="BEGIN_LINK" />modifier ces paramètres<ph name="END_LINK" />.</translation> <translation id="4242145785130247982">Plusieurs certificats client ne sont pas compatibles</translation> <translation id="4242533952199664413">Ouvrir les paramètres</translation> <translation id="4242577469625748426">Échec de l'installation des paramètres des règles sur l'appareil : <ph name="VALIDATION_ERROR" />.</translation> @@ -2791,6 +2812,7 @@ <translation id="4384312707950789900">Ajouter aux réseaux préférés</translation> <translation id="4384652540891215547">Activer l'extension</translation> <translation id="438503109373656455">Longchamp</translation> +<translation id="4385040356362222432">Pour distinguer la navigation de <ph name="NEW_USER" /> de celle associée au compte <ph name="EXISTING_USER" />, créez un nouveau profil</translation> <translation id="4387004326333427325">Certificat d'authentification rejeté à distance.</translation> <translation id="4387890294700445764">Mots de passe compromis</translation> <translation id="4389091756366370506">Utilisateur <ph name="VALUE" /></translation> @@ -2870,6 +2892,8 @@ <translation id="4479877282574735775">Configuration de la machine virtuelle… Cette opération peut prendre quelques minutes.</translation> <translation id="4480590691557335796">Chrome peut détecter et supprimer les logiciels malveillants sur votre ordinateur</translation> <translation id="4481530544597605423">Appareils dissociés</translation> +<translation id="4483049906298469269">Impossible de pinguer la passerelle du réseau non défini par défaut</translation> +<translation id="4487489714832036847">Les Chromebooks utilisent des applications plutôt que des logiciels traditionnels. Téléchargez des applications pour augmenter votre productivité, vous divertir et plus encore.</translation> <translation id="4488502501195719518">Effacer toutes les données ?</translation> <translation id="4493468155686877504">Recommandée (<ph name="INSTALL_SIZE" />)</translation> <translation id="4495419450179050807">Ne pas afficher sur cette page</translation> @@ -2898,6 +2922,7 @@ <translation id="4522570452068850558">Détails</translation> <translation id="4522600456902129422">Continuer à autoriser ce site à voir le contenu du presse-papiers</translation> <translation id="4524832533047962394">Le mode d'enregistrement proposé n'est pas compatible avec cette version du système d'exploitation. Vérifiez que vous utilisez bien la version la plus récente.</translation> +<translation id="4527186207340858212">Créer un profil pour le travail ?</translation> <translation id="452750746583162491">Examiner vos données synchronisées</translation> <translation id="4530494379350999373">Origine</translation> <translation id="4532646538815530781">Ce site utilise des capteurs de mouvement.</translation> @@ -2919,6 +2944,7 @@ <translation id="4546692474302123343">Saisie vocale avec l'Assistant Google</translation> <translation id="4547659257713117923">Aucun onglet issu d'autres appareils</translation> <translation id="4547672827276975204">Définir automatiquement</translation> +<translation id="4548483925627140043">Signal introuvable</translation> <translation id="4549791035683739768">Aucune empreinte digitale n'est stockée dans votre clé de sécurité</translation> <translation id="4551763574344810652">Appuyez sur <ph name="MODIFIER_KEY_DESCRIPTION" /> pour annuler</translation> <translation id="4552089082226364758">Flash</translation> @@ -2948,6 +2974,9 @@ <translation id="4573515936045019911">Vous devez disposer d'une connexion réseau pour mettre à niveau Linux. Veuillez vous connecter à Internet, puis réessayer.</translation> <translation id="457386861538956877">Autres...</translation> <translation id="4574741712540401491">• <ph name="LIST_ITEM_TEXT" /></translation> +<translation id="457564749856982089">L'ajout d'un compte scolaire à un profil permet de se connecter facilement aux sites Web, aux extensions et aux applications en tant qu'élève. Le contrôle parental n'est pas désactivé. Cependant, l'enfant ne pourra pas accéder aux favoris, mots de passe et autres données du navigateur qui sont synchronisés avec le compte scolaire.<br><br> + Si votre enfant utilise un Chromebook à l'école et que vous souhaitez qu'il ait accès aux mêmes ressources à la maison pour faire ses devoirs, veuillez vous déconnecter du compte Family Link, puis vous connecter au compte scolaire depuis la page des comptes de Chrome OS. Remarque : le contrôle parental Family Link ne s'applique pas dans ce cas.<br><br> + Si votre enfant n'utilise pas un Chromebook à l'école ou si vous préférez gérer son activité à la maison avec Family Link, veuillez cliquer sur le bouton "Suivant" ci-dessous pour ajouter un compte scolaire à ce profil.</translation> <translation id="4576541033847873020">Associer un appareil Bluetooth</translation> <translation id="4579453506923101210">Supprimer le téléphone connecté</translation> <translation id="4579581181964204535">Impossible de caster <ph name="HOST_NAME" />.</translation> @@ -2955,6 +2984,7 @@ <translation id="4582563038311694664">Réinitialiser tous les paramètres</translation> <translation id="4585793705637313973">Modifier la page</translation> <translation id="4586275095964870617">Impossible d'ouvrir <ph name="URL" /> dans le navigateur secondaire. Veuillez contacter votre administrateur système.</translation> +<translation id="458794348635939462">Impossible de résoudre tous les hôtes</translation> <translation id="4589713469967853491">Les journaux ont bien été écrits dans le répertoire des téléchargements.</translation> <translation id="4590324241397107707">Stockage des bases de données</translation> <translation id="4592891116925567110">Application de dessin avec le stylet</translation> @@ -3085,6 +3115,7 @@ <translation id="4763408175235639573">Les cookies suivants étaient autorisés lorsque vous avez consulté cette page</translation> <translation id="4765582662863429759">Autorise Android Messages à transmettre les SMS de votre téléphone à votre Chromebook</translation> <translation id="4768332406694066911">Certains certificats provenant de ces organisations vous identifient.</translation> +<translation id="477647109558161443">Créer un raccourci sur le bureau</translation> <translation id="4776917500594043016">Mot de passe de <ph name="USER_EMAIL_ADDRESS" /></translation> <translation id="4777825441726637019">Play Store</translation> <translation id="4777943778632837590">Configurer des serveurs de noms réseau</translation> @@ -3337,6 +3368,7 @@ <translation id="5089810972385038852">État</translation> <translation id="5094721898978802975">Communiquer avec les applications natives associées</translation> <translation id="5097002363526479830">Échec de la connexion au réseau "<ph name="NAME" />" : <ph name="DETAILS" /></translation> +<translation id="5097649414558628673">Outil : <ph name="PRINT_NAME" /></translation> <translation id="5097874180538493929">Clic automatique à l'arrêt du curseur</translation> <translation id="5101042277149003567">Ouvrir tous les favoris</translation> <translation id="5101839224773798795">Cliquer automatiquement en cas d'arrêt du curseur</translation> @@ -3456,6 +3488,7 @@ <translation id="5249624017678798539">Le navigateur a planté avant la fin du téléchargement.</translation> <translation id="5250372599208556903"><ph name="SEARCH_ENGINE_NAME" /> utilise votre position pour vous proposer des contenus locaux. Pour modifier ce paramètre, accédez à la page <ph name="SETTINGS_LINK" />.</translation> <translation id="5252456968953390977">Itinérance</translation> +<translation id="5252496130205799136">Utiliser votre compte Google pour enregistrer et saisir automatiquement les mots de passe ?</translation> <translation id="5252653240322147470">Le code doit comprendre moins de <ph name="MAXIMUM" /> chiffres</translation> <translation id="5254368820972107711">Affichez les fichiers à supprimer</translation> <translation id="52550593576409946">Impossible de lancer l'application kiosque.</translation> @@ -3554,6 +3587,7 @@ <translation id="5370819323174483825">&Actualiser</translation> <translation id="5372529912055771682">Le mode d'inscription fourni n'est pas compatible avec cette version du système d'exploitation. Veuillez vous assurer que vous utilisez bien la dernière version, puis réessayer.</translation> <translation id="5372579129492968947">Retirer l'extension</translation> +<translation id="5372659122375744710">Réseau Wi-Fi non sécurisé</translation> <translation id="5376169624176189338">Cliquer pour revenir en arrière, maintenir pour voir l'historique</translation> <translation id="5376931455988532197">Fichier trop volumineux.</translation> <translation id="5377721922656071359">{COUNT,plural, =1{<ph name="ATTACHMENTS" /> envoyé à l'appareil "<ph name="DEVICE_NAME" />"}one{<ph name="ATTACHMENTS" /> envoyé à l'appareil "<ph name="DEVICE_NAME" />"}other{<ph name="ATTACHMENTS" /> envoyés à l'appareil "<ph name="DEVICE_NAME" />"}}</translation> @@ -3583,6 +3617,7 @@ <translation id="5414566801737831689">Accéder aux icônes des sites Web que vous consultez</translation> <translation id="5417312524372586921">Thèmes du navigateur</translation> <translation id="5419405654816502573">Voice Match</translation> +<translation id="5420274697768050645">Pour plus de sécurité, exiger un mot de passe pour déverrouiller l'appareil</translation> <translation id="5420438158931847627">Détermine la netteté des images et du texte</translation> <translation id="5422221874247253874">Point d'accès</translation> <translation id="5422781158178868512">Désolé, impossible de reconnaître votre périphérique de stockage externe.</translation> @@ -3707,6 +3742,7 @@ <translation id="5548606607480005320">Contrôle de sécurité</translation> <translation id="5551573675707792127">Clavier et saisie de texte</translation> <translation id="5553089923092577885">Mappages des stratégies de certificat</translation> +<translation id="5554403733534868102">Plus besoin d'attendre de mises à jour par la suite</translation> <translation id="5554489410841842733">Cette icône s'affiche lorsque l'extension peut agir sur la page active.</translation> <translation id="5554720593229208774">Autorité de certification de messagerie</translation> <translation id="5556459405103347317">Actualiser</translation> @@ -3720,6 +3756,7 @@ <translation id="5565735124758917034">Actif</translation> <translation id="5567989639534621706">Caches des applications</translation> <translation id="5568069709869097550">Impossible de se connecter</translation> +<translation id="5571832155627049070">Personnalisez votre profil</translation> <translation id="5572851009514199876">Veuillez démarrer Chrome et vous connecter à votre compte pour que le navigateur puisse vérifier que vous êtes autorisé à accéder à ce site.</translation> <translation id="5575473780076478375">Extension en mode navigation privée :<ph name="EXTENSION_NAME" /></translation> <translation id="5575528586625653441">Un problème est survenu avec la demande d'enregistrement en mode de démonstration.</translation> @@ -4120,6 +4157,7 @@ <translation id="6061882183774845124">Envoyer le lien vers vos appareils</translation> <translation id="6064217302520318294">Verrouillage de l'écran</translation> <translation id="6065289257230303064">Attributs du répertoire de l'objet du certificat</translation> +<translation id="6069464830445383022">Connectez-vous à votre Chromebook à l'aide de votre compte Google</translation> <translation id="6069671174561668781">Sélectionner un fond d'écran</translation> <translation id="6071181508177083058">confirmer le mot de passe</translation> <translation id="6071576563962215370">Échec du verrouillage des attributs de temps d'installation de l'appareil.</translation> @@ -4162,6 +4200,7 @@ <translation id="6104311680260824317">Impossible d'associer l'appareil au domaine. Le serveur n'accepte pas les types de chiffrement Kerberos spécifiés. Pour consulter les paramètres de chiffrement, sélectionnez "Plus d'options".</translation> <translation id="6104796831253957966">File d'attente d'impression pleine</translation> <translation id="6105994589138235234">Synchronisation du navigateur Chrome</translation> +<translation id="6108689792487843350">Passerelle injoignable</translation> <translation id="6111972606040028426">Activer l'Assistant Google</translation> <translation id="6112294629795967147">Appuyer pour redimensionner</translation> <translation id="6112727384379533756">Ajouter un ticket</translation> @@ -4222,6 +4261,7 @@ <translation id="6178664161104547336">Sélectionner un certificat</translation> <translation id="6181431612547969857">Téléchargement bloqué</translation> <translation id="6185132558746749656">Position de l'appareil</translation> +<translation id="6191293864534840972">Serveurs de noms non valides</translation> <translation id="6195446518998936840">Pour que vous puissiez configurer le contrôle parental, votre enfant doit disposer d'un compte Google que vous l'aiderez à gérer. Avec l'application Family Link, vous pouvez limiter le temps d'utilisation, autoriser ou bloquer l'accès à des sites Web, et plus encore.</translation> <translation id="6195693561221576702">Impossible de configurer cet appareil en mode de démonstration hors connexion.</translation> <translation id="6196640612572343990">Bloquer les cookies tiers</translation> @@ -4296,6 +4336,7 @@ <translation id="6270770586500173387">Envoyer des <ph name="BEGIN_LINK1" />informations sur le système et l'application<ph name="END_LINK1" />, ainsi que des <ph name="BEGIN_LINK2" />statistiques<ph name="END_LINK2" /></translation> <translation id="6272643420381259437">Une erreur (<ph name="ERROR" />) s'est produite lors du téléchargement du plug-in.</translation> <translation id="6273677812470008672">Qualité</translation> +<translation id="6276210637549544171">Le proxy <ph name="PROXY_SERVER" /> requiert un nom d'utilisateur et un mot de passe.</translation> <translation id="6277105963844135994">Délai d'expiration du réseau dépassé.</translation> <translation id="6277518330158259200">F&aire une capture d'écran</translation> <translation id="6278057325678116358">Utiliser le thème GTK+</translation> @@ -4316,6 +4357,7 @@ <translation id="6298962879096096191">Utilise Google Play pour installer des applications Android</translation> <translation id="630065524203833229">&Quitter</translation> <translation id="6300718114348072351">Impossible de configurer automatiquement <ph name="PRINTER_NAME" />. Veuillez définir des paramètres avancés pour cette imprimante. <ph name="LINK_BEGIN" />En savoir plus<ph name="LINK_END" /></translation> +<translation id="6301076166764763868">Pour distinguer votre navigation personnelle de celle associée au compte <ph name="EXISTING_USER" />, créez un profil pour <ph name="NEW_USER" /></translation> <translation id="630292539633944562">Suggestions d'informations personnelles</translation> <translation id="6305607932814307878">Règlement global :</translation> <translation id="6307990684951724544">Système occupé.</translation> @@ -4433,6 +4475,7 @@ <translation id="6451591602925140504">{NUM_PAGES,plural, =0{<ph name="PAGE_TITLE" />}=1{<ph name="PAGE_TITLE" /> et 1 autre onglet}one{<ph name="PAGE_TITLE" /> et # autre onglet}other{<ph name="PAGE_TITLE" /> et # autres onglets}}</translation> <translation id="6451689256222386810">Si vous avez oublié votre phrase secrète, ou si vous souhaitez modifier ce paramètre, <ph name="BEGIN_LINK" />réinitialisez la synchronisation<ph name="END_LINK" />.</translation> <translation id="6452181791372256707">Refuser</translation> +<translation id="6452251728599530347"><ph name="PERCENT" /> terminés</translation> <translation id="6452961788130242735">Problème de réseau ou domaine non valide</translation> <translation id="6455264371803474013">Sur des sites spécifiques</translation> <translation id="6455894534188563617">&Nouveau dossier</translation> @@ -4489,6 +4532,7 @@ <ph name="EVENT_NAME" /></translation> <translation id="6520876759015997832">Résultat de recherche <ph name="LIST_POSITION" /> sur <ph name="LIST_SIZE" /> : <ph name="SEARCH_RESULT_TEXT" />. Appuyez sur Entrée pour accéder à la section.</translation> <translation id="652492607360843641">Vous êtes connecté à un réseau <ph name="NETWORK_TYPE" />.</translation> +<translation id="6527081081771465939">Protocole de sécurité du réseau Wi-Fi inconnu</translation> <translation id="6527303717912515753">Partager</translation> <translation id="6528513914570774834">Autoriser les autres utilisateurs de cet appareil à employer ce réseau</translation> <translation id="652948702951888897">Historique Chrome</translation> @@ -4519,6 +4563,7 @@ <translation id="6556866813142980365">Rétablir</translation> <translation id="6556903358015358733">Thème et fond d'écran</translation> <translation id="6557290421156335491">Mes raccourcis</translation> +<translation id="6560151649238390891">Suggestion ajoutée</translation> <translation id="6561560012278703671">Activer l'affichage discret (permet d'empêcher les invites liées aux notifications de vous interrompre)</translation> <translation id="6561726789132298588">entrée</translation> <translation id="6562117348069327379">Stockez les journaux système dans le répertoire des téléchargements.</translation> @@ -4604,6 +4649,7 @@ <translation id="6680442031740878064">Espace disponible : <ph name="AVAILABLE_SPACE" /></translation> <translation id="6680650203439190394">Cadence</translation> <translation id="6681668084120808868">Prendre une photo</translation> +<translation id="6684827949542560880">Téléchargement de la toute dernière mise à jour</translation> <translation id="668599234725812620">Ouvrir Google Play</translation> <translation id="6686490380836145850">Fermer les onglets sur la droite</translation> <translation id="6686817083349815241">Enregistrer votre mot de passe</translation> @@ -4713,6 +4759,7 @@ <translation id="6812841287760418429">Conserver les modifications</translation> <translation id="6817174620439930047">Demander lorsqu'un site souhaite utiliser des messages spécifiques au système pour accéder aux appareils MIDI (recommandé)</translation> <translation id="6818198425579322765">Langue source</translation> +<translation id="6818802132960437751">Protection antivirus intégrée</translation> <translation id="682123305478866682">Caster le Bureau</translation> <translation id="6823174134746916417">Fonctionnalité Taper pour cliquer du pavé tactile</translation> <translation id="6823506025919456619">Vous devez vous connecter à Chrome pour voir vos périphériques.</translation> @@ -5168,6 +5215,7 @@ <translation id="7385854874724088939">Erreur lors de la tentative d'impression. Vérifiez votre imprimante et réessayez.</translation> <translation id="7385896526023870365">Cette extension n'a accès à aucun site supplémentaire.</translation> <translation id="7388044238629873883">Vous avez presque terminé !</translation> +<translation id="7388209873137778229">Seuls les appareils compatibles sont affichés.</translation> <translation id="7392118418926456391">Échec de l'analyse antivirus.</translation> <translation id="7392915005464253525">&Rouvrir la fenêtre fermée</translation> <translation id="7396017167185131589">Les dossiers partagés s'afficheront ici</translation> @@ -5191,6 +5239,7 @@ <translation id="7415454883318062233">Configuration terminée</translation> <translation id="7416362041876611053">Erreur réseau inconnue.</translation> <translation id="741906494724992817">Cette application fonctionne sans autorisation spéciale.</translation> +<translation id="7420817660256886596">Le proxy <ph name="PROXY" /> nécessite votre authentification avec un nom d'utilisateur et un mot de passe.</translation> <translation id="742130257665691897">Favoris supprimés</translation> <translation id="7421925624202799674">&Afficher le code source de la page</translation> <translation id="7422192691352527311">Préférences...</translation> @@ -5357,6 +5406,7 @@ <translation id="7631205654593498032">Lorsque vous connectez vos appareils, vous acceptez que votre <ph name="DEVICE_TYPE" /> puisse :</translation> <translation id="7631887513477658702">&Toujours ouvrir les fichiers de ce type</translation> <translation id="7632948528260659758">Échec de la mise à jour des applications kiosque suivantes :</translation> +<translation id="7633724038415831385">Vous n'aurez plus à attendre de mises à jour après cela. En effet, les mises à jour logicielles s'exécutent en arrière-plan sur les Chromebooks.</translation> <translation id="7634566076839829401">Une erreur s'est produite. Veuillez réessayer.</translation> <translation id="763632859238619983">Interdire à tous les sites d'installer des gestionnaires de paiement</translation> <translation id="7636919061354591437">Installer sur cet appareil</translation> @@ -5450,6 +5500,7 @@ <translation id="7737115349420013392">Association avec "<ph name="DEVICE_NAME" />" en cours…</translation> <translation id="7737238973539693982">Effacer Linux (Bêta)</translation> <translation id="7740996059027112821">Standard</translation> +<translation id="7741721175294046818">Impossible de se connecter au proxy, veuillez réessayer.</translation> <translation id="774377079771918250">Choisir l'emplacement d'enregistrement</translation> <translation id="7744047395460924128">Afficher l'historique d'impression</translation> <translation id="7744192722284567281">Détecté lors d'une violation des données</translation> @@ -5634,6 +5685,7 @@ <translation id="7933314993013528982">{NUM_TABS,plural, =1{Réactiver le son du site}one{Réactiver le son du site}other{Réactiver le son des sites}}</translation> <translation id="7933634003144813719">Gérer les dossiers partagés</translation> <translation id="793531125873261495">Erreur lors du téléchargement de la machine virtuelle. Veuillez réessayer.</translation> +<translation id="7936303884198020182">Aucun serveur de noms trouvé</translation> <translation id="7938594894617528435">Actuellement hors connexion</translation> <translation id="7939062555109487992">Options avancées</translation> <translation id="7939412583708276221">Conserver quand même</translation> @@ -5694,6 +5746,7 @@ <translation id="8002670234429879764"><ph name="PRINTER_NAME" /> n'est plus disponible</translation> <translation id="8004582292198964060">Navigateur</translation> <translation id="8005600846065423578">Toujours autoriser <ph name="HOST" /> à voir le contenu du presse-papiers</translation> +<translation id="8006143138282906848">Supprimer ce profil</translation> <translation id="8008356846765065031">Connexion Internet interrompue. Veuillez vérifier votre connexion.</translation> <translation id="8009225694047762179">Gérer les mots de passe</translation> <translation id="8012647001091218357">Impossible de joindre vos parents pour le moment. Veuillez réessayer.</translation> @@ -5760,9 +5813,11 @@ <translation id="8084114998886531721">Mot de passe enregistré</translation> <translation id="8086015605808120405">Configuration de <ph name="PRINTER_NAME" />…</translation> <translation id="8086442853986205778">Configurer l'imprimante <ph name="PRINTER_NAME" /></translation> +<translation id="8086550884324762001">Par exemple : Travail, Personnel, Enfants ou un nom</translation> <translation id="80866457114322936">{NUM_FILES,plural, =1{Ce fichier étant chiffré, demandez à son propriétaire de le déchiffrer.}one{Ce fichier étant chiffré, demandez à son propriétaire de le déchiffrer.}other{Certains de ces fichiers étant chiffrés, demandez à leur propriétaire de les déchiffrer.}}</translation> <translation id="808894953321890993">Modifier le mot de passe</translation> <translation id="8090234456044969073">Lire une liste des sites Web que vous consultez le plus souvent</translation> +<translation id="8092681102116274204">Les paramètres avec des caractères génériques "*" ne sont plus acceptés. Contactez le développeur de l'extension ou votre administrateur pour <ph name="BEGIN_LINK" />modifier ces paramètres<ph name="END_LINK" />.</translation> <translation id="8093359998839330381"><ph name="PLUGIN_NAME" /> ne répond pas</translation> <translation id="8095105960962832018"><ph name="BEGIN_PARAGRAPH1" />Sauvegarder dans Google Drive. Restaurez vos données ou changez d'appareil facilement et à tout moment. La sauvegarde inclut les données d'applications.<ph name="END_PARAGRAPH1" /> <ph name="BEGIN_PARAGRAPH2" />Vos sauvegardes sont importées dans Google et chiffrées à l'aide du mot de passe de votre compte Google.<ph name="END_PARAGRAPH2" /> @@ -5815,6 +5870,7 @@ <translation id="8146177459103116374">Si vous êtes déjà enregistré sur cet appareil, vous pouvez vous <ph name="LINK2_START" />connecter en tant qu'utilisateur existant<ph name="LINK2_END" />.</translation> <translation id="8146793085009540321">Échec de la connexion. Veuillez contacter votre administrateur ou réessayer.</translation> <translation id="8148760431881541277">Limiter les connexions</translation> +<translation id="8151579390896831136">Personnalisez votre profil, y compris son nom</translation> <translation id="8151638057146502721">Configurer</translation> <translation id="8152091997436726702">L'enregistrement de l'imprimante a expiré. Pour enregistrer une imprimante, vous devez confirmer l'enregistrement sur l'imprimante.</translation> <translation id="8154790740888707867">Fichier introuvable.</translation> @@ -5873,6 +5929,7 @@ <translation id="8226742006292257240">Le mot de passe TPM ci-dessous, généré de façon aléatoire, a été attribué à votre ordinateur :</translation> <translation id="8227119283605456246">Joindre un fichier</translation> <translation id="8230134520748321204">Enregistrer le mot de passe pour <ph name="ORIGIN" /> ?</translation> +<translation id="8230672074305416752">Impossible de pinguer la passerelle du réseau par défaut</translation> <translation id="8234795456569844941">Pour aider nos ingénieurs à corriger ce problème, veuillez nous indiquer ce qui s'est passé juste avant de recevoir le message d'erreur concernant le profil :</translation> <translation id="8236917170563564587">Partager cet onglet à la place</translation> <translation id="8237647586961940482">Rose foncé et rouge</translation> @@ -5933,6 +5990,7 @@ <translation id="8288032458496410887">Désinstaller <ph name="APP" />…</translation> <translation id="8289128870594824098">Taille du disque</translation> <translation id="8291967909914612644">Pays du fournisseur personnel</translation> +<translation id="8293206222192510085">Ajouter aux favoris</translation> <translation id="8294431847097064396">Source</translation> <translation id="8297006494302853456">Faible</translation> <translation id="8299319456683969623">Vous êtes actuellement hors connexion.</translation> @@ -5982,6 +6040,7 @@ <translation id="8363095875018065315">stable</translation> <translation id="8363142353806532503">Micro bloqué</translation> <translation id="8363763184161554204">autorisation "<ph name="PERMISSION" />" accordée</translation> +<translation id="8364946094152050673">Serveurs de noms vides</translation> <translation id="8366396658833131068">Votre connexion réseau est rétablie. Veuillez sélectionner un autre réseau ou appuyer sur "Continuer" ci-dessous pour lancer votre application kiosque.</translation> <translation id="8368027906805972958">Appareil inconnu ou non compatible (<ph name="DEVICE_ID" />)</translation> <translation id="8368859634510605990">&Ouvrir tous les favoris</translation> @@ -6067,8 +6126,10 @@ <translation id="8472623782143987204">matériel requis</translation> <translation id="8473863474539038330">Adresses et autres</translation> <translation id="8475313423285172237">Un autre programme sur votre ordinateur a ajouté une extension qui risque de modifier le fonctionnement de Google Chrome.</translation> +<translation id="8475690821716466388">Le réseau Wi-Fi est protégé par le protocole peu sécurisé WEP PSK</translation> <translation id="8477241577829954800">Remplacé</translation> <translation id="8477384620836102176">&Général</translation> +<translation id="8477551185774834963">Seuil de latence autorisé légèrement dépassé par le DNS</translation> <translation id="8480082892550707549">Même si vous avez déjà téléchargé des fichiers provenant de ce site, il est possible que ce dernier soit temporairement dangereux (suite à un piratage). Réessayez de télécharger ce fichier ultérieurement.</translation> <translation id="8480869669560681089">Appareil de <ph name="VENDOR_NAME" /> inconnu</translation> <translation id="8481187309597259238">Confirmer l'autorisation USB</translation> @@ -6120,6 +6181,7 @@ <translation id="8546930481464505581">Personnaliser la Touch Bar</translation> <translation id="8547013269961688403">Activer la loupe plein écran</translation> <translation id="85486688517848470">Maintenir la touche de recherche enfoncée pour modifier la fonction des touches de la rangée supérieure</translation> +<translation id="8549316893834449916">Vous vous connecterez à votre Chromebook à l'aide du compte Google que vous utilisez déjà pour vous connecter à Gmail, Drive, YouTube, etc.</translation> <translation id="8551388862522347954">Licences</translation> <translation id="8551588720239073785">Paramètres de date et d'heure</translation> <translation id="8553342806078037065">Gérer d'autres utilisateurs</translation> @@ -6258,6 +6320,7 @@ <translation id="8720200012906404956">Recherche d'un réseau mobile… <ph name="BEGIN_LINK" />En savoir plus<ph name="END_LINK" /></translation> <translation id="8720816553731218127">Le délai alloué à l'initialisation des attributs de temps d'installation a expiré.</translation> <translation id="8722912030556880711">Envoyer des données d'utilisation et de diagnostic. À l'heure actuelle, cet appareil envoie automatiquement à Google des données relatives aux diagnostics et à l'utilisation de l'appareil et des applications. Ce processus permettra d'améliorer, entre autres, la stabilité du système et des applications. Certaines données globales seront également utiles aux développeurs des applications Google et à nos partenaires, tels que les développeurs Android. Si vous activez le paramètre relatif à l'activité supplémentaire sur le Web et les applications, ces données peuvent être enregistrées dans votre compte Google. <ph name="BEGIN_LINK2" />En savoir plus<ph name="END_LINK2" /></translation> +<translation id="8723108084122415655">Seuil de latence dépassé pour le réseau non défini par défaut</translation> <translation id="8724405322205516354">Quand cette icône s'affiche, utilisez votre empreinte digitale pour vous identifier ou pour approuver des achats.</translation> <translation id="8724409975248965964">Empreinte digitale ajoutée</translation> <translation id="8724859055372736596">&Afficher dans le dossier</translation> @@ -6435,6 +6498,7 @@ <translation id="8909833622202089127">Le site vous localise</translation> <translation id="8910146161325739742">Partager votre écran</translation> <translation id="8910222113987937043">Les modifications apportées à vos favoris, à votre historique, à vos mots de passe et à d'autres paramètres ne seront plus synchronisées avec votre compte Google. Cependant, les données déjà stockées sur votre compte Google y seront conservées et pourront être gérées dans le <ph name="BEGIN_LINK" />Google Dashboard<ph name="END_LINK" />.</translation> +<translation id="8910721771319628100">Seuil de latence dépassé pour le réseau par défaut</translation> <translation id="8912362522468806198">Compte Google</translation> <translation id="8912793549644936705">Étirer</translation> <translation id="8912810933860534797">Activer la recherche automatique</translation> @@ -6538,6 +6602,7 @@ <translation id="9031549947500880805">Sauvegarder dans Google Drive. Restaurez vos données ou changez d'appareil facilement et à tout moment. Les données des applications sont également sauvegardées.</translation> <translation id="9033765790910064284">Continuer</translation> <translation id="9033857511263905942">&Coller</translation> +<translation id="9037818663270399707">Votre connexion n'est pas privée pour l'ensemble du trafic réseau</translation> <translation id="9037965129289936994">Afficher l'original</translation> <translation id="9039014462651733343">{NUM_ATTEMPTS,plural, =1{Il vous reste une tentative.}one{Il vous reste # tentative.}other{Il vous reste # tentatives.}}</translation> <translation id="9039663905644212491">PEAP</translation>
diff --git a/chrome/app/resources/generated_resources_gl.xtb b/chrome/app/resources/generated_resources_gl.xtb index 8e8e9a54..8b4a9ed 100644 --- a/chrome/app/resources/generated_resources_gl.xtb +++ b/chrome/app/resources/generated_resources_gl.xtb
@@ -71,6 +71,7 @@ <translation id="1070705170564860382">Abrirase no navegador alternativo dentro de <ph name="COUNTDOWN_SECONDS" /> segundos</translation> <translation id="1071917609930274619">Codificación de datos</translation> <translation id="1072700771426194907">Detectouse un dispositivo USB</translation> +<translation id="107278043869924952">Usar PIN ademais do contrasinal</translation> <translation id="1076176485976385390">Navegar por páxinas cun cursor de texto</translation> <translation id="1076698951459398590">Activar tema</translation> <translation id="1076818208934827215">Microsoft Internet Explorer</translation> @@ -329,6 +330,7 @@ <translation id="1383876407941801731">Buscar</translation> <translation id="1386387014181100145">Ola.</translation> <translation id="1386791642444521222">Activar SIM física</translation> +<translation id="1387519831959169718">Para manter separada a túa actividade de navegación, podes crearlle un novo perfil a <ph name="NEW_USER" /></translation> <translation id="138784436342154190">Queres restaurar a páxina de inicio predeterminada?</translation> <translation id="1388728792929436380"><ph name="DEVICE_TYPE" /> reiniciarase cando se completen as actualizacións.</translation> <translation id="1390548061267426325">Abrir como pestana normal</translation> @@ -343,6 +345,7 @@ <translation id="139911022479327130">Desbloquea o teléfono e confirma a túa identidade</translation> <translation id="1399511500114202393">Ningún certificado de usuario</translation> <translation id="1401308693935339022">Usar a localización. Permite que as aplicacións e servizos con permiso de localización utilicen a localización deste dispositivo. Google pode recompilar datos de localización periodicamente e utilizalos de forma anónima para mellorar os servizos baseados na localización e a precisión desta última.</translation> +<translation id="1403222014593521787">Non se puido establecer conexión co proxy</translation> <translation id="140520891692800925"><ph name="PROFILE_DISPLAY_NAME" /> (supervisado)</translation> <translation id="1405779994569073824">Produciuse un fallo.</translation> <translation id="1406500794671479665">Verificando...</translation> @@ -478,6 +481,7 @@ <translation id="1555130319947370107">Azul</translation> <translation id="1556537182262721003">Non se puido mover o directorio de extensións ao perfil.</translation> <translation id="155865706765934889">Panel táctil</translation> +<translation id="1563702743503072935">Os contrasinais da túa Conta de Google tamén estarán dispoñibles neste dispositivo mentres teñas a sesión iniciada</translation> <translation id="1566049601598938765">Sitio web</translation> <translation id="15662109988763471">A impresora seleccionada non está dispoñible ou non está instalada correctamente. Compróbaa ou selecciona outra.</translation> <translation id="1567387640189251553">Conectouse un teclado diferente desde a última vez que inseriches o teu contrasinal. É posible que estea tentando detectar as teclas que premes.</translation> @@ -520,7 +524,6 @@ <translation id="1608668830839595724">Máis accións para os elementos seleccionados</translation> <translation id="161042844686301425">Ciano</translation> <translation id="1611432201750675208">O dispositivo está bloqueado</translation> -<translation id="1611584202130317952">Interrompeuse o fluxo de abastecemento. Téntao de novo ou contacta co propietario ou administrador do dispositivo.</translation> <translation id="1614511179807650956">É posible que consumises o teu límite de datos móbiles. Visita o portal de activación de <ph name="NAME" /> para comprar máis datos</translation> <translation id="161460670679785907">Non se puido detectar o teu teléfono</translation> <translation id="1616206807336925449">Esta extensión non necesita permisos especiais.</translation> @@ -529,6 +532,7 @@ <translation id="1618268899808219593">C&entro de axuda</translation> <translation id="1620307519959413822">O contrasinal é incorrecto. Téntao de novo ou fai clic en Esqueciches o contrasinal? se queres restablecelo.</translation> <translation id="1620510694547887537">Cámara</translation> +<translation id="1621831347985899379">Eliminaranse os datos do dispositivo (<ph name="DEVICE_TYPE" />)</translation> <translation id="1622054403950683339">Esquecer rede wifi</translation> <translation id="1623132449929929218">Actualmente as imaxes non están dispoñibles. Volve conectarte a Internet para ver as coleccións de fondos de pantalla.</translation> <translation id="1623723619460186680">Redución da luz azul</translation> @@ -756,6 +760,7 @@ <translation id="1877377290348678128">Etiqueta (opcional)</translation> <translation id="1877520246462554164">Produciuse un erro ao obter o token de autenticación. Pecha sesión e volve iniciala para tentalo de novo.</translation> <translation id="1877860345998737529">Asignación das accións do interruptor</translation> +<translation id="1878155070920054810">Parece que a batería do Chromebook se esgotará antes de completar a actualización. Asegúrate de que cargue correctamente para que non se interrompa a operación.</translation> <translation id="1879000426787380528">Iniciar sesión como</translation> <translation id="1880905663253319515">Queres eliminar o certificado "<ph name="CERTIFICATE_NAME" />"?</translation> <translation id="1881445033931614352">Deseño do teclado</translation> @@ -905,6 +910,7 @@ <translation id="2080070583977670716">Máis configuracións</translation> <translation id="2081816110395725788">Activar modo de suspensión mentres se use a batería</translation> <translation id="2082187087049518845">Agrupar pestana</translation> +<translation id="2082510809738716738">Escolle unha cor para o tema</translation> <translation id="2087822576218954668">Imprimir: <ph name="PRINT_NAME" /></translation> <translation id="2088690981887365033">Rede VPN</translation> <translation id="208928984520943006">Para acceder á pantalla de inicio en calquera momento, pasa o dedo cara arriba desde a parte inferior da pantalla.</translation> @@ -959,6 +965,7 @@ <translation id="2148219725039824548">Produciuse un erro ao montar a localización compartida. A localización compartida especificada non se atopou na rede.</translation> <translation id="2148756636027685713">Formatado finalizado</translation> <translation id="2148892889047469596">Emitir contido da pestana</translation> +<translation id="2149973817440762519">Editar marcador</translation> <translation id="2150139952286079145">Destinos da busca</translation> <translation id="2150661552845026580">Queres engadir "<ph name="EXTENSION_NAME" />"?</translation> <translation id="2151576029659734873">Índice de tabulación non válido introducido.</translation> @@ -1055,6 +1062,7 @@ <translation id="2256115617011615191">Reiniciar agora</translation> <translation id="225614027745146050">Dámosche a benvida</translation> <translation id="225692081236532131">Estado de activación</translation> +<translation id="2257053455312861282">Se engades unha conta de centro educativo, o usuario poderá iniciar sesión como estudante de forma sinxela en determinados sitios web, extensións e aplicacións sen que deixen de aplicarse os controis parentais.</translation> <translation id="2261323523305321874">O teu administrador realizou un cambio que afecta a todo o sistema e que desactiva algúns perfís antigos.</translation> <translation id="2262332168014443534">Co modo básico a navegación é máis rápida en todas as páxinas, incluso en HTTPS.</translation> <translation id="2262477216570151239">Tempo antes da repetición</translation> @@ -1067,6 +1075,7 @@ <translation id="2270627217422354837">Intercambiar datos con calquera dispositivo dos dominios: <ph name="DOMAINS" /></translation> <translation id="2272570998639520080">Copa de Martini</translation> <translation id="2273119997271134996">Produciuse un problema relacionado co porto de vídeo da base de conexión</translation> +<translation id="2274840746523584236">Carga o Chromebook</translation> <translation id="2276503375879033601">Engadir máis aplicacións</translation> <translation id="2277255602909579701">Todas as cookies e datos do sitio</translation> <translation id="2277769717710009150">{COUNT,plural, =1{1 elemento copiado}other{# elementos copiados}}</translation> @@ -1909,6 +1918,7 @@ <translation id="3308116878371095290">Impediuse que esta páxina establecese cookies.</translation> <translation id="3308134619352333507">Ocultar botón</translation> <translation id="3308852433423051161">Estase cargando o Asistente de Google...</translation> +<translation id="3310640316857623290">A latencia do DNS supera considerablemente o límite permitido</translation> <translation id="3311445899360743395">Os datos asociados a esta aplicación pódense quitar deste dispositivo.</translation> <translation id="3312424061798279731">Idiomas activados</translation> <translation id="3313622045786997898">Valor da sinatura do certificado</translation> @@ -1921,6 +1931,7 @@ <translation id="3323295311852517824">{NUM_FILES,plural, =0{Estes datos inclúen contido confidencial ou perigoso. Quita ese contido e téntao de novo.}=1{Este ficheiro inclúe contido confidencial ou perigoso. Quita ese contido e téntao de novo.}other{Estes ficheiros inclúen contido confidencial ou perigoso. Quita ese contido e téntao de novo.}}</translation> <translation id="3323521181261657960">Xenial! Máis tempo diante da pantalla</translation> <translation id="3325910708063135066">A cámara e o micrófono están desactivados nas preferencias do sistema de Mac</translation> +<translation id="3327050066667856415">Os Chromebooks están deseñados para que sexan seguros. O teu dispositivo está protexido contra software malicioso automaticamente e non precisa software adicional.</translation> <translation id="3328489342742826322">Ao restaurar os datos dunha copia de seguranza, eliminaranse as aplicacións e datos de Linux que haxa no cartafol de ficheiros de Linux.</translation> <translation id="3331321258768829690">(<ph name="UTCOFFSET" />) <ph name="LONGTZNAME" /> (<ph name="EXEMPLARCITY" />)</translation> <translation id="3331974543021145906">Información da aplicación</translation> @@ -1969,6 +1980,7 @@ <translation id="3396800784455899911">Ao facer clic no botón Aceptar e continuar, aceptarás o procesamento descrito anteriormente para estes servizos de Google.</translation> <translation id="3399432415385675819">Desactivaranse as notificacións</translation> <translation id="3400390787768057815"><ph name="WIDTH" /> x <ph name="HEIGHT" /> (<ph name="REFRESH_RATE" /> Hz): liñas entrelazadas</translation> +<translation id="3402255108239926910">Escolle un avatar</translation> <translation id="3402585168444815892">Inscribindo empresa no modo de demostración</translation> <translation id="340282674066624"><ph name="DOWNLOAD_RECEIVED" />, <ph name="TIME_LEFT" /></translation> <translation id="3404065873681873169">Non se gardou ningún contrasinal para este sitio</translation> @@ -1996,6 +2008,7 @@ <translation id="3428747202529429621">Protéxete en Chrome e pode utilizarse para mellorar a túa seguranza noutras aplicacións de Google cando teñas iniciada a sesión</translation> <translation id="3428800329481094896">Obtendo claves SSH do contedor de Linux</translation> <translation id="3429275422858276529">Engade esta páxina aos marcadores para atopala facilmente máis tarde</translation> +<translation id="3431370546335300761">Inicia sesión para conectarte ao proxy</translation> <translation id="3432227430032737297">Eliminar todos os sitios mostrados</translation> <translation id="3432757130254800023">Enviar audio e vídeo ás pantallas que se atopan na rede local</translation> <translation id="3432762828853624962">Traballadores compartidos</translation> @@ -2108,6 +2121,7 @@ <translation id="3556433843310711081">O teu xestor pode desbloquealo por ti</translation> <translation id="3557101512409028104">Define as restricións de sitios web e o tempo diante da pantalla con Family Link</translation> <translation id="3559262020195162408">Non se puido instalar a política no dispositivo.</translation> +<translation id="3559533181353831840">Tempo restante aproximado: <ph name="TIME_LEFT" /></translation> <translation id="3560034655160545939">&Corrector ortográfico</translation> <translation id="3562423906127931518">Este proceso pode tardar uns minutos. Estase configurando o contedor de Linux.</translation> <translation id="3563432852173030730">Non se puido descargar a aplicación de quiosco.</translation> @@ -2150,6 +2164,7 @@ <translation id="3602290021589620013">Previsualizar</translation> <translation id="3603622770190368340">Obter certificado de rede</translation> <translation id="3604713164406837697">Cambiar fondo de pantalla</translation> +<translation id="360565022852130722">A rede wifi está protexida co protocolo WEP 802.1x, que non é moi seguro</translation> <translation id="3605780360466892872">Home de negocios</translation> <translation id="3608576286259426129">Vista previa da imaxe do usuario</translation> <translation id="3610369246614755442">O ventilador da base necesita unha reparación</translation> @@ -2186,6 +2201,7 @@ <translation id="3639220004740062347">Saír do modo de lector</translation> <translation id="3640214691812501263">Queres engadir "<ph name="EXTENSION_NAME" />" para <ph name="USER_NAME" />?</translation> <translation id="3640613767643722554">Adestra o Asistente para que recoñeza a túa voz</translation> +<translation id="3643014427358482789"><ph name="DOMAIN" /> vai desactivar a depuración de ADB, o cal provocará que se restableza o dispositivo (<ph name="DEVICE_TYPE" />). Antes de reinicialo, fai unha copia de seguranza dos ficheiros.</translation> <translation id="3645372836428131288">Move lixeiramente o dedo para capturar unha parte diferente da impresión dixital.</translation> <translation id="3647998456578545569">{COUNT,plural, =1{Recibiches <ph name="ATTACHMENTS" /> deste dispositivo: <ph name="DEVICE_NAME" />}other{Recibiches <ph name="ATTACHMENTS" /> deste dispositivo: <ph name="DEVICE_NAME" />}}</translation> <translation id="3648348069317717750">Detectouse <ph name="USB_DEVICE_NAME" /></translation> @@ -2274,6 +2290,7 @@ <translation id="3732857534841813090">Información relacionada co Asistente de Google</translation> <translation id="3733127536501031542">Servidor SSL con certificado Step-Up</translation> <translation id="3735740477244556633">Ordenar por</translation> +<translation id="3738632186060045350">Eliminaranse os datos do dispositivo (<ph name="DEVICE_TYPE" />) dentro de 24 horas</translation> <translation id="3738924763801731196"><ph name="OID" />:</translation> <translation id="3739254215541673094">Queres abrir <ph name="APPLICATION" />?</translation> <translation id="3742055079367172538">Captura de pantalla feita</translation> @@ -2377,6 +2394,7 @@ <translation id="3841964634449506551">O contrasinal non é válido</translation> <translation id="3842552989725514455">Tipo de letra Serif</translation> <translation id="3843464315703645664">Lista de entidades permitidas internamente</translation> +<translation id="3844888638014364087">Púxose o emoji</translation> <translation id="3846116211488856547">Consigue ferramentas para programar sitios web, aplicacións Android etc. A instalación de Linux provocará a descarga de <ph name="DOWNLOAD_SIZE" /> de datos.</translation> <translation id="3847319713229060696">Axudar a mellorar a seguranza na Web para todos</translation> <translation id="385051799172605136">Atrás</translation> @@ -2460,6 +2478,7 @@ <translation id="3937734102568271121">Traducir sempre o <ph name="LANGUAGE" /></translation> <translation id="3938128855950761626">Dispositivos do provedor <ph name="VENDOR_ID" /></translation> <translation id="3940233957883229251">Activar repetición automática</translation> +<translation id="3941014780699102620">Produciuse un erro ao resolver o host</translation> <translation id="3941565636838060942">Para ocultar o acceso a este programa, debes desinstalalo usando <ph name="CONTROL_PANEL_APPLET_NAME" /> no Panel de control. @@ -2622,6 +2641,7 @@ <translation id="413121957363593859">Compoñentes</translation> <translation id="4131410914670010031">Branco e negro</translation> <translation id="413193092008917129">Rutinas de diagnóstico de rede</translation> +<translation id="4132183752438206707">Busca aplicacións en Google Play Store</translation> <translation id="4133076602192971179">Abrir a aplicación para cambiar o contrasinal</translation> <translation id="4136203100490971508">A opción Luz nocturna desactivarase automaticamente ao amencer</translation> <translation id="41365691917097717">Ao continuar, activarase a depuración de ADB para crear e probar aplicacións de Android. Ten en conta que esta acción permite a instalación de aplicacións de Android non verificadas por Google e que require un restablecemento dos valores de fábrica para desactivarse.</translation> @@ -2680,6 +2700,7 @@ <translation id="4232375817808480934">Configurar Kerberos</translation> <translation id="4235200303672858594">Pantalla completa</translation> <translation id="4235965441080806197">Cancelar inicio de sesión</translation> +<translation id="4237773362828263530">As opcións de configuración cos comodíns "*" xa non están dispoñibles. Ponte en contacto co teu administrador para <ph name="BEGIN_LINK" />cambiar estas opcións de configuración<ph name="END_LINK" />.</translation> <translation id="4242145785130247982">Non se permite utilizar varios certificados de cliente</translation> <translation id="4242533952199664413">Abrir configuración</translation> <translation id="4242577469625748426">Non se puido instalar a configuración de política no dispositivo: <ph name="VALIDATION_ERROR" />.</translation> @@ -2790,6 +2811,7 @@ <translation id="4384312707950789900">Engadir ás redes preferidas</translation> <translation id="4384652540891215547">Activa a extensión</translation> <translation id="438503109373656455">Saratoga</translation> +<translation id="4385040356362222432">Para separar a túa actividade de navegación con <ph name="NEW_USER" /> da de <ph name="EXISTING_USER" />, crea un novo perfil</translation> <translation id="4387004326333427325">Certificado de autenticación rexeitado de forma remota</translation> <translation id="4387890294700445764">Contrasinais vulnerados</translation> <translation id="4389091756366370506">Usuario <ph name="VALUE" /></translation> @@ -2869,6 +2891,8 @@ <translation id="4479877282574735775">Configurando a máquina virtual. Esta acción pode tardar uns minutos.</translation> <translation id="4480590691557335796">Chrome pode buscar software daniño no ordenador e eliminalo</translation> <translation id="4481530544597605423">Dispositivos desincronizados</translation> +<translation id="4483049906298469269">Produciuse un erro ao facer ping na pasarela de rede non predeterminada</translation> +<translation id="4487489714832036847">Os Chromebooks utilizan aplicacións en lugar de software tradicional. Obtén aplicacións de produtividade, entretemento e moito máis.</translation> <translation id="4488502501195719518">Queres borrar todos os datos?</translation> <translation id="4493468155686877504">Recomendado (<ph name="INSTALL_SIZE" />)</translation> <translation id="4495419450179050807">Non mostrar nesta páxina</translation> @@ -2897,6 +2921,7 @@ <translation id="4522570452068850558">Detalles</translation> <translation id="4522600456902129422">Seguir permitindo que este sitio vexa o contido do portapapeis</translation> <translation id="4524832533047962394">O modo de inscrición indicado non é compatible con esta versión do sistema operativo. Asegúrate de dispoñer da versión máis recente.</translation> +<translation id="4527186207340858212">Queres crear un novo perfil para o traballo?</translation> <translation id="452750746583162491">Revisar os datos sincronizados</translation> <translation id="4530494379350999373">Orixe</translation> <translation id="4532646538815530781">Este sitio usa sensores de movemento.</translation> @@ -2918,6 +2943,7 @@ <translation id="4546692474302123343">Entrada de voz do Asistente de Google</translation> <translation id="4547659257713117923">Non hai pestanas doutros dispositivos</translation> <translation id="4547672827276975204">Definir automaticamente</translation> +<translation id="4548483925627140043">Non se atopou o sinal</translation> <translation id="4549791035683739768">A túa chave de seguranza non ten impresións dixitais almacenadas</translation> <translation id="4551763574344810652">Preme <ph name="MODIFIER_KEY_DESCRIPTION" /> para desfacer a acción</translation> <translation id="4552089082226364758">Flash</translation> @@ -2947,6 +2973,9 @@ <translation id="4573515936045019911">Necesítase conexión de rede para actualizar Linux. Conéctate a Internet e téntao de novo.</translation> <translation id="457386861538956877">Máis...</translation> <translation id="4574741712540401491">• <ph name="LIST_ITEM_TEXT" /></translation> +<translation id="457564749856982089">Se lle engades unha conta de centro educativo a un perfil, o usuario poderá iniciar sesión como estudante de forma sinxela en determinados sitios web, extensións e aplicacións sen que deixen de aplicarse os controis parentais. O teu fillo ou filla non obterá acceso aos marcadores, aos contrasinais nin a outros datos do navegador sincronizados coa conta do centro educativo.<br><br> +Se o neno ou nena utiliza un Chromebook na clase e queres recrear a experiencia escolar na casa para asegurarte de que teña acceso a todas as tarefas escolares necesarias, pecha sesión nesta conta de Family Link e inicia sesión na conta do centro educativo desde a páxina de contas de Chrome OS (non esquezas que non se aplicarán os controis parentais de Family Link).<br><br> +Se o teu fillo ou filla non utiliza un Chromebook na clase ou se prefires xestionar a súa experiencia na casa con Family Link, fai clic no botón Seguinte que aparece a continuación para engadir unha conta de centro escolar a este perfil.</translation> <translation id="4576541033847873020">Sincronizar dispositivo Bluetooth</translation> <translation id="4579453506923101210">Esquecer teléfono conectado</translation> <translation id="4579581181964204535">Non se puido emitir <ph name="HOST_NAME" />.</translation> @@ -2954,6 +2983,7 @@ <translation id="4582563038311694664">Restablecer toda a configuración</translation> <translation id="4585793705637313973">Editar páxina</translation> <translation id="4586275095964870617">Non se puido abrir <ph name="URL" /> nun navegador alternativo. Ponte en contacto co teu administrador do sistema.</translation> +<translation id="458794348635939462">Produciuse un erro ao resolver todos os hosts</translation> <translation id="4589713469967853491">Os rexistros escribíronse correctamente no directorio Descargas.</translation> <translation id="4590324241397107707">Almacenamento da base de datos</translation> <translation id="4592891116925567110">Aplicación para debuxar co lapis óptico</translation> @@ -3084,6 +3114,7 @@ <translation id="4763408175235639573">Establecéronse as seguintes cookies cando visualizaches esta páxina</translation> <translation id="4765582662863429759">Permite que a aplicación Mensaxes Android transmita as mensaxes do teu teléfono ao Chromebook</translation> <translation id="4768332406694066911">Tes certificados destas organizacións que te identifican</translation> +<translation id="477647109558161443">Crear acceso directo do escritorio</translation> <translation id="4776917500594043016">Contrasinal de <ph name="USER_EMAIL_ADDRESS" /></translation> <translation id="4777825441726637019">Play Store</translation> <translation id="4777943778632837590">Configurar servidores de nomes de redes</translation> @@ -3336,6 +3367,7 @@ <translation id="5089810972385038852">Estado</translation> <translation id="5094721898978802975">Comunicarse con aplicacións nativas de cooperación</translation> <translation id="5097002363526479830">Erro ao conectar coa rede "<ph name="NAME" />": <ph name="DETAILS" /></translation> +<translation id="5097649414558628673">Ferramenta: <ph name="PRINT_NAME" /></translation> <translation id="5097874180538493929">Facer clic automaticamente cando se detén o cursor</translation> <translation id="5101042277149003567">Abrir todos os marcadores</translation> <translation id="5101839224773798795">Facer clic automaticamente cando se deteña o cursor</translation> @@ -3455,6 +3487,7 @@ <translation id="5249624017678798539">O navegador fallou antes de completar a descarga.</translation> <translation id="5250372599208556903"><ph name="SEARCH_ENGINE_NAME" /> utiliza a túa localización para proporcionarche contido local. Podes cambiar esta opción en <ph name="SETTINGS_LINK" />.</translation> <translation id="5252456968953390977">Itinerancia</translation> +<translation id="5252496130205799136">Queres utilizar a túa Conta de Google para gardar e completar contrasinais?</translation> <translation id="5252653240322147470">O PIN debe ter menos de <ph name="MAXIMUM" /> díxitos</translation> <translation id="5254368820972107711">Mostra os ficheiros que se eliminarán</translation> <translation id="52550593576409946">Non se puido iniciar a aplicación de quiosco.</translation> @@ -3553,6 +3586,7 @@ <translation id="5370819323174483825">Vo&lver cargar</translation> <translation id="5372529912055771682">O modo de inscrición fornecido non é compatible con esta versión do sistema operativo. Asegúrate de dispoñer da versión máis recente e téntao de novo.</translation> <translation id="5372579129492968947">Deixar de fixar a extensión</translation> +<translation id="5372659122375744710">A rede wifi non é segura</translation> <translation id="5376169624176189338">Fai clic para volver ou mantén premido para ver o historial</translation> <translation id="5376931455988532197">O ficheiro é demasiado grande</translation> <translation id="5377721922656071359">{COUNT,plural, =1{Enviáronse correctamente <ph name="ATTACHMENTS" /> a este dispositivo: <ph name="DEVICE_NAME" />}other{Enviáronse correctamente <ph name="ATTACHMENTS" /> a este dispositivo: <ph name="DEVICE_NAME" />}}</translation> @@ -3582,6 +3616,7 @@ <translation id="5414566801737831689">Ler as iconas dos sitios web que visitas</translation> <translation id="5417312524372586921">Temas do navegador</translation> <translation id="5419405654816502573">Voice Match</translation> +<translation id="5420274697768050645">Solicita que se poña un contrasinal para desbloquear o dispositivo, o que aumenta a seguranza</translation> <translation id="5420438158931847627">Determina a nitidez do texto e das imaxes</translation> <translation id="5422221874247253874">Punto de acceso</translation> <translation id="5422781158178868512">Non se puido recoñecer o teu dispositivo de almacenamento externo.</translation> @@ -3706,6 +3741,7 @@ <translation id="5548606607480005320">Revisión de seguranza</translation> <translation id="5551573675707792127">Teclado e introdución de texto</translation> <translation id="5553089923092577885">Asignacións de políticas de certificados</translation> +<translation id="5554403733534868102">Despois desta actualización, non terás que agardar por outras</translation> <translation id="5554489410841842733">Esta icona verase cando a extensión poida actuar na páxina actual.</translation> <translation id="5554720593229208774">Autoridade de certificación de correo electrónico</translation> <translation id="5556459405103347317">Volver cargar</translation> @@ -3719,6 +3755,7 @@ <translation id="5565735124758917034">Activo</translation> <translation id="5567989639534621706">Memorias caché das aplicacións</translation> <translation id="5568069709869097550">Non se pode iniciar sesión</translation> +<translation id="5571832155627049070">Personaliza o teu perfil</translation> <translation id="5572851009514199876">Abre Chrome e inicia sesión para que o navegador poida comprobar se tes permiso para acceder a este sitio.</translation> <translation id="5575473780076478375">Extensión do modo de incógnito: <ph name="EXTENSION_NAME" /></translation> <translation id="5575528586625653441">Produciuse un problema coa solicitude de rexistro de demostración.</translation> @@ -4118,6 +4155,7 @@ <translation id="6061882183774845124">Enviar ligazón aos teus dispositivos</translation> <translation id="6064217302520318294">Bloqueo de pantalla</translation> <translation id="6065289257230303064">Atributos de directorio da entidade do certificado</translation> +<translation id="6069464830445383022">A túa Conta de Google permite iniciar sesión no Chromebook</translation> <translation id="6069671174561668781">Establecer fondo de pantalla</translation> <translation id="6071181508177083058">confirma o contrasinal</translation> <translation id="6071576563962215370">O sistema non puido establecer o bloqueo de atributos do tempo de instalación do dispositivo.</translation> @@ -4160,6 +4198,7 @@ <translation id="6104311680260824317">O dispositivo non se puido vincular ao dominio. O servidor non admite os tipos especificados de encriptación Kerberos. Para configurar a encriptación, marca Máis opcións.</translation> <translation id="6104796831253957966">A cola da impresora está chea</translation> <translation id="6105994589138235234">Sincronización do navegador Chrome</translation> +<translation id="6108689792487843350">Non se puido acceder á pasarela</translation> <translation id="6111972606040028426">Activar Asistente de Google</translation> <translation id="6112294629795967147">Tocar para cambiar o tamaño</translation> <translation id="6112727384379533756">Engadir tícket</translation> @@ -4220,6 +4259,7 @@ <translation id="6178664161104547336">Selecciona un certificado</translation> <translation id="6181431612547969857">Descarga bloqueada</translation> <translation id="6185132558746749656">Localización do dispositivo</translation> +<translation id="6191293864534840972">Os servidores de nomes teñen un formato incorrecto</translation> <translation id="6195446518998936840">Para configurar os controis parentais, o teu fillo ou filla debe ter unha Conta de Google que axudarás a xestionar. Podes definir límites de tempo diante da pantalla, aprobar ou bloquear sitios web e moito máis coa aplicación Family Link.</translation> <translation id="6195693561221576702">Este dispositivo non se pode configurar no modo de demostración sen conexión.</translation> <translation id="6196640612572343990">Bloquear cookies de terceiros</translation> @@ -4294,6 +4334,7 @@ <translation id="6270770586500173387">Enviar <ph name="BEGIN_LINK1" />información sobre o sistema e as aplicacións<ph name="END_LINK1" />, así como <ph name="BEGIN_LINK2" />métricas<ph name="END_LINK2" /></translation> <translation id="6272643420381259437">Produciuse un erro (<ph name="ERROR" />) ao descargar o plugin</translation> <translation id="6273677812470008672">Calidade</translation> +<translation id="6276210637549544171">O proxy <ph name="PROXY_SERVER" /> require un nome de usuario e un contrasinal.</translation> <translation id="6277105963844135994">Tempo de espera da rede</translation> <translation id="6277518330158259200">F&acer captura de pantalla</translation> <translation id="6278057325678116358">Utilizar GTK+</translation> @@ -4314,6 +4355,7 @@ <translation id="6298962879096096191">Utiliza Google Play para instalar aplicacións Android</translation> <translation id="630065524203833229">Sa&ír</translation> <translation id="6300718114348072351"><ph name="PRINTER_NAME" /> non se puido configurar automaticamente. Indica os detalles avanzados da impresora. <ph name="LINK_BEGIN" />Máis información<ph name="LINK_END" /></translation> +<translation id="6301076166764763868">Para separar a actividade de navegación persoal da de <ph name="EXISTING_USER" />, créalle un perfil novo a <ph name="NEW_USER" /></translation> <translation id="630292539633944562">Suxestións de información persoal</translation> <translation id="6305607932814307878">Política global:</translation> <translation id="6307990684951724544">Sistema ocupado</translation> @@ -4431,6 +4473,7 @@ <translation id="6451591602925140504">{NUM_PAGES,plural, =0{<ph name="PAGE_TITLE" />}=1{<ph name="PAGE_TITLE" /> e 1 pestana máis}other{<ph name="PAGE_TITLE" /> e # pestanas máis}}</translation> <translation id="6451689256222386810">Se esqueciches o teu contrasinal ou queres cambiar esta configuración, deberás <ph name="BEGIN_LINK" />restablecer a sincronización<ph name="END_LINK" />.</translation> <translation id="6452181791372256707">Rexeitar</translation> +<translation id="6452251728599530347">Completouse o <ph name="PERCENT" /> da operación</translation> <translation id="6452961788130242735">Houbo un problema de rede ou o dominio é incorrecto</translation> <translation id="6455264371803474013">En sitios específicos</translation> <translation id="6455894534188563617">&Novo cartafol</translation> @@ -4487,6 +4530,7 @@ <ph name="EVENT_NAME" /></translation> <translation id="6520876759015997832">Resultado da busca <ph name="LIST_POSITION" /> de <ph name="LIST_SIZE" />: <ph name="SEARCH_RESULT_TEXT" />. Preme Intro para acceder á sección.</translation> <translation id="652492607360843641">Estás utilizando unha rede <ph name="NETWORK_TYPE" />.</translation> +<translation id="6527081081771465939">Descoñécese o protocolo de seguranza da wifi</translation> <translation id="6527303717912515753">Compartir</translation> <translation id="6528513914570774834">Permitir que outros usuarios deste dispositivo utilicen esta rede</translation> <translation id="652948702951888897">Historial de Chrome</translation> @@ -4517,6 +4561,7 @@ <translation id="6556866813142980365">Refacer</translation> <translation id="6556903358015358733">Tema e fondo de pantalla</translation> <translation id="6557290421156335491">Os meus atallos</translation> +<translation id="6560151649238390891">Púxose a suxestión</translation> <translation id="6561560012278703671">Utilizar mensaxaría máis silenciosa (impide que as notificacións te interrompan)</translation> <translation id="6561726789132298588">intro</translation> <translation id="6562117348069327379">Almacena os rexistros do sistema no directorio Descargas.</translation> @@ -4602,6 +4647,7 @@ <translation id="6680442031740878064">Espazo dispoñible: <ph name="AVAILABLE_SPACE" /></translation> <translation id="6680650203439190394">Velocidade</translation> <translation id="6681668084120808868">Tirar foto</translation> +<translation id="6684827949542560880">Descargando última actualización</translation> <translation id="668599234725812620">Abrir Google Play</translation> <translation id="6686490380836145850">Pechar as pestanas situadas á dereita</translation> <translation id="6686817083349815241">Gardar o teu contrasinal</translation> @@ -4711,6 +4757,7 @@ <translation id="6812841287760418429">Manter os cambios</translation> <translation id="6817174620439930047">Preguntar cando un sitio queira utilizar mensaxes exclusivas do sistema para acceder aos dispositivos MIDI (recomendado)</translation> <translation id="6818198425579322765">Idioma da páxina que se quere traducir</translation> +<translation id="6818802132960437751">Protección antivirus integrada</translation> <translation id="682123305478866682">Emitir contido do escritorio</translation> <translation id="6823174134746916417">Tocar para facer clic do panel táctil</translation> <translation id="6823506025919456619">Precisas iniciar sesión en Chrome para ver os teus dispositivos</translation> @@ -5166,6 +5213,7 @@ <translation id="7385854874724088939">Produciuse un erro ao tentar imprimir. Comproba a túa impresora e téntao de novo.</translation> <translation id="7385896526023870365">Esta extensión non ten ningún acceso adicional ao sitio.</translation> <translation id="7388044238629873883">Xa case remataches.</translation> +<translation id="7388209873137778229">Só se mostran os dispositivos compatibles.</translation> <translation id="7392118418926456391">Erro na análise antivirus</translation> <translation id="7392915005464253525">R&eabrir a ventá pechada</translation> <translation id="7396017167185131589">Os cartafoles compartidos aparecerán aquí</translation> @@ -5189,6 +5237,7 @@ <translation id="7415454883318062233">Completouse a configuración</translation> <translation id="7416362041876611053">Erro de rede descoñecido.</translation> <translation id="741906494724992817">Esta aplicación non require permisos especiais.</translation> +<translation id="7420817660256886596">O proxy <ph name="PROXY" /> require a túa autenticación cun nome de usuario e cun contrasinal</translation> <translation id="742130257665691897">Quitáronse os marcadores</translation> <translation id="7421925624202799674">&Ver fonte da páxina</translation> <translation id="7422192691352527311">Preferencias...</translation> @@ -5355,6 +5404,7 @@ <translation id="7631205654593498032">Ao conectar os teus dispositivos, aceptas que o teu <ph name="DEVICE_TYPE" /> poida:</translation> <translation id="7631887513477658702">&Abrir sempre ficheiros deste tipo</translation> <translation id="7632948528260659758">As seguintes aplicacións de quiosco non lograron actualizarse:</translation> +<translation id="7633724038415831385">Esta é a única ocasión na que deberás agardar para efectuar unha actualización. Nos Chromebooks, as actualizacións realízanse en segundo plano.</translation> <translation id="7634566076839829401">Produciuse un erro. Téntao de novo.</translation> <translation id="763632859238619983">Non permitir os sitios instalen indicadores de pago</translation> <translation id="7636919061354591437">Instalar neste dispositivo</translation> @@ -5448,6 +5498,7 @@ <translation id="7737115349420013392">Vinculando co dispositivo (<ph name="DEVICE_NAME" />)...</translation> <translation id="7737238973539693982">Eliminar Linux (beta)</translation> <translation id="7740996059027112821">Estándar</translation> +<translation id="7741721175294046818">Non se puido establecer conexión co proxy. Téntao de novo</translation> <translation id="774377079771918250">Escolle onde gardar o contido</translation> <translation id="7744047395460924128">Ver o teu historial de impresión</translation> <translation id="7744192722284567281">O contrasinal viuse implicado nunha violación da seguranza dos datos</translation> @@ -5632,6 +5683,7 @@ <translation id="7933314993013528982">{NUM_TABS,plural, =1{Activar o son do sitio}other{Activar o son dos sitios}}</translation> <translation id="7933634003144813719">Xestionar cartafoles compartidos</translation> <translation id="793531125873261495">Produciuse un erro ao descargar a máquina virtual. Téntao de novo.</translation> +<translation id="7936303884198020182">Non se atoparon servidores de nomes</translation> <translation id="7938594894617528435">Actualmente sen conexión</translation> <translation id="7939062555109487992">Opcións avanzadas</translation> <translation id="7939412583708276221">Manter igualmente</translation> @@ -5692,6 +5744,7 @@ <translation id="8002670234429879764">Xa non está dispoñible: <ph name="PRINTER_NAME" /></translation> <translation id="8004582292198964060">Navegador</translation> <translation id="8005600846065423578">Permitir sempre que <ph name="HOST" /> vexa o contido do portapapeis</translation> +<translation id="8006143138282906848">Quitar este perfil</translation> <translation id="8008356846765065031">Desconectouse Internet. Comproba a conexión.</translation> <translation id="8009225694047762179">Xestionar contrasinais</translation> <translation id="8012647001091218357">Non se puido contactar cos teus pais neste momento. Téntao de novo.</translation> @@ -5757,9 +5810,11 @@ <translation id="8084114998886531721">Gardouse o contrasinal</translation> <translation id="8086015605808120405">Configurando <ph name="PRINTER_NAME" />...</translation> <translation id="8086442853986205778">Configurar <ph name="PRINTER_NAME" /></translation> +<translation id="8086550884324762001">Exemplo: traballo, persoal, nenos ou un nome</translation> <translation id="80866457114322936">{NUM_FILES,plural, =1{Este ficheiro está encriptado. Pídelle ao seu propietario que o desencripte.}other{Algúns destes ficheiros están encriptados. Pídelle ao seu propietario que os desencripte.}}</translation> <translation id="808894953321890993">Cambiar contrasinal</translation> <translation id="8090234456044969073">Ler unha lista dos sitios web que visitas con máis frecuencia</translation> +<translation id="8092681102116274204">As opcións de configuración cos comodíns "*" xa non están dispoñibles. Ponte en contacto co programador de extensións ou co teu administrador para <ph name="BEGIN_LINK" />cambiar estas opcións de configuración<ph name="END_LINK" />.</translation> <translation id="8093359998839330381">O complemento <ph name="PLUGIN_NAME" /> non responde</translation> <translation id="8095105960962832018"><ph name="BEGIN_PARAGRAPH1" />Crear copia de seguranza en Google Drive. Restaura facilmente os teus datos ou cambia de dispositivo en calquera momento. A copia de seguranza inclúe os datos das aplicacións.<ph name="END_PARAGRAPH1" /> <ph name="BEGIN_PARAGRAPH2" />As túas copias de seguranza cárganse en Google e encríptanse co contrasinal da túa Conta de Google.<ph name="END_PARAGRAPH2" /> @@ -5812,6 +5867,7 @@ <translation id="8146177459103116374">Se xa te rexistraches neste dispositivo, podes <ph name="LINK2_START" />iniciar sesión como usuario existente<ph name="LINK2_END" />.</translation> <translation id="8146793085009540321">Produciuse un erro no inicio de sesión. Ponte en contacto co administrador ou téntao de novo.</translation> <translation id="8148760431881541277">Limitar inicio de sesión</translation> +<translation id="8151579390896831136">Personalizar o teu perfil (por exemplo, o seu nome)</translation> <translation id="8151638057146502721">Configurar</translation> <translation id="8152091997436726702">Superouse o tempo de espera do rexistro da impresora. Para rexistrar unha impresora, debes confirmar o rexistro desta.</translation> <translation id="8154790740888707867">Non hai ningún ficheiro</translation> @@ -5870,6 +5926,7 @@ <translation id="8226742006292257240">A continuación atópase o contrasinal TPM xerado aleatoriamente que se asignou ao teu ordenador:</translation> <translation id="8227119283605456246">Anexar ficheiro</translation> <translation id="8230134520748321204">Queres gardar o contrasinal de <ph name="ORIGIN" />?</translation> +<translation id="8230672074305416752">Produciuse un erro ao facer ping na pasarela de rede predeterminada</translation> <translation id="8234795456569844941">Axuda aos nosos enxeñeiros a solucionar este problema. Explícanos o que sucedeu antes de que recibises a mensaxe de erro do perfil.</translation> <translation id="8236917170563564587">Mellor compartir esta pestana</translation> <translation id="8237647586961940482">Rosa escuro e vermello</translation> @@ -5930,6 +5987,7 @@ <translation id="8288032458496410887">Desinstalar a aplicación <ph name="APP" />…</translation> <translation id="8289128870594824098">Tamaño do disco</translation> <translation id="8291967909914612644">País do fornecedor de orixe</translation> +<translation id="8293206222192510085">Engadir marcador</translation> <translation id="8294431847097064396">Fonte</translation> <translation id="8297006494302853456">Feble</translation> <translation id="8299319456683969623">Actualmente estás sen conexión.</translation> @@ -5979,6 +6037,7 @@ <translation id="8363095875018065315">estable</translation> <translation id="8363142353806532503">Bloqueouse o micrófono</translation> <translation id="8363763184161554204">concedeuse o permiso: <ph name="PERMISSION" /></translation> +<translation id="8364946094152050673">Os servidores de nomes están baleiros</translation> <translation id="8366396658833131068">Restableceuse a túa conectividade de rede. Selecciona unha rede diferente ou preme o botón "Continuar" a continuación para iniciar a túa aplicación de quiosco.</translation> <translation id="8368027906805972958">Dispositivo descoñecido ou non compatible (<ph name="DEVICE_ID" />)</translation> <translation id="8368859634510605990">&Abrir todos os marcadores</translation> @@ -6064,8 +6123,10 @@ <translation id="8472623782143987204">teclas de hardware</translation> <translation id="8473863474539038330">Enderezos e moito máis</translation> <translation id="8475313423285172237">Outro programa do teu ordenador engadiu unha extensión que pode cambiar o funcionamento de Chrome.</translation> +<translation id="8475690821716466388">A rede wifi está protexida co protocolo WEP PSK, que non é moi seguro</translation> <translation id="8477241577829954800">Substituído</translation> <translation id="8477384620836102176">&Xeral</translation> +<translation id="8477551185774834963">A latencia do DNS supera lixeiramente o límite permitido</translation> <translation id="8480082892550707549">Aínda que xa descargases os ficheiros deste sitio antes, é posible que o sitio non sexa seguro (estea pirateado) de forma temporal. Tenta descargar este ficheiro máis tarde.</translation> <translation id="8480869669560681089">Dispositivo descoñecido de <ph name="VENDOR_NAME" /></translation> <translation id="8481187309597259238">Confirma o permiso do USB</translation> @@ -6117,6 +6178,7 @@ <translation id="8546930481464505581">Personalizar a barra táctil</translation> <translation id="8547013269961688403">Activar a lupa de pantalla completa</translation> <translation id="85486688517848470">Mantén premida a tecla da busca para cambiar o comportamento das teclas da fila superior</translation> +<translation id="8549316893834449916">Usarás a túa Conta de Google (a mesma que utilizas para Gmail, Drive ou YouTube, entre outros servizos) para iniciar sesión no Chromebook.</translation> <translation id="8551388862522347954">Licenzas</translation> <translation id="8551588720239073785">Configuración de data e hora</translation> <translation id="8553342806078037065">Xestionar outras persoas</translation> @@ -6255,6 +6317,7 @@ <translation id="8720200012906404956">Buscando unha rede de telefonía móbil. <ph name="BEGIN_LINK" />Máis información<ph name="END_LINK" /></translation> <translation id="8720816553731218127">Esgotouse o tempo de inicio dos atributos de tempo de instalación.</translation> <translation id="8722912030556880711">Enviar datos de uso e de diagnóstico. Este dispositivo envía automaticamente datos de diagnóstico e de uso do dispositivo e das aplicacións a Google. Esta información permitirá aumentar a estabilidade do sistema e das aplicacións, e realizar outras melloras. Algúns datos agregados tamén serán útiles para as aplicacións e os socios de Google, como os programadores de Android. Se está activada a opción Actividade web e das aplicacións adicional, estes datos pódense gardar na túa Conta de Google. <ph name="BEGIN_LINK2" />Máis información<ph name="END_LINK2" /></translation> +<translation id="8723108084122415655">A rede non predeterminada supera o límite de latencia</translation> <translation id="8724405322205516354">Cando vexas esta icona, utiliza a impresión dixital para efectuar a identificación ou autorizar as compras.</translation> <translation id="8724409975248965964">Engadiuse a impresión dixital</translation> <translation id="8724859055372736596">Mo&strar no cartafol</translation> @@ -6432,6 +6495,7 @@ <translation id="8909833622202089127">O sitio está facendo un seguimento da túa localización</translation> <translation id="8910146161325739742">Comparar a túa pantalla</translation> <translation id="8910222113987937043">Os cambios nos marcadores, no historial, nos contrasinais e noutras opcións de configuración deixarán de sincronizarse coa túa conta de Google. Non obstante, os teus datos actuais permanecerán almacenados na túa conta de Google e poden xestionarse a través do <ph name="BEGIN_LINK" />Panel de control de Google<ph name="END_LINK" />.</translation> +<translation id="8910721771319628100">A rede predeterminada supera o límite de latencia</translation> <translation id="8912362522468806198">Conta de Google</translation> <translation id="8912793549644936705">Estricar</translation> <translation id="8912810933860534797">Activar a exploración automática</translation> @@ -6535,6 +6599,7 @@ <translation id="9031549947500880805">Facer copia de seguranza en Drive. Restaura os teus datos facilmente ou cambia de dispositivo en calquera momento. A túa copia de seguranza inclúe os datos das aplicacións.</translation> <translation id="9033765790910064284">Continuar igualmente</translation> <translation id="9033857511263905942">&Pegar</translation> +<translation id="9037818663270399707">A túa conexión non é privada para todo o tráfico de rede</translation> <translation id="9037965129289936994">Mostrar orixinal</translation> <translation id="9039014462651733343">{NUM_ATTEMPTS,plural, =1{Quédache un intento.}other{Quédanche # intentos.}}</translation> <translation id="9039663905644212491">PEAP</translation>
diff --git a/chrome/app/resources/generated_resources_gu.xtb b/chrome/app/resources/generated_resources_gu.xtb index 58df5a93..c659b3f 100644 --- a/chrome/app/resources/generated_resources_gu.xtb +++ b/chrome/app/resources/generated_resources_gu.xtb
@@ -329,6 +329,7 @@ <translation id="1383876407941801731">શોધો</translation> <translation id="1386387014181100145">હેલો.</translation> <translation id="1386791642444521222">વાસ્તવિક સિમને સક્રિય કરો</translation> +<translation id="1387519831959169718">તમારું બ્રાઉઝિંગ અલગ રાખવા માટે તમે <ph name="NEW_USER" /> માટે નવી પ્રોફાઇલ બનાવી શકો છો</translation> <translation id="138784436342154190">ડિફૉલ્ટ સ્ટાર્ટઅપ પૃષ્ઠને પુનઃસ્થાપિત કરીએ?</translation> <translation id="1388728792929436380">અપડેટ પૂર્ણ થશે ત્યારે તમારું <ph name="DEVICE_TYPE" /> ફરી શરૂ થશે.</translation> <translation id="1390548061267426325">નિયમિત ટૅબ તરીકે ખોલો</translation> @@ -343,6 +344,7 @@ <translation id="139911022479327130">તમારા ફોનને અનલૉક કરો અને કન્ફર્મ કરો કે તે તમે જ છો</translation> <translation id="1399511500114202393">કોઈ વપરાશકર્તા પ્રમાણપત્ર નથી</translation> <translation id="1401308693935339022">સ્થાનનો ઉપયોગ કરો. સ્થાનની પરવાનગી ધરાવતી ઍપ અને સેવાઓને આ ડિવાઇસના સ્થાનનો ઉપયોગ કરવાની મંજૂરી આપો. Google સ્થાનનો ડેટા સમયાંતરે એકત્રિત કરી શકે છે અને અનામી રીતે સ્થાન સચોટતા અને સ્થાન-આધારિત સેવાઓને બહેતર બનાવવા માટે તેનો ઉપયોગ કરી શકે છે.</translation> +<translation id="1403222014593521787">પ્રૉક્સી સાથે કનેક્ટ કરી શકાયું નથી</translation> <translation id="140520891692800925"><ph name="PROFILE_DISPLAY_NAME" /> (નિરીક્ષિત)</translation> <translation id="1405779994569073824">ક્રૅશ થયું</translation> <translation id="1406500794671479665">ચકાસી રહ્યું છે...</translation> @@ -476,6 +478,7 @@ <translation id="1555130319947370107">વાદળી</translation> <translation id="1556537182262721003">એક્સટેંશન ડિરેક્ટરીને પ્રોફાઇલમાં ખસેડી શકાઈ નથી.</translation> <translation id="155865706765934889">Touchpad</translation> +<translation id="1563702743503072935">તમે સાઇન ઇન કરેલું હશે ત્યારે તમારા Google એકાઉન્ટમાં રહેલા પાસવર્ડ આ ડિવાઇસ પર પણ ઉપલબ્ધ થશે</translation> <translation id="1566049601598938765">વેબસાઇટ</translation> <translation id="15662109988763471">પસંદ કરેલું પ્રિન્ટર ઉપલબ્ધ નથી અથવા યોગ્ય રીતે ઇન્સ્ટૉલ કરેલું નથી. તમારું પ્રિન્ટર ચેક કરો અથવા બીજું પ્રિન્ટર પસંદ કરી જુઓ.</translation> <translation id="1567387640189251553">તમે છેલ્લે પાસવર્ડ દાખલ કર્યો, ત્યાર પછી એક અલગ કીબોર્ડ કનેક્ટ કરવામાં આવ્યું છે. તે તમારા કીસ્ટ્રોકની ચોરી કરવાનો પ્રયાસ કરતું હોઈ શકે છે.</translation> @@ -517,7 +520,6 @@ <translation id="1608668830839595724">પસંદ કરેલી આઇટમ માટે વધુ ક્રિયાઓ</translation> <translation id="161042844686301425">સ્યાન</translation> <translation id="1611432201750675208">તમારું ડિવાઇસ લૉક કરેલું છે</translation> -<translation id="1611584202130317952">જોગવાઈકારી પ્રવાહ અવરોધાયો. કૃપા કરીને ફરી પ્રયાસ કરો અથવા તમારા ઉપકરણના માલિક અથવા વ્યવસ્થાપકનો સંપર્ક કરો.</translation> <translation id="1614511179807650956">બની શકે છે કે તમે તમારી મળેલી મોબાઇલ ડેટા લિમિટનો ઉપયોગ કરી લીધો હોય. વધુ ડેટા ખરીદવા માટે <ph name="NAME" /> ઍક્ટિવેશન પોર્ટલની મુલાકાત લો</translation> <translation id="161460670679785907">તમારો ફોન શોધવામાં અસમર્થ</translation> <translation id="1616206807336925449">આ એક્સટેન્શનને કોઈ વિશિષ્ટ પરવાનગીઓની જરૂર નથી.</translation> @@ -902,6 +904,7 @@ <translation id="2080070583977670716">વધુ સેટિંગ્સ</translation> <translation id="2081816110395725788">બૅટરી પર હોય, ત્યારે પાવર નિષ્ક્રિય કરો</translation> <translation id="2082187087049518845">ગ્રૂપ ટૅબ</translation> +<translation id="2082510809738716738">થીમ માટે રંગ પસંદ કરો</translation> <translation id="2087822576218954668">પ્રિન્ટ: <ph name="PRINT_NAME" /></translation> <translation id="2088690981887365033">VPN નેટવર્ક</translation> <translation id="208928984520943006">કોઈપણ સમયે હોમસ્ક્રીન મેળવવા માટે, નીચેથી ઉપરની તરફ સ્વાઇપ કરો.</translation> @@ -956,6 +959,7 @@ <translation id="2148219725039824548">શેર માઉન્ટ કરવામાં ભૂલ આવી. નેટવર્ક પર ઉલ્લેખિત શેર મળ્યું નથી.</translation> <translation id="2148756636027685713">ફોર્મેટ કરવું સમાપ્ત</translation> <translation id="2148892889047469596">ટેબ કાસ્ટ કરો</translation> +<translation id="2149973817440762519">બુકમાર્કમાં ફેરફાર કરો</translation> <translation id="2150139952286079145">ગંતવ્યો શોધો</translation> <translation id="2150661552845026580">"<ph name="EXTENSION_NAME" />" ઉમેરીએ?</translation> <translation id="2151576029659734873">અમાન્ય ટૅબ અનુક્રમણિકા દાખલ કરી.</translation> @@ -1052,6 +1056,7 @@ <translation id="2256115617011615191">હવે ફરીથી પ્રારંભ કરો</translation> <translation id="225614027745146050">સ્વાગત છે</translation> <translation id="225692081236532131">સક્રિયતાની સ્થિતિ</translation> +<translation id="2257053455312861282">સ્કૂલનું એકાઉન્ટ ઉમેરવાથી, માતાપિતા યોગ્ય નિયંત્રણો હેઠળ કાર્ય થતું હોવા છતાં, વિદ્યાર્થી તરીકે વેબસાઇટ, એક્સ્ટેન્શન અને ઍપમાં સરળતાથી સાઇન-ઇન કરી શકાય છે.</translation> <translation id="2261323523305321874">તમારા વ્યવસ્થાપકે સિસ્ટમ વ્યાપી ફેરફાર કર્યો છે જે અમુક જૂની પ્રોફાઇલને બંધ કરે છે.</translation> <translation id="2262332168014443534">લાઇટ મોડ, HTTPS સહિત બધા પેજ પર બ્રાઉઝ કરવાનું વધુ ઝડપી બનાવે છે.</translation> <translation id="2262477216570151239">પુનરાવર્તન પહેલાં વિલંબ</translation> @@ -1966,6 +1971,7 @@ <translation id="3396800784455899911">"સ્વીકારો અને ચાલુ રાખો" બટન પર ક્લિક કરીને, તમે આ Google સેવાઓ માટે ઉપર વર્ણવેલી પ્રક્રિયા સાથે સંમત થાઓ છો.</translation> <translation id="3399432415385675819">સૂચનાઓ અક્ષમ કરવામાં આવશે</translation> <translation id="3400390787768057815"><ph name="WIDTH" /> x <ph name="HEIGHT" /> (<ph name="REFRESH_RATE" /> હર્ટ્ઝ) - ઇન્ટર્લેસ</translation> +<translation id="3402255108239926910">અવતાર પસંદ કરો</translation> <translation id="3402585168444815892">ડેમો મોડ માટે નોંધણી કરાવી રહ્યાં છીએ</translation> <translation id="340282674066624"><ph name="DOWNLOAD_RECEIVED" />, <ph name="TIME_LEFT" /></translation> <translation id="3404065873681873169">આ સાઇટ માટે કોઈ પાસવર્ડ સાચવેલા નથી</translation> @@ -1993,6 +1999,7 @@ <translation id="3428747202529429621">તમને Chrome પર સલામત રાખે છે અને જ્યારે તમે સાઇન ઇન થયા હો, ત્યારે Googleની અન્ય ઍપમાં તમારી સુરક્ષા બહેતર બનાવવામાં ઉપયોગમાં લેવાઈ શકે છે</translation> <translation id="3428800329481094896">Linux કન્ટેનર ssh કી મેળવી રહ્યાં છીએ</translation> <translation id="3429275422858276529">થોડા સમય પછી આ પેજને સરળતાથી શોધવા માટે તેને બુકમાર્ક કરો</translation> +<translation id="3431370546335300761">પ્રૉક્સી સાથે કનેક્ટ કરવા માટે સાઇન ઇન કરો</translation> <translation id="3432227430032737297">બતાવેલ તમામ દૂર કરો</translation> <translation id="3432757130254800023">સ્થાનિક નેટવર્ક પર બતાવવા માટે ઑડિયો અને વીડિયો મોકલો</translation> <translation id="3432762828853624962">શેર કરેલા કારીગરો</translation> @@ -2374,6 +2381,7 @@ <translation id="3841964634449506551">પાસવર્ડ અમાન્ય</translation> <translation id="3842552989725514455">Serif ફૉન્ટ</translation> <translation id="3843464315703645664">આંતરિક રીતે વ્હાઇટલિસ્ટેડ</translation> +<translation id="3844888638014364087">ઇમોજી ઉમેર્યું</translation> <translation id="3846116211488856547">વેબસાઇટ, Android ઍપ અને બીજા ઘણા માટે વિકાસના સાધનો મેળવો. Linux ઇન્સ્ટૉલ કરવાથી <ph name="DOWNLOAD_SIZE" /> ડેટા ડાઉનલોડ થશે.</translation> <translation id="3847319713229060696">વેબ પરની દરેક વ્યક્તિ માટે સુરક્ષાને બહેતર બનાવવા સહાય કરો</translation> <translation id="385051799172605136">પાછળ</translation> @@ -2677,6 +2685,7 @@ <translation id="4232375817808480934">Kerberosની ગોઠવણી કરો</translation> <translation id="4235200303672858594">સમગ્ર સ્ક્રીન</translation> <translation id="4235965441080806197">સાઇન ઇન રદ કરો</translation> +<translation id="4237773362828263530">હવે "*" વાઇલ્ડ કાર્ડ ધરાવતા સેટિંગને સપોર્ટ અપાતો નથી. <ph name="BEGIN_LINK" />આ સેટિંગ બદલવા<ph name="END_LINK" /> માટે તમારા વ્યવસ્થાપકનો સંપર્ક કરો.</translation> <translation id="4242145785130247982">એકથી વધુ ક્લાયન્ટ પ્રમાણપત્રોને સપોર્ટ આપવામાં આવતો નથી</translation> <translation id="4242533952199664413">સેટિંગ્સ ખોલો</translation> <translation id="4242577469625748426">આ ઉપકરણ પર નીતિ સેટિંગ્સ ઇન્સ્ટોલ કરવામાં નિષ્ફળ ગયું: <ph name="VALIDATION_ERROR" />.</translation> @@ -2787,6 +2796,7 @@ <translation id="4384312707950789900">પસંદગીમાં ઉમેરો</translation> <translation id="4384652540891215547">એક્સટેન્શન સક્રિય કરો</translation> <translation id="438503109373656455">સારાતોગા</translation> +<translation id="4385040356362222432">તમારા <ph name="NEW_USER" /> બ્રાઉઝિંગને તમારા <ph name="EXISTING_USER" /> બ્રાઉઝિંગથી અલગ રાખવા માટે, નવી પ્રોફાઇલ બનાવો</translation> <translation id="4387004326333427325">પ્રમાણીકરણ પ્રમાણપત્ર રિમોટલી નકારવામાં આવ્યું છે</translation> <translation id="4387890294700445764">ચેડાં કરાયેલા પાસવર્ડ</translation> <translation id="4389091756366370506">વપરાશકર્તા <ph name="VALUE" /></translation> @@ -2894,6 +2904,7 @@ <translation id="4522570452068850558">વિગતો</translation> <translation id="4522600456902129422">આ સાઇટને ક્લિપબોર્ડ જોવાની મંજૂરી આપવાનું ચાલુ રાખો</translation> <translation id="4524832533047962394">પૂરો પાડેલો નોંધણી મોડ ઑપરેટિંગ સિસ્ટમનાં આ વર્ઝન દ્વારા સમર્થિત નથી. કૃપા કરીને ખાતરી કરો કે તમે એકદમ નવું વર્ઝન ચલાવી રહ્યાં છો અને ફરી પ્રયાસ કરો.</translation> +<translation id="4527186207340858212">ઑફિસ માટે નવી પ્રોફાઇલ બનાવવી છે?</translation> <translation id="452750746583162491">તમારા સિંક કરેલા ડેટાનો રિવ્યૂ કરો</translation> <translation id="4530494379350999373">મૂળ</translation> <translation id="4532646538815530781">આ સાઇટ મોશન સેન્સરનો ઉપયોગ કરી રહી છે.</translation> @@ -2944,6 +2955,9 @@ <translation id="4573515936045019911">Linux અપગ્રેડ કરવા માટે નેટવર્ક કનેક્શન આવશ્યક છે. કૃપા કરીને ઇન્ટરનેટથી કનેક્ટ થાઓ અને ફરી પ્રયાસ કરો.</translation> <translation id="457386861538956877">વધુ...</translation> <translation id="4574741712540401491">• <ph name="LIST_ITEM_TEXT" /></translation> +<translation id="457564749856982089">પ્રોફાઇલમાં સ્કૂલનું એકાઉન્ટ ઉમેરવાથી, માતાપિતા યોગ્ય નિયંત્રણો હેઠળ કાર્ય થતું હોવા છતાં, વિદ્યાર્થી તરીકે વેબસાઇટ, એક્સ્ટેન્શન અને ઍપમાં સરળતાથી સાઇન-ઇન કરી શકાય છે. આ બાળકને સ્કૂલના એકાઉન્ટ સાથે સિંક કરેલા બુકમાર્ક, પાસવર્ડ અથવા અન્ય બ્રાઉઝર ડેટાનો ઍક્સેસ આપતું નથી.<br><br> + જો તમારું બાળક સ્કૂલમાં Chromebookનો ઉપયોગ કરતું હોય અને તમે તમારા બાળકને બધા જરૂરી સ્કૂલવર્કનો ઍક્સેસ મળતો હોવાની ખાતરી કરવા માટે ઘરે શાળા જેવો અનુભવ રચવા ઇચ્છતા હો, તો કૃપા કરીને આ Family Link એકાઉન્ટમાંથી સાઇન આઉટ કરીને Chrome OS એકાઉન્ટ પેજમાંથી સ્કૂલના એકાઉન્ટમાં સાઇન ઇન કરો (નોંધ: Family Linkના માતાપિતા યોગ્ય નિયંત્રણો લાગુ થશે નહીં).<br><br> + જો તમારું બાળક સ્કૂલમાં Chromebookનો ઉપયોગ કરતું ન હોય અથવા તમે ઘરે Family Linkનો ઉપયોગ કરીને બાળકના એકાઉન્ટને મેનેજ કરવા ઇચ્છતા હો, તો આ પ્રોફાઇલમાં સ્કૂલનું એકાઉન્ટ ઉમેરવા માટે કૃપા કરીને નીચે આપેલા આગળ બટન પર ક્લિક કરો.</translation> <translation id="4576541033847873020">Bluetooth ડિવાઇસની જોડી કરો</translation> <translation id="4579453506923101210">કનેક્ટ કરેલા ફોનથી છૂટા પડો</translation> <translation id="4579581181964204535"><ph name="HOST_NAME" /> કાસ્ટ કરવામાં અસમર્થ.</translation> @@ -3081,6 +3095,7 @@ <translation id="4763408175235639573">જ્યારે તમે આ પેજ જોયું, ત્યારે નીચેની કુકી સેટ થઈ હતી</translation> <translation id="4765582662863429759">Android Messagesને તમારા ફોન પરથી તમારી Chromebook પર ટેક્સ્ટને પ્રસારિત કરવાની મંજૂરી આપે છે</translation> <translation id="4768332406694066911">તમારી પાસે આ સંસ્થાઓના પ્રમાણપત્ર છે કે જે તમને ઓળખે છે</translation> +<translation id="477647109558161443">ડેસ્કટૉપ શૉર્ટકટ બનાવો</translation> <translation id="4776917500594043016"><ph name="USER_EMAIL_ADDRESS" /> માટેનો પાસવર્ડ </translation> <translation id="4777825441726637019">Play સ્ટોર</translation> <translation id="4777943778632837590">નેટવર્કના નામ સર્વરને ગોઠવો</translation> @@ -3452,6 +3467,7 @@ <translation id="5249624017678798539">ડાઉનલોડ પૂર્ણ થતા પહેલાં બ્રાઉઝર ક્રેશ થયું.</translation> <translation id="5250372599208556903">તમને જગ્યાિક કન્ટેન્ટ પૂરું પાડવા માટે <ph name="SEARCH_ENGINE_NAME" /> તમારી જગ્યાનો ઉપયોગ કરે છે. તમે તેને <ph name="SETTINGS_LINK" />માં બદલી શકો છો.</translation> <translation id="5252456968953390977">રોમિંગ</translation> +<translation id="5252496130205799136">પાસવર્ડ સાચવવા અને ભરવા માટે તમારા Google એકાઉન્ટનો ઉપયોગ કરીએ?</translation> <translation id="5252653240322147470">PIN, <ph name="MAXIMUM" /> અંક કરતાં ઓછો હોવો આવશ્યક છે</translation> <translation id="5254368820972107711">દૂર કરવા માટેની ફાઇલો બતાવો</translation> <translation id="52550593576409946">કિઓસ્ક ઍપ્લિકેશન લોંચ કરી શકાઈ નથી.</translation> @@ -3716,6 +3732,7 @@ <translation id="5565735124758917034">સક્રિય</translation> <translation id="5567989639534621706">ઍપ્લિકેશન કૅશેસ</translation> <translation id="5568069709869097550">સાઇન ઇન કરી શકાતું નથી</translation> +<translation id="5571832155627049070">તમારી પ્રોફાઇલ કસ્ટમાઇઝ કરો</translation> <translation id="5572851009514199876">કૃપા કરીને Chrome ને પ્રારંભ કરો અને સાઇન ઇન કરો જેથી કરીને Chrome તપાસી શકે કે તમને આ સાઇટની ઍક્સેસની મંજૂરી છે કે કેમ.</translation> <translation id="5575473780076478375">છુપું એક્સ્ટેંશન: <ph name="EXTENSION_NAME" /></translation> <translation id="5575528586625653441">ડેમો નોંધણીની વિનંતીમાં સમસ્યા આવી.</translation> @@ -4293,6 +4310,7 @@ <translation id="6270770586500173387"><ph name="BEGIN_LINK1" />સિસ્ટમ અને ઍપ્લિકેશન માહિતી<ph name="END_LINK1" /> અને <ph name="BEGIN_LINK2" />મેટ્રિક્સ<ph name="END_LINK2" /> મોકલો</translation> <translation id="6272643420381259437">પ્લગ-ઇનને ડાઉનલોડ કરવામાં (<ph name="ERROR" />) ભૂલ આવી હતી</translation> <translation id="6273677812470008672">ગુણવત્તા</translation> +<translation id="6276210637549544171">પ્રૉક્સી <ph name="PROXY_SERVER" /> માટે વપરાશકર્તાનું નામ અને પાસવર્ડ જરૂરી છે.</translation> <translation id="6277105963844135994">નેટવર્ક ટાઇમઆઉટ</translation> <translation id="6277518330158259200">સ્ક્રીનશોટ &લો</translation> <translation id="6278057325678116358">GTK+ નો ઉપયોગ કરો</translation> @@ -4313,6 +4331,7 @@ <translation id="6298962879096096191">Android ઍપ્લિકેશનોને ઇન્સ્ટૉલ કરવા માટે Google Play નો ઉપયોગ કરો</translation> <translation id="630065524203833229">&બહાર નીકળો</translation> <translation id="6300718114348072351"><ph name="PRINTER_NAME" />ને ઑટોમૅટિક રીતે ગોઠવી શકાતું નથી. કૃપા કરીને વિગતવાર પ્રિન્ટરની વિગતો જણાવો. <ph name="LINK_BEGIN" />વધુ જાણો<ph name="LINK_END" /></translation> +<translation id="6301076166764763868">વ્યક્તિગત અને <ph name="EXISTING_USER" /> બ્રાઉઝિંગને અલગ પાડવા માટે, <ph name="NEW_USER" /> માટે નવી પ્રોફાઇલ બનાવો</translation> <translation id="630292539633944562">વ્યક્તિગત માહિતીના સૂચનો</translation> <translation id="6305607932814307878">વૈશ્વિક નીતિ:</translation> <translation id="6307990684951724544">સિસ્ટમ વ્યસ્ત છે</translation> @@ -4516,6 +4535,7 @@ <translation id="6556866813142980365">ફરી કરો</translation> <translation id="6556903358015358733">થીમ અને વૉલપેપર</translation> <translation id="6557290421156335491">મારા શૉર્ટકટ</translation> +<translation id="6560151649238390891">સૂચન ઉમેર્યું</translation> <translation id="6561560012278703671">ગુપચુપ મેસેજિંગનો ઉપયોગ કરો (તમને ખલેલ પહોંચાડે તેવા નોટિફિકેશન સંકેતોને બ્લૉક કરે છે)</translation> <translation id="6561726789132298588">Enter</translation> <translation id="6562117348069327379">સિસ્ટમના લૉગને ડાઉનલોડ ડિરેક્ટરીમાં સ્ટોર કરો.</translation> @@ -5165,6 +5185,7 @@ <translation id="7385854874724088939">છાપવાનો પ્રયાસ કરતી વખતે કાંઈક ખોટું થઈ ગયું. કૃપા કરી તમારું પ્રિન્ટ તપાસો અને ફરી પ્રયાસ કરો.</translation> <translation id="7385896526023870365">આ એક્સ્ટેંશનને કોઈ વધારાની સાઇટનો ઍક્સેસ નથી.</translation> <translation id="7388044238629873883">તમે લગભગ પૂર્ણ કરી લીધું છે!</translation> +<translation id="7388209873137778229">માત્ર સપોર્ટ હોય તેવા ડિવાઇસ બતાવાય છે.</translation> <translation id="7392118418926456391">વાયરસ સ્કેન નિષ્ફળ થયું</translation> <translation id="7392915005464253525">બંધ કરેલી વિંડો ફ&રીથી ખોલો</translation> <translation id="7396017167185131589">શેર કરેલા ફોલ્ડર અહીં દેખાશે</translation> @@ -5188,6 +5209,7 @@ <translation id="7415454883318062233">સેટઅપ પૂર્ણ થયું</translation> <translation id="7416362041876611053">અજ્ઞાત નેટવર્ક ભૂલ.</translation> <translation id="741906494724992817">આ એપ્લિકેશનને કોઈ ખાસ પરવાનગીઓની જરૂર નથી.</translation> +<translation id="7420817660256886596">પ્રૉક્સી <ph name="PROXY" /> માટે તમે વપરાશકર્તાના નામ અને પાસવર્ડ વડે પ્રમાણીકરણ કરાવો તે જરૂરી છે</translation> <translation id="742130257665691897">બુકમાર્ક કાઢી નાખ્યા</translation> <translation id="7421925624202799674">પૃષ્ઠ સ્રોત &જુઓ</translation> <translation id="7422192691352527311">પસંદગીઓ...</translation> @@ -5447,6 +5469,7 @@ <translation id="7737115349420013392">"<ph name="DEVICE_NAME" />"ની સાથે જોડી બનાવો…</translation> <translation id="7737238973539693982">Linux (બીટા) ડિલીટ કરો</translation> <translation id="7740996059027112821">માનક</translation> +<translation id="7741721175294046818">પ્રૉક્સી સાથે કનેક્ટ કરી શકાયું નથી, કૃપા કરીને ફરી પ્રયાસ કરો</translation> <translation id="774377079771918250">સાચવવા માટેનું સ્થાન પસંદ કરો</translation> <translation id="7744047395460924128">તમારો પ્રિન્ટીંગનો ઇતિહાસ જુઓ</translation> <translation id="7744192722284567281">ડેટા ઉલ્લંઘનમાં મળ્યો</translation> @@ -5685,6 +5708,7 @@ <translation id="8002670234429879764"><ph name="PRINTER_NAME" /> હવે ઉપલબ્ધ નથી</translation> <translation id="8004582292198964060">બ્રાઉઝર</translation> <translation id="8005600846065423578"><ph name="HOST" />ને હંમેશા ક્લિપબોર્ડ જોવા માટે મંજૂરી આપો</translation> +<translation id="8006143138282906848">આ પ્રોફાઇલ કાઢી નાખો</translation> <translation id="8008356846765065031">ઇન્ટરનેટ ડિસ્કનેક્ટ કર્યું. કૃપા કરીને તમારું ઇન્ટરનેટ કનેક્શન તપાસો.</translation> <translation id="8009225694047762179">બધા પાસવર્ડ મેનેજ કરો</translation> <translation id="8012647001091218357">અમે આ પળે તમારા વાલીઓ સુધી પહોંચી શક્યાં નથી. કૃપા કરીને ફરી પ્રયાસ કરો.</translation> @@ -5751,9 +5775,11 @@ <translation id="8084114998886531721">સાચવેલ પાસવર્ડ</translation> <translation id="8086015605808120405"><ph name="PRINTER_NAME" /> ને ગોઠવી રહ્યાં છે ...</translation> <translation id="8086442853986205778"><ph name="PRINTER_NAME" />નું સેટઅપ કરો</translation> +<translation id="8086550884324762001">ઉદાહરણ: ઑફિસ, વ્યક્તિગત, બાળકો અથવા કોઈ નામ</translation> <translation id="80866457114322936">{NUM_FILES,plural, =1{આ ફાઇલ એન્ક્રિપ્ટ કરેલી છે. તેના માલિકને તેને ડિક્રિપ્ટ કરવાનું કહો.}one{આમાંની કેટલીક ફાઇલો એન્ક્રિપ્ટ કરેલી છે. તેમના માલિકને તેને ડિક્રિપ્ટ કરવાનું કહો.}other{આમાંની કેટલીક ફાઇલો એન્ક્રિપ્ટ કરેલી છે. તેમના માલિકને તેને ડિક્રિપ્ટ કરવાનું કહો.}}</translation> <translation id="808894953321890993">પાસવર્ડ બદલો</translation> <translation id="8090234456044969073">તમારી મોટાભાગની અવારનાવર મુલાકાત લીધેલ વેબસાઇટ્સની સૂચિ વાંચો</translation> +<translation id="8092681102116274204">હવે "*" વાઇલ્ડ કાર્ડ ધરાવતા સેટિંગને સપોર્ટ અપાતો નથી. <ph name="BEGIN_LINK" />આ સેટિંગ બદલવા<ph name="END_LINK" /> માટે એક્સ્ટેન્શન ડેવલપરનો અથવા તમારા વ્યવસ્થાપકનો સંપર્ક કરો.</translation> <translation id="8093359998839330381"><ph name="PLUGIN_NAME" /> પ્રતિસાદ આપી રહ્યું નથી</translation> <translation id="8095105960962832018"><ph name="BEGIN_PARAGRAPH1" />Google ડ્રાઇવમાં બૅકઅપ લો. કોઈપણ સમયે તમારો ડેટા સરળતાથી પાછો મેળવો અથવા ડિવાઇસ સ્વિચ કરો. તમારા બૅકઅપમાં ઍપનો ડેટા શામેલ હોય છે.<ph name="END_PARAGRAPH1" /> <ph name="BEGIN_PARAGRAPH2" />તમારા બૅકઅપ Google પર અપલોડ કરવામાં આવે છે અને Google એકાઉન્ટ પાસવર્ડનો ઉપયોગ કરીને એન્ક્રિપ્ટ કરવામાં આવે છે.<ph name="END_PARAGRAPH2" /> @@ -5806,6 +5832,7 @@ <translation id="8146177459103116374">જો તમે આ ઉપકરણ પર પહેલાથી નોંધણી કરાવી છે, તો તમે <ph name="LINK2_START" />અસ્તિત્વમાં છે તે વપરાશકર્તા તરીકે સાઇન ઇન<ph name="LINK2_END" /> કરી શકો છો.</translation> <translation id="8146793085009540321">સાઇન-ઇન નિષ્ફળ થયું. કૃપા કરીને તમારા વ્યવસ્થાપકનો સંપર્ક કરો અથવા ફરી પ્રયાસ કરો.</translation> <translation id="8148760431881541277">સાઇન ઇન કરવાનું મર્યાદિત કરવાના સેટિંગ</translation> +<translation id="8151579390896831136">તમારી પ્રોફાઇલના નામ સહિત તેને કસ્ટમાઇઝ કરો</translation> <translation id="8151638057146502721">ગોઠવો</translation> <translation id="8152091997436726702">પ્રિન્ટર નોંધણીનો સમય પૂરો થયો. કોઈ પ્રિન્ટરની નોંધણી કરવા માટે, તમારે પ્રિન્ટર પર નોંધણીની ખાતરી કરવી જરૂરી છે.</translation> <translation id="8154790740888707867">કોઇ ફાઇલ નથી</translation> @@ -5924,6 +5951,7 @@ <translation id="8288032458496410887"><ph name="APP" />ને અનઇન્સ્ટૉલ કરો...</translation> <translation id="8289128870594824098">ડિસ્કનું કદ</translation> <translation id="8291967909914612644">હોમ પ્રદાતાનો દેશ</translation> +<translation id="8293206222192510085">બુકમાર્ક ઉમેરો</translation> <translation id="8294431847097064396">સ્રોત</translation> <translation id="8297006494302853456">નબળું</translation> <translation id="8299319456683969623">તમે હાલમાં ઑફલાઇન છો.</translation> @@ -6529,6 +6557,7 @@ <translation id="9031549947500880805">Google ડ્રાઇવ પર બૅકઅપ લો. તમારો ડેટા સરળતાથી પાછો મેળવો અથવા ડિવાઇસને કોઈપણ સમયે સ્વિચ કરો. તમારા બૅકઅપમાં ઍપનો ડેટા શામેલ છે.</translation> <translation id="9033765790910064284">તો પણ ચાલુ રાખો</translation> <translation id="9033857511263905942">&પેસ્ટ કરો</translation> +<translation id="9037818663270399707">તમારું કનેક્શન બધા નેટવર્ક ટ્રાફિક માટે ખાનગી નથી</translation> <translation id="9037965129289936994">મૂળ બતાવો</translation> <translation id="9039014462651733343">{NUM_ATTEMPTS,plural, =1{તમારી પાસે હવે એક પ્રયાસ બાકી છે.}one{તમારી પાસે હવે # પ્રયાસ બાકી છે.}other{તમારી પાસે હવે # પ્રયાસો બાકી છે.}}</translation> <translation id="9039663905644212491">PEAP</translation>
diff --git a/chrome/app/resources/generated_resources_hi.xtb b/chrome/app/resources/generated_resources_hi.xtb index 2fefdfc8..8da0ce2 100644 --- a/chrome/app/resources/generated_resources_hi.xtb +++ b/chrome/app/resources/generated_resources_hi.xtb
@@ -71,6 +71,7 @@ <translation id="1070705170564860382"><ph name="COUNTDOWN_SECONDS" /> सेकंड में वैकल्पिक ब्राउज़र में खोला जा रहा है</translation> <translation id="1071917609930274619">डेटा कूटलेखन</translation> <translation id="1072700771426194907">यूएसबी डिवाइस की पहचान की गई</translation> +<translation id="107278043869924952">पासवर्ड के साथ-साथ पिन का इस्तेमाल करें</translation> <translation id="1076176485976385390">टेक्स्ट कर्सर की मदद से पेजों पर जाएं</translation> <translation id="1076698951459398590">थीम चालू करें</translation> <translation id="1076818208934827215">Microsoft Internet Explorer</translation> @@ -524,7 +525,6 @@ <translation id="1608668830839595724">चुने गए आइटम के लिए और कार्रवाई</translation> <translation id="161042844686301425">स्यान</translation> <translation id="1611432201750675208">आपका डिवाइस लॉक कर दिया गया है</translation> -<translation id="1611584202130317952">प्रावधान प्रवाह में रुकावट आई थी. कृपया फिर से कोशिश करें या अपने डिवाइस मालिक या व्यवस्थापक से संपर्क करें.</translation> <translation id="1614511179807650956">आपने शायद तय सीमा तक मोबाइल डेटा का इस्तेमाल कर लिया है. और डेटा खरीदने के लिए <ph name="NAME" /> ऐक्टिवेशन पोर्टल पर जाएं</translation> <translation id="161460670679785907">आपका फ़ोन नहीं मिल पा रहा है</translation> <translation id="1616206807336925449">इस एक्सटेंशन को किसी विशेष अनुमति की आवश्यकता नहीं है.</translation> @@ -533,6 +533,7 @@ <translation id="1618268899808219593">&सहायता केंद्र</translation> <translation id="1620307519959413822">पासवर्ड गलत है. फिर से कोशिश करें या इसे रीसेट करने के लिए 'पासवर्ड भूल गए हैं' पर क्लिक करें.</translation> <translation id="1620510694547887537">कैमरा</translation> +<translation id="1621831347985899379"><ph name="DEVICE_TYPE" /> का डेटा मिटा दिया जाएगा</translation> <translation id="1622054403950683339">सेव किए गए वाई-फ़ाई नेटवर्क को भूल जाएं</translation> <translation id="1623132449929929218">इमेज फ़िलहाल उपलब्ध नहीं हैं. वॉलपेपर के संग्रह देखने के लिए कृपया इंटरनेट से फिर से कनेक्ट करें.</translation> <translation id="1623723619460186680">नीली रोशनी का कम होना</translation> @@ -760,6 +761,7 @@ <translation id="1877377290348678128">लेबल (ज़रूरी नहीं)</translation> <translation id="1877520246462554164">प्रमाणीकरण टोकन नहीं पा सके. दोबारा कोशिश करने के लिए, कृपया साइन आउट करें और फिर से साइन इन करें.</translation> <translation id="1877860345998737529">स्विच की कार्रवाई तय करना</translation> +<translation id="1878155070920054810">ऐसा लगता है कि अपडेट पूरा होने से पहले ही Chromebook की पावर खत्म हो जाएगी. किसी भी रुकावट से बचने के लिए, पक्का करें कि यह सही तरीके से चार्ज हो रहा हो.</translation> <translation id="1879000426787380528">इस रूप में साइन इन करें</translation> <translation id="1880905663253319515">प्रमाणपत्र "<ph name="CERTIFICATE_NAME" />" मिटाएं?</translation> <translation id="1881445033931614352">कीबोर्ड का लेआउट</translation> @@ -964,6 +966,7 @@ <translation id="2148219725039824548">शेयर माउंट करने में गड़बड़ी. बताया गया शेयर नेटवर्क पर नहीं मिला.</translation> <translation id="2148756636027685713">स्वरूपण खत्म हो गया</translation> <translation id="2148892889047469596">टैब कास्ट करें</translation> +<translation id="2149973817440762519">बुकमार्क में बदलाव करें</translation> <translation id="2150139952286079145">मंज़िल खोजें</translation> <translation id="2150661552845026580">"<ph name="EXTENSION_NAME" />" जोड़ें?</translation> <translation id="2151576029659734873">गलत टैब इंडेक्स डाला गया.</translation> @@ -1073,6 +1076,7 @@ <translation id="2270627217422354837">इन डोमेन के किसी भी डिवाइस से डेटा का लेन-देन करें: <ph name="DOMAINS" /></translation> <translation id="2272570998639520080">मार्टिनी ग्लास</translation> <translation id="2273119997271134996">वीडियो-पोर्ट के डॉक से जुड़ी समस्या</translation> +<translation id="2274840746523584236">अपना Chromebook चार्ज करें</translation> <translation id="2276503375879033601">ज़्यादा ऐप्स जोड़ें</translation> <translation id="2277255602909579701">सभी कुकी और साइट डेटा</translation> <translation id="2277769717710009150">{COUNT,plural, =1{1 आइटम कॉपी किया गया}one{# आइटम कॉपी किए गए}other{# आइटम कॉपी किए गए}}</translation> @@ -1915,6 +1919,7 @@ <translation id="3308116878371095290">इस पेज को कुकी सेट करने से रोक दिया गया था.</translation> <translation id="3308134619352333507">छिपाएं बटन</translation> <translation id="3308852433423051161">Google Assistant को लोड किया जा रहा है...</translation> +<translation id="3310640316857623290">डीएनएस, इंतज़ार की समयसीमा से बहुत ऊपर है</translation> <translation id="3311445899360743395">इस ऐप्लिकेशन के डेटा को इस डिवाइस से हटाया जा सकता है.</translation> <translation id="3312424061798279731">सक्षम भाषाएं</translation> <translation id="3313622045786997898">प्रमाणपत्र हस्ताक्षर मान</translation> @@ -1927,6 +1932,7 @@ <translation id="3323295311852517824">{NUM_FILES,plural, =0{इस डेटा में संवेदनशील या खतरनाक सामग्री है. इस सामग्री को हटाएं और फिर से कोशिश करें.}=1{इस फ़ाइल में संवेदनशील या खतरनाक सामग्री है. इस सामग्री को हटाएं और फिर से कोशिश करें.}one{इस फ़ाइल में संवेदनशील या खतरनाक सामग्री है. इस सामग्री को हटाएं और फिर से कोशिश करें.}other{इन फ़ाइलों में संवेदनशील या खतरनाक सामग्री है. इस सामग्री को हटाएं और फिर से कोशिश करें.}}</translation> <translation id="3323521181261657960">बोनस! आप और देर तक डिवाइस इस्तेमाल कर सकते हैं</translation> <translation id="3325910708063135066">Mac सिस्टम प्राथमिकताओं में कैमरा और माइक्रोफ़ोन किए गए हैं</translation> +<translation id="3327050066667856415">Chromebook में सुरक्षा का इंतज़ाम किया गया है. आपका डिवाइस, मैलवेयर से अपने-आप सुरक्षित है. आपको कोई दूसरा सॉफ़्टवेयर इंस्टॉल करने की ज़रूरत नहीं है.</translation> <translation id="3328489342742826322">बैकअप डेटा बहाल करने से, आपके Linux फ़ाइलों और फ़ोल्डर में मौजूद Linux ऐप्लिकेशन और डेटा मिट जाएंगे.</translation> <translation id="3331321258768829690">(<ph name="UTCOFFSET" />) <ph name="LONGTZNAME" /> (<ph name="EXEMPLARCITY" />)</translation> <translation id="3331974543021145906">ऐप्लिकेशन की जानकारी</translation> @@ -2116,6 +2122,7 @@ <translation id="3556433843310711081">आपका प्रबंधक इसे आपके लिए अनवरोधित कर सकता है</translation> <translation id="3557101512409028104">Family Link की मदद से वेबसाइट पाबंदियां और किसी डिवाइस के इस्तेमाल की समय सीमा सेट करें</translation> <translation id="3559262020195162408">डिवाइस पर नीति इंस्टॉल नहीं की जा सकी.</translation> +<translation id="3559533181353831840">करीब <ph name="TIME_LEFT" /> बचे हैं</translation> <translation id="3560034655160545939">&वर्तनी जाँच</translation> <translation id="3562423906127931518">इस प्रक्रिया में कुछ मिनट लग सकते हैं. Linux कंटेनर सेट अप हो रहा है.</translation> <translation id="3563432852173030730">कियोस्क ऐप्लिकेशन डाउनलोड नहीं किया जा सकता.</translation> @@ -2158,6 +2165,7 @@ <translation id="3602290021589620013">झलक देखें</translation> <translation id="3603622770190368340">नेटवर्क प्रमाणपत्र पाएं</translation> <translation id="3604713164406837697">वॉलपेपर बदलें</translation> +<translation id="360565022852130722">यह वाई-फ़ाई नेटवर्क एक कमज़ोर प्रोटोकॉल WEP 802.1x से सुरक्षित है</translation> <translation id="3605780360466892872">बटनडाउन</translation> <translation id="3608576286259426129">उपयोगकर्ता के इमेज की झलक</translation> <translation id="3610369246614755442">डॉक के पंखे को मरम्मत की ज़रूरत है</translation> @@ -2194,6 +2202,7 @@ <translation id="3639220004740062347">रीडर मोड से बाहर निकलें</translation> <translation id="3640214691812501263"><ph name="USER_NAME" /> के लिए "<ph name="EXTENSION_NAME" />" को जोड़ें?</translation> <translation id="3640613767643722554">अपनी Assistant को आपकी आवाज़ पहचानना सिखाएं</translation> +<translation id="3643014427358482789"><ph name="DOMAIN" />, ADB को डीबग करने की सुविधा बंद कर रहा है. इससे आपका <ph name="DEVICE_TYPE" /> रीसेट हो जाएगा. डिवाइस को रीस्टार्ट करने से पहले, अपनी फ़ाइलों का बैक अप लें.</translation> <translation id="3645372836428131288">फ़िंगरप्रिंट के अलग हिस्से को कैप्चर करने के लिए उंगली धीरे से हिलाएं</translation> <translation id="3647998456578545569">{COUNT,plural, =1{<ph name="DEVICE_NAME" /> से <ph name="ATTACHMENTS" /> मिला}one{<ph name="DEVICE_NAME" /> से <ph name="ATTACHMENTS" /> मिला}other{<ph name="DEVICE_NAME" /> से <ph name="ATTACHMENTS" /> मिले}}</translation> <translation id="3648348069317717750"><ph name="USB_DEVICE_NAME" /> का पता चला</translation> @@ -2282,6 +2291,7 @@ <translation id="3732857534841813090">Google Assistant से जुड़ी जानकारी</translation> <translation id="3733127536501031542">स्टेप-अप वाला SSL सर्वर</translation> <translation id="3735740477244556633">इसके अनुसार क्रम से लगाएं</translation> +<translation id="3738632186060045350"><ph name="DEVICE_TYPE" /> का डेटा 24 घंटे में मिटा दिया जाएगा</translation> <translation id="3738924763801731196"><ph name="OID" />:</translation> <translation id="3739254215541673094"><ph name="APPLICATION" /> खोलना चाहते हैं?</translation> <translation id="3742055079367172538">स्क्रीनशॉट लिया गया</translation> @@ -2469,6 +2479,7 @@ <translation id="3937734102568271121"><ph name="LANGUAGE" /> का हमेशा अनुवाद करें</translation> <translation id="3938128855950761626"><ph name="VENDOR_ID" /> विक्रेता की ओर से डिवाइस</translation> <translation id="3940233957883229251">अपने आप दोहराना चालू करें</translation> +<translation id="3941014780699102620">होस्ट से जुड़ी समस्याओं को हल नहीं किया जा सका</translation> <translation id="3941565636838060942">इस प्रोग्राम का एक्सेस छिपाने के लिए, आपको कंट्रोल पैनल में <ph name="CONTROL_PANEL_APPLET_NAME" /> का इस्तेमाल करके उसे अनइंस्टॉल करने की ज़रुरत होगी. क्या आप <ph name="CONTROL_PANEL_APPLET_NAME" /> को शुरू करना चाहते हैं?</translation> @@ -2630,6 +2641,7 @@ <translation id="413121957363593859">घटक</translation> <translation id="4131410914670010031">श्याम और श्वेत</translation> <translation id="413193092008917129">नेटवर्क डायग्नोस्टिक रूटीन</translation> +<translation id="4132183752438206707">'Google Play स्टोर' में जाकर, ऐप्लिकेशन ढूंढें</translation> <translation id="4133076602192971179">पासवर्ड बदलने के लिए ऐप्लिकेशन खोलें</translation> <translation id="4136203100490971508">सूर्योदय होने पर नाइट लाइट अपने आप बंद हो जाएगी</translation> <translation id="41365691917097717">अगर आप जारी रखते हैं, तो Android ऐप्लिकेशन बनाने और उनकी जांच करने के लिए ADB डीबग करने की सुविधा चालू हो जाएगी. ध्यान दें कि यह कार्रवाई उन Android ऐप्लिकेशन को इंस्टॉल करने की अनुमति देती है जिनकी पुष्टि Google ने नहीं की है. साथ ही, फ़ैक्ट्री रीसेट को बंद करना ज़रूरी है.</translation> @@ -2879,6 +2891,8 @@ <translation id="4479877282574735775">वर्चुअल मशीन कॉन्फ़िगर हो रही है. इसमें कुछ मिनट लग सकते हैं.</translation> <translation id="4480590691557335796">Chrome आपके कंप्यूटर पर नुकसान पहुंचाने वाला सॉफ़्टवेयर ढूंढ सकता है और उसे हटा सकता है</translation> <translation id="4481530544597605423">अयुग्मित किए गए डिवाइस</translation> +<translation id="4483049906298469269">ऐसे नेटवर्क गेटवे को पिंग नहीं किया जा सका जो डिफ़ॉल्ट के तौर पर सेट नहीं है</translation> +<translation id="4487489714832036847">Chromebook में परंपरागत सॉफ़्टवेयर के बजाय, ऐप्लिकेशन इस्तेमाल किए जाते हैं. काम, मनोरंजन वगैरह के लिए ऐप्लिकेशन पाएं.</translation> <translation id="4488502501195719518">क्या आप सारा डेटा मिटाना चाहते हैं?</translation> <translation id="4493468155686877504">(<ph name="INSTALL_SIZE" />) सुझाया गया</translation> <translation id="4495419450179050807">इस पेज पर न दिखाएं</translation> @@ -2929,6 +2943,7 @@ <translation id="4546692474302123343">Google Assistant में बोलकर लिखने की सुविधा</translation> <translation id="4547659257713117923">अन्य डिवाइसों से कोई टैब नहीं</translation> <translation id="4547672827276975204">अपने आप सेट करें</translation> +<translation id="4548483925627140043">सिग्नल नहीं मिला</translation> <translation id="4549791035683739768">आपकी सुरक्षा कुंजी में कोई फ़िंगरप्रिंट सेव नहीं की गई है</translation> <translation id="4551763574344810652">पहले जैसा करने के लिए <ph name="MODIFIER_KEY_DESCRIPTION" /> दबाएं</translation> <translation id="4552089082226364758">फ़्लैश</translation> @@ -2968,6 +2983,7 @@ <translation id="4582563038311694664">सभी सेटिंग रीसेट करें</translation> <translation id="4585793705637313973">पेज में बदलाव करें</translation> <translation id="4586275095964870617"><ph name="URL" /> वैकल्पिक ब्राउज़र में नहीं खुला. कृपया अपने सिस्टम एडमिन से संपर्क करें.</translation> +<translation id="458794348635939462">सभी होस्ट से जुड़ी समस्याओं को हल नहीं किया जा सका</translation> <translation id="4589713469967853491">डाउनलोड डायरेक्ट्री में लॉग सेव किए गए.</translation> <translation id="4590324241397107707">डेटाबेस मेमोरी</translation> <translation id="4592891116925567110">स्टाइलस की मदद से ड्रॉ करने के लिए ऐप्लिकेशन</translation> @@ -3351,6 +3367,7 @@ <translation id="5089810972385038852">राज्य</translation> <translation id="5094721898978802975">स्थानीय ऐप्स के साथ सहयोग करते हुए संचार करें</translation> <translation id="5097002363526479830">नेटवर्क से कनेक्ट करने में विफल '<ph name="NAME" />': <ph name="DETAILS" /></translation> +<translation id="5097649414558628673">टूल: <ph name="PRINT_NAME" /></translation> <translation id="5097874180538493929">कर्सर के रुकने पर अपने-आप क्लिक होगा</translation> <translation id="5101042277149003567">सभी बुकमार्क खोलें</translation> <translation id="5101839224773798795">कर्सर के रुक जाने पर अपने आप क्लिक होने की सुविधा</translation> @@ -3569,6 +3586,7 @@ <translation id="5370819323174483825">&पुन: लोड करें</translation> <translation id="5372529912055771682">आपूर्ति किया गया नामांकन मोड, ऑपरेटिंग सिस्टम के इस वर्शन द्वारा समर्थित नहीं है. कृपया पक्का करें कि आप नवीनतम वर्शन चला रहे हैं और फिर से प्रयास करें.</translation> <translation id="5372579129492968947">एक्सटेंशन अनपिन करें</translation> +<translation id="5372659122375744710">यह वाई-फ़ाई नेटवर्क सुरक्षित नहीं है</translation> <translation id="5376169624176189338">वापस जाने के लिए क्लिक करें, इतिहास देखने के लिए दबाकर रखें</translation> <translation id="5376931455988532197">फ़ाइल बहुत बड़ी है</translation> <translation id="5377721922656071359">{COUNT,plural, =1{<ph name="DEVICE_NAME" /> को <ph name="ATTACHMENTS" /> भेजा गया}one{<ph name="DEVICE_NAME" /> को <ph name="ATTACHMENTS" /> भेजा गया}other{<ph name="DEVICE_NAME" /> को <ph name="ATTACHMENTS" /> भेजे गए}}</translation> @@ -3598,6 +3616,7 @@ <translation id="5414566801737831689">आप जिन वेबसाइट पर जाते हैं, उनके आइकॉन पढ़ें</translation> <translation id="5417312524372586921">ब्राउज़र थीम</translation> <translation id="5419405654816502573">Voice Match</translation> +<translation id="5420274697768050645">डिवाइस को अनलॉक करने के लिए पासवर्ड डालना होगा. इससे डिवाइस की सुरक्षा और बेहतर होती है</translation> <translation id="5420438158931847627">लेख और इमेज का पैनापन तय करता है</translation> <translation id="5422221874247253874">एक्सेस पॉइंट</translation> <translation id="5422781158178868512">क्षमा करें, आपके बाह्य मेमोरी डिवाइस की पहचान नहीं हो सकी.</translation> @@ -3722,6 +3741,7 @@ <translation id="5548606607480005320">सुरक्षा जांच</translation> <translation id="5551573675707792127">कीबोर्ड और लेख इनपुट</translation> <translation id="5553089923092577885">प्रमाणपत्र नीति मानचित्रण</translation> +<translation id="5554403733534868102">इसके बाद, आपको अपडेट के लिए इंतज़ार नहीं करना होगा</translation> <translation id="5554489410841842733">यह आइकॉन तब दिखाई देगा जब एक्सटेंशन मौजूदा पेज पर काम कर सकेगा.</translation> <translation id="5554720593229208774">ईमेल प्रमाणन प्राधिकरण</translation> <translation id="5556459405103347317">फिर लोड करें</translation> @@ -4135,6 +4155,7 @@ <translation id="6061882183774845124">अपने डिवाइस पर लिंक भेजें</translation> <translation id="6064217302520318294">स्क्रीन लॉक</translation> <translation id="6065289257230303064">प्रमाणपत्र विषय निर्देशिका विशेषताएं</translation> +<translation id="6069464830445383022">आपको Chromebook में Google खाते से साइन इन करना होगा</translation> <translation id="6069671174561668781">वॉलपेपर सेट करें</translation> <translation id="6071181508177083058">पासवर्ड की पुष्टि करें</translation> <translation id="6071576563962215370">सिस्टम, डिवाइस इंस्टॉलेशन-समय विशेषता लॉक को स्थापित नहीं कर सका.</translation> @@ -4177,6 +4198,7 @@ <translation id="6104311680260824317">डिवाइस को डोमेन से नहीं जोड़ सकते. सर्वर पर बताया गया सुरक्षा का तरीका केर्बेरोस काम नहीं करता है. सुरक्षित करने की सेटिंग के लिए "और विकल्प" देखें.</translation> <translation id="6104796831253957966">प्रिंटर की सूची भर गई है</translation> <translation id="6105994589138235234">Chrome ब्राउज़र सिंक</translation> +<translation id="6108689792487843350">गेटवे से कनेक्ट नहीं किया जा सका</translation> <translation id="6111972606040028426">Google Assistant चालू करें</translation> <translation id="6112294629795967147">आकार बदलने के लिए छुएं</translation> <translation id="6112727384379533756">टिकट जोड़ें</translation> @@ -4237,6 +4259,7 @@ <translation id="6178664161104547336">किसी प्रमाणपत्र को चुनें</translation> <translation id="6181431612547969857">डाउनलोड अवरोधित किया गया</translation> <translation id="6185132558746749656">डिवाइस स्थान</translation> +<translation id="6191293864534840972">इन नाम सर्वर के फ़ॉर्मैट सही नहीं हैं</translation> <translation id="6195446518998936840">माता-पिता का कंट्रोल सेट अप करने के लिए, यह ज़रूरी है कि आपके बच्चे का एक Google खाता हो, जिसे प्रबंधित करने में आप मदद करेंगे. आप Family Link ऐप्लिकेशन से, डिवाइस के इस्तेमाल की समयसीमा तय करने और वेबसाइटों को मंज़ूरी देने या ब्लॉक करने जैसे कई काम कर सकते हैं.</translation> <translation id="6195693561221576702">यह डिवाइस ऑफ़लाइन डेमो मोड में सेट अप नहीं किया जा सकता.</translation> <translation id="6196640612572343990">तीसरे पक्ष की कुकी ब्लॉक करें</translation> @@ -4450,6 +4473,7 @@ <translation id="6451591602925140504">{NUM_PAGES,plural, =0{<ph name="PAGE_TITLE" />}=1{<ph name="PAGE_TITLE" /> और 1 अन्य टैब}one{<ph name="PAGE_TITLE" /> और # अन्य टैब}other{<ph name="PAGE_TITLE" /> और # अन्य टैब}}</translation> <translation id="6451689256222386810">अगर आप अपना 'पासफ़्रेज़' भूल गए हैं या यह सेटिंग बदलना चाहते हैं, तो <ph name="BEGIN_LINK" />सिंक रीसेट करें<ph name="END_LINK" />.</translation> <translation id="6452181791372256707">अस्वीकार करें</translation> +<translation id="6452251728599530347"><ph name="PERCENT" /> पूरा हुआ</translation> <translation id="6452961788130242735">नेटवर्क समस्या या गलत क्षेत्र</translation> <translation id="6455264371803474013">कुछ खास साइटों पर</translation> <translation id="6455894534188563617">&नया फ़ोल्डर</translation> @@ -4506,6 +4530,7 @@ <ph name="EVENT_NAME" /></translation> <translation id="6520876759015997832"><ph name="LIST_SIZE" /> में से खोज का नतीजा <ph name="LIST_POSITION" />: <ph name="SEARCH_RESULT_TEXT" />. सेक्शन पर जाने के लिए Enter दबाएं.</translation> <translation id="652492607360843641">आप <ph name="NETWORK_TYPE" /> नेटवर्क से जुड़े हुए हैं.</translation> +<translation id="6527081081771465939">इस वाई-फ़ाई सुरक्षा प्रोटोकॉल की जानकारी नहीं है</translation> <translation id="6527303717912515753">शेयर करें</translation> <translation id="6528513914570774834">इस डिवाइस के दूसरे उपयोगकर्ताओं को इस नेटवर्क का उपयोग करने दें</translation> <translation id="652948702951888897">Chrome इतिहास</translation> @@ -4622,6 +4647,7 @@ <translation id="6680442031740878064">उपलब्ध: <ph name="AVAILABLE_SPACE" /></translation> <translation id="6680650203439190394">दर</translation> <translation id="6681668084120808868">फ़ोटो लें</translation> +<translation id="6684827949542560880">नए अपडेट को डाउनलोड किया जा रहा है</translation> <translation id="668599234725812620">Google Play खोलें</translation> <translation id="6686490380836145850">दाईं ओर के टैब बंद करें</translation> <translation id="6686817083349815241">अपना पासवर्ड सेव करें</translation> @@ -4731,6 +4757,7 @@ <translation id="6812841287760418429">बदलावों को बनाए रखें</translation> <translation id="6817174620439930047">जब साइट MIDI डिवाइस को एक्सेस करने के लिए सिस्टम के खास संदेशों का इस्तेमाल करना चाहे, तो इसके लिए पूछें (सुझाया गया)</translation> <translation id="6818198425579322765">उस पेज की भाषा जिसका अनुवाद करना है</translation> +<translation id="6818802132960437751">वायरस से सुरक्षित रखने वाला सॉफ़्टवेयर पहले से मौजूद है</translation> <translation id="682123305478866682">डेस्कटॉप कास्ट करें</translation> <translation id="6823174134746916417">टचपैड पर क्लिक-के-लिए-टैप</translation> <translation id="6823506025919456619">आपको अपने डिवाइस को देखने के लिए Chrome में साइन इन करने की ज़रुरत है</translation> @@ -5377,6 +5404,7 @@ <translation id="7631205654593498032">जब आप अपने डिवाइस कनेक्ट करते हैं, तो आप सहमति देते हैं कि आपका <ph name="DEVICE_TYPE" /> ये काम कर सकता है:</translation> <translation id="7631887513477658702">इस प्रकार की फ़ाइलें &हमेशा खोलें</translation> <translation id="7632948528260659758">निम्न किऑस्क&#0; ऐप्स अपडेट होने में विफल रहे:</translation> +<translation id="7633724038415831385">अपडेट करने के लिए, आपको सिर्फ़ इस बार इंतज़ार करना होगा. Chromebooks पर सॉफ़्टवेयर, बैकग्राउंड में अपडेट होते हैं.</translation> <translation id="7634566076839829401">कुछ गलत हो गया है. कृपय फिर से प्रयास करें.</translation> <translation id="763632859238619983">किसी भी साइट को भुगतान हैंडलर इंस्टॉल करने की अनुमति नहीं दें</translation> <translation id="7636919061354591437">इस डिवाइस पर इंस्टॉल करें</translation> @@ -5654,6 +5682,7 @@ <translation id="7933314993013528982">{NUM_TABS,plural, =1{साइट अनम्यूट करें}one{साइटें अनम्यूट करें}other{साइटें अनम्यूट करें}}</translation> <translation id="7933634003144813719">शेयर किए गए फ़ोल्डर प्रबंधित करें</translation> <translation id="793531125873261495">वर्चुअल मशीन डाउनलोड करने में गड़बड़ी हुई. कृपया फिर से कोशिश करें.</translation> +<translation id="7936303884198020182">कोई भी नाम सर्वर नहीं मिला</translation> <translation id="7938594894617528435">वर्तमान में ऑफ़लाइन</translation> <translation id="7939062555109487992">अतिरिक्त सेटिंग</translation> <translation id="7939412583708276221">फिर भी रखें</translation> @@ -5897,6 +5926,7 @@ <translation id="8226742006292257240">नीचे यादृच्छिक रूप से निर्मित TPM पासवर्ड है जो कि आपके कंप्यूटर के लिए असाइन किया गया है:</translation> <translation id="8227119283605456246">फ़ाइल अटैच करें</translation> <translation id="8230134520748321204"><ph name="ORIGIN" /> के लिए पासवर्ड सेव करें?</translation> +<translation id="8230672074305416752">डिफ़ॉल्ट नेटवर्क गेटवे को पिंग नहीं किया जा सका</translation> <translation id="8234795456569844941">कृपया इस समस्या को ठीक करने में हमारे इंजीनियरों की मदद करें. हमें बताएं कि प्रोफ़ाइल से जुड़ी गड़बड़ी का मैसेज मिलने से ठीक पहले क्या हुआ था:</translation> <translation id="8236917170563564587">उसके बजाय यह टैब शेयर करें</translation> <translation id="8237647586961940482">गहरा गुलाबी और लाल</translation> @@ -5957,6 +5987,7 @@ <translation id="8288032458496410887"><ph name="APP" /> ऐप्लिकेशन अनइंस्टॉल करें...</translation> <translation id="8289128870594824098">डिस्क का साइज़</translation> <translation id="8291967909914612644">'होम' पर काम करने वाली सेवाएं देने वाला देश</translation> +<translation id="8293206222192510085">बुकमार्क जोड़ें</translation> <translation id="8294431847097064396">स्रोत</translation> <translation id="8297006494302853456">कमज़ोर</translation> <translation id="8299319456683969623">आप वर्तमान में ऑफलाइन हैं.</translation> @@ -6006,6 +6037,7 @@ <translation id="8363095875018065315">स्थिर</translation> <translation id="8363142353806532503">माइक्रोफ़ोन ब्लॉक किया गया है</translation> <translation id="8363763184161554204"><ph name="PERMISSION" /> इस्तेमाल करने की अनुमति दी गई है</translation> +<translation id="8364946094152050673">ये नाम सर्वर खाली हैं</translation> <translation id="8366396658833131068">आपका नेटवर्क कनेक्शन रिस्टोर हो गया है. कृपया अपना किओस्क ऐप्लिकेशन लॉन्च करने के लिए कोई दूसरा नेटवर्क चुनें या नीचे दिया गया 'जारी रखें' बटन दबाएं.</translation> <translation id="8368027906805972958">अज्ञात या काम न करने वाला डिवाइस (<ph name="DEVICE_ID" />)</translation> <translation id="8368859634510605990">सभी बुकमार्क &खोलें</translation> @@ -6091,8 +6123,10 @@ <translation id="8472623782143987204">हार्डवेयर-समर्थित</translation> <translation id="8473863474539038330">पते वगैरह</translation> <translation id="8475313423285172237">आपके कंप्यूटर पर किसी अन्य प्रोग्राम ने एक्सटेंशन जोड़ा है, जो Chrome के काम करने के तरीके को बदल सकता है.</translation> +<translation id="8475690821716466388">यह वाई-फ़ाई नेटवर्क एक कमज़ोर प्रोटोकॉल WEP PSK से सुरक्षित है</translation> <translation id="8477241577829954800">अधिक्रमित किया गया</translation> <translation id="8477384620836102176">&सामान्य</translation> +<translation id="8477551185774834963">डीएनएस, इंतज़ार की समयसीमा से थोड़ा ऊपर है</translation> <translation id="8480082892550707549">भले ही आपने पहले इस वेबसाइट से फ़ाइलें डाउनलोड की हैं, फिर भी साइट अस्थायी रूप से असुरक्षित (हैक की हुई) हो सकती है. इस फ़ाइल को बाद में डाउनलोड करने की कोशिश करें.</translation> <translation id="8480869669560681089"><ph name="VENDOR_NAME" /> की ओर से अज्ञात डिवाइस</translation> <translation id="8481187309597259238">USB अनुमति की पुष्टि करें</translation> @@ -6144,6 +6178,7 @@ <translation id="8546930481464505581">छूने वाले बार को पसंद के मुताबिक बनाएं</translation> <translation id="8547013269961688403">फ़ुलस्क्रीन पर सामग्री को बड़ा दिखाने की सुविधा चालू करें</translation> <translation id="85486688517848470">शीर्ष-पंक्ति वाली कुंजियों का व्यवहार स्विच करने के लिए खोज की दबाए रखें</translation> +<translation id="8549316893834449916">आप Chromebook में साइन इन करने के लिए, Google खाते का इस्तेमाल करेंगे. यह वही खाता है जिसे आप Gmail, Drive, YouTube वगैरह के लिए इस्तेमाल करते हैं.</translation> <translation id="8551388862522347954">लाइसेंस</translation> <translation id="8551588720239073785">तारीख और समय की सेटिंग</translation> <translation id="8553342806078037065">अन्य लोगों को प्रबंधित करें</translation> @@ -6282,6 +6317,7 @@ <translation id="8720200012906404956">मोबाइल नेटवर्क ढूंढ रहे हैं. <ph name="BEGIN_LINK" />ज़्यादा जानें<ph name="END_LINK" /></translation> <translation id="8720816553731218127">इंस्टॉलेशन-समय विशेषताएं शुरू करने का समय खत्म हो गया है.</translation> <translation id="8722912030556880711">इस्तेमाल और निदान से जुड़ा डेटा भेजें. यह डिवाइस फ़िलहाल Google को निदान, डिवाइस, और ऐप्लिकेशन के इस्तेमाल से जुड़ा डेटा अपने आप भेज रहा है. यह सिस्टम और ऐप्लिकेशन की स्थिरता और दूसरे सुधारों में मदद करेगा. कुछ एग्रीगेट डेटा Google ऐप्लिकेशन और पार्टनर, जैसे कि Android डेवलपरों की भी मदद करेगा. अगर आपकी दूसरी 'वेब और ऐप्लिकेशन गतिविधि' सेटिंग चालू है, तो यह डेटा आपके Google खाते में सेव किया जा सकता है. <ph name="BEGIN_LINK2" />ज़्यादा जानें<ph name="END_LINK2" /></translation> +<translation id="8723108084122415655">ऐसा नेटवर्क जो डिफ़ॉल्ट के तौर पर सेट नहीं है, इंतज़ार की समयसीमा से ऊपर है</translation> <translation id="8724405322205516354">जब आपको यह आइकॉन दिखाई दे, तब पहचान के लिए या खरीदारियों की अनुमति देने के लिए अपने फ़िंगरप्रिंट का इस्तेमाल करें.</translation> <translation id="8724409975248965964">फ़िंगरप्रिंट जोड़ा गया</translation> <translation id="8724859055372736596">खोजकर्ता में &दिखाएं</translation> @@ -6459,6 +6495,7 @@ <translation id="8909833622202089127">साइट आपकी जगह को ट्रैक कर रही है</translation> <translation id="8910146161325739742">अपनी स्क्रीन शेयर करें</translation> <translation id="8910222113987937043">आपके बुकमार्क, इतिहास, पासवर्ड और अन्य सेटिंग में किए गए बदलाव अब आपके Google खाते से सिंक नहीं किए जाएंगे. हालांकि, आपका मौजूदा डेटा आपके Google खाते में संग्रहित रहेगा और <ph name="BEGIN_LINK" />Google डैशबोर्ड<ph name="END_LINK" /> पर प्रबंधित किया जा सकेगा.</translation> +<translation id="8910721771319628100">डिफ़ॉल्ट नेटवर्क, इंतज़ार की समयसीमा से ऊपर है</translation> <translation id="8912362522468806198">Google खाता</translation> <translation id="8912793549644936705">खींचें</translation> <translation id="8912810933860534797">अपने आप स्कैन करने की सुविधा चालू करें</translation>
diff --git a/chrome/app/resources/generated_resources_hr.xtb b/chrome/app/resources/generated_resources_hr.xtb index 250ddfd2..7f39ff78 100644 --- a/chrome/app/resources/generated_resources_hr.xtb +++ b/chrome/app/resources/generated_resources_hr.xtb
@@ -525,7 +525,6 @@ <translation id="1608668830839595724">Više radnji za odabrane stavke</translation> <translation id="161042844686301425">Cijan</translation> <translation id="1611432201750675208">Uređaj je zaključan</translation> -<translation id="1611584202130317952">Tijek pružanja niza usluga prekinut je. Pokušajte ponovo ili se obratite vlasniku ili administratoru uređaja.</translation> <translation id="1614511179807650956">Vjerojatno ste potrošili dopuštenu količinu mobilnih podataka. Posjetite aktivacijski portal <ph name="NAME" /> kako biste platili dodatni prijenos podataka.</translation> <translation id="161460670679785907">Nije moguće otkriti vaš telefon</translation> <translation id="1616206807336925449">To proširenje ne zahtijeva nikakva posebna dopuštenja.</translation> @@ -967,6 +966,7 @@ <translation id="2148219725039824548">Pogreška pri učitavanju dijeljenja. Navedeno dijeljenje nije pronađeno na mreži.</translation> <translation id="2148756636027685713">Formatiranje je dovršeno</translation> <translation id="2148892889047469596">Emitiraj karticu</translation> +<translation id="2149973817440762519">Uredi oznaku</translation> <translation id="2150139952286079145">Pretražite odredišta</translation> <translation id="2150661552845026580">Dodati proširenje "<ph name="EXTENSION_NAME" />"?</translation> <translation id="2151576029659734873">Unesen je nevažeći indeks kartice.</translation> @@ -1138,7 +1138,7 @@ <translation id="2347644257713614136">Upotrebu usluga Hangouts i Cast for Education reguliraju Googleova pravila o privatnosti.</translation> <translation id="2348176352564285430">Aplikacija: <ph name="ARC_PROCESS_NAME" /></translation> <translation id="234889437187286781">Pogreška prilikom učitavanja podataka</translation> -<translation id="2349610121459545414">Ovoj web-lokaciji i dalje omogućite pristup vašoj lokaciji</translation> +<translation id="2349610121459545414">Omogućite ovoj web-lokaciji da i dalje pristupa vašoj lokaciji</translation> <translation id="2349896577940037438">Ako je uključena dodatna aktivnost na webu i u aplikacijama, ti se podaci mogu spremati na vaš Google račun. Na stranici account.google.com možete pogledati svoje podatke, izbrisati ih ili promijeniti postavke računa.</translation> <translation id="2350133097354918058">Ponovno učitano</translation> <translation id="2350182423316644347">Inicijalizacija aplikacije...</translation> @@ -2780,7 +2780,7 @@ <translation id="4348766275249686434">Prikupljaj pogreške</translation> <translation id="4349828822184870497">Korisno</translation> <translation id="4350019051035968019">Uređaj se ne može prijaviti na domenu kojoj pripada vaš račun jer je postavljen za upravljanje na nekoj drugoj domeni.</translation> -<translation id="4350230709416545141">Uvijek blokiraj hostu <ph name="HOST" /> pristup vašoj lokaciji</translation> +<translation id="4350230709416545141">Uvijek blokirajte pristup svojoj lokaciji za <ph name="HOST" /></translation> <translation id="4350782034419308508">Hey Google</translation> <translation id="4351060348582610152"><ph name="ORIGIN" /> želi potražiti Bluetooth uređaje u blizini. Pronađeni su sljedeći uređaji:</translation> <translation id="4354073718307267720">Prikaži upit kada web-lokacija želi izraditi 3D kartu vašeg okruženja ili pratiti položaj kamere</translation> @@ -5989,6 +5989,7 @@ <translation id="8288032458496410887">Deinstaliranje aplikacije <ph name="APP" />...</translation> <translation id="8289128870594824098">Veličina diska</translation> <translation id="8291967909914612644">Zemlja davatelja usluge kućne mreže</translation> +<translation id="8293206222192510085">Dodaj oznaku</translation> <translation id="8294431847097064396">Izvor</translation> <translation id="8297006494302853456">Slab</translation> <translation id="8299319456683969623">Trenutačno ste izvan mreže.</translation>
diff --git a/chrome/app/resources/generated_resources_hu.xtb b/chrome/app/resources/generated_resources_hu.xtb index 18730c2e..f604ba7 100644 --- a/chrome/app/resources/generated_resources_hu.xtb +++ b/chrome/app/resources/generated_resources_hu.xtb
@@ -71,6 +71,7 @@ <translation id="1070705170564860382">Megnyitás másik böngészőben <ph name="COUNTDOWN_SECONDS" /> másodperc múlva</translation> <translation id="1071917609930274619">Adattitkosítás</translation> <translation id="1072700771426194907">USB-eszköz észlelve</translation> +<translation id="107278043869924952">PIN-kód használata a jelszó mellett</translation> <translation id="1076176485976385390">Az oldalakon szövegkurzorral navigálhat</translation> <translation id="1076698951459398590">Téma engedélyezése</translation> <translation id="1076818208934827215">Microsoft Internet Explorer</translation> @@ -524,7 +525,6 @@ <translation id="1608668830839595724">További műveletek a kiválasztott elemeknél</translation> <translation id="161042844686301425">Cián</translation> <translation id="1611432201750675208">Eszköze zárolva van</translation> -<translation id="1611584202130317952">Megszakadt a hozzáférés-kezelési folyamat. Próbálja újra, vagy vegye fel a kapcsolatot az eszköz tulajdonosával, illetve rendszergazdájával.</translation> <translation id="1614511179807650956">Valószínűleg elérte a mobiladat-használatra vonatkozó korlátozást. További adatforgalom vásárlásához keresse fel a(z) <ph name="NAME" /> aktiválási portált.</translation> <translation id="161460670679785907">Nem sikerült észlelni a telefont</translation> <translation id="1616206807336925449">A bővítmény nem igényel különleges engedélyeket.</translation> @@ -533,6 +533,7 @@ <translation id="1618268899808219593">Súgó</translation> <translation id="1620307519959413822">Hibás jelszó. Próbálja újra, vagy a jelszó újbóli beállításához kattintson az „Elfelejtette a jelszavát?” linkre.</translation> <translation id="1620510694547887537">Kamera</translation> +<translation id="1621831347985899379">A(z) <ph name="DEVICE_TYPE" /> adatai törlődnek</translation> <translation id="1622054403950683339">Wi-Fi-hálózat elfelejtése</translation> <translation id="1623132449929929218">A képek jelenleg nem állnak rendelkezésre. Kapcsolódjon az internethez, ha szeretné megtekinteni a háttérképgyűjteményeket.</translation> <translation id="1623723619460186680">Kékfénycsökkentés</translation> @@ -760,6 +761,7 @@ <translation id="1877377290348678128">Címke (nem kötelező)</translation> <translation id="1877520246462554164">Nem sikerült lekérni a hitelesítési tokent. Jelentkezzen ki, majd jelentkezzen be újra.</translation> <translation id="1877860345998737529">Művelet hozzárendelése kapcsolóhoz</translation> +<translation id="1878155070920054810">Úgy tűnik, lemerül a Chromebook a frissítés befejezése előtt. A megszakítás elkerülése érdekében gondoskodjon a megfelelő töltésről.</translation> <translation id="1879000426787380528">Bejelentkezés mint</translation> <translation id="1880905663253319515">Törli a "<ph name="CERTIFICATE_NAME" />" tanúsítványt?</translation> <translation id="1881445033931614352">Billentyűzetkiosztás</translation> @@ -964,6 +966,7 @@ <translation id="2148219725039824548">Hiba történt a megosztott tároló csatlakoztatása során. A megadott megosztott tároló nem található a hálózaton.</translation> <translation id="2148756636027685713">A formázás elkészült</translation> <translation id="2148892889047469596">Lap átküldése</translation> +<translation id="2149973817440762519">Könyvjelző szerkesztése</translation> <translation id="2150139952286079145">Célhelyek keresése</translation> <translation id="2150661552845026580">Hozzáadja a következőt: "<ph name="EXTENSION_NAME" />"?</translation> <translation id="2151576029659734873">A megadott lapindex érvénytelen.</translation> @@ -1073,6 +1076,7 @@ <translation id="2270627217422354837">Adatok cseréje bármilyen eszközzel a következő domainekben: <ph name="DOMAINS" /></translation> <translation id="2272570998639520080">Martinis pohár</translation> <translation id="2273119997271134996">Dokk videocsatlakozójával kapcsolatos probléma</translation> +<translation id="2274840746523584236">Töltse fel a Chromebookot</translation> <translation id="2276503375879033601">További alkalmazások hozzáadása</translation> <translation id="2277255602909579701">Összes cookie és webhelyadat</translation> <translation id="2277769717710009150">{COUNT,plural, =1{1 elem másolva}other{# elem másolva}}</translation> @@ -1915,6 +1919,7 @@ <translation id="3308116878371095290">Ezen az oldalon le van tiltva a cookie-k mentése.</translation> <translation id="3308134619352333507">Elrejtés gomb</translation> <translation id="3308852433423051161">A Google Segéd betöltése…</translation> +<translation id="3310640316857623290">A DNS várakozási ideje jelentősen az engedélyezhető határérték felett van</translation> <translation id="3311445899360743395">Az alkalmazáshoz kapcsolódó adatok törlődhetnek erről az eszközről.</translation> <translation id="3312424061798279731">Engedélyezett nyelvek</translation> <translation id="3313622045786997898">Tanúsítvány aláírási értéke</translation> @@ -1927,6 +1932,7 @@ <translation id="3323295311852517824">{NUM_FILES,plural, =0{Ezekben az adatokban bizalmas vagy veszélyes tartalom található. Távolítsa el ezt a tartalmat, majd próbálkozzon újra.}=1{Ebben a fájlban bizalmas vagy veszélyes tartalom található. Távolítsa el ezt a tartalmat, majd próbálkozzon újra.}other{Ezekben a fájlokban bizalmas vagy veszélyes tartalom található. Távolítsa el ezt a tartalmat, majd próbálkozzon újra.}}</translation> <translation id="3323521181261657960">Jutalom! Több ideig használhatod az eszközt</translation> <translation id="3325910708063135066">A kamera és a mikrofon ki van kapcsolva a Mac Rendszerbeállításokban</translation> +<translation id="3327050066667856415">A Chromebookokat a biztonság köré terveztük. Eszközét automatikusan védi a rendszer a rosszindulatú programokkal szemben – nincs szükség további szoftverek telepítésére.</translation> <translation id="3328489342742826322">A biztonsági másolat visszaállításával törli a Linux-fájlok mappájában található összes meglévő Linux-alkalmazást és -adatot.</translation> <translation id="3331321258768829690">(<ph name="UTCOFFSET" />) <ph name="LONGTZNAME" /> (<ph name="EXEMPLARCITY" />)</translation> <translation id="3331974543021145906">Alkalmazásadatok</translation> @@ -2116,6 +2122,7 @@ <translation id="3556433843310711081">A letiltást a kezelő oldhatja fel</translation> <translation id="3557101512409028104">Webhelyekre és képernyő előtt töltött időre vonatkozó korlátozások beállítása a Family Linkkel</translation> <translation id="3559262020195162408">Nem sikerült telepíteni a házirendet az eszközre.</translation> +<translation id="3559533181353831840">Körülbelül <ph name="TIME_LEFT" /> maradt</translation> <translation id="3560034655160545939">&Helyesírás-ellenőrzés</translation> <translation id="3562423906127931518">Ez a folyamat néhány percet is igénybe vehet. A Linux-tároló beállítása folyamatban van.</translation> <translation id="3563432852173030730">A kioszkalkalmazást nem sikerült letölteni.</translation> @@ -2158,6 +2165,7 @@ <translation id="3602290021589620013">Előnézet</translation> <translation id="3603622770190368340">Hálózati tanúsítvány beszerzése</translation> <translation id="3604713164406837697">Háttérkép megváltoztatása</translation> +<translation id="360565022852130722">A Wi-Fi-hálózat gyenge protokollal (WEP 802.1x) van biztosítva</translation> <translation id="3605780360466892872">Üzletember</translation> <translation id="3608576286259426129">Felhasználói kép előnézete</translation> <translation id="3610369246614755442">A dokk ventilátora javításra szorul</translation> @@ -2194,6 +2202,7 @@ <translation id="3639220004740062347">Kilépés az Olvasási módból</translation> <translation id="3640214691812501263">Hozzáadja a(z) „<ph name="EXTENSION_NAME" />” bővítményt a következő felhasználónál: <ph name="USER_NAME" />?</translation> <translation id="3640613767643722554">A Segéd megtanítása az Ön hangjának felismerésére</translation> +<translation id="3643014427358482789">A(z) <ph name="DOMAIN" /> letiltja az ADB-hibakeresést, ami alaphelyzetbe állítja a(z) <ph name="DEVICE_TYPE" /> eszközt. Az újraindítás előtt készítsen biztonsági másolatot a fájljairól.</translation> <translation id="3645372836428131288">Óvatosan mozgassa ujját az ujjlenyomat újabb részének rögzítéséhez.</translation> <translation id="3647998456578545569">{COUNT,plural, =1{<ph name="ATTACHMENTS" /> fogadva a következőtől: <ph name="DEVICE_NAME" />}other{<ph name="ATTACHMENTS" /> fogadva a következőtől: <ph name="DEVICE_NAME" />}}</translation> <translation id="3648348069317717750">A rendszer <ph name="USB_DEVICE_NAME" /> eszközt észlelt</translation> @@ -2282,6 +2291,7 @@ <translation id="3732857534841813090">A Google Segéddel kapcsolatos információk</translation> <translation id="3733127536501031542">SSL-szerver Step-up használatával</translation> <translation id="3735740477244556633">Rendezés</translation> +<translation id="3738632186060045350">A(z) <ph name="DEVICE_TYPE" /> eszközön lévő adatok 24 órán belül törlődnek</translation> <translation id="3738924763801731196"><ph name="OID" />:</translation> <translation id="3739254215541673094">Megnyitja: <ph name="APPLICATION" />?</translation> <translation id="3742055079367172538">Képernyőkép elkészítve</translation> @@ -2469,6 +2479,7 @@ <translation id="3937734102568271121"><ph name="LANGUAGE" /> – mindig legyen lefordítva</translation> <translation id="3938128855950761626">A(z) <ph name="VENDOR_ID" /> gyártótól származó eszközök</translation> <translation id="3940233957883229251">Automatikus ismétlés engedélyezése</translation> +<translation id="3941014780699102620">Nem sikerült a gazdagép feloldása</translation> <translation id="3941565636838060942">Ha többé nem akar hozzáférni ehhez a programhoz, el kell távolítania azt a Vezérlőpulton a(z) <ph name="CONTROL_PANEL_APPLET_NAME" /> segítségével. Elindítja a következőt: <ph name="CONTROL_PANEL_APPLET_NAME" />?</translation> @@ -2630,6 +2641,7 @@ <translation id="413121957363593859">Összetevők</translation> <translation id="4131410914670010031">Fekete-fehér</translation> <translation id="413193092008917129">Hálózati diagnosztikai rutinok</translation> +<translation id="4132183752438206707">Keressen alkalmazásokat a Google Play Áruházban</translation> <translation id="4133076602192971179">A jelszó módosításához nyissa meg az alkalmazást</translation> <translation id="4136203100490971508">Az Éjszakai fény automatikusan kikapcsol napkeltekor</translation> <translation id="41365691917097717">A folytatással engedélyezi az ADB-hibakeresés számára az Android-alkalmazások létrehozását és tesztelését. Ne feledje, hogy ez a művelet engedélyezi a Google által nem jóváhagyott Android-alkalmazások telepítését, és az eszköz letiltásához szükség van az eszköz gyári beállításainak visszaállítására.</translation> @@ -2879,6 +2891,8 @@ <translation id="4479877282574735775">A virtuális gép konfigurálása folyamatban van. Ez eltarthat néhány percig.</translation> <translation id="4480590691557335796">A Chrome képes a számítógépen lévő kártékony szoftverek megkeresésére és eltávolítására</translation> <translation id="4481530544597605423">Párosítatlan eszközök</translation> +<translation id="4483049906298469269">Nem sikerült a nem alapértelmezett hálózati átjáró pingelése</translation> +<translation id="4487489714832036847">A Chromebookok alkalmazásokat használnak hagyományos szoftverek helyett. Válogasson a produktivitást segítő, szórakoztató és egyéb alkalmazások között.</translation> <translation id="4488502501195719518">Törli az összes adatot?</translation> <translation id="4493468155686877504">Ajánlott (<ph name="INSTALL_SIZE" />)</translation> <translation id="4495419450179050807">Ne jelenjen meg ezen az oldalon</translation> @@ -2929,6 +2943,7 @@ <translation id="4546692474302123343">Google Segéd-hangbevitel</translation> <translation id="4547659257713117923">Nincs más eszközről származó lap</translation> <translation id="4547672827276975204">Automatikus beállítás</translation> +<translation id="4548483925627140043">A jel nem található</translation> <translation id="4549791035683739768">A biztonsági kulcs nem tárol ujjlenyomatokat</translation> <translation id="4551763574344810652">Nyomja meg a <ph name="MODIFIER_KEY_DESCRIPTION" /> billentyűparancsot a visszavonáshoz</translation> <translation id="4552089082226364758">Flash</translation> @@ -2968,6 +2983,7 @@ <translation id="4582563038311694664">Összes beállítás visszaállítása</translation> <translation id="4585793705637313973">Oldal szerkesztése</translation> <translation id="4586275095964870617">A(z) <ph name="URL" /> URL-címet nem sikerült másik böngészőben megnyitni. Kérjük, forduljon a rendszergazdához.</translation> +<translation id="458794348635939462">Nem sikerült az összes gazdagép feloldása</translation> <translation id="4589713469967853491">Naplóesemények sikeresen mentve a Letöltések mappába.</translation> <translation id="4590324241397107707">Adatbázis-tároló</translation> <translation id="4592891116925567110">Érintőceruza rajzalkalmazása</translation> @@ -3351,6 +3367,7 @@ <translation id="5089810972385038852">Állam</translation> <translation id="5094721898978802975">Kommunikáció az együttműködő natív alkalmazásokkal</translation> <translation id="5097002363526479830">Nem sikerült csatlakozni a(z) <ph name="NAME" /> hálózathoz: <ph name="DETAILS" /></translation> +<translation id="5097649414558628673">Eszköz: <ph name="PRINT_NAME" /></translation> <translation id="5097874180538493929">Automatikus kattintás, ha a kurzor megáll</translation> <translation id="5101042277149003567">Az összes könyvjelző megnyitása</translation> <translation id="5101839224773798795">Automatikus kattintás, amikor a kurzor megáll</translation> @@ -3570,6 +3587,7 @@ <translation id="5370819323174483825">Új&ratöltés</translation> <translation id="5372529912055771682">Az operációs rendszer jelen verziója nem támogatja a kínált regisztrációs módot. Kérjük, győződjön meg arról, hogy a legújabb verziót használja, majd próbálkozzon újra.</translation> <translation id="5372579129492968947">Bővítmény rögzítésének feloldása</translation> +<translation id="5372659122375744710">A Wi-Fi-hálózat nem biztonságos</translation> <translation id="5376169624176189338">Kattintson, ha az előző oldalra szeretne lépni; tartsa lenyomva, ha látni szeretné az előzményeket</translation> <translation id="5376931455988532197">Túl nagyméretű a fájl</translation> <translation id="5377721922656071359">{COUNT,plural, =1{<ph name="ATTACHMENTS" /> sikeresen elküldve ide: <ph name="DEVICE_NAME" />}other{<ph name="ATTACHMENTS" /> sikeresen elküldve ide: <ph name="DEVICE_NAME" />}}</translation> @@ -3599,6 +3617,7 @@ <translation id="5414566801737831689">A felkeresett webhelyek ikonjainak olvasása</translation> <translation id="5417312524372586921">Böngészőtémák</translation> <translation id="5419405654816502573">Voice Match</translation> +<translation id="5420274697768050645">A fokozott biztonság érdekében jelszó megadására van szükség az eszköz feloldásához</translation> <translation id="5420438158931847627">A szövegek és képek élességét határozza meg</translation> <translation id="5422221874247253874">Hozzáférési pont</translation> <translation id="5422781158178868512">Elnézést kérünk, de a külső tárolóeszköz nem ismerhető fel.</translation> @@ -3723,6 +3742,7 @@ <translation id="5548606607480005320">Biztonsági ellenőrzés</translation> <translation id="5551573675707792127">Billentyűzet és szövegbevitel</translation> <translation id="5553089923092577885">Tanúsítvány-irányelv leképezések</translation> +<translation id="5554403733534868102">Ezután többé nem kell frissítésekre várnia</translation> <translation id="5554489410841842733">Ez az ikon akkor látható, ha a bővítmény tehet valamit az aktuális oldalon.</translation> <translation id="5554720593229208774">E-mail tanúsítványkibocsátó</translation> <translation id="5556459405103347317">Újratöltés</translation> @@ -4137,6 +4157,7 @@ <translation id="6061882183774845124">Link küldése az eszközeire</translation> <translation id="6064217302520318294">Képernyőzárolás</translation> <translation id="6065289257230303064">Tanúsítványtulajdonos könyvtárattribútumai</translation> +<translation id="6069464830445383022">A Google-fiókjával jelentkezhet be Chromebookján</translation> <translation id="6069671174561668781">Háttérkép kiválasztása</translation> <translation id="6071181508177083058">jelszó megerősítése</translation> <translation id="6071576563962215370">A rendszer nem tudta zárolni az eszköz telepítésiidő-attribútumait.</translation> @@ -4179,6 +4200,7 @@ <translation id="6104311680260824317">Nem sikerült csatlakoztatni az eszközt a domainre. A szerver nem támogatja a megadott Kerberos-titkosítástípusokat. A titkosítási beállításokat a „További lehetőségek” részben találja.</translation> <translation id="6104796831253957966">A nyomtató várólistája megtelt</translation> <translation id="6105994589138235234">A Chrome böngésző szinkronizálása</translation> +<translation id="6108689792487843350">Az átjáró nem érhető el</translation> <translation id="6111972606040028426">A Google Segéd aktiválása</translation> <translation id="6112294629795967147">Érintse meg az átméretezéshez</translation> <translation id="6112727384379533756">Jegy felvétele</translation> @@ -4239,6 +4261,7 @@ <translation id="6178664161104547336">Tanúsítvány kiválasztása</translation> <translation id="6181431612547969857">Letöltés letiltva</translation> <translation id="6185132558746749656">Eszközhely</translation> +<translation id="6191293864534840972">Rosszul formázott névszerverek</translation> <translation id="6195446518998936840">Szülői felügyelet beállításához gyermekének Google-fiókkal kell rendelkeznie – ennek kezelésében segíthet neki. A Family Link alkalmazás segítségével képernyőidőre vonatkozó korlátozásokat állíthat be, webhelyeket hagyhat jóvá és tilthat le, illetve egyéb műveleteket végezhet.</translation> <translation id="6195693561221576702">Ezt az eszközt nem lehet offline demó módban beállítani.</translation> <translation id="6196640612572343990">Harmadik féltől származó cookie-k letiltása</translation> @@ -4452,6 +4475,7 @@ <translation id="6451591602925140504">{NUM_PAGES,plural, =0{<ph name="PAGE_TITLE" />}=1{<ph name="PAGE_TITLE" /> és további 1 lap}other{<ph name="PAGE_TITLE" /> és további # lap}}</translation> <translation id="6451689256222386810">Ha elfelejtette összetett jelszavát, vagy módosítani szeretné ezt a beállítást, <ph name="BEGIN_LINK" />állítsa alaphelyzetbe a szinkronizálást<ph name="END_LINK" />.</translation> <translation id="6452181791372256707">Elutasítás</translation> +<translation id="6452251728599530347"><ph name="PERCENT" /> kész</translation> <translation id="6452961788130242735">Hálózati probléma vagy helytelen tartomány</translation> <translation id="6455264371803474013">Megadott webhelyeken</translation> <translation id="6455894534188563617">Új &mappa</translation> @@ -4508,6 +4532,7 @@ <ph name="EVENT_NAME" /></translation> <translation id="6520876759015997832"><ph name="LIST_POSITION" />/<ph name="LIST_SIZE" />. találat: <ph name="SEARCH_RESULT_TEXT" />. A szakasz megnyitásához nyomja meg az Enter billentyűt.</translation> <translation id="652492607360843641">A következő típusú hálózatra csatlakozik: <ph name="NETWORK_TYPE" />.</translation> +<translation id="6527081081771465939">Ismeretlen Wi-Fi biztonsági protokoll</translation> <translation id="6527303717912515753">Megosztás</translation> <translation id="6528513914570774834">Engedélyezi a hálózat használatát az eszköz többi felhasználója számára</translation> <translation id="652948702951888897">Chrome-előzmények</translation> @@ -4624,6 +4649,7 @@ <translation id="6680442031740878064">Rendelkezésre álló tárhely: <ph name="AVAILABLE_SPACE" /></translation> <translation id="6680650203439190394">Értékelés</translation> <translation id="6681668084120808868">Fényképkészítés</translation> +<translation id="6684827949542560880">A legutóbbi frissítés letöltése…</translation> <translation id="668599234725812620">A Google Play megnyitása</translation> <translation id="6686490380836145850">Jobbra lévő lapok bezárása</translation> <translation id="6686817083349815241">Jelszó mentése</translation> @@ -4733,6 +4759,7 @@ <translation id="6812841287760418429">Módosítások megtartása</translation> <translation id="6817174620439930047">Kérdezzen meg, amikor egy webhely exkluzív rendszerüzenetekkel szeretné elérni a MIDI-eszközöket (ajánlott)</translation> <translation id="6818198425579322765">Az oldal fordítani kívánt nyelve</translation> +<translation id="6818802132960437751">Beépített vírusvédelem</translation> <translation id="682123305478866682">Asztal átküldése</translation> <translation id="6823174134746916417">Koppintással kattintás az érintőpadon</translation> <translation id="6823506025919456619">A saját eszközök megtekintéséhez be kell jelentkeznie a Chrome-ba.</translation> @@ -5379,6 +5406,7 @@ <translation id="7631205654593498032">Ha egymáshoz csatlakoztatja az eszközöket, engedélyezi <ph name="DEVICE_TYPE" /> eszközének a következőket:</translation> <translation id="7631887513477658702">&Az ilyen típusú fájlokat mindig nyissa meg</translation> <translation id="7632948528260659758">A következő kioszkalkalmazások frissítése nem sikerült:</translation> +<translation id="7633724038415831385">Ez az egyetlen alkalom, amikor várnia kell a frissítésre. A Chromebookok esetén a szoftverfrissítések a háttérben történnek.</translation> <translation id="7634566076839829401">Hiba történt. Próbálkozzon újra.</translation> <translation id="763632859238619983">Egyetlen webhely sem telepíthet fizetéskezelőt</translation> <translation id="7636919061354591437">Telepítés ezen az eszközön</translation> @@ -5657,6 +5685,7 @@ <translation id="7933314993013528982">{NUM_TABS,plural, =1{Webhely némításának feloldása}other{Webhelyek némításának feloldása}}</translation> <translation id="7933634003144813719">Megosztott mappák kezelése</translation> <translation id="793531125873261495">Nem sikerült letölteni a virtuális gépet. Próbálja újra.</translation> +<translation id="7936303884198020182">Nem találhatók névszerverek</translation> <translation id="7938594894617528435">Jelenleg offline</translation> <translation id="7939062555109487992">Haladó beállítások</translation> <translation id="7939412583708276221">Megtartás</translation> @@ -5900,6 +5929,7 @@ <translation id="8226742006292257240">Alább látható a véletlenszerűen generált TPM-jelszó, amelyet a számítógépéhez rendeltünk:</translation> <translation id="8227119283605456246">Fájl csatolása</translation> <translation id="8230134520748321204">Szeretné elmenteni a(z) <ph name="ORIGIN" /> jelszavát?</translation> +<translation id="8230672074305416752">Nem sikerült az alapértelmezett hálózati átjáró pingelése</translation> <translation id="8234795456569844941">Kérjük, segítsen mérnökeinknek a hiba kijavításában. Mondja el nekünk, hogy mi történt közvetlenül a profilhiba-üzenet megjelenése előtt:</translation> <translation id="8236917170563564587">Jelenlegi lap megosztása</translation> <translation id="8237647586961940482">Sötét rózsaszín-vörös</translation> @@ -5960,6 +5990,7 @@ <translation id="8288032458496410887"><ph name="APP" /> eltávolítása…</translation> <translation id="8289128870594824098">Lemezméret</translation> <translation id="8291967909914612644">Otthoni szolgáltató országa</translation> +<translation id="8293206222192510085">Könyvjelző hozzáadása</translation> <translation id="8294431847097064396">Forrás</translation> <translation id="8297006494302853456">Gyenge</translation> <translation id="8299319456683969623">Ön jelenleg offline állapotban van.</translation> @@ -6009,6 +6040,7 @@ <translation id="8363095875018065315">stabil</translation> <translation id="8363142353806532503">Mikrofon letiltva</translation> <translation id="8363763184161554204"><ph name="PERMISSION" /> engedélyezve</translation> +<translation id="8364946094152050673">Üres névszerverek</translation> <translation id="8366396658833131068">A hálózati kapcsolat helyreállt. Kérjük, válasszon másik hálózatot, vagy nyomja le az alábbi „Folytatás” gombot a kioszkalkalmazás elindításához.</translation> <translation id="8368027906805972958">Ismeretlen vagy nem támogatott eszköz (<ph name="DEVICE_ID" />)</translation> <translation id="8368859634510605990">&Az összes könyvjelző megnyitása</translation> @@ -6094,8 +6126,10 @@ <translation id="8472623782143987204">hardvertámogatott</translation> <translation id="8473863474539038330">Címek és egyebek</translation> <translation id="8475313423285172237">A számítógépen lévő egyik program olyan bővítményt adott hozzá, amely módosíthatja a Chrome működését.</translation> +<translation id="8475690821716466388">A Wi-Fi-hálózat gyenge protokollal (WEP PSK) van biztosítva</translation> <translation id="8477241577829954800">Hatálytalanítva</translation> <translation id="8477384620836102176">&Általános</translation> +<translation id="8477551185774834963">A DNS várakozási ideje kissé az engedélyezhető határérték felett van</translation> <translation id="8480082892550707549">Még ha töltött is le korábban fájlokat erről a webhelyről, előfordulhat, hogy a webhely ideiglenesen nem biztonságos, mert feltörték. Próbálja meg később letölteni a fájlt.</translation> <translation id="8480869669560681089">Ismeretlen eszköz a következő gyártótól: <ph name="VENDOR_NAME" /></translation> <translation id="8481187309597259238">USB-engedély megerősítése</translation> @@ -6147,6 +6181,7 @@ <translation id="8546930481464505581">Az érintősáv személyre szabása</translation> <translation id="8547013269961688403">Teljes képernyős nagyító engedélyezése</translation> <translation id="85486688517848470">A legfelső billentyűsor viselkedésének módosításához tartsa lenyomva a keresőgombot</translation> +<translation id="8549316893834449916">A Chromebookba Google-fiókjával tud majd bejelentkezni – ugyanazzal a fiókkal, amellyel a Gmail, a Drive, a YouTube és a további kapcsolódó szolgáltatásokat is használja.</translation> <translation id="8551388862522347954">Licencek</translation> <translation id="8551588720239073785">Dátum- és időbeállítások</translation> <translation id="8553342806078037065">Más személyek kezelése</translation> @@ -6285,6 +6320,7 @@ <translation id="8720200012906404956">Mobilhálózat keresése folyamatban van. <ph name="BEGIN_LINK" />További információ.<ph name="END_LINK" /></translation> <translation id="8720816553731218127">A telepítés alatti attribútumok inicializálásakor időtúllépés történt.</translation> <translation id="8722912030556880711">Használati és diagnosztikai adatok küldése. Ez az eszköz jelenleg automatikusan küld diagnosztikai, eszköz- és alkalmazáshasználati adatokat a Google-nak. Az adatok a rendszer- és alkalmazásstabilitás javításában, valamint más fejlesztésekben segítenek. Bizonyos összesített adatok a Google-alkalmazásoknak és -partnereknek, például az Android-fejlesztőknek is segítenek. Ha az Internetes és alkalmazástevékenységek beállítás is be van kapcsolva, akkor a rendszer ezeket az adatokat az Ön Google-fiókjába is mentheti. <ph name="BEGIN_LINK2" />További információ.<ph name="END_LINK2" /></translation> +<translation id="8723108084122415655">A nem alapértelmezett hálózat túllépi a várakozási idő határértékét</translation> <translation id="8724405322205516354">Ha ezt az ikont látja, akkor ujjlenyomata használatával azonosítsa magát vagy engedélyezze a vásárlást.</translation> <translation id="8724409975248965964">Ujjlenyomat hozzáadva</translation> <translation id="8724859055372736596">&Megjelenítés mappában</translation> @@ -6462,6 +6498,7 @@ <translation id="8909833622202089127">A webhely nyomon követi a tartózkodási helyét</translation> <translation id="8910146161325739742">Képernyőmegosztás</translation> <translation id="8910222113987937043">A könyvjelzők, előzmények, jelszavak és egyéb beállítások módosításai nem lesznek szinkronizálva Google-fiókjával. Meglévő adatait azonban továbbra is tárolni fogja Google-fiókja, és azokat a <ph name="BEGIN_LINK" />Google Irányítópulton<ph name="END_LINK" /> kezelheti.</translation> +<translation id="8910721771319628100">Az alapértelmezett hálózat túllépi a várakozási idő határértékét</translation> <translation id="8912362522468806198">Google Fiókjába</translation> <translation id="8912793549644936705">Nyújtva</translation> <translation id="8912810933860534797">Automatikus keresés engedélyezése</translation>
diff --git a/chrome/app/resources/generated_resources_hy.xtb b/chrome/app/resources/generated_resources_hy.xtb index af41254..2f82456 100644 --- a/chrome/app/resources/generated_resources_hy.xtb +++ b/chrome/app/resources/generated_resources_hy.xtb
@@ -71,6 +71,7 @@ <translation id="1070705170564860382"><ph name="COUNTDOWN_SECONDS" /> վայրկյանից կբացվի այլ դիտարկիչում</translation> <translation id="1071917609930274619">Տվյալների կոդավորում</translation> <translation id="1072700771426194907">Հայտնաբերվել է USB սարք</translation> +<translation id="107278043869924952">Գաղտնաբառից բացի օգտագործել PIN կոդ</translation> <translation id="1076176485976385390">Էջերի նավարկում տեքստի նշորդի միջոցով</translation> <translation id="1076698951459398590">Միացնել թեման</translation> <translation id="1076818208934827215">Microsoft Internet Explorer</translation> @@ -524,7 +525,6 @@ <translation id="1608668830839595724">Այլ գործողություններ ընտրված տարրերի համար</translation> <translation id="161042844686301425">Երկնագույն</translation> <translation id="1611432201750675208">Ձեր սարքը կողպված է</translation> -<translation id="1611584202130317952">Համաժամացումն ընդհատվել է։ Փորձեք նորից կամ կապվեք սարքի սեփականատիրոջ կամ ադմինիստրատորի հետ։</translation> <translation id="1614511179807650956">Հնարավոր է` դուք սպառել եք հասանելի ամբողջ բջջային թրաֆիկը: Լրացուցիչ թրաֆիկ գնելու համար այցելեք <ph name="NAME" /> ակտիվացման կայքէջ:</translation> <translation id="161460670679785907">Չհաջողվեց հայտնաբերել ձեր հեռախոսը</translation> <translation id="1616206807336925449">Տվյալ ընդլայնումը չի պահանջում հատուկ թույլտվություն:</translation> @@ -533,6 +533,7 @@ <translation id="1618268899808219593">Օ&գնության կենտրոն</translation> <translation id="1620307519959413822">Գաղտնաբառը սխալ է: Մուտքագրեք այն նորից կամ սեղմեք «Մոռացել եմ գաղտնաբառը»:</translation> <translation id="1620510694547887537">Տեսախցիկ</translation> +<translation id="1621831347985899379"><ph name="DEVICE_TYPE" /> սարքի տվյալները կջնջվեն</translation> <translation id="1622054403950683339">Հեռացնել Wi-Fi ցանցը</translation> <translation id="1623132449929929218">Պատկերներն այժմ անհասանելի են: Պաստառների հավաքածուները տեսնելու համար նորից միացեք համացանցին:</translation> <translation id="1623723619460186680">Նվազեցնել կապույտ լույսը</translation> @@ -760,6 +761,7 @@ <translation id="1877377290348678128">Պիտակ (կամընտիր)</translation> <translation id="1877520246462554164">Չհաջողվեց ստանալ նույնականացման թոքենը։ Դուրս եկեք հաշվից ու նորից մուտք գործեք:</translation> <translation id="1877860345998737529">Գործողությունների նշանակման փոխանջատիչ</translation> +<translation id="1878155070920054810">Ձեր Chromebook-ի մարտկոցի լիցքը կսպառվի մինչ թարմացման ավարտը։ Միացրեք լիցքավորումը՝ ընդհատումից խուսափելու համար։</translation> <translation id="1879000426787380528">Մուտք գործել հաշվով</translation> <translation id="1880905663253319515">Ջնջե՞լ «<ph name="CERTIFICATE_NAME" />» վկայագիրը:</translation> <translation id="1881445033931614352">Ստեղնաշարի դասավորություն</translation> @@ -964,6 +966,7 @@ <translation id="2148219725039824548">Ընդհանուր միացման սխալ կա։ Նշված սարքը չի գտնվել ցանցում։</translation> <translation id="2148756636027685713">Ձևաչափումն ավարտված է</translation> <translation id="2148892889047469596">Ներդիրի հեռարձակում</translation> +<translation id="2149973817440762519">Փոփոխել էջանիշը</translation> <translation id="2150139952286079145">Նպատակակետերի որոնում</translation> <translation id="2150661552845026580">Ավելացնե՞լ «<ph name="EXTENSION_NAME" />»-ը:</translation> <translation id="2151576029659734873">Ներդիրի սխալ ցուցիչ եք մուտքագրել:</translation> @@ -1073,6 +1076,7 @@ <translation id="2270627217422354837">Տվյալներ փոխանակել ցանկացած սարքի հետ հետևյալ տիրույթներում՝ <ph name="DOMAINS" /></translation> <translation id="2272570998639520080">Մարտինիի բաժակ</translation> <translation id="2273119997271134996">Դոկ-կայանի տեսամիացքի հետ կապված խնդիր կա</translation> +<translation id="2274840746523584236">Լիցքավորեք Chromebook սարքը</translation> <translation id="2276503375879033601">Ավելացնել հավելվածներ</translation> <translation id="2277255602909579701">Բոլոր քուքիները և կայքերի տվյալները</translation> <translation id="2277769717710009150">{COUNT,plural, =1{Պատճենվել է 1 տարր}one{# items copied}other{Պատճենվել է # տարր}}</translation> @@ -1915,6 +1919,7 @@ <translation id="3308116878371095290">Կանխվել է այս էջի կողմից քուքիները պահելու փորձը:</translation> <translation id="3308134619352333507">Թաքցնել կոճակը</translation> <translation id="3308852433423051161">Google Օգնականի բեռնում...</translation> +<translation id="3310640316857623290">DNS-ի հապաղումը մեծ առավելություն ունի թույլատրելի սահմանափակման նկատմամբ</translation> <translation id="3311445899360743395">Այս հավելվածին առնչվող տվյալները կարող են հեռացվել այս սարքից:</translation> <translation id="3312424061798279731">Միացված լեզուները</translation> <translation id="3313622045786997898">Վկայագրի ստորագրության արժեքը</translation> @@ -1927,6 +1932,7 @@ <translation id="3323295311852517824">{NUM_FILES,plural, =0{Այս տվյալները պարունակում են խիստ անձնական կամ վտանգավոր բովանդակություն։ Հեռացրեք այս բովանդակությունն ու նորից փորձեք։}=1{Այս ֆայլը պարունակում է խիստ անձնական կամ վտանգավոր բովանդակություն։ Հեռացրեք այս բովանդակությունն ու նորից փորձեք։}one{Այս ֆայլերը պարունակում են խիստ անձնական կամ վտանգավոր բովանդակություն։ Հեռացրեք այս բովանդակությունն ու նորից փորձեք։}other{Այս ֆայլերը պարունակում են խիստ անձնական կամ վտանգավոր բովանդակություն։ Հեռացրեք այս բովանդակությունն ու նորից փորձեք։}}</translation> <translation id="3323521181261657960">Սարքի օգտագործման ժամանակն ավելացվել է</translation> <translation id="3325910708063135066">Տեսախցիկն ու խոսափողը անջատած են Mac-ի համակարգի կարգավորումներում</translation> +<translation id="3327050066667856415">Chromebook սարքերում անվտանգությունը բարձր մակարդակի վրա է։ Ձեր սարքն ավտոմատ պաշտպանվում է վնասագրերից։ Ոչ մի լրացուցիչ ծրագիր հարկավոր չէ։</translation> <translation id="3328489342742826322">Պահուստավորված կրկնօրինակից վերականգնելու դեպքում Լինուքսի բոլոր հավելվածները, ինչպես նաև «Լինուքսի ֆայլեր» պանակի տվյալները կջնջվեն:</translation> <translation id="3331321258768829690">(<ph name="UTCOFFSET" />) <ph name="LONGTZNAME" /> (<ph name="EXEMPLARCITY" />)</translation> <translation id="3331974543021145906">Տեղեկություններ հավելվածի մասին</translation> @@ -2116,6 +2122,7 @@ <translation id="3556433843310711081">Այն կարող է արգելահանել ձեր ադմինիստրատորը</translation> <translation id="3557101512409028104">Սահմանափակեք կայքերի հասանելիությունը և սարքի օգտագործման ժամանակը Family Link-ի միջոցով</translation> <translation id="3559262020195162408">Չհաջողվեց քաղաքականությունը կիրառել սարքի նկատմամբ:</translation> +<translation id="3559533181353831840">Լիցքը կբավարարի մոտ <ph name="TIME_LEFT" /></translation> <translation id="3560034655160545939">&Ուղղագրության ստուգում</translation> <translation id="3562423906127931518">Այս գործընթացը կարող է տևել մի քանի րոպե: Linux-ի կոնտեյները կարգավորվում է:</translation> <translation id="3563432852173030730">Չհաջողվեց ներբեռնել kiosk ծրագիրը:</translation> @@ -2158,6 +2165,7 @@ <translation id="3602290021589620013">Նախադիտում</translation> <translation id="3603622770190368340">Ցանցային վկայագրի ստացում</translation> <translation id="3604713164406837697">Փոխել պաստառը</translation> +<translation id="360565022852130722">Wi-Fi ցանցը պաշտպանված է WEP 802.1x թույլ հաղորդակարգով</translation> <translation id="3605780360466892872">Գործարար</translation> <translation id="3608576286259426129">Օգտատիրոջ պատկերի նախադիտում</translation> <translation id="3610369246614755442">Դոկ-կայանի հովացուցիչը տեխսպասարկման կարիք ունի</translation> @@ -2194,6 +2202,7 @@ <translation id="3639220004740062347">Դուրս գալ ընթերցման ռեժիմից</translation> <translation id="3640214691812501263">Ավելացնե՞լ «<ph name="EXTENSION_NAME" />» ընդլայնումը <ph name="USER_NAME" />-ի համար:</translation> <translation id="3640613767643722554">Սովորեցրեք Օգնականին ճանաչել ձեր ձայնը</translation> +<translation id="3643014427358482789"><ph name="DOMAIN" /> կայքն անջատել է ADB վրիպազերծումը, ինչի արդյունքում ձեր <ph name="DEVICE_TYPE" /> սարքը կվերակայվի։ Վերագործարկելուց առաջ պահուստավորեք ձեր ֆայլերը։</translation> <translation id="3645372836428131288">Թեթևակի շարժեք մատը` ամբողջական մատնահետքը ստանալու համար։</translation> <translation id="3647998456578545569">{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="3648348069317717750"><ph name="USB_DEVICE_NAME" /> սարքը հայտնաբերվել է</translation> @@ -2282,6 +2291,7 @@ <translation id="3732857534841813090">Google Օգնականին առնչվող տեղեկություններ</translation> <translation id="3733127536501031542">SSL սերվեր՝ նոր տարբերակին անցնելու հնարավորությամբ</translation> <translation id="3735740477244556633">Տեսակավորել ըստ</translation> +<translation id="3738632186060045350"><ph name="DEVICE_TYPE" /> սարքի տվյալները 24 ժամ հետո կջնջվեն</translation> <translation id="3738924763801731196"><ph name="OID" />՝</translation> <translation id="3739254215541673094">Բացե՞լ <ph name="APPLICATION" /> հավելվածը</translation> <translation id="3742055079367172538">Սքրինշոթը ստեղծված է</translation> @@ -2469,6 +2479,7 @@ <translation id="3937734102568271121">Միշտ թարգմանել <ph name="LANGUAGE" /> էջերը</translation> <translation id="3938128855950761626">Սարքեր <ph name="VENDOR_ID" /> մատակարարից</translation> <translation id="3940233957883229251">Միացնել ինքնակրկնումը</translation> +<translation id="3941014780699102620">Չհաջողվեց կապ հաստատել հանգույցի հետ</translation> <translation id="3941565636838060942">Այս ծրագրի մուտքը փակելու համար պետք է ապատեղադրեք այն՝ Հսկիչ վահանակում անցնելով <ph name="CONTROL_PANEL_APPLET_NAME" />: @@ -2631,6 +2642,7 @@ <translation id="413121957363593859">Բաղադրիչներ</translation> <translation id="4131410914670010031">Սև ու սպիտակ</translation> <translation id="413193092008917129">Ցանցի դիագնոստիկայի հերթականություններ</translation> +<translation id="4132183752438206707">Գտեք հավելվածներ Google Play Խանութում</translation> <translation id="4133076602192971179">Գաղտնաբառը փոխելու համար բացեք հավելվածը</translation> <translation id="4136203100490971508">Լույսը բացվելուն պես գիշերային ռեժիմը ավտոմատ կանջատվի</translation> <translation id="41365691917097717">Եթե շարունակեք, ADB վրիպազերծումը կմիանա և Android-ի համար հավելվածներ կստեղծվեն ու կփորձարկվեն: Նկատի ունեցեք, որ այս գործողությունը թույլ է տալիս այն Android հավելվածների տեղադրումը, որոնք չեն ստուգվել Google-ի կողմից։ Դրա համար անհրաժեշտ է վերականգնել սարքի գործարանային կարգավորումները։</translation> @@ -2880,6 +2892,8 @@ <translation id="4479877282574735775">Վիրտուալ մեքենան կարգավորվում է: Սա կարող է մի քանի րոպե տևել։</translation> <translation id="4480590691557335796">Chrome-ը կարող է գտնել վնասաբեր ծրագիրը ձեր համակարգչում և ջնջել այն</translation> <translation id="4481530544597605423">Ապազուգակցված սարքեր</translation> +<translation id="4483049906298469269">Չհաջողվեց փինգ ուղարկել չկանխադրված ցանցի անցախուցին</translation> +<translation id="4487489714832036847">Chromebook սարքերում ավանդական ծրագրերի փոխարեն հավելվածներ են օգտագործվում։ Տեղադրեք աշխատանքային, ժամանցային և այլ հավելվածներ։</translation> <translation id="4488502501195719518">Ջնջե՞լ բոլոր տվյալները</translation> <translation id="4493468155686877504">Առաջարկվող չափը (<ph name="INSTALL_SIZE" />)</translation> <translation id="4495419450179050807">Ցույց չտալ այս էջում</translation> @@ -2930,6 +2944,7 @@ <translation id="4546692474302123343">Google Օգնականի ձայնային ներածում</translation> <translation id="4547659257713117923">Այլ սարքերից ներդիրներ չկան</translation> <translation id="4547672827276975204">Ավտոմատ որոշում</translation> +<translation id="4548483925627140043">Ազդանշան չի գտնվել</translation> <translation id="4549791035683739768">Անվտանգության բանալու վրա պահված մատնահետքեր չկան</translation> <translation id="4551763574344810652">Հետարկելու համար սեղմեք <ph name="MODIFIER_KEY_DESCRIPTION" /></translation> <translation id="4552089082226364758">Flash</translation> @@ -2969,6 +2984,7 @@ <translation id="4582563038311694664">Վերակայել բոլոր կարգավորումները</translation> <translation id="4585793705637313973">Փոխել էջը</translation> <translation id="4586275095964870617">Չհաջողվեց <ph name="URL" /> կայքը բացել այլ դիտարկիչում։ Կապվեք համակարգի ադմինիստրատորի հետ:</translation> +<translation id="458794348635939462">Չհաջողվեց կապ հաստատել բոլոր հանգույցների հետ</translation> <translation id="4589713469967853491">Մատյանները գրվեցին «Ներբեռնումներ» գրացուցակում։</translation> <translation id="4590324241397107707">Տվյալների շտեմարանի պահեստ</translation> <translation id="4592891116925567110">Ստիլուսի միջոցով նկարելու հավելված</translation> @@ -3353,6 +3369,7 @@ <translation id="5089810972385038852">Նահանգ</translation> <translation id="5094721898978802975">Կապվել հարակից native հավելվածների հետ</translation> <translation id="5097002363526479830">Չհաջողվեց կապակցվել «<ph name="NAME" />» ցանցին: <ph name="DETAILS" /></translation> +<translation id="5097649414558628673">Գործիք՝ <ph name="PRINT_NAME" /></translation> <translation id="5097874180538493929">Ավտոմատ սեղմել, երբ նշորդը կանգնում է</translation> <translation id="5101042277149003567">Բացել բոլոր էջանիշները</translation> <translation id="5101839224773798795">Ավտոմատ սեղմել, երբ մկնիկի նշորդը կանգնում է</translation> @@ -3573,6 +3590,7 @@ <translation id="5370819323174483825">&Վերաբեռնել</translation> <translation id="5372529912055771682">Օպերացիոն համակարգի այս տարբերակը չի աջակցում գրանցման տրամադրված ռեժիմը: Թարմացրեք տարբերակը և կրկին փորձեք:</translation> <translation id="5372579129492968947">Ապամրացնել ընդլայնումը</translation> +<translation id="5372659122375744710">Wi-Fi ցանցն անվտանգ չէ</translation> <translation id="5376169624176189338">Հետ գնալու համար սեղմեք: Պատմությունը դիտելու համար պահեք:</translation> <translation id="5376931455988532197">Ֆայլը չափազանց մեծ է</translation> <translation id="5377721922656071359">{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> @@ -3602,6 +3620,7 @@ <translation id="5414566801737831689">Կարդալ այն վեբէջերի պատկերակները, որոնք դուք այցելում եք</translation> <translation id="5417312524372586921">Դիտարկիչի թեմաներ</translation> <translation id="5419405654816502573">Voice Match</translation> +<translation id="5420274697768050645">Լրացուցիչ ապահովության համար սարքն ապակողպելիս պահանջել գաղտնաբառ</translation> <translation id="5420438158931847627">Սահմանում է տեքստի և պատկերների հստակությունը</translation> <translation id="5422221874247253874">Մուտքի կետ</translation> <translation id="5422781158178868512">Ձեր արտաքին պահեստի սարքը չի ճանաչվում:</translation> @@ -3726,6 +3745,7 @@ <translation id="5548606607480005320">Անվտանգության ստուգում</translation> <translation id="5551573675707792127">Ստեղնաշար և տեքստի մուտքագրում</translation> <translation id="5553089923092577885">Վկայագրի քաղաքականությունների համադրում</translation> +<translation id="5554403733534868102">Այսուհետ թարմացումներին սպասելու կարիք չի լինի</translation> <translation id="5554489410841842733">Այս պատկերակը կերևա, եթե ընդլայնումը կարող է աշխատել ընթացիկ էջում:</translation> <translation id="5554720593229208774">Էլփոստի հավաստագրման կենտրոն</translation> <translation id="5556459405103347317">Վերաբեռնել</translation> @@ -4139,6 +4159,7 @@ <translation id="6061882183774845124">Ուղարկել հղումը իմ սարքերին</translation> <translation id="6064217302520318294">Էկրանի կողպում</translation> <translation id="6065289257230303064">Վկայագրի սուբյեկտի գրացուցակի հատկանիշներ</translation> +<translation id="6069464830445383022">Chromebook-ում մուտք գործեք ձեր Google հաշվով</translation> <translation id="6069671174561668781">Տեղադրել պաստառը</translation> <translation id="6071181508177083058">հաստատեք գաղտնաբառը</translation> <translation id="6071576563962215370">Համակարգին չհաջողվեց կողպել սարքի հատկանիշները տեղադրման ժամանակ:</translation> @@ -4181,6 +4202,7 @@ <translation id="6104311680260824317">Չհաջողվեց միացնել սարքը տիրույթին: Սերվերը չի աջակցում Kerberos գաղտնագրման նշված տեսակները։ Գաղտնագրման կարգավորումների համար ընտրեք «Այլ տարբերակներ»։</translation> <translation id="6104796831253957966">Տպիչի հերթացանկը լցված է</translation> <translation id="6105994589138235234">Chrome դիտարկիչի համաժամացում</translation> +<translation id="6108689792487843350">Անցախուցն անհասանելի է</translation> <translation id="6111972606040028426">Միացնել Google Օգնականը</translation> <translation id="6112294629795967147">Հպեք՝ չափը փոխելու համար</translation> <translation id="6112727384379533756">Ավելացնել տոմս</translation> @@ -4241,6 +4263,7 @@ <translation id="6178664161104547336">Ընտրեք վկայագիր</translation> <translation id="6181431612547969857">Ներբեռնումն արգելափակված է</translation> <translation id="6185132558746749656">Սարքի տեղադրությունը</translation> +<translation id="6191293864534840972">Սխալ DNS սերվերներ</translation> <translation id="6195446518998936840">Ծնողական վերահսկողությունը կարգավորելու համար երեխան պետք է ունենա Google հաշիվ, որը դուք կօգնեք կառավարել։ Family Link հավելվածում դուք կարող եք սահմանափակել սարքի օգտագործման ժամանակը, թույլատրել կամ արգելափակել կայքեր և շատ ավելին։</translation> <translation id="6195693561221576702">Անցանց դեմո ռեժիմն այս սարքի համար հասանելի չէ։</translation> <translation id="6196640612572343990">Արգելափակել երրորդ կողմի քուքիները</translation> @@ -4454,6 +4477,7 @@ <translation id="6451591602925140504">{NUM_PAGES,plural, =0{<ph name="PAGE_TITLE" />}=1{<ph name="PAGE_TITLE" /> ու ևս 1 ներդիր}one{<ph name="PAGE_TITLE" /> ու ևս # ներդիր}other{<ph name="PAGE_TITLE" /> ու ևս # ներդիր}}</translation> <translation id="6451689256222386810">Եթե մոռացել եք ձեր անցաբառը կամ ուզում եք փոխել այս կարգավորումը, <ph name="BEGIN_LINK" />վերակայեք համաժամացումը<ph name="END_LINK" />:</translation> <translation id="6452181791372256707">Մերժել</translation> +<translation id="6452251728599530347">Ներբեռնվել է <ph name="PERCENT" />-ը</translation> <translation id="6452961788130242735">Ցանցի կամ տիրույթի հետ կապված խնդիր կա</translation> <translation id="6455264371803474013">Որոշակի կայքերում</translation> <translation id="6455894534188563617">&Նոր պանակ</translation> @@ -4510,6 +4534,7 @@ <ph name="EVENT_NAME" /></translation> <translation id="6520876759015997832">«<ph name="SEARCH_RESULT_TEXT" />» հարցումով որոնման արդյունքներ <ph name="LIST_POSITION" />/<ph name="LIST_SIZE" />։ Հպեք Enter՝ այդ բաժին անցնելու համար։</translation> <translation id="652492607360843641">Դուք միացած եք <ph name="NETWORK_TYPE" /> ցանցին:</translation> +<translation id="6527081081771465939">Wi-Fi-ի անվտանգության անհայտ հաղորդակարգ</translation> <translation id="6527303717912515753">Կիսվել</translation> <translation id="6528513914570774834">Թույլատրել սարքի մյուս օգտատերերին օգտագործել այս ցանցը</translation> <translation id="652948702951888897">Chrome-ի պատմություն</translation> @@ -4626,6 +4651,7 @@ <translation id="6680442031740878064">Հասանելի է <ph name="AVAILABLE_SPACE" /></translation> <translation id="6680650203439190394">Խոսքի արագությունը</translation> <translation id="6681668084120808868">Լուսանկարել</translation> +<translation id="6684827949542560880">Ներբեռնվում է վերջին թարմացումը</translation> <translation id="668599234725812620">Բացել Google Play-ը</translation> <translation id="6686490380836145850">Փակել աջ կողմի ներդիրները</translation> <translation id="6686817083349815241">Պահել գաղտնաբառը</translation> @@ -4735,6 +4761,7 @@ <translation id="6812841287760418429">Պահպանել փոփոխությունները</translation> <translation id="6817174620439930047">Հարցնել, երբ որևէ կայք ուզում է օգտագործել համակարգի բացառիկ հաղորդագրությունները՝ MIDI սարքեր մուտք գործելու համար (խորհուրդ է տրվում)</translation> <translation id="6818198425579322765">Թարգմանվող էջի լեզուն</translation> +<translation id="6818802132960437751">Վիրուսներից պաշտպանության ներկառուցված համակարգ</translation> <translation id="682123305478866682">Աշխատասեղանի հեռարձակում</translation> <translation id="6823174134746916417">Հպահարթակի tap-to-click գործառույթը</translation> <translation id="6823506025919456619">Ձեր սարքերը տեսնելու համար պետք է մուտք գործեք Chrome</translation> @@ -5381,6 +5408,7 @@ <translation id="7631205654593498032">Միացնելուց հետո <ph name="DEVICE_TYPE" /> սարքը կարող է՝</translation> <translation id="7631887513477658702">&Միշտ բացել այս տեսակի ֆայլերը</translation> <translation id="7632948528260659758">Չհաջողվեց թարմացնել հետևյալ kiosk հավելվածները՝</translation> +<translation id="7633724038415831385">Դուք միայն այս անգամ պետք է սպասեք թարմացման։ Chromebook սարքերում ծրագրակազմի թարմացումը տեղի է ունենում ֆոնային ռեժիմում։</translation> <translation id="7634566076839829401">Ինչ-որ սխալ առաջացավ: Նորից փորձեք:</translation> <translation id="763632859238619983">Արգելել կայքերին տեղադրել վճարումների մշակիչներ</translation> <translation id="7636919061354591437">Տեղադրել այս սարքում</translation> @@ -5658,6 +5686,7 @@ <translation id="7933314993013528982">{NUM_TABS,plural, =1{Միացնել կայքի ձայնը}one{Միացնել կայքի ձայնը}other{Միացնել կայքերի ձայնը}}</translation> <translation id="7933634003144813719">Կառավարել ընդհանուր պանակները</translation> <translation id="793531125873261495">Չհաջողվեց ներբեռնել վիրտուալ մեքենան: Նորից փորձեք:</translation> +<translation id="7936303884198020182">DNS սերվերներ չեն գտնվել</translation> <translation id="7938594894617528435">Այս պահին անցանց</translation> <translation id="7939062555109487992">Ընդլայնված ընտրանքներ</translation> <translation id="7939412583708276221">Տեղադրել</translation> @@ -5900,6 +5929,7 @@ <translation id="8226742006292257240">Ստորև ներկայացված է ձեր համակարգչի համար պատահական ստեղծված TPM գաղտնաբառը՝</translation> <translation id="8227119283605456246">Կցել ֆայլ</translation> <translation id="8230134520748321204">Պահե՞լ <ph name="ORIGIN" /> կայքի գաղտնաբառը</translation> +<translation id="8230672074305416752">Չհաջողվեց փինգ ուղարկել կանխադրված ցանցի անցախուցին</translation> <translation id="8234795456569844941">Օգնեք մեր ճարտարագետներին շտկել այս խնդիրը։ Նկարագրեք, թե ինչ տեղի ունեցավ նախքան պրոֆիլի սխալի մասին հաղորդագրություն ստանալը՝</translation> <translation id="8236917170563564587">Փոխարենը կիսվեք այս ներդիրով</translation> <translation id="8237647586961940482">Մուգ վարդագույն և կարմիր</translation> @@ -5960,6 +5990,7 @@ <translation id="8288032458496410887">Ապատեղադրել <ph name="APP" /> հավելվածը…</translation> <translation id="8289128870594824098">Սկավառակի չափը</translation> <translation id="8291967909914612644">Տան ծառայությունների մատակարարի երկիրը</translation> +<translation id="8293206222192510085">Էջանիշի հավելում</translation> <translation id="8294431847097064396">Աղբյուր</translation> <translation id="8297006494302853456">Թույլ</translation> <translation id="8299319456683969623">Այս պահին դուք անցանց եք:</translation> @@ -6009,6 +6040,7 @@ <translation id="8363095875018065315">կայուն</translation> <translation id="8363142353806532503">Խոսափողի օգտագործումն արգելված է</translation> <translation id="8363763184161554204">«<ph name="PERMISSION" />»՝ թույլատրված է</translation> +<translation id="8364946094152050673">DNS սերվերները դատարկ են</translation> <translation id="8366396658833131068">Ցանցի կապակցումը վերականգնվել է: Kiosk հավելվածը գործարկելու համար ընտրեք այլ ցանց կամ սեղմեք «Շարունակել» կոճակը:</translation> <translation id="8368027906805972958">Անհայտ կամ չաջակցվող սարք (<ph name="DEVICE_ID" />)</translation> <translation id="8368859634510605990">&Բացել բոլոր էջանիշները</translation> @@ -6094,8 +6126,10 @@ <translation id="8472623782143987204">պահանջվում է սարքակազմ</translation> <translation id="8473863474539038330">Հասցեներ և այլ տեղեկություններ</translation> <translation id="8475313423285172237">Ձեր համակարգչի ծրագրերից մեկն ավելացրել է ընդլայնում, որը կարող է միջամտել Chrome-ի աշխատանքին:</translation> +<translation id="8475690821716466388">Wi-Fi ցանցը պաշտպանված է WEP PSK թույլ հաղորդակարգով</translation> <translation id="8477241577829954800">Փոխարինված է</translation> <translation id="8477384620836102176">&Ընդհանուր</translation> +<translation id="8477551185774834963">DNS-ի հապաղումը փոքր առավելություն ունի թույլատրելի սահմանափակման նկատմամբ</translation> <translation id="8480082892550707549">Նույնիսկ եթե նախկինում ֆայլեր եք ներբեռնել այս կայքից, այժմ վերջինս կարող է հարձակման ենթարկված լինել: Փորձեք ֆայլը ներբեռնել ավելի ուշ:</translation> <translation id="8480869669560681089">Անհայտ սարք <ph name="VENDOR_NAME" />-ից</translation> <translation id="8481187309597259238">Հաստատեք USB-ի թույլտվությունները</translation> @@ -6147,6 +6181,7 @@ <translation id="8546930481464505581">Հարմարեցնել հպման գոտին</translation> <translation id="8547013269961688403">Միացնել լիաէկրան խոշորացույցը</translation> <translation id="85486688517848470">Վերևի շարքի ստեղները փոխարկելու համար սեղմած պահեք որոնման ստեղնը</translation> +<translation id="8549316893834449916">Chromebook-ում մուտք գործելու համար կօգտագործվի ձեր Google հաշիվը, որն օգտագործում եք Gmail, Drive, YouTube և այլ ծառայություններում։</translation> <translation id="8551388862522347954">Լիցենզիաներ</translation> <translation id="8551588720239073785">Ամսաթվի և ժամի կարգավորումներ</translation> <translation id="8553342806078037065">Կառավարել այլ օգտատերերի</translation> @@ -6285,6 +6320,7 @@ <translation id="8720200012906404956">Բջջային ցանցի որոնում։ <ph name="BEGIN_LINK" />Մանրամասն<ph name="END_LINK" /></translation> <translation id="8720816553731218127">Տեղադրման ժամանակի հատկանիշների սկզբնավորման ժամանակը սպառվեց:</translation> <translation id="8722912030556880711">Օգտագործման և ախտորոշման տվյալների ուղարկում Ներկայումս այս սարքը ախտորոշման, սարքի և հավելվածի օգտագործման տվյալներն ավտոմատ ուղարկում է Google-ին: Այս տեղեկությունները կօգնեն բարելավել համակարգի ու հավելվածի աշխատանքի կայունությունը: Հավաքված տեղեկությունների մի մասը օգտակար կլինի մեր գործընկերների, օրինակ, Android ծրագրավորողների համար։ Եթե Վեբ որոնման և հավելվածների պատմությունը միացված է, այս տվյալները կպահվեն ձեր Google հաշվում։ <ph name="BEGIN_LINK2" />Մանրամասն<ph name="END_LINK2" /></translation> +<translation id="8723108084122415655">Չկանխադրված ցանցը հապաղման սահմանափակման նկատմամբ առավելություն ունի</translation> <translation id="8724405322205516354">Այս պատկերակը ցույց է տալիս, որ դուք կարող եք ձեր ինքնությունն ու գնումները հաստատել մատնահետքի միջոցով</translation> <translation id="8724409975248965964">Մատնահետքն ավելացվեց</translation> <translation id="8724859055372736596">&Ցույց տալ պանակում</translation> @@ -6462,6 +6498,7 @@ <translation id="8909833622202089127">Կայքին հայտնի է ձեր գտնվելու վայրը</translation> <translation id="8910146161325739742">Էկրանի համօգտագործում</translation> <translation id="8910222113987937043">Ձեր էջանիշների, այցելությունների պատմության, գաղտնաբառերի և այլ կարգավորումների փոփոխությունները չեն համաժամացվի ձեր Google հաշվի հետ: Այդուհանդերձ, ձեր առկա տվյալները կպահվեն Google հաշվում, և դրանք կարող եք կառավարել <ph name="BEGIN_LINK" />Google Dashboard-ում<ph name="END_LINK" />:</translation> +<translation id="8910721771319628100">Կանխադրված ցանցը հապաղման սահմանափակման նկատմամբ առավելություն ունի</translation> <translation id="8912362522468806198">Google հաշիվ</translation> <translation id="8912793549644936705">Ձգել</translation> <translation id="8912810933860534797">Միացնել ավտոմատ որոնումը</translation>
diff --git a/chrome/app/resources/generated_resources_id.xtb b/chrome/app/resources/generated_resources_id.xtb index ac9f167..ed825800 100644 --- a/chrome/app/resources/generated_resources_id.xtb +++ b/chrome/app/resources/generated_resources_id.xtb
@@ -71,6 +71,7 @@ <translation id="1070705170564860382">Membuka browser alternatif dalam <ph name="COUNTDOWN_SECONDS" /> detik</translation> <translation id="1071917609930274619">Penyandian Data</translation> <translation id="1072700771426194907">Perangkat USB terdeteksi</translation> +<translation id="107278043869924952">Gunakan PIN selain sandi</translation> <translation id="1076176485976385390">Buka halaman dengan kursor teks</translation> <translation id="1076698951459398590">Aktifkan Tema</translation> <translation id="1076818208934827215">Microsoft Internet Explorer</translation> @@ -524,7 +525,6 @@ <translation id="1608668830839595724">Tindakan lainnya untuk item terpilih</translation> <translation id="161042844686301425">Sian</translation> <translation id="1611432201750675208">Perangkat Anda terkunci</translation> -<translation id="1611584202130317952">Proses provisioning terganggu. Harap coba lagi atau hubungi administrator atau pemilik perangkat.</translation> <translation id="1614511179807650956">Kuota Anda yang diizinkan mungkin telah habis. Kunjungi portal aktivasi <ph name="NAME" /> untuk membeli kuota lagi</translation> <translation id="161460670679785907">Tidak dapat mendeteksi ponsel Anda</translation> <translation id="1616206807336925449">Ekstensi ini tidak memerlukan izin khusus.</translation> @@ -533,6 +533,7 @@ <translation id="1618268899808219593">Pusat Bantuan</translation> <translation id="1620307519959413822">Sandi salah. Coba lagi atau klik Lupa sandi untuk mereset sandi.</translation> <translation id="1620510694547887537">Kamera</translation> +<translation id="1621831347985899379">Data <ph name="DEVICE_TYPE" /> akan dihapus</translation> <translation id="1622054403950683339">Lupakan jaringan Wi-Fi</translation> <translation id="1623132449929929218">Gambar saat ini tidak tersedia. Sambungkan kembali ke internet untuk melihat koleksi wallpaper.</translation> <translation id="1623723619460186680">Pengurangan cahaya biru</translation> @@ -760,6 +761,7 @@ <translation id="1877377290348678128">Label (opsional)</translation> <translation id="1877520246462554164">Gagal mendapatkan token autentikasi. Harap logout, lalu login kembali untuk mencoba lagi.</translation> <translation id="1877860345998737529">Penetapan tindakan tombol</translation> +<translation id="1878155070920054810">Sepertinya daya baterai Chromebook akan habis sebelum update selesai. Pastikan pengisian daya Chromebook sudah benar untuk mencegah gangguan.</translation> <translation id="1879000426787380528">Login sebagai</translation> <translation id="1880905663253319515">Hapus sertifikat "<ph name="CERTIFICATE_NAME" />"?</translation> <translation id="1881445033931614352">Tata letak keyboard</translation> @@ -964,6 +966,7 @@ <translation id="2148219725039824548">Error saat memasang URL berbagi. URL berbagi yang ditentukan tidak ditemukan di jaringan.</translation> <translation id="2148756636027685713">Pemformatan selesai</translation> <translation id="2148892889047469596">Transmisikan tab</translation> +<translation id="2149973817440762519">Edit Bookmark</translation> <translation id="2150139952286079145">Telusuri tujuan</translation> <translation id="2150661552845026580">Tambahkan "<ph name="EXTENSION_NAME" />"?</translation> <translation id="2151576029659734873">Indeks tab yang dimasukkan tidak valid.</translation> @@ -1073,6 +1076,7 @@ <translation id="2270627217422354837">Menukar data dengan perangkat apa pun dalam domain: <ph name="DOMAINS" /></translation> <translation id="2272570998639520080">Gelas martini</translation> <translation id="2273119997271134996">Masalah port video dok</translation> +<translation id="2274840746523584236">Isi daya Chromebook Anda</translation> <translation id="2276503375879033601">Tambahkan aplikasi lainnya</translation> <translation id="2277255602909579701">Semua cookie dan data situs</translation> <translation id="2277769717710009150">{COUNT,plural, =1{1 item disalin}other{# item disalin}}</translation> @@ -1915,6 +1919,7 @@ <translation id="3308116878371095290">Halaman ini dicegah menyetel cookie.</translation> <translation id="3308134619352333507">Sembunyikan Tombol</translation> <translation id="3308852433423051161">Memuat Asisten Google...</translation> +<translation id="3310640316857623290">Latensi DNS jauh melebihi ambang batas yang diizinkan</translation> <translation id="3311445899360743395">Data yang terkait dengan aplikasi ini dapat dihapus dari perangkat ini.</translation> <translation id="3312424061798279731">Bahasa yang diaktifkan</translation> <translation id="3313622045786997898">Nilai Tanda Tangan Sertifikat</translation> @@ -1927,6 +1932,7 @@ <translation id="3323295311852517824">{NUM_FILES,plural, =0{Data ini berisi konten sensitif atau berbahaya. Hapus konten ini dan coba lagi.}=1{File ini berisi konten sensitif atau berbahaya. Hapus konten ini dan coba lagi.}other{File ini berisi konten sensitif atau berbahaya. Hapus konten ini dan coba lagi.}}</translation> <translation id="3323521181261657960">Bonus! Kamu boleh memakainya lebih lama</translation> <translation id="3325910708063135066">Kamera dan mikrofon dinonaktifkan dalam Preferensi Sistem Mac</translation> +<translation id="3327050066667856415">Chromebook didesain dengan mengutamakan keamanan. Perangkat Anda otomatis dilindungi dari malware, jadi tidak memerlukan software tambahan.</translation> <translation id="3328489342742826322">Memulihkan dari cadangan akan menghapus aplikasi Linux yang ada dan data dalam folder file Linux.</translation> <translation id="3331321258768829690">(<ph name="UTCOFFSET" />) <ph name="LONGTZNAME" /> (<ph name="EXEMPLARCITY" />)</translation> <translation id="3331974543021145906">Info aplikasi</translation> @@ -2116,6 +2122,7 @@ <translation id="3556433843310711081">Pengelola dapat membuka blokirnya untuk Anda</translation> <translation id="3557101512409028104">Setel pembatasan situs dan batas waktu pemakaian perangkat dengan Family Link</translation> <translation id="3559262020195162408">Gagal menginstal kebijakan di perangkat.</translation> +<translation id="3559533181353831840">Sekitar <ph name="TIME_LEFT" /> lagi</translation> <translation id="3560034655160545939">&Periksa ejaan</translation> <translation id="3562423906127931518">Proses ini dapat memerlukan waktu beberapa menit. Menyiapkan container Linux.</translation> <translation id="3563432852173030730">Aplikasi Kios tidak dapat didownload.</translation> @@ -2158,6 +2165,7 @@ <translation id="3602290021589620013">Pratinjau</translation> <translation id="3603622770190368340">Mendapatkan sertifikat jaringan</translation> <translation id="3604713164406837697">Ubah wallpaper</translation> +<translation id="360565022852130722">Jaringan Wi-Fi diamankan dengan protokol WEP 802.1x yang lemah</translation> <translation id="3605780360466892872">Pria Berdasi</translation> <translation id="3608576286259426129">Pratinjau gambar pengguna</translation> <translation id="3610369246614755442">Kipas dok perlu diperbaiki</translation> @@ -2194,6 +2202,7 @@ <translation id="3639220004740062347">Keluar dari Mode Pembaca</translation> <translation id="3640214691812501263">Tambahkan "<ph name="EXTENSION_NAME" />" untuk <ph name="USER_NAME" />?</translation> <translation id="3640613767643722554">Ajari Asisten untuk mengenali suara Anda</translation> +<translation id="3643014427358482789"><ph name="DOMAIN" /> menonaktifkan proses debug ADB, yang akan mereset <ph name="DEVICE_TYPE" /> Anda. Cadangkan file Anda sebelum memulai ulang.</translation> <translation id="3645372836428131288">Gerakkan jari sedikit untuk merekam bagian sidik jari yang lain.</translation> <translation id="3647998456578545569">{COUNT,plural, =1{<ph name="ATTACHMENTS" /> diterima dari <ph name="DEVICE_NAME" />}other{<ph name="ATTACHMENTS" /> diterima dari <ph name="DEVICE_NAME" />}}</translation> <translation id="3648348069317717750"><ph name="USB_DEVICE_NAME" /> terdeteksi</translation> @@ -2282,6 +2291,7 @@ <translation id="3732857534841813090">Informasi terkait Asisten Google</translation> <translation id="3733127536501031542">Server SSL dengan Step-up</translation> <translation id="3735740477244556633">Urutkan menurut</translation> +<translation id="3738632186060045350">Data <ph name="DEVICE_TYPE" /> akan dihapus dalam 24 jam</translation> <translation id="3738924763801731196"><ph name="OID" />:</translation> <translation id="3739254215541673094">Buka <ph name="APPLICATION" />?</translation> <translation id="3742055079367172538">Screenshot telah diambil</translation> @@ -2469,6 +2479,7 @@ <translation id="3937734102568271121">Selalu Terjemahkan <ph name="LANGUAGE" /></translation> <translation id="3938128855950761626">Perangkat dari vendor <ph name="VENDOR_ID" /></translation> <translation id="3940233957883229251">Aktifkan pengulangan otomatis</translation> +<translation id="3941014780699102620">Gagal me-resolve host</translation> <translation id="3941565636838060942">Untuk menyembunyikan akses ke program ini, Anda perlu meng-uninstal dengan menggunakan <ph name="CONTROL_PANEL_APPLET_NAME" /> di Panel Kontrol. @@ -2631,6 +2642,7 @@ <translation id="413121957363593859">Komponen</translation> <translation id="4131410914670010031">Hitam dan putih</translation> <translation id="413193092008917129">Rutinitas Diagnostik Jaringan</translation> +<translation id="4132183752438206707">Temukan aplikasi di Google Play Store</translation> <translation id="4133076602192971179">Buka aplikasi untuk mengubah sandi</translation> <translation id="4136203100490971508">Fitur Cahaya Malam akan otomatis dinonaktifkan saat matahari terbit</translation> <translation id="41365691917097717">Dengan melanjutkan, proses debug ADB akan diaktifkan untuk membuat dan menguji aplikasi Android. Perhatikan bahwa tindakan ini dapat menginstal aplikasi Android yang belum diverifikasi oleh Google, dan perlu reset ke setelan pabrik untuk menonaktifkannya.</translation> @@ -2880,6 +2892,8 @@ <translation id="4479877282574735775">Mengonfigurasi mesin virtual. Proses ini mungkin memerlukan waktu beberapa menit.</translation> <translation id="4480590691557335796">Chrome dapat menemukan software berbahaya di komputer dan menghapusnya</translation> <translation id="4481530544597605423">Perangkat tidak tersambung</translation> +<translation id="4483049906298469269">Gagal melakukan ping ke gateway jaringan non-default</translation> +<translation id="4487489714832036847">Chromebook menggunakan aplikasi, bukan software tradisional. Dapatkan aplikasi untuk produktivitas, hiburan, dan masih banyak lagi.</translation> <translation id="4488502501195719518">Hapus semua data?</translation> <translation id="4493468155686877504">Direkomendasikan (<ph name="INSTALL_SIZE" />)</translation> <translation id="4495419450179050807">Jangan tampilkan pada halaman ini</translation> @@ -2930,6 +2944,7 @@ <translation id="4546692474302123343">Masukan suara Asisten Google</translation> <translation id="4547659257713117923">Tidak Ada Tab dari Perangkat Lainnya</translation> <translation id="4547672827276975204">Setel otomatis</translation> +<translation id="4548483925627140043">Sinyal tidak ditemukan</translation> <translation id="4549791035683739768">Tidak ada sidik jari yang tersimpan di kunci keamanan Anda</translation> <translation id="4551763574344810652">Tekan <ph name="MODIFIER_KEY_DESCRIPTION" /> untuk mengurungkan</translation> <translation id="4552089082226364758">Flash</translation> @@ -2969,6 +2984,7 @@ <translation id="4582563038311694664">Reset semua setelan</translation> <translation id="4585793705637313973">Edit halaman</translation> <translation id="4586275095964870617"><ph name="URL" /> tidak dapat dibuka di browser alternatif. Harap hubungi administrator sistem Anda.</translation> +<translation id="458794348635939462">Gagal me-resolve semua host</translation> <translation id="4589713469967853491">Log berhasil ditulis ke direktori Download.</translation> <translation id="4590324241397107707">Penyimpanan basis data</translation> <translation id="4592891116925567110">Aplikasi menggambar dengan stilus</translation> @@ -3352,6 +3368,7 @@ <translation id="5089810972385038852">Negara Bagian</translation> <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="5097649414558628673">Alat: <ph name="PRINT_NAME" /></translation> <translation id="5097874180538493929">Klik secara otomatis saat kursor berhenti</translation> <translation id="5101042277149003567">Buka semua bookmark</translation> <translation id="5101839224773798795">Klik secara otomatis saat kursor berhenti</translation> @@ -3570,6 +3587,7 @@ <translation id="5370819323174483825">&Muat ulang</translation> <translation id="5372529912055771682">Mode pendaftaran yang disediakan tidak didukung oleh versi sistem operasi ini. Pastikan Anda menjalankan versi terbaru dan coba lagi.</translation> <translation id="5372579129492968947">Lepas pin ekstensi</translation> +<translation id="5372659122375744710">Jaringan Wi-Fi tidak aman</translation> <translation id="5376169624176189338">Klik untuk mundur, tahan untuk melihat histori</translation> <translation id="5376931455988532197">File terlalu besar</translation> <translation id="5377721922656071359">{COUNT,plural, =1{<ph name="ATTACHMENTS" /> berhasil dikirim ke <ph name="DEVICE_NAME" />}other{<ph name="ATTACHMENTS" /> berhasil dikirim ke <ph name="DEVICE_NAME" />}}</translation> @@ -3599,6 +3617,7 @@ <translation id="5414566801737831689">Membaca ikon situs web yang Anda kunjungi</translation> <translation id="5417312524372586921">Tema browser</translation> <translation id="5419405654816502573">Voice match</translation> +<translation id="5420274697768050645">Perlu sandi untuk membuka kunci perangkat demi keamanan tambahan</translation> <translation id="5420438158931847627">Menentukan ketajaman teks dan gambar</translation> <translation id="5422221874247253874">Titik Akses</translation> <translation id="5422781158178868512">Maaf, perangkat penyimpanan eksternal Anda tidak dapat dikenali.</translation> @@ -3723,6 +3742,7 @@ <translation id="5548606607480005320">Pemeriksaan keselamatan</translation> <translation id="5551573675707792127">Input teks dan keyboard</translation> <translation id="5553089923092577885">Pemetaan Kebijakan Sertifikat</translation> +<translation id="5554403733534868102">Setelah ini, Anda tidak perlu menunggu update lagi</translation> <translation id="5554489410841842733">Ikon ini akan kelihatan saat ekstensi dapat bertindak pada halaman saat ini.</translation> <translation id="5554720593229208774">Otoritas Sertifikasi Email</translation> <translation id="5556459405103347317">Muat ulang</translation> @@ -4136,6 +4156,7 @@ <translation id="6061882183774845124">Kirim link ke perangkat Anda</translation> <translation id="6064217302520318294">Kunci layar</translation> <translation id="6065289257230303064">Atribut Direktori Subjek Sertifikat</translation> +<translation id="6069464830445383022">Akun Google Anda adalah login Chromebook Anda</translation> <translation id="6069671174561668781">Setel Wallpaper</translation> <translation id="6071181508177083058">konfirmasikan sandi</translation> <translation id="6071576563962215370">Sistem gagal membuat kunci atribut waktu penginstalan perangkat.</translation> @@ -4178,6 +4199,7 @@ <translation id="6104311680260824317">Tidak dapat menggabungkan perangkat ke domain. Server tidak mendukung jenis enkripsi Kerberos yang ditentukan. Centang "Opsi lainnya" untuk melihat setelan enkripsi.</translation> <translation id="6104796831253957966">Antrean printer penuh</translation> <translation id="6105994589138235234">Sinkronisasi Browser Chrome</translation> +<translation id="6108689792487843350">Gateway tidak dapat dijangkau</translation> <translation id="6111972606040028426">Aktifkan Asisten Google</translation> <translation id="6112294629795967147">Sentuh untuk mengubah ukuran</translation> <translation id="6112727384379533756">Tambahkan tiket</translation> @@ -4238,6 +4260,7 @@ <translation id="6178664161104547336">Pilih sertifikat</translation> <translation id="6181431612547969857">Download diblokir</translation> <translation id="6185132558746749656">Lokasi Perangkat</translation> +<translation id="6191293864534840972">Format server nama salah</translation> <translation id="6195446518998936840">Untuk menyiapkan kontrol orang tua, anak harus memiliki Akun Google yang akan Anda kelola. Dengan aplikasi Family Link, Anda dapat menyetel batas waktu pemakaian perangkat, mengizinkan atau memblokir situs, dan lainnya.</translation> <translation id="6195693561221576702">Perangkat ini tidak dapat disiapkan dalam mode demo offline.</translation> <translation id="6196640612572343990">Blokir cookie pihak ketiga</translation> @@ -4451,6 +4474,7 @@ <translation id="6451591602925140504">{NUM_PAGES,plural, =0{<ph name="PAGE_TITLE" />}=1{<ph name="PAGE_TITLE" /> dan 1 tab lainnya}other{<ph name="PAGE_TITLE" /> dan # tab lainnya}}</translation> <translation id="6451689256222386810">Jika lupa frasa sandi atau ingin mengubah setelan ini, <ph name="BEGIN_LINK" />reset sinkronisasi<ph name="END_LINK" />.</translation> <translation id="6452181791372256707">Tolak</translation> +<translation id="6452251728599530347"><ph name="PERCENT" /> selesai</translation> <translation id="6452961788130242735">Masalah jaringan atau area yang buruk</translation> <translation id="6455264371803474013">Di situs tertentu</translation> <translation id="6455894534188563617">&Folder Baru</translation> @@ -4507,6 +4531,7 @@ <ph name="EVENT_NAME" /></translation> <translation id="6520876759015997832">Hasil penelusuran <ph name="LIST_POSITION" /> dari <ph name="LIST_SIZE" />: <ph name="SEARCH_RESULT_TEXT" />. Tekan Enter untuk membuka bagian.</translation> <translation id="652492607360843641">Anda tersambung ke jaringan <ph name="NETWORK_TYPE" />.</translation> +<translation id="6527081081771465939">Protokol keamanan Wi-Fi tidak dikenal</translation> <translation id="6527303717912515753">Bagikan</translation> <translation id="6528513914570774834">Izinkan pengguna lain di perangkat ini untuk menggunakan jaringan ini</translation> <translation id="652948702951888897">Histori Chrome</translation> @@ -4623,6 +4648,7 @@ <translation id="6680442031740878064">Tersedia: <ph name="AVAILABLE_SPACE" /></translation> <translation id="6680650203439190394">Beri rating</translation> <translation id="6681668084120808868">Ambil foto</translation> +<translation id="6684827949542560880">Mendownload update terbaru</translation> <translation id="668599234725812620">Buka Google Play</translation> <translation id="6686490380836145850">Tutup tab di sisi kanan</translation> <translation id="6686817083349815241">Simpan sandi Anda</translation> @@ -4732,6 +4758,7 @@ <translation id="6812841287760418429">Simpan perubahan</translation> <translation id="6817174620439930047">Tanyakan saat situs ingin menggunakan pesan eksklusif sistem untuk mengakses perangkat MIDI (disarankan)</translation> <translation id="6818198425579322765">Bahasa Asal Terjemahan Halaman</translation> +<translation id="6818802132960437751">Fitur perlindungan bawaan terhadap virus</translation> <translation id="682123305478866682">Transmisikan desktop</translation> <translation id="6823174134746916417">Ketuk untuk mengklik touchpad</translation> <translation id="6823506025919456619">Anda harus masuk ke Chrome untuk melihat perangkat Anda</translation> @@ -5378,6 +5405,7 @@ <translation id="7631205654593498032">Dengan menghubungkan perangkat, Anda setuju bahwa <ph name="DEVICE_TYPE" /> Anda dapat:</translation> <translation id="7631887513477658702">Sel&alu Buka File Jenis Ini</translation> <translation id="7632948528260659758">Aplikasi kios berikut gagal memperbarui:</translation> +<translation id="7633724038415831385">Kali ini saja Anda perlu menunggu update. Di Chromebook, update software dilakukan di latar belakang.</translation> <translation id="7634566076839829401">Terjadi kesalahan. Coba lagi.</translation> <translation id="763632859238619983">Jangan izinkan situs menginstal penangan pembayaran</translation> <translation id="7636919061354591437">Instal di Perangkat ini</translation> @@ -5656,6 +5684,7 @@ <translation id="7933314993013528982">{NUM_TABS,plural, =1{Aktifkan Notifikasi Situs}other{Aktifkan Notifikasi Beberapa Situs}}</translation> <translation id="7933634003144813719">Kelola folder yang dibagikan</translation> <translation id="793531125873261495">Error saat mendownload mesin virtual. Coba lagi.</translation> +<translation id="7936303884198020182">Tidak ada server nama yang ditemukan</translation> <translation id="7938594894617528435">Sedang offline</translation> <translation id="7939062555109487992">Opsi lanjutan</translation> <translation id="7939412583708276221">Lanjutkan saja</translation> @@ -5899,6 +5928,7 @@ <translation id="8226742006292257240">Di bawah adalah sandi TPM yang dibuat secara acak yang telah ditetapkan untuk komputer Anda:</translation> <translation id="8227119283605456246">Lampirkan file</translation> <translation id="8230134520748321204">Simpan sandi untuk <ph name="ORIGIN" />?</translation> +<translation id="8230672074305416752">Gagal melakukan ping ke gateway jaringan default</translation> <translation id="8234795456569844941">Bantu engineer kami memperbaiki masalah ini. Beri tahu kami yang terjadi tepat sebelum Anda mendapatkan pesan error profil:</translation> <translation id="8236917170563564587">Bagikan tab ini saja</translation> <translation id="8237647586961940482">Merah muda gelap dan merah tua</translation> @@ -5959,6 +5989,7 @@ <translation id="8288032458496410887">Uninstal <ph name="APP" />...</translation> <translation id="8289128870594824098">Ukuran disk</translation> <translation id="8291967909914612644">Negara penyedia rumah</translation> +<translation id="8293206222192510085">Tambahkan Bookmark</translation> <translation id="8294431847097064396">Sumber</translation> <translation id="8297006494302853456">Lemah</translation> <translation id="8299319456683969623">Saat ini Anda sedang offline.</translation> @@ -6008,6 +6039,7 @@ <translation id="8363095875018065315">stabil</translation> <translation id="8363142353806532503">Mikrofon diblokir</translation> <translation id="8363763184161554204"><ph name="PERMISSION" /> diizinkan</translation> +<translation id="8364946094152050673">Server nama kosong</translation> <translation id="8366396658833131068">Konektivitas jaringan Anda dipulihkan. Pilih jaringan lain atau tekan tombol 'Lanjutkan' di bawah untuk meluncurkan aplikasi kios.</translation> <translation id="8368027906805972958">Perangkat tidak dikenal atau tidak didukung (<ph name="DEVICE_ID" />)</translation> <translation id="8368859634510605990">&Buka semua bookmark</translation> @@ -6093,8 +6125,10 @@ <translation id="8472623782143987204">cadangan hardware</translation> <translation id="8473863474539038330">Alamat dan lain-lain</translation> <translation id="8475313423285172237">Program lain di komputer Anda menambahkan ekstensi yang dapat mengubah cara kerja Chrome.</translation> +<translation id="8475690821716466388">Jaringan Wi-Fi diamankan dengan protokol WEP PSK yang lemah</translation> <translation id="8477241577829954800">Diganti</translation> <translation id="8477384620836102176">&Umum</translation> +<translation id="8477551185774834963">Latensi DNS sedikit melebihi ambang batas yang diizinkan</translation> <translation id="8480082892550707549">Meskipun sebelumnya Anda telah mendownload file dari situs ini, situs mungkin sementara tidak aman (diretas). Coba download file ini nanti.</translation> <translation id="8480869669560681089">Perangkat tidak dikenal dari <ph name="VENDOR_NAME" /></translation> <translation id="8481187309597259238">Konfirmasi Izin USB</translation> @@ -6146,6 +6180,7 @@ <translation id="8546930481464505581">Sesuaikan Touch Bar</translation> <translation id="8547013269961688403">Aktifkan kaca pembesar layar penuh</translation> <translation id="85486688517848470">Tahan tombol Penelusuran untuk mengalihkan perilaku tombol baris atas</translation> +<translation id="8549316893834449916">Anda akan menggunakan Akun Google Anda untuk login ke Chromebook. Akun tersebut sama dengan yang digunakan untuk Gmail, Drive, YouTube, dan lainnya.</translation> <translation id="8551388862522347954">Lisensi</translation> <translation id="8551588720239073785">Setelan tanggal dan waktu</translation> <translation id="8553342806078037065">Kelola orang lain</translation> @@ -6284,6 +6319,7 @@ <translation id="8720200012906404956">Mencari jaringan seluler. <ph name="BEGIN_LINK" />Pelajari lebih lanjut<ph name="END_LINK" /></translation> <translation id="8720816553731218127">Waktu inisialisasi atribut waktu penginstalan telah habis.</translation> <translation id="8722912030556880711">Kirim data penggunaan dan diagnostik. Perangkat ini saat ini otomatis mengirim data diagnostik, perangkat, dan penggunaan aplikasi ke Google. Data ini akan membantu sistem dan stabilitas aplikasi serta peningkatan lainnya. Beberapa data gabungan juga akan membantu aplikasi dan partner Google, seperti developer Android. Jika setelan Aktivitas Web & Aplikasi tambahan diaktifkan, data ini mungkin akan disimpan ke Akun Google Anda. <ph name="BEGIN_LINK2" />Pelajari Lebih Lanjut<ph name="END_LINK2" /></translation> +<translation id="8723108084122415655">Jaringan non-default melebihi ambang batas latensi</translation> <translation id="8724405322205516354">Saat melihat ikon ini, gunakan sidik jari untuk identifikasi atau menyetujui pembelian.</translation> <translation id="8724409975248965964">Sidik jari ditambahkan</translation> <translation id="8724859055372736596">&Tampilkan dalam Folder</translation> @@ -6461,6 +6497,7 @@ <translation id="8909833622202089127">Situs sedang melacak lokasi Anda</translation> <translation id="8910146161325739742">Berbagi layar</translation> <translation id="8910222113987937043">Perubahan terhadap bookmark, histori, sandi, dan setelan lain sudah tidak disinkronkan ke Akun Google Anda. Namun, data yang sudah ada akan tetap disimpan di Akun Google dan dapat dikelola di <ph name="BEGIN_LINK" />Google Dasbor<ph name="END_LINK" />.</translation> +<translation id="8910721771319628100">Jaringan default melebihi ambang batas latensi</translation> <translation id="8912362522468806198">Akun Google</translation> <translation id="8912793549644936705">Meregang</translation> <translation id="8912810933860534797">Aktifkan pindai otomatis</translation>
diff --git a/chrome/app/resources/generated_resources_is.xtb b/chrome/app/resources/generated_resources_is.xtb index 29dfc5a..a12e715 100644 --- a/chrome/app/resources/generated_resources_is.xtb +++ b/chrome/app/resources/generated_resources_is.xtb
@@ -71,6 +71,7 @@ <translation id="1070705170564860382">Opnast í öðrum vafra eftir <ph name="COUNTDOWN_SECONDS" /> sekúndur</translation> <translation id="1071917609930274619">Gagnadulritun</translation> <translation id="1072700771426194907">USB-tæki greint</translation> +<translation id="107278043869924952">Nota PIN-númer til viðbótar við aðgangsorð</translation> <translation id="1076176485976385390">Skoða síður með textabendli</translation> <translation id="1076698951459398590">Virkja þema</translation> <translation id="1076818208934827215">Microsoft Internet Explorer</translation> @@ -524,7 +525,6 @@ <translation id="1608668830839595724">Fleiri aðgerðir fyrir valin atriði</translation> <translation id="161042844686301425">Blár (cyan)</translation> <translation id="1611432201750675208">Tækið er læst</translation> -<translation id="1611584202130317952">Úthlutunarflæði var truflað. Reyndu aftur eða hafðu samband við eiganda eða stjórnanda tækisins.</translation> <translation id="1614511179807650956">Þú gætir hafa klárað farsímagagnamagnið þitt. Farðu á virkjunargátt <ph name="NAME" /> til að kaupa meira gagnamagn</translation> <translation id="161460670679785907">Síminn fannst ekki</translation> <translation id="1616206807336925449">Þessi viðbót þarf engar sérstakar heimildir.</translation> @@ -533,6 +533,7 @@ <translation id="1618268899808219593">Hjálparmiðstöð</translation> <translation id="1620307519959413822">Rangt aðgangsorð. Reyndu aftur eða smelltu á „Gleymt aðgangsorð“ til að endurstilla aðgangsorðið.</translation> <translation id="1620510694547887537">Myndavél</translation> +<translation id="1621831347985899379"><ph name="DEVICE_TYPE" /> gögnum verður eytt</translation> <translation id="1622054403950683339">Gleyma Wi-Fi neti</translation> <translation id="1623132449929929218">Myndirnar eru ekki tiltækar í augnablikinu. Endurtengjast þarf internetinu til að sjá veggfóðurssöfn.</translation> <translation id="1623723619460186680">Dregið úr bláu ljósi</translation> @@ -760,6 +761,7 @@ <translation id="1877377290348678128">Merki (valfrjálst)</translation> <translation id="1877520246462554164">Auðkenningarlykill fékkst ekki. Skráðu þig út og inn aftur til að reyna aftur.</translation> <translation id="1877860345998737529">Úthlutun rofaaðgerðar</translation> +<translation id="1878155070920054810">Það lítur út fyrir að rafhlaðan tæmist á Chromebook áður en uppfærslu lýkur. Tryggðu hleðsluna til að koma í veg fyrir truflanir.</translation> <translation id="1879000426787380528">Skrá inn sem</translation> <translation id="1880905663253319515">Eyða vottorðinu „<ph name="CERTIFICATE_NAME" />“?</translation> <translation id="1881445033931614352">Lyklaskipan</translation> @@ -964,6 +966,7 @@ <translation id="2148219725039824548">Villa við að tengja deilt efni. Tilgreint deilt efni fannst ekki á netinu.</translation> <translation id="2148756636027685713">Lokið við að sníða</translation> <translation id="2148892889047469596">Senda út flipa</translation> +<translation id="2149973817440762519">Breyta bókamerki</translation> <translation id="2150139952286079145">Leitarstaðir</translation> <translation id="2150661552845026580">Bæta „<ph name="EXTENSION_NAME" />“ við?</translation> <translation id="2151576029659734873">Ógildur flipavísir sleginn inn.</translation> @@ -1073,6 +1076,7 @@ <translation id="2270627217422354837">Skiptast á gögnum við hvaða tæki sem er á lénunum: <ph name="DOMAINS" /></translation> <translation id="2272570998639520080">Martini-glas</translation> <translation id="2273119997271134996">Vandamál með vídeótengi dokku</translation> +<translation id="2274840746523584236">Settu Chromebook í hleðslu</translation> <translation id="2276503375879033601">Bæta fleiri forritum við</translation> <translation id="2277255602909579701">Öll fótspor og gögn vefsvæðis</translation> <translation id="2277769717710009150">{COUNT,plural, =1{1 atriði afritað}one{# atriði afritað}other{# atriði afrituð}}</translation> @@ -1915,6 +1919,7 @@ <translation id="3308116878371095290">Komið var í veg fyrir að þessi síða vistaði fótspor.</translation> <translation id="3308134619352333507">Hnappurinn Fela</translation> <translation id="3308852433423051161">Hleður Google hjálparann...</translation> +<translation id="3310640316857623290">DNS-biðtími er töluvert yfir leyfðum þröskuldi</translation> <translation id="3311445899360743395">Gögn sem tengjast þessu forriti verða hugsanlega fjarlægð úr tækinu.</translation> <translation id="3312424061798279731">Virk tungumál</translation> <translation id="3313622045786997898">Gildi vottorðsundirritunar</translation> @@ -1927,6 +1932,7 @@ <translation id="3323295311852517824">{NUM_FILES,plural, =0{Þessi gögn innihalda viðkvæmt eða hættulegt efni. Fjarlægðu þetta efni og reyndu aftur.}=1{Þessi skrá inniheldur viðkvæmt eða hættulegt efni. Fjarlægðu þetta efni og reyndu aftur.}one{Þessar skrár innihalda viðkvæmt eða hættulegt efni. Fjarlægðu þetta efni og reyndu aftur.}other{Þessar skrár innihalda viðkvæmt eða hættulegt efni. Fjarlægðu þetta efni og reyndu aftur.}}</translation> <translation id="3323521181261657960">Bónus! Þú fékkst meiri skjátíma</translation> <translation id="3325910708063135066">Slökkt er á myndavél og hljóðnema í kerfisstillingum Mac</translation> +<translation id="3327050066667856415">Chromebook er hannað fyrir öryggi. Tækið þitt er sjálfkrafa varið fyrir spilliforritum og enginn viðbótarhugbúnaður er nauðsynlegur.</translation> <translation id="3328489342742826322">Við endurheimt úr öryggisafriti er öllum fyrirliggjandi Linux-forritum og gögnum í Linux-skráarmöppu eytt.</translation> <translation id="3331321258768829690">(<ph name="UTCOFFSET" />) <ph name="LONGTZNAME" /> (<ph name="EXEMPLARCITY" />)</translation> <translation id="3331974543021145906">Upplýsingar um forrit</translation> @@ -2116,6 +2122,7 @@ <translation id="3556433843310711081">Umsjónarmaðurinn þinn getur opnað fyrir þetta</translation> <translation id="3557101512409028104">Stilltu takmarkanir vefsvæða og skjátímamörk með Family Link</translation> <translation id="3559262020195162408">Mistókst að setja upp reglu í tækinu.</translation> +<translation id="3559533181353831840">Um <ph name="TIME_LEFT" /> eftir</translation> <translation id="3560034655160545939">&Ritvilluleit</translation> <translation id="3562423906127931518">Þetta gæti tekið nokkrar mínútur. Setur upp Linux-geymi.</translation> <translation id="3563432852173030730">Ekki tókst að sækja sjálfsalaforrit.</translation> @@ -2158,6 +2165,7 @@ <translation id="3602290021589620013">Forskoða</translation> <translation id="3603622770190368340">Fá netvottorð</translation> <translation id="3604713164406837697">Skipta um veggfóður</translation> +<translation id="360565022852130722">Öryggi Wi-Fi nets er veik samskiptaregla, WEP 802.1x</translation> <translation id="3605780360466892872">Hvítflibbi</translation> <translation id="3608576286259426129">Forskoðun notandamyndar</translation> <translation id="3610369246614755442">Athuga þarf viftu dokkunnar</translation> @@ -2194,6 +2202,7 @@ <translation id="3639220004740062347">Loka lesstillingu</translation> <translation id="3640214691812501263">Á að bæta „<ph name="EXTENSION_NAME" />“ við fyrir <ph name="USER_NAME" />?</translation> <translation id="3640613767643722554">Kenna hjálparanum að þekkja röddina í þér</translation> +<translation id="3643014427358482789"><ph name="DOMAIN" /> er að gera ADB-villuleit óvirka. Þetta veldur því að <ph name="DEVICE_TYPE" /> endurstillist. Taktu afrit af skránum þínum áður en þú endurræsir.</translation> <translation id="3645372836428131288">Færðu fingurinn örlítið til að skrá mismunandi hluta fingrafarsins.</translation> <translation id="3647998456578545569">{COUNT,plural, =1{<ph name="ATTACHMENTS" /> barst frá <ph name="DEVICE_NAME" />}one{<ph name="ATTACHMENTS" /> barst frá <ph name="DEVICE_NAME" />}other{<ph name="ATTACHMENTS" /> bárust frá <ph name="DEVICE_NAME" />}}</translation> <translation id="3648348069317717750"><ph name="USB_DEVICE_NAME" /> greindist</translation> @@ -2282,6 +2291,7 @@ <translation id="3732857534841813090">Upplýsingar sem tengjast Google hjálpara</translation> <translation id="3733127536501031542">SSL-þjónn með uppreiknun</translation> <translation id="3735740477244556633">Raða eftir</translation> +<translation id="3738632186060045350"><ph name="DEVICE_TYPE" /> gögnum verður eytt eftir sólarhring</translation> <translation id="3738924763801731196"><ph name="OID" />:</translation> <translation id="3739254215541673094">Viltu opna <ph name="APPLICATION" />?</translation> <translation id="3742055079367172538">Skjámynd tekin</translation> @@ -2469,6 +2479,7 @@ <translation id="3937734102568271121">Þýða alltaf af þessu tungumáli: <ph name="LANGUAGE" /></translation> <translation id="3938128855950761626">Tæki frá framleiðanda <ph name="VENDOR_ID" /></translation> <translation id="3940233957883229251">Virkja sjálfvirka endurtekningu</translation> +<translation id="3941014780699102620">Ekki tókst að leysa úr hýsli</translation> <translation id="3941565636838060942">Til að fela aðgang að þessu forriti þarftu að fjarlægja það með því að nota <ph name="CONTROL_PANEL_APPLET_NAME" /> á Stjórnborði. @@ -2521,7 +2532,7 @@ <translation id="3984159763196946143">Ekki tókst að setja upp prufustillingu</translation> <translation id="3984431586879874039">Viltu leyfa þessu vefsvæði að sjá öryggislykilinn þinn?</translation> <translation id="3986705137476756801">Slökkva á skjátextum í rauntíma í bili</translation> -<translation id="3987544746655539083">Halda áfram að loka fyrir aðgang þessa vefsvæðis að staðsetningu þinni</translation> +<translation id="3987544746655539083">Halda áfram að loka fyrir aðgang þessa vefsvæðis að staðsetningunni</translation> <translation id="3987938432087324095">Náði þessu ekki.</translation> <translation id="3988996860813292272">Veldu tímabelti</translation> <translation id="399179161741278232">Innflutt</translation> @@ -2631,6 +2642,7 @@ <translation id="413121957363593859">Íhlutir</translation> <translation id="4131410914670010031">Svarthvítt</translation> <translation id="413193092008917129">Ferli netkerfisgreiningar</translation> +<translation id="4132183752438206707">Finna forrit í Google Play Store</translation> <translation id="4133076602192971179">Opnaðu forritið til að breyta aðgangsorðinu þínu</translation> <translation id="4136203100490971508">Slekkur sjálfkrafa á næturljósi við sólsetur</translation> <translation id="41365691917097717">Ef þú heldur áfram kveikir þú á ADB-villuleit til að búa til og prófa Android forrit. Hafðu í huga að þessi aðgerð gerir þér kleift að setja upp Android forrit sem eru ekki staðfest af Google. Núllstilla þarf tækið til að slökkva á þessu.</translation> @@ -2768,7 +2780,7 @@ <translation id="4348766275249686434">Safna villum</translation> <translation id="4349828822184870497">Gagnlegt</translation> <translation id="4350019051035968019">Þetta tæki er ekki hægt að skrá á lénið sem reikningurinn þinn tilheyrir því að tækið lýtur stjórn á öðru léni.</translation> -<translation id="4350230709416545141">Loka alltaf fyrir aðgang <ph name="HOST" /> að staðsetningu þinni</translation> +<translation id="4350230709416545141">Loka alltaf fyrir aðgang <ph name="HOST" /> að staðsetningunni þinni</translation> <translation id="4350782034419308508">Ok Google</translation> <translation id="4351060348582610152"><ph name="ORIGIN" /> vill leita að nálægum Bluetooth-tækjum. Eftirfarandi tæki hafa fundist:</translation> <translation id="4354073718307267720">Spyrja þegar vefsvæði vill búa til þrívíddarkort af umhverfinu eða rekja staðsetningu myndavélarinnar</translation> @@ -2880,6 +2892,8 @@ <translation id="4479877282574735775">Stillir sýndarvélina. Þetta getur tekið nokkrar mínútur.</translation> <translation id="4480590691557335796">Chrome getur leitað að skaðlegum hugbúnaði á tölvunni og fjarlægt hann</translation> <translation id="4481530544597605423">Aftengd tæki</translation> +<translation id="4483049906298469269">Ping-prófun netkerfisgáttar sem ekki er sjálfvalin mistókst</translation> +<translation id="4487489714832036847">Chromebook notar forrit í stað hefðbundins hugbúnaðar. Fáðu forrit til að auka afköst, þér til skemmtunar og fleira.</translation> <translation id="4488502501195719518">Hreinsa öll gögn?</translation> <translation id="4493468155686877504">Ráðlagt (<ph name="INSTALL_SIZE" />)</translation> <translation id="4495419450179050807">Ekki sýna á þessari síðu</translation> @@ -2930,6 +2944,7 @@ <translation id="4546692474302123343">Raddinntak Google hjálpara</translation> <translation id="4547659257713117923">Engir flipar frá öðrum tækjum</translation> <translation id="4547672827276975204">Stilla sjálfkrafa</translation> +<translation id="4548483925627140043">Merki fannst ekki</translation> <translation id="4549791035683739768">Engin fingraför eru vistuð í öryggislyklinum þínum</translation> <translation id="4551763574344810652">Ýttu á <ph name="MODIFIER_KEY_DESCRIPTION" /> til að afturkalla</translation> <translation id="4552089082226364758">Flash</translation> @@ -2969,6 +2984,7 @@ <translation id="4582563038311694664">Núllstilla allt</translation> <translation id="4585793705637313973">Breyta síðu</translation> <translation id="4586275095964870617">Ekki var hægt að opna <ph name="URL" /> í öðrum vafra. Hafðu samband við kerfisstjórann þinn.</translation> +<translation id="458794348635939462">Ekki tókst að leysa úr öllum hýslum</translation> <translation id="4589713469967853491">Annálar voru skrifaðir á niðurhalslista.</translation> <translation id="4590324241397107707">Gagnagrunnsgeymsla</translation> <translation id="4592891116925567110">Teikniforrit með penna</translation> @@ -3352,6 +3368,7 @@ <translation id="5089810972385038852">Ríki</translation> <translation id="5094721898978802975">Eiga samskipti við sérhönnuð forrit í samstarfi</translation> <translation id="5097002363526479830">Mistókst að tengjast „<ph name="NAME" />“: <ph name="DETAILS" /></translation> +<translation id="5097649414558628673">Verkfæri: <ph name="PRINT_NAME" /></translation> <translation id="5097874180538493929">Smella sjálfkrafa þegar bendill stöðvast</translation> <translation id="5101042277149003567">Opna öll bókamerki</translation> <translation id="5101839224773798795">Smella sjálfkrafa þegar bendillinn stoppar</translation> @@ -3570,6 +3587,7 @@ <translation id="5370819323174483825">Endu&rhlaða</translation> <translation id="5372529912055771682">Tilgreind skráningaraðferð er ekki studd í þessari útgáfu stýrikerfisins. Gakktu úr skugga um að þú sért að nota nýjustu útgáfu og reyndu aftur.</translation> <translation id="5372579129492968947">Losa viðbót</translation> +<translation id="5372659122375744710">Wi-Fi net er ekki öruggt</translation> <translation id="5376169624176189338">Smelltu til að fara til baka, haltu inni til að sjá feril</translation> <translation id="5376931455988532197">Of stór skrá</translation> <translation id="5377721922656071359">{COUNT,plural, =1{<ph name="ATTACHMENTS" /> sent í <ph name="DEVICE_NAME" />}one{<ph name="ATTACHMENTS" /> sent í <ph name="DEVICE_NAME" />}other{<ph name="ATTACHMENTS" /> send í <ph name="DEVICE_NAME" />}}</translation> @@ -3599,6 +3617,7 @@ <translation id="5414566801737831689">Lesa tákn vefsvæðanna sem þú heimsækir</translation> <translation id="5417312524372586921">Vafraþemu</translation> <translation id="5419405654816502573">Voice Match</translation> +<translation id="5420274697768050645">Bæta öryggi með því að biðja um aðgangsorð þegar tæki er opnað</translation> <translation id="5420438158931847627">Segir til um skerpu texta og mynda</translation> <translation id="5422221874247253874">Aðgangsstaður</translation> <translation id="5422781158178868512">Því miður var ekki hægt að bera kennsl á ytri geymslumiðil.</translation> @@ -3617,7 +3636,7 @@ <translation id="5431825016875453137">OpenVPN / L2TP</translation> <translation id="543338862236136125">Breyta aðgangsorði</translation> <translation id="5434065355175441495">PKCS #1 RSA-dulkóðun</translation> -<translation id="5435779377906857208">Veita <ph name="HOST" /> alltaf aðgang að staðsetningu þinni</translation> +<translation id="5435779377906857208">Veita <ph name="HOST" /> alltaf aðgang að staðsetningunni þinni</translation> <translation id="5436492226391861498">Bíður eftir proxy-gögnum...</translation> <translation id="5436510242972373446">Leita á <ph name="SITE_NAME" />:</translation> <translation id="543806387003274181">Vistaðu skrárnar þínar og stofnaðu nýjan reikning núna.</translation> @@ -3723,6 +3742,7 @@ <translation id="5548606607480005320">Öryggisathugun</translation> <translation id="5551573675707792127">Lyklaborð og textainnsláttur</translation> <translation id="5553089923092577885">Stefnuskipan vottorða</translation> +<translation id="5554403733534868102">Að þessu loknu þarf aldrei að bíða eftir uppfærslum</translation> <translation id="5554489410841842733">Þetta tákn er birt þegar viðbótin getur haft áhrif á núverandi síðu.</translation> <translation id="5554720593229208774">Vottunarstöð tölvupósts</translation> <translation id="5556459405103347317">Endurhlaða</translation> @@ -4136,6 +4156,7 @@ <translation id="6061882183774845124">Senda tengil í tækin þín</translation> <translation id="6064217302520318294">Skjálás</translation> <translation id="6065289257230303064">Skráasafnseigindir vottorðsviðfangs</translation> +<translation id="6069464830445383022">Google reikningurinn þinn er notaður fyrir innskráningu á Chromebook</translation> <translation id="6069671174561668781">Velja veggfóður</translation> <translation id="6071181508177083058">staðfestu aðgangsorð</translation> <translation id="6071576563962215370">Kerfinu mistókst að koma á eigindalás við uppsetningu tækisins.</translation> @@ -4178,6 +4199,7 @@ <translation id="6104311680260824317">Ekki tókst að tengja tækið við lénið. Þjónninn styður ekki Kerberos-dulkóðunargerðirnar sem eru tilgreindar. Athugaðu dulkóðunarstillingar í „Fleiri valkostir“.</translation> <translation id="6104796831253957966">Prentröðin er full</translation> <translation id="6105994589138235234">Samstilling Chrome vafra</translation> +<translation id="6108689792487843350">Ekki næst í gátt</translation> <translation id="6111972606040028426">Kveikja á Google hjálpara</translation> <translation id="6112294629795967147">Snerta til að breyta stærð</translation> <translation id="6112727384379533756">Bæta við miða</translation> @@ -4238,6 +4260,7 @@ <translation id="6178664161104547336">Veldu vottorð</translation> <translation id="6181431612547969857">Niðurhal útilokað</translation> <translation id="6185132558746749656">Staðsetning tækis</translation> +<translation id="6191293864534840972">Gallaðir nafnaþjónar</translation> <translation id="6195446518998936840">Til að setja upp barnalæsingar verður barnið þitt að vera með Google reikning sem þú aðstoðar við að stjórna. Þú getur stillt takmörkun á skjátíma, samþykkt eða lokað á vefsvæði og fleira í Family Link forritinu.</translation> <translation id="6195693561221576702">Ekki er hægt að setja þetta tæki upp í ótengdri prufustillingu.</translation> <translation id="6196640612572343990">Loka á fótspor frá þriðja aðila</translation> @@ -4451,6 +4474,7 @@ <translation id="6451591602925140504">{NUM_PAGES,plural, =0{<ph name="PAGE_TITLE" />}=1{<ph name="PAGE_TITLE" /> og 1 annar flipi}one{<ph name="PAGE_TITLE" /> og # annar flipi}other{<ph name="PAGE_TITLE" /> og # aðrir flipar}}</translation> <translation id="6451689256222386810">Ef þú hefur gleymt aðgangsorðinu eða þig langar að breyta þessari stillingu skaltu <ph name="BEGIN_LINK" />endurstilla samstillinguna<ph name="END_LINK" />.</translation> <translation id="6452181791372256707">Hafna</translation> +<translation id="6452251728599530347"><ph name="PERCENT" /> lokið</translation> <translation id="6452961788130242735">Netvilla eða rangt svæði</translation> <translation id="6455264371803474013">Á tilteknum vefsvæðum</translation> <translation id="6455894534188563617">&Ný mappa</translation> @@ -4507,6 +4531,7 @@ <ph name="EVENT_NAME" /></translation> <translation id="6520876759015997832">Leitarniðurstaða <ph name="LIST_POSITION" /> af <ph name="LIST_SIZE" />: <ph name="SEARCH_RESULT_TEXT" />. Ýttu á færslulykilinn til að fara í næsta hluta.</translation> <translation id="652492607360843641">Tegund kerfis sem þú tengist: <ph name="NETWORK_TYPE" />.</translation> +<translation id="6527081081771465939">Óþekkt Wi-Fi öryggisregla</translation> <translation id="6527303717912515753">Deila</translation> <translation id="6528513914570774834">Heimila öðrum notendum tækisins að nota þetta netkerfi</translation> <translation id="652948702951888897">Chrome ferill</translation> @@ -4623,6 +4648,7 @@ <translation id="6680442031740878064">Laust: <ph name="AVAILABLE_SPACE" /></translation> <translation id="6680650203439190394">Hraði</translation> <translation id="6681668084120808868">Taka mynd</translation> +<translation id="6684827949542560880">Sækir nýjustu uppfærslu</translation> <translation id="668599234725812620">Opna Google Play</translation> <translation id="6686490380836145850">Loka flipum hægra megin</translation> <translation id="6686817083349815241">Vista aðgangsorðið</translation> @@ -4732,6 +4758,7 @@ <translation id="6812841287760418429">Halda breytingum</translation> <translation id="6817174620439930047">Spyrja þegar vefsvæði vill nota frátekin kerfisskilaboð til að fá aðgang að MIDI-tækjum (ráðlagt)</translation> <translation id="6818198425579322765">Tungumál síðu sem þýða á af</translation> +<translation id="6818802132960437751">Innbyggð vírusvörn</translation> <translation id="682123305478866682">Senda út skjáborð</translation> <translation id="6823174134746916417">Ýta til að smella á snertifleti</translation> <translation id="6823506025919456619">Þú þarft að skrá þig inn í Chrome til að sjá tækin þín</translation> @@ -5378,6 +5405,7 @@ <translation id="7631205654593498032">Þegar þú tengir tækin þín samþykkirðu að <ph name="DEVICE_TYPE" /> geti:</translation> <translation id="7631887513477658702">Opna &alltaf skrár af þessari gerð</translation> <translation id="7632948528260659758">Mistókst að uppfæra eftirfarandi sjálfsalaforrit:</translation> +<translation id="7633724038415831385">Þetta er eini tíminn þar sem þú þarft að bíða eftir uppfærslu. Á Chromebook er hugbúnaður uppfærður í bakgrunni.</translation> <translation id="7634566076839829401">Eitthvað fór úrskeiðis. Reyndu aftur.</translation> <translation id="763632859238619983">Ekki leyfa neinum vefsvæðum að setja upp greiðslumiðlara</translation> <translation id="7636919061354591437">Setja upp í þessu tæki</translation> @@ -5656,6 +5684,7 @@ <translation id="7933314993013528982">{NUM_TABS,plural, =1{Kveikja á hljóði svæðis}one{Kveikja á hljóði svæða}other{Kveikja á hljóði svæða}}</translation> <translation id="7933634003144813719">Hafa umsjón með samnýttum möppum</translation> <translation id="793531125873261495">Villa kom upp við að sækja sýndarvélina. Reyndu aftur.</translation> +<translation id="7936303884198020182">Engir nafnaþjónar fundust</translation> <translation id="7938594894617528435">Ónettengdur núna</translation> <translation id="7939062555109487992">Ítarlegir valkostir</translation> <translation id="7939412583708276221">Halda samt</translation> @@ -5898,6 +5927,7 @@ <translation id="8226742006292257240">Hér fyrir neðan er TPM-aðgangsorð sem valið var af handahófi og úthlutað til tölvunnar þinnar:</translation> <translation id="8227119283605456246">Hengja skrá við</translation> <translation id="8230134520748321204">Vista aðgangsorð fyrir <ph name="ORIGIN" />?</translation> +<translation id="8230672074305416752">Ping-prófun sjálfvalinnar netkerfisgáttar mistókst</translation> <translation id="8234795456569844941">Hjálpaðu verkfræðingum okkar að leysa vandamálið. Segðu okkur hvað gerðist rétt áður en þú fékkst þessi prófílvilluskilaboð.</translation> <translation id="8236917170563564587">Deila þessum flipa í staðinn</translation> <translation id="8237647586961940482">Dökkbleikur og rauður</translation> @@ -5958,6 +5988,7 @@ <translation id="8288032458496410887">Fjarlægja <ph name="APP" />...</translation> <translation id="8289128870594824098">Diskstærð</translation> <translation id="8291967909914612644">Land heimaveitu</translation> +<translation id="8293206222192510085">Bæta við bókamerki</translation> <translation id="8294431847097064396">Uppruni</translation> <translation id="8297006494302853456">Veikt</translation> <translation id="8299319456683969623">Þú ert ekki á netinu.</translation> @@ -6007,6 +6038,7 @@ <translation id="8363095875018065315">stöðug</translation> <translation id="8363142353806532503">Lokað á hljóðnema</translation> <translation id="8363763184161554204">leyfði <ph name="PERMISSION" /></translation> +<translation id="8364946094152050673">Auðir nafnaþjónar</translation> <translation id="8366396658833131068">Nettengingu hefur verið komið á aftur. Veldu annað net eða ýttu á hnappinn „Halda áfram“ hér að neðan til að ræsa sjálfsalaforritið.</translation> <translation id="8368027906805972958">Óþekkt eða óstutt tæki (<ph name="DEVICE_ID" />)</translation> <translation id="8368859634510605990">&Opna öll bókamerki</translation> @@ -6092,8 +6124,10 @@ <translation id="8472623782143987204">vélbúnaður</translation> <translation id="8473863474539038330">Heimilisföng og fleira</translation> <translation id="8475313423285172237">Annað forrit í tölvunni þinni bætti við viðbót sem gæti breytt því hvernig Chrome virkar.</translation> +<translation id="8475690821716466388">Öryggi Wi-Fi nets er veik samskiptaregla, WEP PSK</translation> <translation id="8477241577829954800">Leyst af hólmi</translation> <translation id="8477384620836102176">Almennt</translation> +<translation id="8477551185774834963">DNS-biðtími er aðeins yfir leyfðum þröskuldi</translation> <translation id="8480082892550707549">Jafnvel þótt þú hafir sótt skrár frá þessu vefsvæði áður kann vefsvæðið að vera ótraust í augnablikinu (ef brotist hefur verið inn á það). Prófaðu að sækja þessa skrá síðar.</translation> <translation id="8480869669560681089">Óþekkt tæki frá <ph name="VENDOR_NAME" /></translation> <translation id="8481187309597259238">Staðfesta USB-heimild</translation> @@ -6145,6 +6179,7 @@ <translation id="8546930481464505581">Sérsníða snertistiku</translation> <translation id="8547013269961688403">Kveikja á stækkunargleri á öllum skjánum</translation> <translation id="85486688517848470">Haltu leitarhnappinum inni til að breyta hegðun hnappa í efstu röðinni</translation> +<translation id="8549316893834449916">Þú munt skrá þig inn á Chromebook með Google reikningnum þínum sem þú notar einnig fyrir Gmail, Drive, YouTube og fleira.</translation> <translation id="8551388862522347954">Leyfi</translation> <translation id="8551588720239073785">Dagsetningar- og tímastillingar</translation> <translation id="8553342806078037065">Stjórna öðrum notendum</translation> @@ -6173,7 +6208,7 @@ <translation id="8590375307970699841">Setja upp sjálfvirkar uppfærslur</translation> <translation id="8591783563402255548">1 sekúnda</translation> <translation id="8592141010104017453">Sýna engar tilkynningar</translation> -<translation id="859246725979739260">Lokað hefur verið á aðgang þessa vefsvæðis að staðsetningu þinni.</translation> +<translation id="859246725979739260">Lokað hefur verið á aðgang þessa vefsvæðis að staðsetningunni þinni.</translation> <translation id="8593121833493516339">Senda notkunar- og greiningargögn. Hjálpaðu okkur að bæta Android fyrir barnið þitt með því að senda sjálfkrafa greiningargögn, tækisgögn og upplýsingar um forritanotkun til Google. Þetta verður ekki notað til að bera kennsl á barnið þitt og mun stuðla að því að bæta stöðugleika kerfa og forrita auk annarra endurbóta. Sum uppsöfnuð gögn munu einnig gagnast forritum og samstarfsaðilum Google, til dæmis þróunaraðilum Android. Ef kveikt er á ítarlegri vef- og forritavirkni fyrir barnið geta þessi gögn verið vistuð á Google reikningi barnsins. <ph name="BEGIN_LINK1" />Frekari upplýsingar<ph name="END_LINK1" /></translation> <translation id="8594908476761052472">Taka upp myndskeið</translation> <translation id="8596540852772265699">Sérsniðnar skrár</translation> @@ -6283,6 +6318,7 @@ <translation id="8720200012906404956">Leitar að farsímakerfi. <ph name="BEGIN_LINK" />Frekari upplýsingar<ph name="END_LINK" /></translation> <translation id="8720816553731218127">Frumstilling uppsetningareiginda rann út á tíma.</translation> <translation id="8722912030556880711">Senda notkunar- og greiningargögn. Þetta tæki sendir núna sjálfkrafa greiningargögn, tækisgögn og upplýsingar um forritanotkun til Google. Þetta mun stuðla að því að bæta stöðugleika kerfa og forrita auk annarra endurbóta. Sum uppsöfnuð gögn munu einnig gagnast forritum og samstarfsaðilum Google, til dæmis þróunaraðilum Android. Ef kveikt er á ítarlegri vef- og forritavirkni geta þessi gögn verið vistuð á Google reikningnum þínum. <ph name="BEGIN_LINK2" />Frekari upplýsingar<ph name="END_LINK2" /></translation> +<translation id="8723108084122415655">Net sem ekki er sjálfgefið er yfir biðþröskuldi</translation> <translation id="8724405322205516354">Þegar þú sérð þetta tákn skaltu nota fingrafarið til að auðkenna þig eða samþykkja kaup.</translation> <translation id="8724409975248965964">Fingrafari bætt við</translation> <translation id="8724859055372736596">&Sýna í möppu</translation> @@ -6460,6 +6496,7 @@ <translation id="8909833622202089127">Vefsvæði er að rekja staðsetningu þína</translation> <translation id="8910146161325739742">Deildu skjánum</translation> <translation id="8910222113987937043">Breytingar á bókamerkjum, ferlum, aðgangsorðum og öðrum stillingum verða ekki lengur samstilltar við Google reikninginn þinn. Gögnin þín verða þó áfram vistuð á Google reikningnum þínum og hægt er að hafa umsjón með þeim á <ph name="BEGIN_LINK" />stjórnborði Google<ph name="END_LINK" />.</translation> +<translation id="8910721771319628100">Sjálfgefið net er yfir biðþröskuldi</translation> <translation id="8912362522468806198">Google reikningur</translation> <translation id="8912793549644936705">Teygja</translation> <translation id="8912810933860534797">Kveikja á sjálfvirkri skönnun</translation> @@ -6647,7 +6684,7 @@ <translation id="9147392381910171771">Valk&ostir</translation> <translation id="9148058034647219655">Hætta</translation> <translation id="9148126808321036104">Skrá inn aftur</translation> -<translation id="9148963623915467028">Þetta vefsvæði hefur aðgang að staðsetningu þinni.</translation> +<translation id="9148963623915467028">Þetta vefsvæði hefur aðgang að staðsetningunni þinni.</translation> <translation id="9149866541089851383">Breyta...</translation> <translation id="9150045010208374699">Nota myndavélina þína</translation> <translation id="9153934054460603056">Vista auðkenni og aðgangsorð</translation>
diff --git a/chrome/app/resources/generated_resources_it.xtb b/chrome/app/resources/generated_resources_it.xtb index 3465040d..c9c7c17d7 100644 --- a/chrome/app/resources/generated_resources_it.xtb +++ b/chrome/app/resources/generated_resources_it.xtb
@@ -71,6 +71,7 @@ <translation id="1070705170564860382">Apertura in browser alternativo tra <ph name="COUNTDOWN_SECONDS" /> secondi</translation> <translation id="1071917609930274619">Crittografia dati</translation> <translation id="1072700771426194907">È stato rilevato un dispositivo USB</translation> +<translation id="107278043869924952">Usa il PIN oltre alla password</translation> <translation id="1076176485976385390">Spostati da una pagina all'altra con un cursore di testo</translation> <translation id="1076698951459398590">Attiva tema</translation> <translation id="1076818208934827215">Microsoft Internet Explorer</translation> @@ -524,7 +525,6 @@ <translation id="1608668830839595724">Altre azioni per gli elementi selezionati</translation> <translation id="161042844686301425">Ciano</translation> <translation id="1611432201750675208">Il tuo dispositivo è bloccato</translation> -<translation id="1611584202130317952">Il flusso di provisioning è stato interrotto. Riprova oppure contatta l'amministratore o il proprietario del dispositivo.</translation> <translation id="1614511179807650956">Potresti aver esaurito la tua quota di dati mobili. Visita il portale di attivazione <ph name="NAME" /> per acquistare altri dati.</translation> <translation id="161460670679785907">Impossibile rilevare il tuo telefono</translation> <translation id="1616206807336925449">Questa estensione non richiede autorizzazioni speciali.</translation> @@ -533,6 +533,7 @@ <translation id="1618268899808219593">Centro assistenza</translation> <translation id="1620307519959413822">Password errata. Riprova o fai clic su Password dimenticata per reimpostarla.</translation> <translation id="1620510694547887537">Videocamera</translation> +<translation id="1621831347985899379">I dati del <ph name="DEVICE_TYPE" /> verranno eliminati</translation> <translation id="1622054403950683339">Elimina rete Wi-Fi</translation> <translation id="1623132449929929218">Le immagini non sono al momento disponibili. Riconnettiti a Internet per visualizzare le raccolte di sfondi.</translation> <translation id="1623723619460186680">Riduzione della luce blu</translation> @@ -760,6 +761,7 @@ <translation id="1877377290348678128">Etichetta (facoltativa)</translation> <translation id="1877520246462554164">Recupero del token di autenticazione non riuscito. Esci e accedi nuovamente per riprovare.</translation> <translation id="1877860345998737529">Assegnazione di azioni ai sensori</translation> +<translation id="1878155070920054810">Sembra che il Chromebook sia in procinto di scaricarsi del tutto prima di avere completato l'aggiornamento. Assicurati che si stia ricaricando correttamente per evitare interruzioni.</translation> <translation id="1879000426787380528">Accesso eseguito come</translation> <translation id="1880905663253319515">Eliminare il certificato "<ph name="CERTIFICATE_NAME" />"?</translation> <translation id="1881445033931614352">Layout tastiera</translation> @@ -964,6 +966,7 @@ <translation id="2148219725039824548">Errore durante il montaggio della condivisione. Impossibile trovare la condivisione specificata sulla rete.</translation> <translation id="2148756636027685713">Formattazione terminata</translation> <translation id="2148892889047469596">Trasmetti scheda</translation> +<translation id="2149973817440762519">Modifica Preferito</translation> <translation id="2150139952286079145">Cerca destinazioni</translation> <translation id="2150661552845026580">Aggiungere "<ph name="EXTENSION_NAME" />"?</translation> <translation id="2151576029659734873">È stato inserito un indice di tabulazione non valido.</translation> @@ -1073,6 +1076,7 @@ <translation id="2270627217422354837">Scambiare dati con qualsiasi dispositivo nei domini: <ph name="DOMAINS" /></translation> <translation id="2272570998639520080">Bicchiere da cocktail</translation> <translation id="2273119997271134996">Problema con la porta video del dock</translation> +<translation id="2274840746523584236">Ricarica il Chromebook</translation> <translation id="2276503375879033601">Aggiungi altre applicazioni</translation> <translation id="2277255602909579701">Tutti i cookie e i dati dei siti</translation> <translation id="2277769717710009150">{COUNT,plural, =1{1 elemento copiato}other{# elementi copiati}}</translation> @@ -1914,6 +1918,7 @@ <translation id="3308116878371095290">Impostazione dei cookie vietata per questa pagina.</translation> <translation id="3308134619352333507">Nascondi pulsante</translation> <translation id="3308852433423051161">Caricamento dell'Assistente Google...</translation> +<translation id="3310640316857623290">la latenza DNS è sostanzialmente al di sopra della soglia consentita</translation> <translation id="3311445899360743395">I dati associati a questa app potrebbero essere rimossi dal dispositivo.</translation> <translation id="3312424061798279731">Lingue attive</translation> <translation id="3313622045786997898">Valore firma certificato</translation> @@ -1926,6 +1931,7 @@ <translation id="3323295311852517824">{NUM_FILES,plural, =0{Questi dati includono contenuti sensibili o pericolosi. Rimuovi questi contenuti e riprova.}=1{Questo file include contenuti sensibili o pericolosi. Rimuovi questi contenuti e riprova.}other{Questi file includono contenuti sensibili o pericolosi. Rimuovi questi contenuti e riprova.}}</translation> <translation id="3323521181261657960">Premio! Hai più tempo di utilizzo</translation> <translation id="3325910708063135066">La videocamera e il microfono sono disattivati nelle Preferenze di Sistema del Mac</translation> +<translation id="3327050066667856415">I Chromebook sono pensati per la sicurezza. Il tuo dispositivo è protetto automaticamente da malware, senza l'installazione di altro software.</translation> <translation id="3328489342742826322">Il ripristino da un backup elimina le applicazioni Linux esistenti e i dati nelle tue cartelle di file Linux.</translation> <translation id="3331321258768829690">(<ph name="UTCOFFSET" />) <ph name="LONGTZNAME" /> (<ph name="EXEMPLARCITY" />)</translation> <translation id="3331974543021145906">Informazioni sull'app</translation> @@ -2115,6 +2121,7 @@ <translation id="3556433843310711081">Il tuo gestore può sbloccarlo per te</translation> <translation id="3557101512409028104">Imposta limitazioni relative ai siti web e limiti per il tempo di utilizzo con Family Link</translation> <translation id="3559262020195162408">Impossibile installare le norme sul dispositivo.</translation> +<translation id="3559533181353831840">Ancora <ph name="TIME_LEFT" /> circa</translation> <translation id="3560034655160545939">&Controllo ortografico</translation> <translation id="3562423906127931518">Questa procedura potrebbe richiedere alcuni minuti. Configurazione del container Linux in corso.</translation> <translation id="3563432852173030730">Impossibile scaricare l'applicazione kiosk.</translation> @@ -2157,6 +2164,7 @@ <translation id="3602290021589620013">Anteprima</translation> <translation id="3603622770190368340">Ottieni certificato di rete</translation> <translation id="3604713164406837697">Cambiare sfondo</translation> +<translation id="360565022852130722">la rete Wi-Fi è protetta con un protocollo WEP 802.1x inefficace</translation> <translation id="3605780360466892872">Ventiquattrore</translation> <translation id="3608576286259426129">Anteprima immagine utente</translation> <translation id="3610369246614755442">Assistenza necessaria per la ventola del dock</translation> @@ -2193,6 +2201,7 @@ <translation id="3639220004740062347">Esci dalla modalità Reader</translation> <translation id="3640214691812501263">Aggiungere "<ph name="EXTENSION_NAME" />" per <ph name="USER_NAME" />?</translation> <translation id="3640613767643722554">Insegna all'assistente a riconoscere la tua voce</translation> +<translation id="3643014427358482789"><ph name="DOMAIN" /> sta disattivando il debug ADB, che ripristinerà il <ph name="DEVICE_TYPE" />. Effettua il backup dei tuoi file prima di riavviare il dispositivo.</translation> <translation id="3645372836428131288">Muovi leggermente il dito per acquisire una parte diversa dell'impronta digitale.</translation> <translation id="3647998456578545569">{COUNT,plural, =1{Ricezione di <ph name="ATTACHMENTS" /> dal dispositivo <ph name="DEVICE_NAME" /> completata}other{Ricezione di <ph name="ATTACHMENTS" /> dal dispositivo <ph name="DEVICE_NAME" /> completata}}</translation> <translation id="3648348069317717750">Rilevato dispositivo <ph name="USB_DEVICE_NAME" /></translation> @@ -2281,6 +2290,7 @@ <translation id="3732857534841813090">Informazioni correlate dell'Assistente Google</translation> <translation id="3733127536501031542">Server SSL con step-up</translation> <translation id="3735740477244556633">Ordina per</translation> +<translation id="3738632186060045350">I dati del <ph name="DEVICE_TYPE" /> verranno eliminati tra 24 ore</translation> <translation id="3738924763801731196"><ph name="OID" />:</translation> <translation id="3739254215541673094">Aprire <ph name="APPLICATION" />?</translation> <translation id="3742055079367172538">Screenshot acquisito</translation> @@ -2468,6 +2478,7 @@ <translation id="3937734102568271121">Traduci sempre questa lingua: <ph name="LANGUAGE" /></translation> <translation id="3938128855950761626">Dispositivi del fornitore <ph name="VENDOR_ID" /></translation> <translation id="3940233957883229251">Attiva ripetizione automatica</translation> +<translation id="3941014780699102620">impossibile risolvere l'host</translation> <translation id="3941565636838060942">Per impedire l'accesso a questo programma, è necessario disinstallarlo utilizzando <ph name="CONTROL_PANEL_APPLET_NAME" /> nel Pannello di controllo. @@ -2630,6 +2641,7 @@ <translation id="413121957363593859">Componenti</translation> <translation id="4131410914670010031">In bianco e nero</translation> <translation id="413193092008917129">Routine di diagnostica rete</translation> +<translation id="4132183752438206707">Cerca le app sul Google Play Store</translation> <translation id="4133076602192971179">Apri l'app per cambiare la password</translation> <translation id="4136203100490971508">La funzione Luminosità notturna verrà disattivata automaticamente all'alba</translation> <translation id="41365691917097717">Se continui, verrà attivato il debug ADB per creare e testare app Android. Tieni presente che questa azione consente l'installazione di app Android che non sono state verificate da Google. Per disattivare la funzionalità è necessario ripristinare le impostazioni di fabbrica.</translation> @@ -2879,6 +2891,8 @@ <translation id="4479877282574735775">Configurazione della macchina virtuale. Questa operazione potrebbe richiedere alcuni minuti.</translation> <translation id="4480590691557335796">Chrome può trovare software dannoso sul computer e rimuoverlo</translation> <translation id="4481530544597605423">Dispositivi disaccoppiati</translation> +<translation id="4483049906298469269">impossibile eseguire il ping del gateway di rete non predefinito</translation> +<translation id="4487489714832036847">Al posto del software tradizionale i Chromebook usano le app. Scarica app per la produttività, l'intrattenimento e altro.</translation> <translation id="4488502501195719518">Vuoi cancellare tutti i dati?</translation> <translation id="4493468155686877504">Consigliato (<ph name="INSTALL_SIZE" />)</translation> <translation id="4495419450179050807">Non visualizzare in questa pagina</translation> @@ -2929,6 +2943,7 @@ <translation id="4546692474302123343">Input vocale dell'Assistente Google</translation> <translation id="4547659257713117923">Nessuna scheda di altri dispositivi</translation> <translation id="4547672827276975204">Imposta automaticamente</translation> +<translation id="4548483925627140043">segnale non trovato</translation> <translation id="4549791035683739768">Nel token di sicurezza non sono archiviate impronte</translation> <translation id="4551763574344810652">Premi <ph name="MODIFIER_KEY_DESCRIPTION" /> per annullare</translation> <translation id="4552089082226364758">Flash</translation> @@ -2968,6 +2983,7 @@ <translation id="4582563038311694664">Ripristina tutte le impostazioni</translation> <translation id="4585793705637313973">Modifica pagina</translation> <translation id="4586275095964870617">Impossibile aprire <ph name="URL" /> in un browser alternativo. Contatta l'amministratore di sistema.</translation> +<translation id="458794348635939462">impossibile risolvere tutti gli host</translation> <translation id="4589713469967853491">Log scritti nella directory Download.</translation> <translation id="4590324241397107707">Archiviazione database</translation> <translation id="4592891116925567110">App di disegno con stilo</translation> @@ -3351,6 +3367,7 @@ <translation id="5089810972385038852">Stato</translation> <translation id="5094721898978802975">Comunicazione con applicazioni native interoperative</translation> <translation id="5097002363526479830">Connessione alla rete "<ph name="NAME" />" non riuscita: <ph name="DETAILS" /></translation> +<translation id="5097649414558628673">Strumento: <ph name="PRINT_NAME" /></translation> <translation id="5097874180538493929">Fare clic automaticamente quando il puntatore si ferma</translation> <translation id="5101042277149003567">Apri tutti i Preferiti</translation> <translation id="5101839224773798795">Clic automatico all'arresto del puntatore del cursore</translation> @@ -3569,6 +3586,7 @@ <translation id="5370819323174483825">&Ricarica</translation> <translation id="5372529912055771682">La modalità di iscrizione specificata non è supportata da questa versione del sistema operativo. Assicurati che sia installata l'ultima versione e riprova.</translation> <translation id="5372579129492968947">Sblocca estensione</translation> +<translation id="5372659122375744710">la rete Wi-Fi non è sicura</translation> <translation id="5376169624176189338">Fai clic per tornare indietro, tieni premuto per vedere la cronologia</translation> <translation id="5376931455988532197">File troppo grande</translation> <translation id="5377721922656071359">{COUNT,plural, =1{Invio di <ph name="ATTACHMENTS" /> al dispositivo <ph name="DEVICE_NAME" /> completato}other{Invio di <ph name="ATTACHMENTS" /> al dispositivo <ph name="DEVICE_NAME" /> completato}}</translation> @@ -3598,6 +3616,7 @@ <translation id="5414566801737831689">Lettura delle icone dei siti web visitati</translation> <translation id="5417312524372586921">Temi del browser</translation> <translation id="5419405654816502573">Voice Match</translation> +<translation id="5420274697768050645">Richiedi la password per sbloccare il dispositivo per maggiore sicurezza</translation> <translation id="5420438158931847627">Determina la nitidezza del testo e delle immagini</translation> <translation id="5422221874247253874">Punto di accesso</translation> <translation id="5422781158178868512">Spiacenti, impossibile riconoscere il dispositivo di archiviazione esterno.</translation> @@ -3722,6 +3741,7 @@ <translation id="5548606607480005320">Controllo di sicurezza</translation> <translation id="5551573675707792127">Tastiera e input di testo</translation> <translation id="5553089923092577885">Mapping dei criteri dei certificati</translation> +<translation id="5554403733534868102">Dopo questo aggiornamento, niente più attese</translation> <translation id="5554489410841842733">Questa icona sarà visibile quando l'estensione potrà interagire nella pagina corrente.</translation> <translation id="5554720593229208774">Autorità di certificazione email</translation> <translation id="5556459405103347317">Ricarica</translation> @@ -4135,6 +4155,7 @@ <translation id="6061882183774845124">Invia link ai tuoi dispositivi</translation> <translation id="6064217302520318294">Blocco schermo</translation> <translation id="6065289257230303064">Attributi directory soggetto certificato</translation> +<translation id="6069464830445383022">Accedi al Chromebook con il tuo Account Google</translation> <translation id="6069671174561668781">Imposta sfondo</translation> <translation id="6071181508177083058">conferma password</translation> <translation id="6071576563962215370">Il sistema non è riuscito a stabilire il blocco degli attributi installation-time del dispositivo.</translation> @@ -4177,6 +4198,7 @@ <translation id="6104311680260824317">Impossibile aggiungere il dispositivo al dominio. Il server non supporta i tipi di crittografia Kerberos specificati. Consulta "Altre opzioni" per le impostazioni di crittografia.</translation> <translation id="6104796831253957966">La coda della stampante è piena</translation> <translation id="6105994589138235234">Sincronizzazione del browser Chrome</translation> +<translation id="6108689792487843350">gateway non raggiungibile</translation> <translation id="6111972606040028426">Abilitare l'Assistente Google</translation> <translation id="6112294629795967147">Tocca per ridimensionare</translation> <translation id="6112727384379533756">Aggiungi una richiesta</translation> @@ -4237,6 +4259,7 @@ <translation id="6178664161104547336">Seleziona un certificato</translation> <translation id="6181431612547969857">Download bloccato</translation> <translation id="6185132558746749656">Posizione del dispositivo</translation> +<translation id="6191293864534840972">formato dei server dei nomi non valido</translation> <translation id="6195446518998936840">Per poter configurare il Controllo genitori, tuo figlio deve avere un Account Google che aiuterai a gestire. Usa l'app Family Link per impostare dei limiti per il tempo di utilizzo, approvare o bloccare siti web e altro ancora.</translation> <translation id="6195693561221576702">Impossibile configurare il dispositivo in modalità demo offline.</translation> <translation id="6196640612572343990">Blocca cookie di terze parti</translation> @@ -4450,6 +4473,7 @@ <translation id="6451591602925140504">{NUM_PAGES,plural, =0{<ph name="PAGE_TITLE" />}=1{<ph name="PAGE_TITLE" /> e 1 altra scheda}other{<ph name="PAGE_TITLE" /> e altre # schede}}</translation> <translation id="6451689256222386810">Se non ricordi la passphrase o vuoi modificare questa impostazione, <ph name="BEGIN_LINK" />reimposta la sincronizzazione<ph name="END_LINK" />.</translation> <translation id="6452181791372256707">Rifiuto</translation> +<translation id="6452251728599530347"><ph name="PERCENT" /> completato</translation> <translation id="6452961788130242735">Problema di rete o area di autenticazione non valida</translation> <translation id="6455264371803474013">Su siti specifici</translation> <translation id="6455894534188563617">&Nuova cartella</translation> @@ -4506,6 +4530,7 @@ <ph name="EVENT_NAME" /></translation> <translation id="6520876759015997832">Risultato di ricerca <ph name="LIST_POSITION" /> di <ph name="LIST_SIZE" />: <ph name="SEARCH_RESULT_TEXT" />. Premi Invio per andare alla sezione.</translation> <translation id="652492607360843641">È attiva la connessione a una rete <ph name="NETWORK_TYPE" />.</translation> +<translation id="6527081081771465939">protocollo di sicurezza Wi-Fi sconosciuto</translation> <translation id="6527303717912515753">Condividi</translation> <translation id="6528513914570774834">Consenti ad altri utenti del dispositivo di usare questa rete</translation> <translation id="652948702951888897">Cronologia di Chrome</translation> @@ -4622,6 +4647,7 @@ <translation id="6680442031740878064">Disponibile: <ph name="AVAILABLE_SPACE" /></translation> <translation id="6680650203439190394">Velocità</translation> <translation id="6681668084120808868">Scatta foto</translation> +<translation id="6684827949542560880">Download dell'ultimo aggiornamento</translation> <translation id="668599234725812620">Apri Google Play</translation> <translation id="6686490380836145850">Chiudi schede a destra</translation> <translation id="6686817083349815241">Salva la password</translation> @@ -4731,6 +4757,7 @@ <translation id="6812841287760418429">Mantieni le modifiche</translation> <translation id="6817174620439930047">Chiedi conferma quando un sito vuole utilizzare messaggi esclusivi di sistema per accedere a dispositivi MIDI (consigliata)</translation> <translation id="6818198425579322765">Lingua della pagina da tradurre</translation> +<translation id="6818802132960437751">Protezione antivirus integrata</translation> <translation id="682123305478866682">Trasmetti desktop</translation> <translation id="6823174134746916417">Tocco per fare clic sul touchpad</translation> <translation id="6823506025919456619">Devi accedere a Chrome per visualizzare i tuoi dispositivi</translation> @@ -5377,6 +5404,7 @@ <translation id="7631205654593498032">Quando connetti i tuoi dispositivi, accetti che il dispositivo <ph name="DEVICE_TYPE" /> possa:</translation> <translation id="7631887513477658702">&Apri sempre file di questo tipo</translation> <translation id="7632948528260659758">Le seguenti app kiosk non sono state aggiornate:</translation> +<translation id="7633724038415831385">Questo è il solo aggiornamento che ti richiede di aspettare. Tutti gli altri aggiornamenti software vengono effettuati in background sui Chromebook.</translation> <translation id="7634566076839829401">Si è verificato un errore. Riprova.</translation> <translation id="763632859238619983">Non consentire ai siti di installare gestori dei pagamenti</translation> <translation id="7636919061354591437">Installa su questo dispositivo</translation> @@ -5655,6 +5683,7 @@ <translation id="7933314993013528982">{NUM_TABS,plural, =1{Riattiva l'audio del sito}other{Riattiva l'audio dei siti}}</translation> <translation id="7933634003144813719">Gestisci cartelle condivise</translation> <translation id="793531125873261495">Errore durante il download della macchina virtuale. Riprova.</translation> +<translation id="7936303884198020182">nessun server dei nomi trovato</translation> <translation id="7938594894617528435">Attualmente offline</translation> <translation id="7939062555109487992">Opzioni avanzate</translation> <translation id="7939412583708276221">Mantieni comunque</translation> @@ -5897,6 +5926,7 @@ <translation id="8226742006292257240">Di seguito viene indicata la password TPM generata in modo casuale che è stata assegnata al tuo computer:</translation> <translation id="8227119283605456246">Allega file</translation> <translation id="8230134520748321204">Salvare la password per <ph name="ORIGIN" />?</translation> +<translation id="8230672074305416752">impossibile eseguire il ping del gateway di rete predefinito</translation> <translation id="8234795456569844941">Aiuta i nostri tecnici a risolvere il problema. Descrivi cosa è accaduto subito prima di ricevere il messaggio di errore del profilo:</translation> <translation id="8236917170563564587">Condividi questa scheda invece</translation> <translation id="8237647586961940482">Rosa scuro e rosso</translation> @@ -5957,6 +5987,7 @@ <translation id="8288032458496410887">Disinstallare <ph name="APP" />…</translation> <translation id="8289128870594824098">Dimensione disco</translation> <translation id="8291967909914612644">Paese del provider principale</translation> +<translation id="8293206222192510085">Aggiunta preferito</translation> <translation id="8294431847097064396">Origine</translation> <translation id="8297006494302853456">Debole</translation> <translation id="8299319456683969623">Al momento sei offline.</translation> @@ -6006,6 +6037,7 @@ <translation id="8363095875018065315">stabile</translation> <translation id="8363142353806532503">Microfono bloccato</translation> <translation id="8363763184161554204">autorizzazione <ph name="PERMISSION" /> consentita</translation> +<translation id="8364946094152050673">il campo dei server dei nomi è vuoto</translation> <translation id="8366396658833131068">La connettività di rete è stata ripristinata. Seleziona un'altra rete o premi il pulsante "Continua" sotto per avviare l'app kiosk.</translation> <translation id="8368027906805972958">Dispositivo sconosciuto o non supportato (<ph name="DEVICE_ID" />)</translation> <translation id="8368859634510605990">&Apri tutti i Preferiti</translation> @@ -6091,8 +6123,10 @@ <translation id="8472623782143987204">basato sull'hardware</translation> <translation id="8473863474539038330">Indirizzi e altro</translation> <translation id="8475313423285172237">Un altro programma sul computer ha aggiunto un'estensione che potrebbe modificare il funzionamento di Chrome.</translation> +<translation id="8475690821716466388">la rete Wi-Fi è protetta con un protocollo WEP PSK inefficace</translation> <translation id="8477241577829954800">Sostituito</translation> <translation id="8477384620836102176">&Generali</translation> +<translation id="8477551185774834963">la latenza DNS è leggermente al di sopra della soglia consentita</translation> <translation id="8480082892550707549">Anche se hai già scaricato file da questo sito in passato, il sito potrebbe essere temporaneamente non sicuro (compromesso). Prova a scaricare il file in un secondo momento.</translation> <translation id="8480869669560681089">Dispositivo sconosciuto di <ph name="VENDOR_NAME" /></translation> <translation id="8481187309597259238">Conferma l'autorizzazione USB</translation> @@ -6144,6 +6178,7 @@ <translation id="8546930481464505581">Personalizza la Touch Bar</translation> <translation id="8547013269961688403">Attiva lente d'ingrandimento a schermo intero</translation> <translation id="85486688517848470">Tieni premuto il tasto per la ricerca per modificare la funzione dei tasti della fila superiore</translation> +<translation id="8549316893834449916">Utilizzerai il tuo Account Google per accedere al Chromebook: lo stesso che usi per accedere a Gmail, Drive, YouTube e altro ancora.</translation> <translation id="8551388862522347954">Licenze</translation> <translation id="8551588720239073785">Impostazioni di data e ora</translation> <translation id="8553342806078037065">Gestisci altre persone</translation> @@ -6282,6 +6317,7 @@ <translation id="8720200012906404956">Ricerca di una rete mobile in corso. <ph name="BEGIN_LINK" />Ulteriori informazioni<ph name="END_LINK" /></translation> <translation id="8720816553731218127">L'inizializzazione degli attributi installation-time è scaduta.</translation> <translation id="8722912030556880711">Invia dati diagnostici e sull'utilizzo. Questo dispositivo attualmente invia a Google dati diagnostici e sull'utilizzo delle app e del dispositivo. Tali dati contribuiranno alla stabilità di app e sistema, nonché ad altri miglioramenti. Alcuni dati aggregati saranno utili anche alle app e ai partner di Google, ad esempio agli sviluppatori Android. Se hai attivato l'impostazione Attività web e app aggiuntiva, queste informazioni potrebbero essere salvate nel tuo Account Google. <ph name="BEGIN_LINK2" />Ulteriori informazioni<ph name="END_LINK2" /></translation> +<translation id="8723108084122415655">la rete non predefinita è al di sopra della soglia di latenza</translation> <translation id="8724405322205516354">Quando vedi questa icona, usa l'impronta per identificarti o approvare gli acquisti.</translation> <translation id="8724409975248965964">Impronta aggiunta</translation> <translation id="8724859055372736596">Mo&stra nella cartella</translation> @@ -6459,6 +6495,7 @@ <translation id="8909833622202089127">Il sito sta monitorando la tua posizione</translation> <translation id="8910146161325739742">Condividi lo schermo</translation> <translation id="8910222113987937043">Le modifiche ai preferiti, alla cronologia, alle password e ad altre impostazioni non verranno più sincronizzate con il tuo Account Google. I dati esistenti rimarranno invece memorizzati nel tuo Account Google e potranno essere gestiti su <ph name="BEGIN_LINK" />Google Dashboard<ph name="END_LINK" />.</translation> +<translation id="8910721771319628100">la rete predefinita è al di sopra della soglia di latenza</translation> <translation id="8912362522468806198">Google Account</translation> <translation id="8912793549644936705">Allunga</translation> <translation id="8912810933860534797">Attiva scansione automatica</translation>
diff --git a/chrome/app/resources/generated_resources_iw.xtb b/chrome/app/resources/generated_resources_iw.xtb index 60c2ef0..16a90324 100644 --- a/chrome/app/resources/generated_resources_iw.xtb +++ b/chrome/app/resources/generated_resources_iw.xtb
@@ -71,6 +71,7 @@ <translation id="1070705170564860382">פתיחה בדפדפן חלופי בעוד <ph name="COUNTDOWN_SECONDS" /> שניות</translation> <translation id="1071917609930274619">קידוד נתונים</translation> <translation id="1072700771426194907">זוהה התקן USB</translation> +<translation id="107278043869924952">יש להשתמש בקוד אימות בנוסף לסיסמה</translation> <translation id="1076176485976385390">ניווט בדפים באמצעות סמן הטקסט</translation> <translation id="1076698951459398590">הפעל עיצוב</translation> <translation id="1076818208934827215">Microsoft Internet Explorer</translation> @@ -521,7 +522,6 @@ <translation id="1608668830839595724">פעולות נוספות שאפשר לבצע בפריטים שנבחרו</translation> <translation id="161042844686301425">ציאן</translation> <translation id="1611432201750675208">המכשיר שלך נעול</translation> -<translation id="1611584202130317952">תהליך הקצאת הגישה הופסק. יש לנסות שוב, או לפנות לבעלי המכשיר או למנהל המערכת.</translation> <translation id="1614511179807650956">ייתכן שניצלת את כל חבילת הגלישה שלך. בפורטל ההפעלה של <ph name="NAME" /> ניתן לשלם על הרחבת החבילה</translation> <translation id="161460670679785907">לא ניתן לזהות את הטלפון שלך</translation> <translation id="1616206807336925449">אין צורך בהרשאות מיוחדות כדי להשתמש בתוסף זה.</translation> @@ -530,6 +530,7 @@ <translation id="1618268899808219593">מרכז עזרה</translation> <translation id="1620307519959413822">הסיסמה שגויה. אפשר לנסות שוב או ללחוץ על 'שכחת את הסיסמה?' כדי לאפס אותה.</translation> <translation id="1620510694547887537">מצלמה</translation> +<translation id="1621831347985899379">הנתונים של <ph name="DEVICE_TYPE" /> יימחקו</translation> <translation id="1622054403950683339">מחיקת רשת ה-Wi-Fi</translation> <translation id="1623132449929929218">התמונות לא זמינות בשלב זה. צריך להתחבר מחדש לאינטרנט כדי להציג את אוספי הטפטים.</translation> <translation id="1623723619460186680">הפחתה של פליטת אור כחול</translation> @@ -757,6 +758,7 @@ <translation id="1877377290348678128">תווית (אופציונלי)</translation> <translation id="1877520246462554164">לא ניתן לקבל אסימון אימות. עליך לצאת ולאחר מכן להיכנס מחדש ולנסות שוב.</translation> <translation id="1877860345998737529">הקצאת מתגים לפעולות</translation> +<translation id="1878155070920054810">נראה שסוללת ה-Chromebook שלך תתרוקן לפני שהעדכון יושלם. כדי למנוע הפרעה, יש לוודא שהיא נטענת כראוי.</translation> <translation id="1879000426787380528">כניסה בתור</translation> <translation id="1880905663253319515">למחוק את האישור "<ph name="CERTIFICATE_NAME" />"?</translation> <translation id="1881445033931614352">פריסת המקלדת</translation> @@ -961,6 +963,7 @@ <translation id="2148219725039824548">קרתה שגיאה בטעינת התקן הרשת לשיתוף קבצים. ההתקן שצוין לא נמצא ברשת.</translation> <translation id="2148756636027685713">הפרמוט הסתיים</translation> <translation id="2148892889047469596">העברת הכרטיסייה</translation> +<translation id="2149973817440762519">ערוך סימניות</translation> <translation id="2150139952286079145">יעדי חיפוש</translation> <translation id="2150661552845026580">להוסיף את "<ph name="EXTENSION_NAME" />"?</translation> <translation id="2151576029659734873">הוזן אינדקס שגוי של כרטיסייה</translation> @@ -1070,6 +1073,7 @@ <translation id="2270627217422354837">החלפת נתונים עם כל מכשיר בדומיינים: <ph name="DOMAINS" /></translation> <translation id="2272570998639520080">כוס מרטיני</translation> <translation id="2273119997271134996">בעיה עם יציאות הווידאו באביזר העגינה</translation> +<translation id="2274840746523584236">יש לטעון את Chromebook</translation> <translation id="2276503375879033601">הוסף יישומים נוספים</translation> <translation id="2277255602909579701">כל קובצי ה-Cookie ונתוני האתר</translation> <translation id="2277769717710009150">{COUNT,plural, =1{פריט אחד הועתק}two{# פריטים הועתקו}many{# פריטים הועתקו}other{# פריטים הועתקו}}</translation> @@ -1913,6 +1917,7 @@ <translation id="3308116878371095290">לא ניתן להגדיר קובצי Cookie לדף זה.</translation> <translation id="3308134619352333507">לחצן 'הסתר'</translation> <translation id="3308852433423051161">טוען את Google Assistant...</translation> +<translation id="3310640316857623290">זמן האחזור של ה-DNS גבוה במידה משמעותית מהסף המותר</translation> <translation id="3311445899360743395">ייתכן שיוסרו מהמכשיר נתונים המשויכים לאפליקציה הזו.</translation> <translation id="3312424061798279731">שפות זמינות</translation> <translation id="3313622045786997898">ערך חתימת אישור </translation> @@ -1925,6 +1930,7 @@ <translation id="3323295311852517824">{NUM_FILES,plural, =0{הנתונים האלה מכילים תוכן רגיש או מסוכן. צריך להסיר את התוכן הזה ולנסות שוב.}=1{הקובץ הזה מכיל תוכן רגיש או מסוכן. צריך להסיר את התוכן הזה ולנסות שוב.}two{הקבצים האלה מכילים תוכן רגיש או מסוכן. צריך להסיר את התוכן הזה ולנסות שוב.}many{הקבצים האלה מכילים תוכן רגיש או מסוכן. צריך להסיר את התוכן הזה ולנסות שוב.}other{הקבצים האלה מכילים תוכן רגיש או מסוכן. צריך להסיר את התוכן הזה ולנסות שוב.}}</translation> <translation id="3323521181261657960">בונוס! קיבלת עוד זמן מסך</translation> <translation id="3325910708063135066">המצלמה והמיקרופון מושבתים בהעדפות המערכת של Mac</translation> +<translation id="3327050066667856415">אבטחת המכשיר מתוכננת ב-Chromebook באופן מובנה. המכשיר שלך מוגן מתוכנות זדוניות באופן אוטומטי, ולא נדרשות בו תוכנות נוספות.</translation> <translation id="3328489342742826322">שחזור מגיבוי יביא למחיקת האפליקציות והנתונים הקיימים של Linux בתיקיית קובצי Linux.</translation> <translation id="3331321258768829690">(<ph name="UTCOFFSET" />) <ph name="LONGTZNAME" /> (<ph name="EXEMPLARCITY" />)</translation> <translation id="3331974543021145906">פרטי יישום</translation> @@ -2114,6 +2120,7 @@ <translation id="3556433843310711081">המנהל שלך יכול לבטל בשבילך את החסימה</translation> <translation id="3557101512409028104">הגדרה של הגבלות גישה לאתרים וזמן מסך בעזרת Family Link</translation> <translation id="3559262020195162408">התקנת המדיניות במכשיר נכשלה.</translation> +<translation id="3559533181353831840">הזמן הנותר: בערך <ph name="TIME_LEFT" /></translation> <translation id="3560034655160545939">&בדיקת איות</translation> <translation id="3562423906127931518">התהליך הזה עשוי להימשך כמה דקות. מגדיר את מאגר Linux.</translation> <translation id="3563432852173030730">לא ניתן היה להוריד את יישום הקיוסק.</translation> @@ -2156,6 +2163,7 @@ <translation id="3602290021589620013">תצוגה מקדימה</translation> <translation id="3603622770190368340">השג אישור רשת</translation> <translation id="3604713164406837697">שינוי הטפט</translation> +<translation id="360565022852130722">רשת ה-Wi-Fi מאובטחת בפרוטוקול WEP 802.1x חלש.</translation> <translation id="3605780360466892872">מר מכופתר</translation> <translation id="3608576286259426129">תצוגה מקדימה של תמונת המשתמש</translation> <translation id="3610369246614755442">המאוורר של אביזר העגינה צריך תיקון</translation> @@ -2192,6 +2200,7 @@ <translation id="3639220004740062347">יציאה ממצב קורא</translation> <translation id="3640214691812501263">האם להוסיף את "<ph name="EXTENSION_NAME" />" בשביל <ph name="USER_NAME" />?</translation> <translation id="3640613767643722554">ה-Assistant יכול ללמוד לזהות את הקול שלך</translation> +<translation id="3643014427358482789">ניפוי באגים באמצעות ADB מושבת על-ידי <ph name="DOMAIN" />. פעולה זו תאפס את מכשיר <ph name="DEVICE_TYPE" /> שלך. יש לגבות את הקבצים לפני ההפעלה מחדש.</translation> <translation id="3645372836428131288">יש להזיז קצת את האצבע כדי לסרוק חלק אחר של טביעת האצבע.</translation> <translation id="3647998456578545569">{COUNT,plural, =1{<ph name="ATTACHMENTS" /> התקבל מהמכשיר <ph name="DEVICE_NAME" />}two{<ph name="ATTACHMENTS" /> התקבלו מהמכשיר <ph name="DEVICE_NAME" />}many{<ph name="ATTACHMENTS" /> התקבלו מהמכשיר <ph name="DEVICE_NAME" />}other{<ph name="ATTACHMENTS" /> התקבלו מהמכשיר <ph name="DEVICE_NAME" />}}</translation> <translation id="3648348069317717750">המערכת זיהתה את <ph name="USB_DEVICE_NAME" /></translation> @@ -2280,6 +2289,7 @@ <translation id="3732857534841813090">הצגת מידע קשור על ידי Google Assistant</translation> <translation id="3733127536501031542">שרת SSL עם הגברה</translation> <translation id="3735740477244556633">מיון לפי</translation> +<translation id="3738632186060045350">הנתונים של <ph name="DEVICE_TYPE" /> יימחקו בתוך 24 שעות</translation> <translation id="3738924763801731196"><ph name="OID" />:</translation> <translation id="3739254215541673094">לפתוח את <ph name="APPLICATION" />?</translation> <translation id="3742055079367172538">צילום המסך בוצע</translation> @@ -2467,6 +2477,7 @@ <translation id="3937734102568271121">תמיד יש לתרגם <ph name="LANGUAGE" /></translation> <translation id="3938128855950761626">מכשירים של הספק <ph name="VENDOR_ID" /></translation> <translation id="3940233957883229251">הפעל חזרה אוטומטית</translation> +<translation id="3941014780699102620">לא ניתן היה להתאים את נתוני המארח</translation> <translation id="3941565636838060942">להסתרת הגישה לתכנית הזו, עליך להסיר אותה באמצעות <ph name="CONTROL_PANEL_APPLET_NAME" /> בלוח הבקרה. @@ -2629,6 +2640,7 @@ <translation id="413121957363593859">רכיבים</translation> <translation id="4131410914670010031">שחור ולבן</translation> <translation id="413193092008917129">תרחישים של אבחון רשת</translation> +<translation id="4132183752438206707">חיפוש אפליקציות בחנות Google Play</translation> <translation id="4133076602192971179">כדי לשנות את הסיסמה, יש לפתוח את האפליקציה</translation> <translation id="4136203100490971508">תאורת הלילה תכבה באופן אוטומטי בשעת הזריחה</translation> <translation id="41365691917097717">בחירה להמשיך תגרום להפעלת ניפוי באגים באמצעות ADB במהלך היצירה והבדיקה של אפליקציות ל-Android. חשוב לשים לב שהפעולה הזו מאפשרת את ההתקנה של אפליקציות ל-Android שלא אומתו על ידי Google. כדי להשבית את התכונה, יש לאפס את המכשיר להגדרות המקוריות.</translation> @@ -2878,6 +2890,8 @@ <translation id="4479877282574735775">המערכת מגדירה את המכונה הוירטואלית. הפעולה עשויה להימשך כמה דקות.</translation> <translation id="4480590691557335796">Chrome יכול לאתר תוכנות מזיקות במחשב ולהסיר אותן</translation> <translation id="4481530544597605423">מכשירים לא מותאמים</translation> +<translation id="4483049906298469269">לא ניתן היה לבצע פינג לשער הרשת שאינה מוגדרת כברירת מחדל.</translation> +<translation id="4487489714832036847">מכשירי Chromebook משתמשים באפליקציות במקום בתוכנות, בניגוד למכשירים אחרים. ניתן להוריד את האפליקציות וליהנות מפרודוקטיביות, מבידור ועוד.</translation> <translation id="4488502501195719518">לנקות את כל הנתונים?</translation> <translation id="4493468155686877504">מומלץ (<ph name="INSTALL_SIZE" />)</translation> <translation id="4495419450179050807">אל תציג בדף זה</translation> @@ -2928,6 +2942,7 @@ <translation id="4546692474302123343">קלט קולי ב-Google Assistant</translation> <translation id="4547659257713117923">אין כרטיסיות ממכשירים אחרים</translation> <translation id="4547672827276975204">הגדרה באופן אוטומטי</translation> +<translation id="4548483925627140043">האות לא נמצא</translation> <translation id="4549791035683739768">לא נשמרו טביעות אצבעות במפתח האבטחה</translation> <translation id="4551763574344810652">אפשר לבטל את הפעולה בהקשה על <ph name="MODIFIER_KEY_DESCRIPTION" /></translation> <translation id="4552089082226364758">Flash</translation> @@ -2967,6 +2982,7 @@ <translation id="4582563038311694664">אפס את כל ההגדרות</translation> <translation id="4585793705637313973">עריכת הדף</translation> <translation id="4586275095964870617">לא ניתן לפתוח את <ph name="URL" /> בדפדפן חלופי. יש לפנות למנהל המערכת.</translation> +<translation id="458794348635939462">לא ניתן היה להתאים את הנתונים של כל המארחים</translation> <translation id="4589713469967853491">היומנים נכתבו בהצלחה בספרייה 'הורדות'.</translation> <translation id="4590324241397107707">אחסון מסדי נתונים</translation> <translation id="4592891116925567110">אפליקציה לציור עם סטיילוס</translation> @@ -3350,6 +3366,7 @@ <translation id="5089810972385038852">מדינה</translation> <translation id="5094721898978802975">יצירת קשר עם יישומים מקוריים שמשתפים פעולה</translation> <translation id="5097002363526479830">ההתחברות לרשת נכשלה '<ph name="NAME" />': <ph name="DETAILS" /></translation> +<translation id="5097649414558628673">כלי: <ph name="PRINT_NAME" /></translation> <translation id="5097874180538493929">ללחוץ אוטומטית כשהסמן עוצר</translation> <translation id="5101042277149003567">פתח את כל הסימניות</translation> <translation id="5101839224773798795">קליק אוטומטי כשהסמן עוצר</translation> @@ -3568,6 +3585,7 @@ <translation id="5370819323174483825">&טען מחדש</translation> <translation id="5372529912055771682">מצב ההרשמה שסופק אינו נתמך על ידי גרסה זו של מערכת ההפעלה. ודא שאתה מפעיל את הגרסה החדשה ביותר ונסה שוב.</translation> <translation id="5372579129492968947">ביטול הצמדת התוסף</translation> +<translation id="5372659122375744710">רשת ה-Wi-Fi לא מאובטחת</translation> <translation id="5376169624176189338">לחץ כדי לחזור, לחץ והחזק כדי לראות את ההיסטוריה</translation> <translation id="5376931455988532197">הקובץ גדול מדי</translation> <translation id="5377721922656071359">{COUNT,plural, =1{<ph name="ATTACHMENTS" /> נשלח בהצלחה אל <ph name="DEVICE_NAME" />}two{<ph name="ATTACHMENTS" /> נשלחו בהצלחה אל <ph name="DEVICE_NAME" />}many{<ph name="ATTACHMENTS" /> נשלחו בהצלחה אל <ph name="DEVICE_NAME" />}other{<ph name="ATTACHMENTS" /> נשלחו בהצלחה אל <ph name="DEVICE_NAME" />}}</translation> @@ -3597,6 +3615,7 @@ <translation id="5414566801737831689">קריאה של סמלי האתרים שבהם אתה מבקר</translation> <translation id="5417312524372586921">עיצובי דפדפן</translation> <translation id="5419405654816502573">Voice Match</translation> +<translation id="5420274697768050645">מטעמי אבטחה, דרושה סיסמה לביטול הנעילה של המכשיר</translation> <translation id="5420438158931847627">קביעת החדות של הטקסט והתמונות</translation> <translation id="5422221874247253874">נקודת גישה</translation> <translation id="5422781158178868512">מצטערים, לא ניתן לזהות את מכשיר האחסון החיצוני שלך.</translation> @@ -3721,6 +3740,7 @@ <translation id="5548606607480005320">בדיקת אבטחה</translation> <translation id="5551573675707792127">מקלדת וקלט טקסט</translation> <translation id="5553089923092577885">מיפויי מדיניות אישור </translation> +<translation id="5554403733534868102">אחרי עדכון זה, לא יהיה צורך להמתין לעדכונים יותר</translation> <translation id="5554489410841842733">סמל זה יוצג כאשר ההרחבה תוכל לפעול בדף הנוכחי.</translation> <translation id="5554720593229208774">רשות אישורי אימייל</translation> <translation id="5556459405103347317">ניסיון טעינה נוסף</translation> @@ -4134,6 +4154,7 @@ <translation id="6061882183774845124">שליחת הקישור אל המכשירים שלך</translation> <translation id="6064217302520318294">נעילת מסך</translation> <translation id="6065289257230303064">תכונות ספרייה של נושא אישור</translation> +<translation id="6069464830445383022">הכניסה ל-Chromebook תתבצע באמצעות חשבון Google</translation> <translation id="6069671174561668781">הגדר טפט</translation> <translation id="6071181508177083058">אשר סיסמה</translation> <translation id="6071576563962215370">המערכת לא הצליחה ליצור את נעילת המאפיינים של המכשיר בזמן ההתקנה.</translation> @@ -4176,6 +4197,7 @@ <translation id="6104311680260824317">אי אפשר לצרף את המכשיר הזה אל הדומיין. השרת לא תומך בסוגי הצפנת Kerberos שצוינו. יש לעיין ב"אפשרויות נוספות" כדי לקרוא על הגדרות ההצפנה.</translation> <translation id="6104796831253957966">תור המדפסת מלא</translation> <translation id="6105994589138235234">סנכרון דפדפן Chrome</translation> +<translation id="6108689792487843350">לא ניתן להגיע אל השער</translation> <translation id="6111972606040028426">הפעלת Google Assistant</translation> <translation id="6112294629795967147">שינוי גודל באמצעות נגיעה</translation> <translation id="6112727384379533756">הוספת כרטיס</translation> @@ -4236,6 +4258,7 @@ <translation id="6178664161104547336">בחר אישור</translation> <translation id="6181431612547969857">ההורדה נחסמה</translation> <translation id="6185132558746749656">מיקום מכשיר</translation> +<translation id="6191293864534840972">שרתי שמות שגויים</translation> <translation id="6195446518998936840">כדי להגדיר בקרת הורים, לילד/ה צריך להיות חשבון Google שמנוהל בעזרתך. אפשר להגדיר מגבלות לזמן מסך, לאשר או לחסום אתרים ועוד באמצעות אפליקציית Family Link.</translation> <translation id="6195693561221576702">אי אפשר להגדיר את המכשיר הזה במצב הדגמה לא מקוון.</translation> <translation id="6196640612572343990">חסום קובצי Cookie של צד שלישי</translation> @@ -4449,6 +4472,7 @@ <translation id="6451591602925140504">{NUM_PAGES,plural, =0{<ph name="PAGE_TITLE" />}=1{<ph name="PAGE_TITLE" /> וכרטיסייה נוספת אחת}two{<ph name="PAGE_TITLE" /> ו-# כרטיסיות נוספות}many{<ph name="PAGE_TITLE" /> ו-# כרטיסיות נוספות}other{<ph name="PAGE_TITLE" /> ו-# כרטיסיות נוספות}}</translation> <translation id="6451689256222386810">אם שכחת את ביטוי הסיסמה או אם ברצונך לשנות את ההגדרה הזו, <ph name="BEGIN_LINK" />אפס את הסנכרון<ph name="END_LINK" />.</translation> <translation id="6452181791372256707">דחה</translation> +<translation id="6452251728599530347"><ph name="PERCENT" /> הושלמו</translation> <translation id="6452961788130242735">בעיית רשת או תחום לא תקין</translation> <translation id="6455264371803474013">באתרים ספציפיים</translation> <translation id="6455894534188563617">&תיקייה חדשה</translation> @@ -4505,6 +4529,7 @@ <ph name="EVENT_NAME" /></translation> <translation id="6520876759015997832">תוצאת חיפוש <ph name="LIST_POSITION" /> מתוך <ph name="LIST_SIZE" />: <ph name="SEARCH_RESULT_TEXT" />. כדי לעבור לקטע הזה, יש להקיש על Enter.</translation> <translation id="652492607360843641">התחברת אל רשת <ph name="NETWORK_TYPE" />.</translation> +<translation id="6527081081771465939">פרוטוקול אבטחת Wi-Fi לא מזוהה</translation> <translation id="6527303717912515753">שיתוף</translation> <translation id="6528513914570774834">אפשר למשתמשים האחרים במכשיר הזה להשתמש ברשת הזו</translation> <translation id="652948702951888897">היסטוריה של Chrome</translation> @@ -4621,6 +4646,7 @@ <translation id="6680442031740878064">השטח הזמין: <ph name="AVAILABLE_SPACE" /></translation> <translation id="6680650203439190394">קצב</translation> <translation id="6681668084120808868">צלם תמונה</translation> +<translation id="6684827949542560880">המערכת מורידה את העדכון האחרון</translation> <translation id="668599234725812620">פתח את Google Play</translation> <translation id="6686490380836145850">סגור את הכרטיסיות משמאל</translation> <translation id="6686817083349815241">שמור את הסיסמה שלך</translation> @@ -4730,6 +4756,7 @@ <translation id="6812841287760418429">השאר שינויים</translation> <translation id="6817174620439930047">שאל כשאתר רוצה להשתמש בהודעות בלעדיות של המערכת כדי לגשת להתקני MIDI (מומלץ)</translation> <translation id="6818198425579322765">שפת הדף שיש לתרגם</translation> +<translation id="6818802132960437751">הגנה מובנית מפני וירוסים</translation> <translation id="682123305478866682">העברת שולחן העבודה</translation> <translation id="6823174134746916417">שימוש בנגיעה קלה בלוח המגע</translation> <translation id="6823506025919456619">עליך להיכנס ל-Chrome כדי לראות את המכשירים שלך</translation> @@ -5376,6 +5403,7 @@ <translation id="7631205654593498032">חיבור המכשירים מבטא את הסכמתך לכך שה-<ph name="DEVICE_TYPE" /> יוכל לבצע את הפעולות הבאות:</translation> <translation id="7631887513477658702">&פתח תמיד קבצים מסוג זה</translation> <translation id="7632948528260659758">עדכון יישומי הקיוסק הבאים נכשל:</translation> +<translation id="7633724038415831385">אחרי עדכון זה, כבר לא יהיה צורך להמתין לעדכונים. במכשירי Chromebook, עדכוני התוכנות מתבצעים ברקע.</translation> <translation id="7634566076839829401">משהו השתבש. נסה שוב.</translation> <translation id="763632859238619983">אין לאפשר לאף אתר להתקין מעבדי handler לתשלומים</translation> <translation id="7636919061354591437">התקנה במכשיר זה</translation> @@ -5653,6 +5681,7 @@ <translation id="7933314993013528982">{NUM_TABS,plural, =1{ביטול השתקת האתר}two{ביטול השתקת האתרים}many{ביטול השתקת האתרים}other{ביטול השתקת האתרים}}</translation> <translation id="7933634003144813719">ניהול תיקיות משותפות</translation> <translation id="793531125873261495">קרתה שגיאה בהורדת המכונה הווירטואלית. צריך לנסות שוב.</translation> +<translation id="7936303884198020182">לא נמצאו שרתי שמות</translation> <translation id="7938594894617528435">לא מקוונת כעת</translation> <translation id="7939062555109487992">אפשרויות מתקדמות</translation> <translation id="7939412583708276221">שמור בכל מקרה</translation> @@ -5898,6 +5927,7 @@ <translation id="8226742006292257240">סיסמת TPM שנוצרה באקראי והוקצתה למחשב שלך:</translation> <translation id="8227119283605456246">צירוף קובץ</translation> <translation id="8230134520748321204">האם לשמור את הסיסמה של <ph name="ORIGIN" />?</translation> +<translation id="8230672074305416752">לא ניתן היה לבצע פינג לשער הרשת המוגדרת כברירת מחדל</translation> <translation id="8234795456569844941">עזור למהנדסים שלנו לפתור את הבעיה הזו. ספר לנו מה קרה לפני שהוצגה לך הודעת השגיאה לגבי הפרופיל:</translation> <translation id="8236917170563564587">שיתוף הכרטיסייה הזו</translation> <translation id="8237647586961940482">ורוד כהה ואדום</translation> @@ -5958,6 +5988,7 @@ <translation id="8288032458496410887">הסרת <ph name="APP" />...</translation> <translation id="8289128870594824098">גודל כונן</translation> <translation id="8291967909914612644">המדינה של הספק הביתי</translation> +<translation id="8293206222192510085">הוסף סימניה</translation> <translation id="8294431847097064396">מקור</translation> <translation id="8297006494302853456">חלש</translation> <translation id="8299319456683969623">אינך מחובר לאינטרנט כרגע</translation> @@ -6007,6 +6038,7 @@ <translation id="8363095875018065315">יציב</translation> <translation id="8363142353806532503">לא ניתן להשתמש במיקרופון בדף זה</translation> <translation id="8363763184161554204">ההרשאה <ph name="PERMISSION" /> הוענקה</translation> +<translation id="8364946094152050673">שרתי שמות ריקים</translation> <translation id="8366396658833131068">קישוריות הרשת שלך התחדשה. בחר רשת אחרת או לחץ על הלחצן 'המשך' שלמטה כדי להפעיל את יישום הקיוסק.</translation> <translation id="8368027906805972958">מכשיר לא ידוע או שאינו נתמך (<ph name="DEVICE_ID" />)</translation> <translation id="8368859634510605990">&פתח את כל הסימניות</translation> @@ -6092,8 +6124,10 @@ <translation id="8472623782143987204">גיבוי חומרה</translation> <translation id="8473863474539038330">כתובות ועוד</translation> <translation id="8475313423285172237">תוכנה אחרת במחשב שלך הוסיפה תוסף שעשוי לשנות את אופן הפעולה של Chrome.</translation> +<translation id="8475690821716466388">רשת ה-Wi-Fi מאובטחת בפרוטוקול WEP 802.1x חלש</translation> <translation id="8477241577829954800">הוחלף</translation> <translation id="8477384620836102176">&כללי</translation> +<translation id="8477551185774834963">זמן האחזור של ה-DNS חורג מעט מהסף המותר</translation> <translation id="8480082892550707549">גם אם הורדת קבצים מהאתר הזה בעבר, ייתכן שהאתר עדיין לא בטוח (נפרץ) באופן זמני. נסה להוריד את הקובץ מאוחר יותר.</translation> <translation id="8480869669560681089">מכשיר לא מוכר של <ph name="VENDOR_NAME" /></translation> <translation id="8481187309597259238">אישור הרשאת גישה ל-USB</translation> @@ -6145,6 +6179,7 @@ <translation id="8546930481464505581">התאם אישית את סרגל המגע</translation> <translation id="8547013269961688403">הפעלת מגדיל למסך מלא</translation> <translation id="85486688517848470">החזק את מקש החיפוש כדי לשנות את ההתנהגות של מקשי השורה העליונה</translation> +<translation id="8549316893834449916">הכניסה אל Chromebook תתבצע באמצעות חשבון Google שלך – אותו חשבון שמשמש אותך ב-Gmail, ב-Drive, ב-YouTube ועוד.</translation> <translation id="8551388862522347954">רישיונות</translation> <translation id="8551588720239073785">הגדרות תאריך ושעה</translation> <translation id="8553342806078037065">נהל אנשים אחרים</translation> @@ -6283,6 +6318,7 @@ <translation id="8720200012906404956">המערכת מחפשת רשת סלולרית. <ph name="BEGIN_LINK" />מידע נוסף<ph name="END_LINK" /></translation> <translation id="8720816553731218127">תם הזמן הקצוב לאתחול של מאפייני זמן ההתקנה.</translation> <translation id="8722912030556880711">שליחה של נתוני אבחון ונתונים על השימוש. המכשיר הזה שולח עכשיו אל Google באופן אוטומטי נתוני אבחון ונתונים לגבי השימוש במכשיר ובאפליקציות. נתונים אלה יעזרו לשמור על יציבות המערכת והאפליקציות, כמו גם לביצוע שיפורים אחרים. חלק מהנתונים הנצברים יעזרו גם לאפליקציות ולשותפים של Google, כמו מפתחי Android. אם הופעלה האפשרות 'פעילות באתרי אינטרנט ובאפליקציות נוספים', ייתכן שהנתונים יישמרו בחשבון Google שלך. <ph name="BEGIN_LINK2" />מידע נוסף<ph name="END_LINK2" /></translation> +<translation id="8723108084122415655">הרשת שאינה מוגדרת כברירת מחדל חורגת מסף זמן האחזור</translation> <translation id="8724405322205516354">כשיוצג לך הסמל הזה, משמעות הדבר היא שאפשר להשתמש בטביעת אצבע לצורכי זיהוי או לאישור רכישה.</translation> <translation id="8724409975248965964">טביעת האצבע נקלטה</translation> <translation id="8724859055372736596">&הצג בתיקייה</translation> @@ -6460,6 +6496,7 @@ <translation id="8909833622202089127">האתר עוקב אחרי המיקום שלך</translation> <translation id="8910146161325739742">שיתוף המסך שלך</translation> <translation id="8910222113987937043">שינויים בסימניות, בהיסטוריה, בסיסמאות ובהגדרות אחרות לא יסונכרנו עוד עם חשבון Google שלך. עם זאת, הנתונים הקיימים עדיין יישארו בחשבון Google ותוכל לנהל אותם ב<ph name="BEGIN_LINK" />מרכז השליטה של Google<ph name="END_LINK" />.</translation> +<translation id="8910721771319628100">רשת ברירת המחדל חורגת מסף זמן האחזור</translation> <translation id="8912362522468806198">חשבון Google</translation> <translation id="8912793549644936705">מתח</translation> <translation id="8912810933860534797">הפעלת סריקה אוטומטית</translation>
diff --git a/chrome/app/resources/generated_resources_ja.xtb b/chrome/app/resources/generated_resources_ja.xtb index 626bafb..8ce249ec 100644 --- a/chrome/app/resources/generated_resources_ja.xtb +++ b/chrome/app/resources/generated_resources_ja.xtb
@@ -71,6 +71,7 @@ <translation id="1070705170564860382"><ph name="COUNTDOWN_SECONDS" /> 秒後に代替ブラウザで開きます</translation> <translation id="1071917609930274619">データの暗号化</translation> <translation id="1072700771426194907">USB デバイスが検出されました</translation> +<translation id="107278043869924952">パスワードに加えて PIN を使用する</translation> <translation id="1076176485976385390">テキスト カーソルを使ってページ間を移動する</translation> <translation id="1076698951459398590">テーマを有効にする</translation> <translation id="1076818208934827215">Microsoft Internet Explorer</translation> @@ -524,7 +525,6 @@ <translation id="1608668830839595724">選択した項目のその他の操作</translation> <translation id="161042844686301425">シアン</translation> <translation id="1611432201750675208">デバイスはロックされています</translation> -<translation id="1611584202130317952">プロビジョニング フローが中断されました。もう一度お試しになるか、デバイスの所有者または管理者にお問い合わせください。</translation> <translation id="1614511179807650956">モバイルデータの割り当て量をすべて使用している可能性があります。データを追加購入するには、<ph name="NAME" /> の有効化ポータルにアクセスしてください</translation> <translation id="161460670679785907">スマートフォンが見つかりません</translation> <translation id="1616206807336925449">この拡張機能は特別な権限を必要としません。</translation> @@ -533,6 +533,7 @@ <translation id="1618268899808219593">ヘルプセンター(&E)</translation> <translation id="1620307519959413822">パスワードが正しくありません。もう一度入力するか、[パスワードをお忘れの場合] をクリックしてパスワードをリセットしてください。</translation> <translation id="1620510694547887537">カメラ</translation> +<translation id="1621831347985899379"><ph name="DEVICE_TYPE" /> のデータが削除されます</translation> <translation id="1622054403950683339">Wi-Fi ネットワークの削除</translation> <translation id="1623132449929929218">現在画像を利用することができません。壁紙のコレクションを表示するには、インターネットに接続しなおしてください。</translation> <translation id="1623723619460186680">ブルーライトの軽減</translation> @@ -760,6 +761,7 @@ <translation id="1877377290348678128">ラベル(省略可)</translation> <translation id="1877520246462554164">認証トークンを取得できませんでした。いったんログアウトして再度ログインし、もう一度お試しください。</translation> <translation id="1877860345998737529">スイッチの操作割り当て</translation> +<translation id="1878155070920054810">アップデートが完了する前に Chromebook の電源が切れる可能性があります。処理が中断しないよう、電源に正しく接続されているか確認してください。</translation> <translation id="1879000426787380528">次のアカウントでログイン</translation> <translation id="1880905663253319515">証明書「<ph name="CERTIFICATE_NAME" />」を削除しますか?</translation> <translation id="1881445033931614352">キーボードのレイアウト</translation> @@ -964,6 +966,7 @@ <translation id="2148219725039824548">共有フォルダのマウントエラー。指定された共有フォルダがネットワークで見つかりませんでした。</translation> <translation id="2148756636027685713">フォーマットが完了しました</translation> <translation id="2148892889047469596">タブをキャスト</translation> +<translation id="2149973817440762519">ブックマークを編集</translation> <translation id="2150139952286079145">送信先の検索</translation> <translation id="2150661552845026580">「<ph name="EXTENSION_NAME" />」を追加しますか?</translation> <translation id="2151576029659734873">入力されたタブ インデックスが無効です。</translation> @@ -1073,6 +1076,7 @@ <translation id="2270627217422354837">ドメイン <ph name="DOMAINS" /> のデバイスとのデータ交換</translation> <translation id="2272570998639520080">マティーニ グラス</translation> <translation id="2273119997271134996">ドックのビデオポートに関する問題</translation> +<translation id="2274840746523584236">Chromebook を充電してください</translation> <translation id="2276503375879033601">アプリを追加</translation> <translation id="2277255602909579701">すべての Cookie とサイトデータ</translation> <translation id="2277769717710009150">{COUNT,plural, =1{1 個のアイテムがコピーされました}other{# 個のアイテムがコピーされました}}</translation> @@ -1915,6 +1919,7 @@ <translation id="3308116878371095290">このページの Cookie は設定されませんでした。</translation> <translation id="3308134619352333507">ボタンを非表示にする</translation> <translation id="3308852433423051161">Google アシスタントを読み込んでいます...</translation> +<translation id="3310640316857623290">DNS の応答時間が許容されるしきい値を大幅に超えています</translation> <translation id="3311445899360743395">このアプリに関連付けられているデータはこのデバイスから削除されます。</translation> <translation id="3312424061798279731">有効な言語</translation> <translation id="3313622045786997898">証明書の署名値</translation> @@ -1927,6 +1932,7 @@ <translation id="3323295311852517824">{NUM_FILES,plural, =0{このデータにはデリケートなコンテンツまたは危険なコンテンツが含まれています。このコンテンツを削除してから、もう一度お試しください。}=1{このファイルにはデリケートなコンテンツまたは危険なコンテンツが含まれています。このコンテンツを削除してから、もう一度お試しください。}other{これらのファイルにはデリケートなコンテンツまたは危険なコンテンツが含まれています。このコンテンツを削除してから、もう一度お試しください。}}</translation> <translation id="3323521181261657960">ボーナスタイムが加算されました</translation> <translation id="3325910708063135066">Mac のシステム環境設定でカメラとマイクがオフになっています</translation> +<translation id="3327050066667856415">Chromebook はセキュリティを重視して設計されています。デバイスはマルウェアから自動的に保護され、追加のソフトウェアは必要ありません。</translation> <translation id="3328489342742826322">バックアップから復元すると、Linux ファイル フォルダの既存の Linux アプリケーションとデータは削除されます。</translation> <translation id="3331321258768829690">(<ph name="UTCOFFSET" />)<ph name="LONGTZNAME" />(<ph name="EXEMPLARCITY" />)</translation> <translation id="3331974543021145906">アプリ情報</translation> @@ -2116,6 +2122,7 @@ <translation id="3556433843310711081">ブロックの解除は管理者が行うことができます</translation> <translation id="3557101512409028104">ファミリー リンクでウェブサイトの制限と利用時間の上限を設定します</translation> <translation id="3559262020195162408">ポリシーをデバイスにインストールできませんでした。</translation> +<translation id="3559533181353831840">残り時間: 約 <ph name="TIME_LEFT" /></translation> <translation id="3560034655160545939">スペルチェック(&S)</translation> <translation id="3562423906127931518">この処理には数分かかることがあります。Linux コンテナを設定します。</translation> <translation id="3563432852173030730">キオスク アプリケーションをダウンロードできませんでした。</translation> @@ -2158,6 +2165,7 @@ <translation id="3602290021589620013">プレビュー</translation> <translation id="3603622770190368340">ネットワーク証明書を取得</translation> <translation id="3604713164406837697">壁紙の変更</translation> +<translation id="360565022852130722">Wi-Fi ネットワークで安全性の低いプロトコル WEP 802.1x が使用されています</translation> <translation id="3605780360466892872">ボタンダウン</translation> <translation id="3608576286259426129">ユーザー画像のプレビュー</translation> <translation id="3610369246614755442">ドックのファンに問題があります</translation> @@ -2194,6 +2202,7 @@ <translation id="3639220004740062347">リーダーモードを終了</translation> <translation id="3640214691812501263"><ph name="USER_NAME" /> さんのアイテムとして「<ph name="EXTENSION_NAME" />」を追加しますか?</translation> <translation id="3640613767643722554">アシスタントに声を認識させましょう</translation> +<translation id="3643014427358482789"><ph name="DOMAIN" /> によって ADB デバッグが無効にされたため、<ph name="DEVICE_TYPE" /> はリセットされます。再起動する前にファイルをバックアップしてください。</translation> <translation id="3645372836428131288">指紋の別の部分を登録するため、指を少し移動してください。</translation> <translation id="3647998456578545569">{COUNT,plural, =1{<ph name="DEVICE_NAME" /> から <ph name="ATTACHMENTS" />を受け取りました}other{<ph name="DEVICE_NAME" /> から <ph name="ATTACHMENTS" />を受け取りました}}</translation> <translation id="3648348069317717750">「<ph name="USB_DEVICE_NAME" />」を検出しました</translation> @@ -2282,6 +2291,7 @@ <translation id="3732857534841813090">Google アシスタントの関連情報</translation> <translation id="3733127536501031542">International Step-UP 対応の SSL サーバー</translation> <translation id="3735740477244556633">並べ替え</translation> +<translation id="3738632186060045350"><ph name="DEVICE_TYPE" /> のデータは 24 時間後に削除されます</translation> <translation id="3738924763801731196"><ph name="OID" />:</translation> <translation id="3739254215541673094"><ph name="APPLICATION" /> を開きますか?</translation> <translation id="3742055079367172538">スクリーンショット撮影完了</translation> @@ -2469,6 +2479,7 @@ <translation id="3937734102568271121"><ph name="LANGUAGE" />を常に翻訳</translation> <translation id="3938128855950761626">ベンダー <ph name="VENDOR_ID" /> のデバイス</translation> <translation id="3940233957883229251">自動リピートを有効にする</translation> +<translation id="3941014780699102620">ホストを解決できませんでした</translation> <translation id="3941565636838060942">このプログラムへのアクセスを非表示にするには、コントロール パネルで <ph name="CONTROL_PANEL_APPLET_NAME" /> を使用してプログラムをアンインストールする必要があります。 @@ -2631,6 +2642,7 @@ <translation id="413121957363593859">コンポーネント</translation> <translation id="4131410914670010031">白黒</translation> <translation id="413193092008917129">ネットワーク診断ルーティン</translation> +<translation id="4132183752438206707">Google Play ストアからアプリをインストール</translation> <translation id="4133076602192971179">アプリを開いてパスワードを変更</translation> <translation id="4136203100490971508">夜間モードは日の出時刻に自動的にオフになります</translation> <translation id="41365691917097717">続行すると、ADB デバッグによる Android アプリの作成とテストが可能になります。この操作を行うと、Google が確認していない Android アプリのインストールが許可されます。無効にする場合は、出荷時の設定へのリセットが必要になります。</translation> @@ -2880,6 +2892,8 @@ <translation id="4479877282574735775">仮想マシンを設定しています。この処理には数分かかることがあります。</translation> <translation id="4480590691557335796">Chrome で、パソコン上の有害なソフトウェアを探して削除することができます</translation> <translation id="4481530544597605423">ペア設定されていないデバイス</translation> +<translation id="4483049906298469269">デフォルト以外のネットワーク ゲートウェイの ping に失敗しました</translation> +<translation id="4487489714832036847">Chromebook では従来のソフトウェアの代わりにアプリを使用します。仕事効率化やエンタメなど、豊富なアプリが揃っています。</translation> <translation id="4488502501195719518">データをすべて消去しますか?</translation> <translation id="4493468155686877504">推奨(<ph name="INSTALL_SIZE" />)</translation> <translation id="4495419450179050807">このページに表示しない</translation> @@ -2930,6 +2944,7 @@ <translation id="4546692474302123343">Google アシスタントの音声入力</translation> <translation id="4547659257713117923">他のデバイスからのタブはありません</translation> <translation id="4547672827276975204">自動的に設定する</translation> +<translation id="4548483925627140043">シグナルは検出されませんでした</translation> <translation id="4549791035683739768">セキュリティ キーにフィンガープリントは保存されていません</translation> <translation id="4551763574344810652">元に戻すには <ph name="MODIFIER_KEY_DESCRIPTION" /> を押します</translation> <translation id="4552089082226364758">Flash</translation> @@ -2969,6 +2984,7 @@ <translation id="4582563038311694664">すべての設定をリセット</translation> <translation id="4585793705637313973">ページの編集</translation> <translation id="4586275095964870617">「<ph name="URL" />」を代替ブラウザで開けませんでした。システム管理者にお問い合わせください。</translation> +<translation id="458794348635939462">すべてのホストを解決できませんでした</translation> <translation id="4589713469967853491">ダウンロード ディレクトリにログを書き込みました。</translation> <translation id="4590324241397107707">データベース ストレージ</translation> <translation id="4592891116925567110">タッチペンの描画アプリ</translation> @@ -3352,6 +3368,7 @@ <translation id="5089810972385038852">都道府県 / 州</translation> <translation id="5094721898978802975">連携するネイティブ アプリケーションと通信</translation> <translation id="5097002363526479830">ネットワーク「<ph name="NAME" />」に接続できませんでした: <ph name="DETAILS" /></translation> +<translation id="5097649414558628673">ツール: <ph name="PRINT_NAME" /></translation> <translation id="5097874180538493929">カーソルの停止時に自動的にクリックする</translation> <translation id="5101042277149003567">すべてのブックマークを開く</translation> <translation id="5101839224773798795">カーソルの停止時に自動的にクリックする</translation> @@ -3570,6 +3587,7 @@ <translation id="5370819323174483825">再読み込み(&R)</translation> <translation id="5372529912055771682">指定の登録モードは、このバージョンのオペレーティング システムではサポートされていません。最新バージョンであることを確認してから、もう一度お試しください。</translation> <translation id="5372579129492968947">拡張機能の固定を解除します</translation> +<translation id="5372659122375744710">Wi-Fi ネットワークは保護されていません</translation> <translation id="5376169624176189338">クリックすると前に戻ります。押したまま待つと履歴が表示されます。</translation> <translation id="5376931455988532197">ファイル サイズが大きすぎます</translation> <translation id="5377721922656071359">{COUNT,plural, =1{<ph name="DEVICE_NAME" /> に <ph name="ATTACHMENTS" />を送信しました}other{<ph name="DEVICE_NAME" /> に <ph name="ATTACHMENTS" />を送信しました}}</translation> @@ -3599,6 +3617,7 @@ <translation id="5414566801737831689">アクセスしたウェブサイトのアイコンの読み取り</translation> <translation id="5417312524372586921">ブラウザのテーマ</translation> <translation id="5419405654816502573">Voice Match</translation> +<translation id="5420274697768050645">セキュリティ強化のため、デバイスのロック解除にパスワードを要求する</translation> <translation id="5420438158931847627">テキストと画像をどの程度鮮明に表示するかを指定します</translation> <translation id="5422221874247253874">アクセス ポイント</translation> <translation id="5422781158178868512">外部ストレージ デバイスを認識できませんでした。</translation> @@ -3723,6 +3742,7 @@ <translation id="5548606607480005320">安全確認</translation> <translation id="5551573675707792127">キーボードとテキスト入力</translation> <translation id="5553089923092577885">証明書ポリシーのマッピング</translation> +<translation id="5554403733534868102">今後アップデートを待つ必要はありません</translation> <translation id="5554489410841842733">このアイコンは、ページで拡張機能が使用できる場合に表示されます。</translation> <translation id="5554720593229208774">メール認証局</translation> <translation id="5556459405103347317">再読み込み</translation> @@ -4136,6 +4156,7 @@ <translation id="6061882183774845124">リンクをデバイスに送信</translation> <translation id="6064217302520318294">画面ロック</translation> <translation id="6065289257230303064">証明書のサブジェクトのディレクトリ属性</translation> +<translation id="6069464830445383022">Google アカウントを使用して Chromebook にログイン</translation> <translation id="6069671174561668781">壁紙の設定</translation> <translation id="6071181508177083058">パスワードの確認入力</translation> <translation id="6071576563962215370">デバイスの installation-time 属性のロックを確立できませんでした。</translation> @@ -4178,6 +4199,7 @@ <translation id="6104311680260824317">デバイスをドメインに追加できません。指定した Kerberos 暗号化タイプがサーバーでサポートされていません。[その他のオプション] で暗号化の設定をご確認ください。</translation> <translation id="6104796831253957966">プリンタのキューに空きがありません</translation> <translation id="6105994589138235234">Chrome ブラウザの同期</translation> +<translation id="6108689792487843350">ゲートウェイにアクセスできません</translation> <translation id="6111972606040028426">Google アシスタントの有効化</translation> <translation id="6112294629795967147">タップしてサイズを変更</translation> <translation id="6112727384379533756">チケットを追加</translation> @@ -4238,6 +4260,7 @@ <translation id="6178664161104547336">証明書の選択</translation> <translation id="6181431612547969857">ダウンロードがブロックされました</translation> <translation id="6185132558746749656">デバイスの位置情報</translation> +<translation id="6191293864534840972">ネームサーバーの形式が正しくありません</translation> <translation id="6195446518998936840">保護者による使用制限を設定するには、管理対象となるお子様用の Google アカウントが必要です。ファミリー リンク アプリを使用すると、利用時間の制限、ウェブサイトの許可やブロックなどの管理が可能です。</translation> <translation id="6195693561221576702">このデバイスはオフライン デモモードで設定できません。</translation> <translation id="6196640612572343990">サードパーティの Cookie をブロックする</translation> @@ -4451,6 +4474,7 @@ <translation id="6451591602925140504">{NUM_PAGES,plural, =0{<ph name="PAGE_TITLE" />}=1{<ph name="PAGE_TITLE" />、他 1 個のタブ}other{<ph name="PAGE_TITLE" />、他 # 個のタブ}}</translation> <translation id="6451689256222386810">パスフレーズを忘れた場合や、この設定を変更する場合は、<ph name="BEGIN_LINK" />同期をリセット<ph name="END_LINK" />します。</translation> <translation id="6452181791372256707">拒否</translation> +<translation id="6452251728599530347"><ph name="PERCENT" />% 完了</translation> <translation id="6452961788130242735">ネットワークに問題があるか、レルムが正しくありません</translation> <translation id="6455264371803474013">特定のサイト</translation> <translation id="6455894534188563617">新しいフォルダ(&N)</translation> @@ -4507,6 +4531,7 @@ <ph name="EVENT_NAME" /></translation> <translation id="6520876759015997832"><ph name="SEARCH_RESULT_TEXT" /> の検索結果 <ph name="LIST_SIZE" /> 件中 <ph name="LIST_POSITION" /> 件目です。Enter キーを押すと、そのセクションに移動します。</translation> <translation id="652492607360843641"><ph name="NETWORK_TYPE" /> ネットワークに接続しています。</translation> +<translation id="6527081081771465939">Wi-Fi のセキュリティ プロトコルが不明です</translation> <translation id="6527303717912515753">共有</translation> <translation id="6528513914570774834">このデバイスの他のユーザーにこのネットワークの使用を許可する</translation> <translation id="652948702951888897">Chrome 履歴</translation> @@ -4623,6 +4648,7 @@ <translation id="6680442031740878064">空き容量: <ph name="AVAILABLE_SPACE" /></translation> <translation id="6680650203439190394">速度</translation> <translation id="6681668084120808868">写真を撮る</translation> +<translation id="6684827949542560880">最新のアップデートをダウンロードしています</translation> <translation id="668599234725812620">Google Play を開く</translation> <translation id="6686490380836145850">右側のタブを閉じる</translation> <translation id="6686817083349815241">パスワードを保存</translation> @@ -4732,6 +4758,7 @@ <translation id="6812841287760418429">変更を保持</translation> <translation id="6817174620439930047">サイトがシステム エクスクルーシブ メッセージを使用して MIDI デバイスにアクセスする際に確認する(推奨)</translation> <translation id="6818198425579322765">翻訳するページの言語</translation> +<translation id="6818802132960437751">組み込みのウィルス対策機能</translation> <translation id="682123305478866682">デスクトップをキャスト</translation> <translation id="6823174134746916417">タッチパッドのタップによるクリック</translation> <translation id="6823506025919456619">デバイスを見るには Chrome にログインする必要があります</translation> @@ -5378,6 +5405,7 @@ <translation id="7631205654593498032">デバイスを接続する場合、<ph name="DEVICE_TYPE" /> による次の操作を許可することになります。</translation> <translation id="7631887513477658702">この種類のファイルは常に開く(&A)</translation> <translation id="7632948528260659758">次のキオスクアプリを更新できませんでした:</translation> +<translation id="7633724038415831385">アップデートを待つのは今回限りです。Chromebook では、ソフトウェアのアップデートはバックグラウンドで行われます。</translation> <translation id="7634566076839829401">エラーが発生しました。もう一度お試しください。</translation> <translation id="763632859238619983">すべてのサイトに支払いハンドラのインストールを許可しない</translation> <translation id="7636919061354591437">このデバイスにインストール</translation> @@ -5656,6 +5684,7 @@ <translation id="7933314993013528982">{NUM_TABS,plural, =1{サイトのミュートを解除}other{サイトのミュートを解除}}</translation> <translation id="7933634003144813719">共有フォルダを管理する</translation> <translation id="793531125873261495">仮想マシンのダウンロード中にエラーが発生しました。もう一度お試しください。</translation> +<translation id="7936303884198020182">ネームサーバーが見つかりませんでした</translation> <translation id="7938594894617528435">現在オフライン</translation> <translation id="7939062555109487992">詳細オプション</translation> <translation id="7939412583708276221">続行する</translation> @@ -5899,6 +5928,7 @@ <translation id="8226742006292257240">ランダムに生成され、ご使用のパソコンに割り当てられた TPM パスワードは以下のとおりです:</translation> <translation id="8227119283605456246">添付ファイル</translation> <translation id="8230134520748321204"><ph name="ORIGIN" /> のパスワードを保存しますか?</translation> +<translation id="8230672074305416752">デフォルトのネットワーク ゲートウェイの ping に失敗しました</translation> <translation id="8234795456569844941">問題解決の手がかりとして、具体的にどのような操作を行ったときにプロフィール エラーのメッセージが表示されたかをお知らせください。</translation> <translation id="8236917170563564587">代わりにこのタブを共有</translation> <translation id="8237647586961940482">暗いピンクと赤</translation> @@ -5959,6 +5989,7 @@ <translation id="8288032458496410887">「<ph name="APP" />」をアンインストール...</translation> <translation id="8289128870594824098">ディスクサイズ</translation> <translation id="8291967909914612644">ホーム プロバイダの国</translation> +<translation id="8293206222192510085">ブックマークの追加</translation> <translation id="8294431847097064396">ソース</translation> <translation id="8297006494302853456">弱い</translation> <translation id="8299319456683969623">現在オフラインです。</translation> @@ -6008,6 +6039,7 @@ <translation id="8363095875018065315">Stable</translation> <translation id="8363142353806532503">マイクがブロックされています</translation> <translation id="8363763184161554204"><ph name="PERMISSION" />を許可</translation> +<translation id="8364946094152050673">ネームサーバーが空です</translation> <translation id="8366396658833131068">ネットワーク接続が復元されました。キオスク アプリを起動するには、別のネットワークを選択するか、下の [続行] ボタンを押してください。</translation> <translation id="8368027906805972958">不明またはサポートされていないデバイス(<ph name="DEVICE_ID" />)</translation> <translation id="8368859634510605990">すべてのブックマークを開く(&O)</translation> @@ -6093,8 +6125,10 @@ <translation id="8472623782143987204">ハードウェア式</translation> <translation id="8473863474539038330">住所やその他の情報</translation> <translation id="8475313423285172237">パソコン上の別のプログラムにより、Chrome の動作方法を変更する可能性のある拡張機能が追加されました。</translation> +<translation id="8475690821716466388">Wi-Fi ネットワークで安全性の低いプロトコル WEP PSK が使用されています</translation> <translation id="8477241577829954800">差し替えられた</translation> <translation id="8477384620836102176">全般(&G)</translation> +<translation id="8477551185774834963">DNS の応答時間が許容されるしきい値を少し超えています</translation> <translation id="8480082892550707549">以前ファイルをダウンロードしたサイトでも、一時的に安全でなくなっている(ハッキングされている)可能性があります。しばらくしてからファイルをダウンロードしてみてください。</translation> <translation id="8480869669560681089"><ph name="VENDOR_NAME" /> 製の不明なデバイス</translation> <translation id="8481187309597259238">USB のアクセス許可の確認</translation> @@ -6146,6 +6180,7 @@ <translation id="8546930481464505581">Touch Bar をカスタマイズ</translation> <translation id="8547013269961688403">全画面拡大鏡を有効にする</translation> <translation id="85486688517848470">キーボードの最上段にあるキーの動作を切り替えるには、検索キーを押したままにします</translation> +<translation id="8549316893834449916">Chromebook には Google アカウント(Gmail、ドライブ、YouTube などで使用しているのと同じアカウント)を使用してログインします。</translation> <translation id="8551388862522347954">ライセンス</translation> <translation id="8551588720239073785">日時の設定</translation> <translation id="8553342806078037065">他のユーザーを管理</translation> @@ -6284,6 +6319,7 @@ <translation id="8720200012906404956">モバイル ネットワークを検出しています。<ph name="BEGIN_LINK" />詳細<ph name="END_LINK" /></translation> <translation id="8720816553731218127">installation-time 属性の初期化がタイムアウトしました。</translation> <translation id="8722912030556880711">使用状況データや診断データを送信します。このデバイスは現在、診断データやデバイスとアプリの使用状況データを Google に自動送信するように設定されています。この情報は、システムとアプリの安定性の向上やその他の機能の改善に役立てられます。また、Google のアプリやパートナー(Android デベロッパーなど)も、集計データとしてこの情報を活用します。[その他のウェブとアプリのアクティビティ] の設定がオンになっている場合、このデータは Google アカウントに保存されます。<ph name="BEGIN_LINK2" />詳細<ph name="END_LINK2" /></translation> +<translation id="8723108084122415655">デフォルト以外のネットワークの応答時間がしきい値を超えています</translation> <translation id="8724405322205516354">このアイコンが表示されているときは、本人確認や購入の承認に指紋認証を使用します。</translation> <translation id="8724409975248965964">指紋の登録完了</translation> <translation id="8724859055372736596">フォルダを開く(&S)</translation> @@ -6461,6 +6497,7 @@ <translation id="8909833622202089127">サイトで現在地が追跡されています</translation> <translation id="8910146161325739742">画面を共有する</translation> <translation id="8910222113987937043">ブックマーク、履歴、パスワードなどの設定に行った変更は Google アカウントと同期されなくなります。ただし、既存のデータは Google アカウントに保存され、<ph name="BEGIN_LINK" />Google ダッシュボード<ph name="END_LINK" />で管理できます。</translation> +<translation id="8910721771319628100">デフォルトのネットワークの応答時間がしきい値を超えています</translation> <translation id="8912362522468806198">Google アカウントを使用</translation> <translation id="8912793549644936705">拡大</translation> <translation id="8912810933860534797">自動スキャンを有効にする</translation>
diff --git a/chrome/app/resources/generated_resources_ka.xtb b/chrome/app/resources/generated_resources_ka.xtb index 1518ff2..d3b7bef 100644 --- a/chrome/app/resources/generated_resources_ka.xtb +++ b/chrome/app/resources/generated_resources_ka.xtb
@@ -71,6 +71,7 @@ <translation id="1070705170564860382">ალტერნატიულ ბრაუზერში გაიხსნება <ph name="COUNTDOWN_SECONDS" /> წამში</translation> <translation id="1071917609930274619">მონაცემების დაშიფვრა</translation> <translation id="1072700771426194907">აღმოჩენილია USB-მოწყობილობა</translation> +<translation id="107278043869924952">გამოიყენეთ PIN-კოდი პაროლთან ერთად</translation> <translation id="1076176485976385390">გვერდებზე ნავიგაცია ტექსტური კურსორის მეშვეობით</translation> <translation id="1076698951459398590">თემის ჩართვა</translation> <translation id="1076818208934827215">Microsoft Internet Explorer</translation> @@ -524,7 +525,6 @@ <translation id="1608668830839595724">სხვა ქმედებები არჩეული ერთეულებისთვის</translation> <translation id="161042844686301425">ციანი</translation> <translation id="1611432201750675208">თქვენი მოწყობილობა ჩაკეტილია</translation> -<translation id="1611584202130317952">უზრუნველყოფის ნაკადი შეფერხდა. გთხოვთ, ცადოთ ხელახლა ან დაუკავშირდეთ მოწყობილობის მფლობელს/ადმინისტრატორს.</translation> <translation id="1614511179807650956">შესაძლოა უკვე ამოწურეთ თქვენთვის გამოყოფილი მობილური ინტერნეტი. ეწვიეთ <ph name="NAME" />-ის აქტივაციის პორტალს დამატებითი ტრაფიკის შესაძენად.</translation> <translation id="161460670679785907">თქვენი ტელეფონის ამოცნობა ვერ ხერხდება</translation> <translation id="1616206807336925449">ეს გაფართოება არ მოითხოვს სპეციალურ უფლებებს.</translation> @@ -533,6 +533,7 @@ <translation id="1618268899808219593">დახმარ&ების ცენტრი</translation> <translation id="1620307519959413822">პაროლი არასწორია. სცადეთ ხელახლა, ან შეხებით აირჩიეთ „პაროლი დამავიწყდა“ მის გადასაყენებლად.</translation> <translation id="1620510694547887537">კამერა</translation> +<translation id="1621831347985899379"><ph name="DEVICE_TYPE" />-ზე არსებული მონაცემები წაიშლება</translation> <translation id="1622054403950683339">Wi-Fi ქსელის დავიწყება</translation> <translation id="1623132449929929218">სურათები ამჟამად მიუწვდომელია. ფონების კოლექციების სანახავად საჭიროა ხელახლა დაკავშირება ინტერნეტთან.</translation> <translation id="1623723619460186680">ლურჯი შუქის შემცირება</translation> @@ -760,6 +761,7 @@ <translation id="1877377290348678128">ლეიბლი (არასავალდებულო)</translation> <translation id="1877520246462554164">ავტორიზაციის ჟეტონის მიღება ვერ მოხერხდა. ხელახლა საცდელად, გთხოვთ, გახვიდეთ და ხელახლა შეხვიდეთ სისტემაში.</translation> <translation id="1877860345998737529">გადამრთველებისთვის ქმედებების მინიჭება</translation> +<translation id="1878155070920054810">როგორც ჩანს, განახლების დასრულებამდე Chromebook-ის ბატარეა ამოიწურება. თავიდან ასაცილებლად დარწმუნდით, რომ ის სწორად იტენება.</translation> <translation id="1879000426787380528">შესვლა, როგორც</translation> <translation id="1880905663253319515">წავშალოთ სერთიფიკატი „<ph name="CERTIFICATE_NAME" />“?</translation> <translation id="1881445033931614352">კლავიატურის განლაგება</translation> @@ -964,6 +966,7 @@ <translation id="2148219725039824548">გაზიარების მიერთებისას მოხდა შეცდომა. მითითებული გაზიარება ქველში ვერ მოიძებნა.</translation> <translation id="2148756636027685713">ფორმატირება დასრულდა</translation> <translation id="2148892889047469596">ჩანართის ტრანსლირება</translation> +<translation id="2149973817440762519">სანიშნის რედაქტირება</translation> <translation id="2150139952286079145">დანიშნულებების ძიება</translation> <translation id="2150661552845026580">დავამატოთ „<ph name="EXTENSION_NAME" />“?</translation> <translation id="2151576029659734873">შეყვანილია ჩანართის არასწორი ინდექსი.</translation> @@ -1073,6 +1076,7 @@ <translation id="2270627217422354837">დომენებში: <ph name="DOMAINS" /> არსებულ ნებისმიერ მოწყობილობასთან მონაცემთა მიმოცვლა</translation> <translation id="2272570998639520080">მარტინის ჭიქა</translation> <translation id="2273119997271134996">სამაგრის ვიდეოპორტთან დაკავშირებული პრობლემა</translation> +<translation id="2274840746523584236">დატენეთ თქვენი Chromebook</translation> <translation id="2276503375879033601">მეტი აპის დამატება</translation> <translation id="2277255602909579701">ყველა ქუქი-ჩანაწერისა და საიტის მონაცემები</translation> <translation id="2277769717710009150">{COUNT,plural, =1{1 ერთეული დაკოპირდა}other{# ერთეული დაკოპირდა}}</translation> @@ -1914,6 +1918,7 @@ <translation id="3308116878371095290">ამ გვერდზე აიკრძალა ქუქი-ფაილების დაყენება.</translation> <translation id="3308134619352333507">დამალვის ღილაკი</translation> <translation id="3308852433423051161">იტვირთება Google ასისტენტი...</translation> +<translation id="3310640316857623290">DNS-ის რეაგირების დრო მნიშვნელოვნად აღემატება დასაშვებ ზღვარს</translation> <translation id="3311445899360743395">ამ მოწყობილობიდან შეიძლება ამოიშალოს ამ აპთან დაკავშირებული მონაცემები.</translation> <translation id="3312424061798279731">ჩართული ენები</translation> <translation id="3313622045786997898">სერტიფიკატის ხელმოწერის მნიშვენლობა</translation> @@ -1926,6 +1931,7 @@ <translation id="3323295311852517824">{NUM_FILES,plural, =0{ეს მონაცემები შეიცავს სენსიტიურ ან სახიფათო კონტენტს. ამოშალეთ აღნიშნული კონტენტი და სცადეთ ხელახლა.}=1{ეს ფაილი შეიცავს სენსიტიურ ან სახიფათო კონტენტს. ამოშალეთ აღნიშნული კონტენტი და სცადეთ ხელახლა.}other{ეს ფაილები შეიცავს სენსიტიურ ან სახიფათო კონტენტს. ამოშალეთ აღნიშნული კონტენტი და სცადეთ ხელახლა.}}</translation> <translation id="3323521181261657960">გილოცავთ! ეკრანთან მეტ დროს გაატარებთ</translation> <translation id="3325910708063135066">კამერა და მიკროფონი გამორთულია Mac-ის სისტემის პარამეტრებში</translation> +<translation id="3327050066667856415">Chromebook-ები უსაფრთხოების მოთხოვნების გათვალისწინებით არის შექმნილი. თქვენი მოწყობილობა ავტომატურად არის დაცული მავნე პროგრამებისგან. ამიტომაც დამატებითი პროგრამული უზრუნველყოფა საჭირო არ არის.</translation> <translation id="3328489342742826322">სარეზერვო ასლიდან აღდგენის შემთხვევაში თქვენი Linux ფაილებიანი საქაღალდეებიდან წაიშლება არსებული Linux აპლიკაციები და მონაცემები.</translation> <translation id="3331321258768829690">(<ph name="UTCOFFSET" />) <ph name="LONGTZNAME" /> (<ph name="EXEMPLARCITY" />)</translation> <translation id="3331974543021145906">პროგრამის ინფორმაცია</translation> @@ -2115,6 +2121,7 @@ <translation id="3556433843310711081">მისი განბლოკვა თქვენს მენეჯერს შეუძლია</translation> <translation id="3557101512409028104">ვებსაიტებთან და ეკრანთან გატარებულ დროსთან დაკავშირებული შეზღუდვების დაწესება Family Link-ის მეშვეობით</translation> <translation id="3559262020195162408">მოწყობილობაზე ვერ მოხერხდა წესების ინსტალაცია.</translation> +<translation id="3559533181353831840">დარჩენილია დაახლოებით <ph name="TIME_LEFT" /></translation> <translation id="3560034655160545939">&მართლწერის შემოწმება</translation> <translation id="3562423906127931518">მიმდინარეობს Linux კონტეინერის დაყენება, რასაც შეიძლება რამდენიმე წუთი დასჭირდეს.</translation> <translation id="3563432852173030730">კიოსკის პროგრამა ვერ ჩამოიტვირთა.</translation> @@ -2157,6 +2164,7 @@ <translation id="3602290021589620013">გადახედვა</translation> <translation id="3603622770190368340">მიიღეთ ქსელის სერთიფიკატი</translation> <translation id="3604713164406837697">ფონის შეცვლა</translation> +<translation id="360565022852130722">Wi-Fi ქსელი უზრუნველყოფილია სუსტი პროტოკოლით WEP 802.1x</translation> <translation id="3605780360466892872">ღილაკის დაჭერა</translation> <translation id="3608576286259426129">მომხმარებლის გამოსახულების გადახედვა</translation> <translation id="3610369246614755442">სამაგრის ვენტილატორი საჭიროებს ტექნიკურ მომსახურებას</translation> @@ -2193,6 +2201,7 @@ <translation id="3639220004740062347">წამკითხველის რეჟიმიდან გასვლა</translation> <translation id="3640214691812501263">გსურთ, დაამატოთ „<ph name="EXTENSION_NAME" />“ <ph name="USER_NAME" />-სთვის?</translation> <translation id="3640613767643722554">ასწავლეთ ასისტენტს თქვენი ხმის ამოცნობა</translation> +<translation id="3643014427358482789"><ph name="DOMAIN" /> აპირებს, გათიშოს ADB გამართვა, რაც გამოიწვევს <ph name="DEVICE_TYPE" />-ის გადაყენებას. გადატვირთვამდე შექმენით თქვენი ფაილების სარეზერვო ასლები.</translation> <translation id="3645372836428131288">გთხოვთ, ოდნავ გადააადგილოთ თითი თქვენი თითის ანაბეჭდის სხვა ნაწილის აღსაბეჭდად.</translation> <translation id="3647998456578545569">{COUNT,plural, =1{<ph name="ATTACHMENTS" /> მიღებულია <ph name="DEVICE_NAME" />-დან}other{<ph name="ATTACHMENTS" /> მიღებულია <ph name="DEVICE_NAME" />-დან}}</translation> <translation id="3648348069317717750"><ph name="USB_DEVICE_NAME" /> აღმოჩენილია</translation> @@ -2281,6 +2290,7 @@ <translation id="3732857534841813090">Google ასისტენტთან დაკავშირებული ინფორმაცია</translation> <translation id="3733127536501031542">SSL სერვერი დაყენებით</translation> <translation id="3735740477244556633">დალაგება</translation> +<translation id="3738632186060045350"><ph name="DEVICE_TYPE" />-ზე არსებული მონაცემები წაიშლება 24 საათში</translation> <translation id="3738924763801731196"><ph name="OID" />:</translation> <translation id="3739254215541673094">გსურთ, გახსნათ <ph name="APPLICATION" />?</translation> <translation id="3742055079367172538">ეკრანის ანაბეჭდი გადაღებულია</translation> @@ -2468,6 +2478,7 @@ <translation id="3937734102568271121">ყოველთვის ითარგმნოს <ph name="LANGUAGE" /></translation> <translation id="3938128855950761626">მომწოდებელი <ph name="VENDOR_ID" />-ის მოწყობილობები</translation> <translation id="3940233957883229251">ავტომატური გამეორების ჩართვა</translation> +<translation id="3941014780699102620">ჰოსტის გარდაქმნა ვერ მოხერხდა</translation> <translation id="3941565636838060942">იმისათვის, რომ დამალოთ წვდომა ამ ვებსაიტზე, უნდა მოახდინოთ მისი დეინსტალაცია <ph name="CONTROL_PANEL_APPLET_NAME" /> -ის გამოყენებით მართვის პანელზე. @@ -2630,6 +2641,7 @@ <translation id="413121957363593859">კომპონენტები</translation> <translation id="4131410914670010031">შავი და თეთრი</translation> <translation id="413193092008917129">ქსელის დიაგნოსტიკის რუტინები</translation> +<translation id="4132183752438206707">იპოვეთ აპები Google Play Store-ში</translation> <translation id="4133076602192971179">პაროლის შესაცვლელად გახსენით აპი</translation> <translation id="4136203100490971508">ღამის განათება ავტომატურად გამოირთვება მზის ამოსვლისას</translation> <translation id="41365691917097717">გაგრძელების შემთხვევაში Android აპების შექმნისა და ტესტირებისთვის ჩაირთვება ADB გამართვა. გაითვალისწინეთ, რომ აღნიშნულის შემდეგ შესაძლებელი იქნება Google-ის მიერ შეუმოწმებელი Android აპების ინსტალაცია, ხოლო მის გამოსართავად საჭირო იქნება ქარხნული პარამეტრების დაბრუნება.</translation> @@ -2879,6 +2891,8 @@ <translation id="4479877282574735775">მიმდინარეობს ვირტუალური მოწყობილობის კონფიგურაცია. ამას შეიძლება რამდენიმე წუთი დასჭირდეს.</translation> <translation id="4480590691557335796">Chrome-ს შეუძლია თქვენს კომპიუტერზე საზიანო პროგრამული უზრუნველყოფის პოვნა და ამოშლა</translation> <translation id="4481530544597605423">დაწყვილებაგაუქმებული მოწყობილობები</translation> +<translation id="4483049906298469269">არანაგულისხმევი ქსელის გეითვეისთან კავშირის შემოწმება ვერ მოხერხდა</translation> +<translation id="4487489714832036847">Chromebook-ები იყენებენ აპებს, ტრადიციული პროგრამული უზრუნველყოფის ნაცვლად. ჩამოტვირთეთ აპები პროდუქტიულობისთვის, გართობისთვის და ა.შ.</translation> <translation id="4488502501195719518">გასუფთავდეს ყველა მონაცემი?</translation> <translation id="4493468155686877504">რეკომენდებულია (<ph name="INSTALL_SIZE" />)</translation> <translation id="4495419450179050807">არ აჩვენო ამ გვერდზე</translation> @@ -2929,6 +2943,7 @@ <translation id="4546692474302123343">Google ასისტენტის ხმოვანი შეყვანა</translation> <translation id="4547659257713117923">ჩანართები სხვა მოწყობილობებიდან არ არის</translation> <translation id="4547672827276975204">ავტომატურად დაყენება</translation> +<translation id="4548483925627140043">სიგნალი ვერ მოიძებნა</translation> <translation id="4549791035683739768">თქვენს უსაფრთხოების გასაღებზე თითის ანაბეჭდები შენახული არ არის</translation> <translation id="4551763574344810652">მოქმედების გასაუქმებლად დაჭერით აირჩიეთ „<ph name="MODIFIER_KEY_DESCRIPTION" />“</translation> <translation id="4552089082226364758">Flash</translation> @@ -2968,6 +2983,7 @@ <translation id="4582563038311694664">ყველა პარამეტრის აღდგენა</translation> <translation id="4585793705637313973">გვერდის რედაქტირება</translation> <translation id="4586275095964870617"><ph name="URL" /> ვერ გაიხსნა ალტერნატიულ ბრაუზერში. გთხოვთ, დაუკავშირდეთ თქვენი სიტემის ადმინისტრატორს.</translation> +<translation id="458794348635939462">ჰოსტების გარდაქმნა ვერ მოხერხდა</translation> <translation id="4589713469967853491">ჟურნალები წარმატებით ჩაიწერა „ჩამოტვირთვების“ კატალოგში.</translation> <translation id="4590324241397107707">მონაცემთა ბაზის საცავი</translation> <translation id="4592891116925567110">სტილუსით სახატავი აპი</translation> @@ -3351,6 +3367,7 @@ <translation id="5089810972385038852">შტატი</translation> <translation id="5094721898978802975">მოთანამშრომლე ძირითად პროგრამებთან კომუნიკაცია</translation> <translation id="5097002363526479830">ქსელთან დაკავშირება ვერ მოხერხდა „<ph name="NAME" />“: <ph name="DETAILS" /></translation> +<translation id="5097649414558628673">ხელსაწყო: <ph name="PRINT_NAME" /></translation> <translation id="5097874180538493929">ავტომატურად დაწკაპუნება კურსორის გაჩერებისას</translation> <translation id="5101042277149003567">ყველა სანიშნის გახსნა</translation> <translation id="5101839224773798795">ავტომატური დაწკაპუნება კურსორის გაჩერებისას</translation> @@ -3569,6 +3586,7 @@ <translation id="5370819323174483825">&ხელახლა ჩატვირთვა</translation> <translation id="5372529912055771682">რეგისტრაციის წარმოდგენილი რეჟიმი არ არის მხარდაჭერილი ოპერაციული სისტემის ამ ვერსიაში. დარწმუნდით, რომ გაშვებულია უახლესი ვერსია და ხელახლა სცადეთ.</translation> <translation id="5372579129492968947">გაფართოების ჩამაგრების მოხსნა</translation> +<translation id="5372659122375744710">Wi-Fi ქსელი არ არის დაცული</translation> <translation id="5376169624176189338">დააწკაპუნეთ უკან დასაბრუნებლად, დააყოვნეთ ისტორიის სანახავად</translation> <translation id="5376931455988532197">ფაილი ძალიან დიდია</translation> <translation id="5377721922656071359">{COUNT,plural, =1{<ph name="ATTACHMENTS" /> წარმატებით გაიგზავნა <ph name="DEVICE_NAME" />-ზე}other{<ph name="ATTACHMENTS" /> წარმატებით გაიგზავნა <ph name="DEVICE_NAME" />-ზე}}</translation> @@ -3598,6 +3616,7 @@ <translation id="5414566801737831689">მონახულებული ვებგვერდების სიმბოლოების წაკითხვა</translation> <translation id="5417312524372586921">ბრაუზერის თემები</translation> <translation id="5419405654816502573">Voice Match</translation> +<translation id="5420274697768050645">დამატებითი უსაფრთხოებისთვის მოწყობილობის განსაბლოკად საჭიროა პაროლი</translation> <translation id="5420438158931847627">განსაზღვრავს ტექსტისა და სურათების სიმკვეთრეს</translation> <translation id="5422221874247253874">წვდომის წერტილი</translation> <translation id="5422781158178868512">სამწუხაროდ, თქვენი გარე მეხსიერების მოწყობილობის ამოცნობა ვერ მოხერხდა.</translation> @@ -3722,6 +3741,7 @@ <translation id="5548606607480005320">უსაფრთხოების შემოწმება</translation> <translation id="5551573675707792127">კლავიატურა და ტექსტის შეყვანა</translation> <translation id="5553089923092577885">სერტიფიკატის წესის შედარება</translation> +<translation id="5554403733534868102">ამის შემდეგ განახლების ლოდინი აღარ არის საჭირო</translation> <translation id="5554489410841842733">ეს ხატულა ხილვადი გახდება, როდესაც გაფართოება შეძლებს მოქმედებას მიმდინარე გვერდზე.</translation> <translation id="5554720593229208774">ელფოსტის სერთიფიცირების ცენტრი</translation> <translation id="5556459405103347317">ხელახლა ჩატვირთვა</translation> @@ -4135,6 +4155,7 @@ <translation id="6061882183774845124">ბმულის გაგზავნა თქვენს მოწყობილობებზე</translation> <translation id="6064217302520318294">ეკრანის დაბლოკვა</translation> <translation id="6065289257230303064">სერტიფიკატის სუბიექტის დირექტორიის ატრიბუტები</translation> +<translation id="6069464830445383022">შედით Chromebook-ში თქვენი Google ანგარიშით</translation> <translation id="6069671174561668781">ფონის დაყენება</translation> <translation id="6071181508177083058">დაადასტურეთ პაროლი</translation> <translation id="6071576563962215370">სისტემამ ვერ მოახერხა მოწყობილობის ატრიბუტების დაბლოკვა ინსტალაციის დროს.</translation> @@ -4177,6 +4198,7 @@ <translation id="6104311680260824317">მოწყობილობის დომენში გაწევრიანება ვერ მოხერხდა. Kerberos დაშიფვრის მითითებული ტიპები მხარდაუჭერელია სერვერის მიერ. დაშიფვრის პარამეტრების სანახავად იხილეთ „სხვა ვარიანტები“.</translation> <translation id="6104796831253957966">პრინტერის რიგი სავსეა</translation> <translation id="6105994589138235234">Chrome ბრაუზერის სინქრონიზაცია</translation> +<translation id="6108689792487843350">გეითვეი მიუწვდომელია</translation> <translation id="6111972606040028426">Google ასისტენტის ჩართვა</translation> <translation id="6112294629795967147">შეეხეთ ზომის შესაცვლელად</translation> <translation id="6112727384379533756">ბილეთის დამატება</translation> @@ -4237,6 +4259,7 @@ <translation id="6178664161104547336">აირჩიეთ სერტიფიკატი</translation> <translation id="6181431612547969857">ჩამოტვირთვა დაბლოკილია</translation> <translation id="6185132558746749656">მოწყობილობის მდებარეობა</translation> +<translation id="6191293864534840972">სახელების სერვერი არასწორად არის ფორმირებული</translation> <translation id="6195446518998936840">მშობელთა მიერ კონტროლის დასაყენებლად თქვენს შვილს უნდა ჰქონდეს Google ანგარიში, რომლის მართვაშიც დაეხმარებით. სურვილისამებრ, შეგიძლიათ შეზღუდოთ ეკრანთან გასატარებელი დრო, დაადასტუროთ/დაბლოკოთ ვებსაიტები და განსაზღვროთ სხვა პარამეტრები Family Link აპის მეშვეობით.</translation> <translation id="6195693561221576702">ამ მოწყობილობის ხაზგარეშე დემო-რეჟიმში დაყენება ვერ მოხერხდება.</translation> <translation id="6196640612572343990">მესამე მხარის ქუქი-ჩანაწერების დაბლოკვა</translation> @@ -4450,6 +4473,7 @@ <translation id="6451591602925140504">{NUM_PAGES,plural, =0{<ph name="PAGE_TITLE" />}=1{<ph name="PAGE_TITLE" /> და 1 სხვა ჩანართი}other{<ph name="PAGE_TITLE" /> და # სხვა ჩანართი}}</translation> <translation id="6451689256222386810">თუ დაგავიწყდათ თქვენი საიდუმლო ფრაზა, ან ამ პარამეტრის შეცვლა გსურთ, <ph name="BEGIN_LINK" />გადააყენეთ სინქრონიზაცია<ph name="END_LINK" />.</translation> <translation id="6452181791372256707">უარყოფა</translation> +<translation id="6452251728599530347">დასრულებულია <ph name="PERCENT" /></translation> <translation id="6452961788130242735">ქსელის შეცდომა ან არასწორი არე</translation> <translation id="6455264371803474013">კონკრეტულ საიტებზე</translation> <translation id="6455894534188563617">&ახალი საქაღალდე</translation> @@ -4506,6 +4530,7 @@ <ph name="EVENT_NAME" /></translation> <translation id="6520876759015997832">ძიების შედეგი <ph name="LIST_POSITION" /> / <ph name="LIST_SIZE" />-დან: <ph name="SEARCH_RESULT_TEXT" />. სექციაზე გადასასვლელად დააჭირეთ კლავიშს „Enter“.</translation> <translation id="652492607360843641">თქვენ დაკავშირებული ხართ <ph name="NETWORK_TYPE" /> ქსელთან.</translation> +<translation id="6527081081771465939">Wi-Fi-ს უცნობი უსაფრთხოების პროტოკოლი</translation> <translation id="6527303717912515753">გაზიარება</translation> <translation id="6528513914570774834">ამ მოწყობილობის სხვა მომხმარებლებისთვის ამ ქსელის გამოყენების დაშვება</translation> <translation id="652948702951888897">Chrome ისტორია</translation> @@ -4622,6 +4647,7 @@ <translation id="6680442031740878064">ხელმისაწვდომია: <ph name="AVAILABLE_SPACE" /></translation> <translation id="6680650203439190394">სიხშირე</translation> <translation id="6681668084120808868">ფოტოს გადაღება</translation> +<translation id="6684827949542560880">მიმდინარეობს ბოლო განახლების ჩამოტვირთვა</translation> <translation id="668599234725812620">Google Play-ს გახსნა</translation> <translation id="6686490380836145850">ჩანართების დახურვა მარჯვნივ</translation> <translation id="6686817083349815241">შეინახეთ თქვენი პაროლი</translation> @@ -4731,6 +4757,7 @@ <translation id="6812841287760418429">ცვლილებების შენახვა</translation> <translation id="6817174620439930047">შეკითხვა, როცა საიტს MIDI მოწყობილობებზე წვდომისთვის სისტემის ექსკლუზიური შეტყობინების გამოყენება სურს (რეკომენდებულია)</translation> <translation id="6818198425579322765">სათარგმნი გვერდის ენა</translation> +<translation id="6818802132960437751">ვირუსებისგან ჩაშენებული დაცვა</translation> <translation id="682123305478866682">დესკტოპის ტრანსლირება</translation> <translation id="6823174134746916417">სენსორული პანელზე შეხებით დაწკაპუნება</translation> <translation id="6823506025919456619">მოწყობილობების სანახავად უნდა შეხვიდეთ Chrome-ში</translation> @@ -5377,6 +5404,7 @@ <translation id="7631205654593498032">მოწყობილობების ერთმანეთთან დაკავშირებით თანახმა ხართ, რომ <ph name="DEVICE_TYPE" />-ს შეეძლება:</translation> <translation id="7631887513477658702">&ყოველთვის გახსენით ამ ტიპის ფაილები</translation> <translation id="7632948528260659758">ქვემოთ მოცემული კიოსკის პროგრამები ვერ განახლდა:</translation> +<translation id="7633724038415831385">მხოლოდ ამ დროს გიწევთ განახლების ლოდინი. Chromebook-ებზე პროგრამული უზრუნველყოფის განახლებები ფონურ რეჟიმში მიმდინარეობს.</translation> <translation id="7634566076839829401">რაღაც არასწორად წარიმართა. გთხოვთ სცადეთ განმეორებით.</translation> <translation id="763632859238619983">საიტებისთვის გადახდის დამმუშავებლების ინსტალაციის აკრძალვა</translation> <translation id="7636919061354591437">ინსტალაცია ამ მოწყობილობაზე</translation> @@ -5655,6 +5683,7 @@ <translation id="7933314993013528982">{NUM_TABS,plural, =1{საიტის დადუმების მოხსნა}other{საიტების დადუმების მოხსნა}}</translation> <translation id="7933634003144813719">გაზიარებული საქაღალდეების მართვა</translation> <translation id="793531125873261495">ვირტუალური მოწყობილობის ჩამოტვირთვა ვერ ხერხდება. გთხოვთ, ცადოთ ხელახლა.</translation> +<translation id="7936303884198020182">სახელების სერვერი ვერ მოიძებნა</translation> <translation id="7938594894617528435">ამჟამად ოფლაინშია</translation> <translation id="7939062555109487992">გაფართოებული ვარიანტები</translation> <translation id="7939412583708276221">მაინც შენახვა</translation> @@ -5896,6 +5925,7 @@ <translation id="8226742006292257240">ქვემოთ მოყვანილია შემთხვევითი წესით დაგენერირებული TPM პაროლი, რომელიც მიმაგრებულია თქვენს კომპიუტერზე:</translation> <translation id="8227119283605456246">ფაილის მიმაგრება</translation> <translation id="8230134520748321204">გსურთ, <ph name="ORIGIN" />-ის პაროლის შენახვა?</translation> +<translation id="8230672074305416752">ნაგულისხმევი ქსელის გეითვეისთან კავშირის შემოწმება ვერ მოხერხდა</translation> <translation id="8234795456569844941">დაეხმარეთ ჩვენს ინჟინრებს ამ პრობლემის მოგვარებაში. გვიამბეთ, რა უძღვოდა წინ პროფილთან დაკავშირებული შეცდომის გამოჩენას:</translation> <translation id="8236917170563564587">სანაცვლოდ, ამ ჩანართის გაზიარება</translation> <translation id="8237647586961940482">მუქი ვარდისფერი და წითელი</translation> @@ -5956,6 +5986,7 @@ <translation id="8288032458496410887"><ph name="APP" />-ის დეინსტალაცია...</translation> <translation id="8289128870594824098">დისკის ზომა</translation> <translation id="8291967909914612644">ადგილობრივი პროვაიდერის ქვეყანა</translation> +<translation id="8293206222192510085">სანიშნის დამატება</translation> <translation id="8294431847097064396">წყარო</translation> <translation id="8297006494302853456">სუსტი</translation> <translation id="8299319456683969623">თქვენ ამჟამად ოფლაინში ხართ.</translation> @@ -6005,6 +6036,7 @@ <translation id="8363095875018065315">სტაბილური</translation> <translation id="8363142353806532503">მიკროფონი დაბლოკილია</translation> <translation id="8363763184161554204"><ph name="PERMISSION" /> დაშვებულია</translation> +<translation id="8364946094152050673">სახელის ცარიელი სერვერები</translation> <translation id="8366396658833131068">თქვენი ქსელური კავშირი აღდგენილია. აირჩიეთ სხვა მისამართი ან დააჭირეთ ღილაკს „გაგრძელება“ ქვემოთ, კიოსკის პროგრამის გასაშვებად.</translation> <translation id="8368027906805972958">უცნობი ან მხარდაუჭერელი მოწყობილობა (<ph name="DEVICE_ID" />)</translation> <translation id="8368859634510605990">&და ყველა მონიშვნის გახსნა</translation> @@ -6090,8 +6122,10 @@ <translation id="8472623782143987204">აპარატურული რეზერვით</translation> <translation id="8473863474539038330">მისამართები და სხვა</translation> <translation id="8475313423285172237">სხვა პროგრამამ თქვენს კომპიუტერში დაამატა გაფართოება, რომელსაც შეუძლია შეცვალოს Chrome-ის მუშაობის ფორმა.</translation> +<translation id="8475690821716466388">Wi-Fi ქსელი უზრუნველყოფილია სუსტი პროტოკოლით WEP PSK</translation> <translation id="8477241577829954800">შეცვლილი</translation> <translation id="8477384620836102176">ძ&ირითადი</translation> +<translation id="8477551185774834963">DNS-ის რეაგირების დრო ოდნავ აღემატება დასაშვებ ზღვარს</translation> <translation id="8480082892550707549">იმ შემთხვევაშიც კი, თუ ამ საიტიდან ფაილები ადრე ჩამოგიტვირთავთ, ახლა ამის გაკეთება დროებით არაუსაფრთხოა (ჰაკერების შეტევის გამო). ცადეთ ამ ფაილის მოგვიანებით ჩამოტვირთვა.</translation> <translation id="8480869669560681089"><ph name="VENDOR_NAME" />-ის უცნობი მოწყობილობა</translation> <translation id="8481187309597259238">USB-ის ნებართვის დადასტურება</translation> @@ -6143,6 +6177,7 @@ <translation id="8546930481464505581">შეხების ზოლის მორგება</translation> <translation id="8547013269961688403">სრულეკრანიანი ლუპის ჩართვა</translation> <translation id="85486688517848470">ზედა მწკრივის ღილაკების რეჟიმის გადასართავად ხანგრძლივად დააჭირეთ ძიების კლავიშს</translation> +<translation id="8549316893834449916">Chromebook-ში შესასვლელად გამოიყენეთ თქვენი Google ანგარიში, რომლითაც Gmail-ისთვის, Drive-ისთვის, YouTube-ისა თუ სხვა პლატფორმებისთვის სარგებლობთ.</translation> <translation id="8551388862522347954">ლიცენზიები</translation> <translation id="8551588720239073785">თარიღისა და დროის პარამეტრები</translation> <translation id="8553342806078037065">სხვა ადამიანების მართვა</translation> @@ -6281,6 +6316,7 @@ <translation id="8720200012906404956">მიმდინარეობს მობილური ქსელის ძიება. <ph name="BEGIN_LINK" />შეიტყვეთ მეტი<ph name="END_LINK" /></translation> <translation id="8720816553731218127">ინსტალაციისას ატრიბუტების ინიცირების დრო ამოიწურა.</translation> <translation id="8722912030556880711">გამოყენებისა და დიაგნოსტიკის მონაცემების გაგზავნა. ეს მოწყობილობა ამჟამად ავტომატურად უგზავნის Google-ს დიაგნოსტიკისა და მოწყობილობის/აპების გამოყენების მონაცემებს. აღნიშნული მონაცემები დაგვეხმარება სისტემის/აპების სტაბილურობისა და სხვა ფუნქციების გაუმჯობესებაში. გარდა ამისა, გაერთიანებული მონაცემების ნაწილი ხელს შეუწყობს Google აპებსა და პარტნიორებს, მაგალითად, Android-ის დეველოპერებს. თუ ჩართული გაქვთ ვებსა და აპებში დამატებითი აქტივობის პარამეტრი, აღნიშნული მონაცემები შესაძლოა შეინახოს თქვენს Google ანგარიშში. <ph name="BEGIN_LINK2" />შეიტყვეთ მეტი<ph name="END_LINK2" /></translation> +<translation id="8723108084122415655">არანაგულისხმევი ქსელი აღემატება რეაგირების დროის ზღვარს</translation> <translation id="8724405322205516354">თუ ამ ხატულას დაინახავთ, ეს ნიშნავს, რომ ვინაობის თუ შენაძენების დადასტურება შეგიძლიათ თითის ანაბეჭდის მეშვეობით.</translation> <translation id="8724409975248965964">თითის ანაბეჭდი დამატებულია</translation> <translation id="8724859055372736596">საქაღალდეში ჩ&ვენება</translation> @@ -6458,6 +6494,7 @@ <translation id="8909833622202089127">საიტი თვალს ადევნებს თქვენს მდებარეობას</translation> <translation id="8910146161325739742">გააზიარეთ თქვენი ეკრანი</translation> <translation id="8910222113987937043">თქვენი სანიშნეების, ისტორიის, პაროლებისა და სხვა პარამეტრების ცვლილებების სინქრონიზაცია თქვენს Google ანგარიშთან აღარ მოხდება. თუმცა არსებული მონაცემები კვლავ შეინახება თქვენს Google ანგარიშში და მათ მართვას <ph name="BEGIN_LINK" />Google Dashboard<ph name="END_LINK" />-იდან შეძლებთ.</translation> +<translation id="8910721771319628100">ნაგულისხმევი ქსელი აღემატება რეაგირების დროის ზღვარს</translation> <translation id="8912362522468806198">Google ანგარიში</translation> <translation id="8912793549644936705">გაწელვა</translation> <translation id="8912810933860534797">ავტომატური სკანირების ჩართვა</translation>
diff --git a/chrome/app/resources/generated_resources_kk.xtb b/chrome/app/resources/generated_resources_kk.xtb index 3b6142ea..97a4533 100644 --- a/chrome/app/resources/generated_resources_kk.xtb +++ b/chrome/app/resources/generated_resources_kk.xtb
@@ -71,6 +71,7 @@ <translation id="1070705170564860382">Балама браузер <ph name="COUNTDOWN_SECONDS" /> секундтан соң ашылады.</translation> <translation id="1071917609930274619">Деректерді шифрлау</translation> <translation id="1072700771426194907">USB құрылғысы анықталды</translation> +<translation id="107278043869924952">Құпия сөзге қоса, PIN кодын да пайдаланыңыз.</translation> <translation id="1076176485976385390">Бір беттен екінші бетке мәтін курсоры арқылы өту</translation> <translation id="1076698951459398590">Тақырыпты қосу</translation> <translation id="1076818208934827215">Microsoft Internet Explorer</translation> @@ -521,7 +522,6 @@ <translation id="1608668830839595724">Таңдалған бетбелгілерге арналған басқа әрекеттер</translation> <translation id="161042844686301425">Көгілдір</translation> <translation id="1611432201750675208">Құрылғыңыз құлыпталған</translation> -<translation id="1611584202130317952">Тексеру аяқталды. Әрекеттті қайталаңыз немесе құрылғы иесіне не әкімшіге хабарласыңыз.</translation> <translation id="1614511179807650956">Мобильдік деректер лимиті аяқталған болуы мүмкін. Қосымша деректер сатып алу үшін <ph name="NAME" /> іске қосу порталына кіріңіз.</translation> <translation id="161460670679785907">Телефоныңызды анықтау мүмкін емес</translation> <translation id="1616206807336925449">Бұл кеңейтім арнайы рұқсаттарды қажет етпейді.</translation> @@ -530,6 +530,7 @@ <translation id="1618268899808219593">А&нықтама орталығы</translation> <translation id="1620307519959413822">Құпия сөз дұрыс емес. Қайта енгізіп көріңіз немесе оны қайта орнату үшін "Құпия сөзді ұмытып қалдыңыз ба?" түймесін басыңыз.</translation> <translation id="1620510694547887537">Камера</translation> +<translation id="1621831347985899379"><ph name="DEVICE_TYPE" /> деректері жойылады</translation> <translation id="1622054403950683339">Wi-Fi желісін жою</translation> <translation id="1623132449929929218">Суреттер әзірге қолжетімді емес. Тұсқағаз жинақтарын көру үшін интернетке қайта қосылыңыз.</translation> <translation id="1623723619460186680">Көк жарықты азайту</translation> @@ -757,6 +758,7 @@ <translation id="1877377290348678128">Белгі (міндетті емес)</translation> <translation id="1877520246462554164">Аутентификациялау таңбалауышы алынбады. Жүйеден шығыңыз, әрекетті қайталау үшін қайтадан кіріңіз.</translation> <translation id="1877860345998737529">Әрекет тағайындауын қосу</translation> +<translation id="1878155070920054810">Жаңарту аяқталып үлгермей, Chromebook құрылғысының батареясы таусылып қалған сияқты. Үзіліс болмауы үшін, оны дұрыс зарядтау қажет.</translation> <translation id="1879000426787380528">Келесі есептік жазбаға кіру:</translation> <translation id="1880905663253319515">"<ph name="CERTIFICATE_NAME" />" сертификатын жою керек пе?</translation> <translation id="1881445033931614352">Пернетақта форматы</translation> @@ -961,6 +963,7 @@ <translation id="2148219725039824548">Ортақ файлды бөлісу кезінде қате шықты. Көрсетілген ортақ файл желіден табылмады.</translation> <translation id="2148756636027685713">Пішімдеу аяқталды</translation> <translation id="2148892889047469596">Қойынды трансляциясы</translation> +<translation id="2149973817440762519">Бетбелгіні өзгерту</translation> <translation id="2150139952286079145">Іздеу мақсаттары</translation> <translation id="2150661552845026580">"<ph name="EXTENSION_NAME" />" қосасыз ба?</translation> <translation id="2151576029659734873">Жарамсыз қойынды индексі енгізілді.</translation> @@ -1070,6 +1073,7 @@ <translation id="2270627217422354837">Келесі домендердегі кез келген құрылғымен деректер алмасу: <ph name="DOMAINS" /></translation> <translation id="2272570998639520080">Мартини ыдысы</translation> <translation id="2273119997271134996">Қондыру станциясының бейне ұяшығында ақау бар</translation> +<translation id="2274840746523584236">Chromebook құрылғыңызды зарядтаңыз</translation> <translation id="2276503375879033601">Басқа қолданбалар қосу</translation> <translation id="2277255602909579701">Барлық cookie файлдары және сайт деректері</translation> <translation id="2277769717710009150">{COUNT,plural, =1{1 элемент көшірілді}other{# элемент көшірілді}}</translation> @@ -1912,6 +1916,7 @@ <translation id="3308116878371095290">Бұл бетке cookie файлдарын орнатуға тыйым салынды.</translation> <translation id="3308134619352333507">Түймені жасыру</translation> <translation id="3308852433423051161">Google Assistant жүктелуде…</translation> +<translation id="3310640316857623290">DNS кідірісі рұқсат етілетін шектен әлдеқайда жоғары.</translation> <translation id="3311445899360743395">Бұл қолданбамен байланыстырылған деректер бұл құрылғыдан өшірілуі мүмкін.</translation> <translation id="3312424061798279731">Қосылған тілдер</translation> <translation id="3313622045786997898">Сертификат қолтаңбасы мәні</translation> @@ -1924,6 +1929,7 @@ <translation id="3323295311852517824">{NUM_FILES,plural, =0{Бұл деректерде құпия не қауіпті мазмұн бар. Мазмұнды өшіріп, әрекетті қайталаңыз.}=1{Бұл файлда құпия не қауіпті мазмұн бар. Мазмұнды өшіріп, әрекетті қайталаңыз.}other{Бұл файлдарда құпия не қауіпті мазмұн бар. Мазмұнды өшіріп, әрекетті қайталаңыз.}}</translation> <translation id="3323521181261657960">Бонус! Пайдалану уақыты ұзартылды</translation> <translation id="3325910708063135066">Камера мен микрофон Mac жүйесінің параметрлерінде өшірілген.</translation> +<translation id="3327050066667856415">Chromebook құрылғылары қауіптерге төтеп бере алатын етіп жасалады. Құрылғы зиянды бағдарламадан автоматты түрде қорғалады, ешқандай қосымша бағдарламалық құрал қажет емес.</translation> <translation id="3328489342742826322">Сақтық көшірмеден қалпына келтірсеңіз, Linux қолданбалары және Linux файлдары орналасқан қалтадағы деректер жойылады.</translation> <translation id="3331321258768829690">(<ph name="UTCOFFSET" />) <ph name="LONGTZNAME" /> (<ph name="EXEMPLARCITY" />)</translation> <translation id="3331974543021145906">Қолданба ақпараты</translation> @@ -2113,6 +2119,7 @@ <translation id="3556433843310711081">Менеджеріңіз оны сіз үшін бөгеуден шығара алады</translation> <translation id="3557101512409028104">Family Link қолданбасы арқылы веб-сайт шектеулерін және пайдалану уақытына қойылатын шектеулерді орнатыңыз.</translation> <translation id="3559262020195162408">Саясат құрылғыға орнатылмады.</translation> +<translation id="3559533181353831840">Шамамен <ph name="TIME_LEFT" /> қалды.</translation> <translation id="3560034655160545939">&Емлені тексеру</translation> <translation id="3562423906127931518">Бұл процесс бірнеше минутқа созылуы мүмкін. Linux контейнері реттелуде.</translation> <translation id="3563432852173030730">Киоск қолданбасын жүктеу мүмкін емес.</translation> @@ -2155,6 +2162,7 @@ <translation id="3602290021589620013">Алдын ала қарау</translation> <translation id="3603622770190368340">Желі сертификатын алу</translation> <translation id="3604713164406837697">Тұсқағазды өзгерту</translation> +<translation id="360565022852130722">WiFi желісі WEP 802.1x әлсіз протоколымен қорғалған.</translation> <translation id="3605780360466892872">Бизнесмен</translation> <translation id="3608576286259426129">Пайдаланушы кескінін алдын ала көру</translation> <translation id="3610369246614755442">Қондыру станциясының желдеткішін жөндеу керек</translation> @@ -2191,6 +2199,7 @@ <translation id="3639220004740062347">Оқу құралы режимінен шығу</translation> <translation id="3640214691812501263"><ph name="USER_NAME" /> үшін "<ph name="EXTENSION_NAME" />" қосу қажет пе?</translation> <translation id="3640613767643722554">Assistant қолданбасын дауысыңызды тануға үйретіңіз</translation> +<translation id="3643014427358482789"><ph name="DOMAIN" /> сайты <ph name="DEVICE_TYPE" /> құрылғысын бастапқы күйіне қайтаратын ADB түзетуін өшіруде. Қайта қоспас бұрын, файлдардың сақтық көшірмесін жасаңыз.</translation> <translation id="3645372836428131288">Саусақ ізінің басқа бөлігін түсіру үшін саусағыңызды сәл жылжытыңыз.</translation> <translation id="3647998456578545569">{COUNT,plural, =1{<ph name="DEVICE_NAME" /> құрылғысынан <ph name="ATTACHMENTS" /> алынды.}other{<ph name="DEVICE_NAME" /> құрылғысынан <ph name="ATTACHMENTS" /> алынды.}}</translation> <translation id="3648348069317717750"><ph name="USB_DEVICE_NAME" /> анықталды</translation> @@ -2279,6 +2288,7 @@ <translation id="3732857534841813090">Google Assistant кеңестері</translation> <translation id="3733127536501031542">Қадамдап артатын SSL сервері</translation> <translation id="3735740477244556633">Сұрыптау шарты</translation> +<translation id="3738632186060045350"><ph name="DEVICE_TYPE" /> деректері 24 сағаттан кейін жойылады.</translation> <translation id="3738924763801731196"><ph name="OID" />:</translation> <translation id="3739254215541673094"><ph name="APPLICATION" /> ашу керек пе?</translation> <translation id="3742055079367172538">Скриншот түсірілді</translation> @@ -2466,6 +2476,7 @@ <translation id="3937734102568271121">Әрқашан <ph name="LANGUAGE" /> тіліне аудару</translation> <translation id="3938128855950761626">Жеткізушінің (<ph name="VENDOR_ID" />) құрылғылары</translation> <translation id="3940233957883229251">Автоматты қайталауды іске қосу</translation> +<translation id="3941014780699102620">Хост атауы түрлендірілмеді.</translation> <translation id="3941565636838060942">Бұл бағдарламаға кіру құқығын жасыру үшін оны Басқару панеліндегі <ph name="CONTROL_PANEL_APPLET_NAME" /> пайдалану арқылы жою керек. @@ -2628,6 +2639,7 @@ <translation id="413121957363593859">Компоненттер</translation> <translation id="4131410914670010031">Қара мен ақ</translation> <translation id="413193092008917129">Желіні диагностикалау әрекеттері</translation> +<translation id="4132183752438206707">Google Play Store дүкенінен қолданбаларды табыңыз</translation> <translation id="4133076602192971179">Құпия сөзіңізді өзгерту үшін қолданбаны ашу</translation> <translation id="4136203100490971508">Күн шыққанда, түнгі шам автоматты түрде өшеді</translation> <translation id="41365691917097717">Жалғастырсаңыз, ADB түзетуі іске қосылып, Android қолданбалары жасалады және тексеріледі. Бұл — Google растамаған Android қолданбаларының орнатылуына мүмкіндік беретінін ескеріңіз. Құралды өшіру үшін зауыттық параметрлерге қайтару қажет болады.</translation> @@ -2877,6 +2889,8 @@ <translation id="4479877282574735775">Виртуалдық құрылғы конфигурацияланып жатыр. Бұл бірнеше минут алуы мүмкін.</translation> <translation id="4480590691557335796">Chrome браузері компьютердегі зиянды бағдарламалық құралды тауып, оны өшіре алады.</translation> <translation id="4481530544597605423">Жұпталмаған құрылғылар</translation> +<translation id="4483049906298469269">Әдепкі емес желі шлюзінің байланысы тексерілмеді.</translation> +<translation id="4487489714832036847">Chromebook құрылғылары дәстүрлі бағдарламалық құрал орнына қолданбаларды пайдаланады. Жұмыс өнімділігі, ойын-сауық, т.б. үшін арналған қолданбалар алыңыз.</translation> <translation id="4488502501195719518">Барлық деректер өшірілсін бе?</translation> <translation id="4493468155686877504">Ұсынылған (<ph name="INSTALL_SIZE" />)</translation> <translation id="4495419450179050807">Бұл бетте көрсетпеу</translation> @@ -2927,6 +2941,7 @@ <translation id="4546692474302123343">Google Assistant қолданбасында дауыспен енгізу</translation> <translation id="4547659257713117923">Басқа құрылғыларда қойындылар жоқ</translation> <translation id="4547672827276975204">Автоматты орнату</translation> +<translation id="4548483925627140043">Сигнал жоқ.</translation> <translation id="4549791035683739768">Қауіпсіздік кілтіңізде саусақ іздері сақталмаған.</translation> <translation id="4551763574344810652">Қайтару үшін <ph name="MODIFIER_KEY_DESCRIPTION" /> пернелерін басыңыз.</translation> <translation id="4552089082226364758">Flash</translation> @@ -2966,6 +2981,7 @@ <translation id="4582563038311694664">Барлық параметрлерді қалпына келтіру</translation> <translation id="4585793705637313973">Бет мәліметтерін өзгерту</translation> <translation id="4586275095964870617"><ph name="URL" /> сілтемесін балама браузерде ашу мүмкін болмады. Жүйе әкімшісіне хабарласыңыз.</translation> +<translation id="458794348635939462">Барлық хостарды сәйкестендіру мүмкін болмады.</translation> <translation id="4589713469967853491">Журналдар "Жүктеп алынғандар" каталогіне жазылды.</translation> <translation id="4590324241397107707">Дерекқор жады</translation> <translation id="4592891116925567110">Стилуспен сурет салу қолданбасы</translation> @@ -3349,6 +3365,7 @@ <translation id="5089810972385038852">Штат</translation> <translation id="5094721898978802975">Жергілікті қолданбалармен жұмыс істеу арқылы байланысу</translation> <translation id="5097002363526479830">Желіге қосылу сәтсіз аяқталды: «<ph name="NAME" />»: <ph name="DETAILS" /></translation> +<translation id="5097649414558628673">Құрал: <ph name="PRINT_NAME" /></translation> <translation id="5097874180538493929">Көрсеткі тоқтаған кезде, тінтуірдің түймесін автоматты түрде басу</translation> <translation id="5101042277149003567">Барлық бетбелгілерді ашу</translation> <translation id="5101839224773798795">Курсор тоқтағанда автоматты түрде басу</translation> @@ -3567,6 +3584,7 @@ <translation id="5370819323174483825">&Қайта жүктеу</translation> <translation id="5372529912055771682">Берілген тіркеу режимін бұл операциялық жүйе нұсқасы қолдамайды. Ең жаңа нұсқаны пайдаланып жатқаныңызды тексеріп, әрекетті қайталап көріңіз.</translation> <translation id="5372579129492968947">Кеңейтімді босату</translation> +<translation id="5372659122375744710">Wi-Fi желісі қауіпсіз емес.</translation> <translation id="5376169624176189338">Артқа қайту үшін басыңыз, журнал көру үшін басып ұстап тұрыңыз</translation> <translation id="5376931455988532197">Файл тым үлкен</translation> <translation id="5377721922656071359">{COUNT,plural, =1{<ph name="DEVICE_NAME" /> құрылғысына <ph name="ATTACHMENTS" /> жіберілді.}other{<ph name="DEVICE_NAME" /> құрылғысына <ph name="ATTACHMENTS" /> жіберілді.}}</translation> @@ -3596,6 +3614,7 @@ <translation id="5414566801737831689">Сіз кірген веб-сайттардың белгішелерін оқу</translation> <translation id="5417312524372586921">Браузер тақырыптары</translation> <translation id="5419405654816502573">Voice Match</translation> +<translation id="5420274697768050645">Қосымша қауіпсіздік үшін құрылғының құлпын ашатын құпия сөзді сұрау</translation> <translation id="5420438158931847627">Мәтін мен суреттердің анықтығын белгілейді</translation> <translation id="5422221874247253874">Кіру нүктесі</translation> <translation id="5422781158178868512">Өкінішке орай, сыртқы жад құрылғыңызды анықтау мүмкін емес.</translation> @@ -3720,6 +3739,7 @@ <translation id="5548606607480005320">Қауіпсіздік шарасы</translation> <translation id="5551573675707792127">Пернетақта және мәтін енгізу</translation> <translation id="5553089923092577885">Сертификат саясатының салыстырулары</translation> +<translation id="5554403733534868102">Осыдан кейін жаңартылған нұсқаларды күтпейтін боласыз</translation> <translation id="5554489410841842733">Бұл белгіше кеңейтім ағымдағы бетте әрекет ететін кезде көрінеді.</translation> <translation id="5554720593229208774">Электрондық пошта сертификаттау орталығы</translation> <translation id="5556459405103347317">Қайта жүктеу</translation> @@ -4133,6 +4153,7 @@ <translation id="6061882183774845124">Құрылғыларға сілтеме жіберу</translation> <translation id="6064217302520318294">Экран құлпы</translation> <translation id="6065289257230303064">Сертификат тақырыбының каталог төлсипаттары</translation> +<translation id="6069464830445383022">Google есептік жазбасымен Chromebook құрылғысына кіріңіз</translation> <translation id="6069671174561668781">Тұсқағаз орнату</translation> <translation id="6071181508177083058">құпия сөзді растау</translation> <translation id="6071576563962215370">Жүйе құрылғыны орнату уақытының атрибуттарын құлыптай алмады.</translation> @@ -4175,6 +4196,7 @@ <translation id="6104311680260824317">Құрылғыны доменге қосу мүмкін емес. Сервер көрсетілген Kerberos шифрлау түрлеріне қолдау көрсетпейді. Шифрлау параметрлерін "Қосымша опциялар" тармағынан қараңыз.</translation> <translation id="6104796831253957966">Принтер кезегі толы.</translation> <translation id="6105994589138235234">Chrome браузерін синхрондау</translation> +<translation id="6108689792487843350">Шлюзбен байланыс орнату мүмкін емес.</translation> <translation id="6111972606040028426">Google Assistant қолданбасын қосу</translation> <translation id="6112294629795967147">Өлшемін өзгерту үшін түртіңіз</translation> <translation id="6112727384379533756">Билет қосу</translation> @@ -4235,6 +4257,7 @@ <translation id="6178664161104547336">Сертификат таңдау</translation> <translation id="6181431612547969857">Жүктеуге тыйым салынған</translation> <translation id="6185132558746749656">Құрылғының орналасқан жері</translation> +<translation id="6191293864534840972">Атау серверлері форматы дұрыс емес.</translation> <translation id="6195446518998936840">Ата-ана бақылауын орнату үшін балаңызда сіз басқаруға көмектесетін Google есептік жазбасы болуы қажет. Family Link қолданбасы арқылы пайдалану уақытын шектеуге, веб-сайттарды мақұлдауға не бөгеуге және тағы басқа әрекеттерді орындауға болады.</translation> <translation id="6195693561221576702">Бұл құрылғы офлайн демо режимінде реттелмейді.</translation> <translation id="6196640612572343990">Үшінші тарап cookie файлдарын бөгеу</translation> @@ -4448,6 +4471,7 @@ <translation id="6451591602925140504">{NUM_PAGES,plural, =0{<ph name="PAGE_TITLE" />}=1{<ph name="PAGE_TITLE" /> және тағы 1 қойынды}other{<ph name="PAGE_TITLE" /> және тағы # қойынды}}</translation> <translation id="6451689256222386810">Егер құпия фразаны ұмытып қалсаңыз немесе оны өзгерткіңіз келсе, <ph name="BEGIN_LINK" />синхрондауды бастапқы күйіне қайтарыңыз<ph name="END_LINK" />.</translation> <translation id="6452181791372256707">Қабылдамау</translation> +<translation id="6452251728599530347"><ph name="PERCENT" /> алынды.</translation> <translation id="6452961788130242735">Желі қатесі шықты немесе аймақ дұрыс емес.</translation> <translation id="6455264371803474013">Белгілі бір сайттарда</translation> <translation id="6455894534188563617">&Жаңа қалта</translation> @@ -4504,6 +4528,7 @@ <ph name="EVENT_NAME" /></translation> <translation id="6520876759015997832"><ph name="LIST_POSITION" />/<ph name="LIST_SIZE" /> іздеу нәтижесі: <ph name="SEARCH_RESULT_TEXT" />. Бөлімге өту үшін Enter пернесін басыңыз.</translation> <translation id="652492607360843641"><ph name="NETWORK_TYPE" /> желісіне жалғандыңыз.</translation> +<translation id="6527081081771465939">WiFi қауіпсіздік протоколы белгісіз.</translation> <translation id="6527303717912515753">Бөлісу</translation> <translation id="6528513914570774834">Бұл құрылғының басқа пайдаланушыларына осы желіні пайдалануға рұқсат ету</translation> <translation id="652948702951888897">Chrome тарихы</translation> @@ -4620,6 +4645,7 @@ <translation id="6680442031740878064">Бос: <ph name="AVAILABLE_SPACE" /></translation> <translation id="6680650203439190394">Жылдамдық</translation> <translation id="6681668084120808868">Фотосуретке түсіру</translation> +<translation id="6684827949542560880">Соңғы жаңартылған нұсқа жүктеліп жатыр</translation> <translation id="668599234725812620">Google Play дүкенін ашу</translation> <translation id="6686490380836145850">Қойындыларды оң жаққа жабу</translation> <translation id="6686817083349815241">Құпия сөзді сақтау</translation> @@ -4729,6 +4755,7 @@ <translation id="6812841287760418429">Өзгерістерді сақтау</translation> <translation id="6817174620439930047">Сайт MIDI құрылғыларына кіру үшін жүйенің айрықша хабарларын пайдаланғысы келетіні сұралсын (ұсынылады)</translation> <translation id="6818198425579322765">Беттің аударма тілі</translation> +<translation id="6818802132960437751">Ендірілген вирустан қорғау жүйесі</translation> <translation id="682123305478866682">Жұмыс үстелін тарату</translation> <translation id="6823174134746916417">Сенсорлық тақтаны басу үшін түрту</translation> <translation id="6823506025919456619">Құрылғыларыңызды көру үшін Chrome жүйесіне кіруіңіз керек</translation> @@ -5375,6 +5402,7 @@ <translation id="7631205654593498032">Құрылғыларды жалғасаңыз, <ph name="DEVICE_TYPE" /> құрылғысына мынадай рұқсаттар беріледі:</translation> <translation id="7631887513477658702">&Осы түрге жататын файлдарды әрқашан ашу</translation> <translation id="7632948528260659758">Келесі киоск қолданбаларын жаңарту сәтсіз болды:</translation> +<translation id="7633724038415831385">Жаңартылған нұсқаны тек осы жолы ғана күтесіз. Chromebook құрылғыларында бағдарламалар фондық режимде жаңартылады.</translation> <translation id="7634566076839829401">Бір нәрсе дұрыс емес. Қайталап көріңіз.</translation> <translation id="763632859238619983">Ешқандай сайтқа төлем өңдегіштерін орнатуға рұқсат бермеу</translation> <translation id="7636919061354591437">Осы құрылғыда орнату</translation> @@ -5653,6 +5681,7 @@ <translation id="7933314993013528982">{NUM_TABS,plural, =1{Сайттың дыбысын қосу}other{Сайттардың дыбысын қосу}}</translation> <translation id="7933634003144813719">Ортақ қалталарды басқару</translation> <translation id="793531125873261495">Виртуалдық құрылғыны жүктеп алу кезінде қате шықты. Қайталап көріңіз.</translation> +<translation id="7936303884198020182">Атау серверлері табылмады.</translation> <translation id="7938594894617528435">Ағымда желіден тыс</translation> <translation id="7939062555109487992">Қосымша опциялар</translation> <translation id="7939412583708276221">Бәрібір сақтау</translation> @@ -5895,6 +5924,7 @@ <translation id="8226742006292257240">Төменде компьютеріңізге тағайындалған, кездейсоқ жасалған TPM құпия сөзі бар:</translation> <translation id="8227119283605456246">Файл тіркеу</translation> <translation id="8230134520748321204"><ph name="ORIGIN" /> құпия сөзі сақталсын ба?</translation> +<translation id="8230672074305416752">Әдепкі желі шлюзінің байланысы тексерілмеді.</translation> <translation id="8234795456569844941">Біздің инженерлерге осы мәселені шегуге көмектесіңіз. Профиль қатесі туралы хабарын алмастан бұрын не болғанын айтыңыз:</translation> <translation id="8236917170563564587">Орнына осы қойындыны бөлісу</translation> <translation id="8237647586961940482">Қою қызғылт және қызыл</translation> @@ -5955,6 +5985,7 @@ <translation id="8288032458496410887"><ph name="APP" /> жойылуда...</translation> <translation id="8289128870594824098">Диск көлемі</translation> <translation id="8291967909914612644">Жергілікті провайдер елі</translation> +<translation id="8293206222192510085">Бетбелгі қосу</translation> <translation id="8294431847097064396">Дереккөз</translation> <translation id="8297006494302853456">Әлсіз</translation> <translation id="8299319456683969623">Қазір желіден тыссыз.</translation> @@ -6004,6 +6035,7 @@ <translation id="8363095875018065315">тұрақты</translation> <translation id="8363142353806532503">Микрофонға тыйым салынған</translation> <translation id="8363763184161554204"><ph name="PERMISSION" /> пайдалануға рұқсат берілді</translation> +<translation id="8364946094152050673">Атау серверлері бос.</translation> <translation id="8366396658833131068">Желіге қосылу мүмкіндігіңіз қалпына келтірілді. Киоск қолданбасын іске қосу үшін басқа желіні пайдаланыңыз не төмендегі "Жалғастыру" түймесін басыңыз.</translation> <translation id="8368027906805972958">Белгісіз немесе жарамсыз құрылғы (<ph name="DEVICE_ID" />)</translation> <translation id="8368859634510605990">&Барлық бетбелгілерді ашу</translation> @@ -6089,8 +6121,10 @@ <translation id="8472623782143987204">жабдық қажет</translation> <translation id="8473863474539038330">Мекенжайлар және басқа ақпарат</translation> <translation id="8475313423285172237">Компьютеріңіздегі басқа бір бағдарлама кеңейтім қосты, ол Chrome жұмысын өзгертуі мүмкін.</translation> +<translation id="8475690821716466388">Wi-Fi желісі WEP PSK әлсіз протоколымен қорғалған.</translation> <translation id="8477241577829954800">Алмастырылған</translation> <translation id="8477384620836102176">&Жалпы</translation> +<translation id="8477551185774834963">DNS кідірісі рұқсат етілетін шектен сәл жоғары.</translation> <translation id="8480082892550707549">Файлдарды бұрын осы сайттан жүктеп алған болсаңыз да, сайт уақытша қауіпті (бұзылған) болуы мүмкін. Файлды кейінірек жүктеп көріңіз.</translation> <translation id="8480869669560681089"><ph name="VENDOR_NAME" /> белгісіз құрылғысы</translation> <translation id="8481187309597259238">USB рұқсатын растау</translation> @@ -6142,6 +6176,7 @@ <translation id="8546930481464505581">Touch Bar реттеу</translation> <translation id="8547013269961688403">Толық экран ұлғайтқышын қосу</translation> <translation id="85486688517848470">Жоғарғы қатардағы пернелердің әрекетін ауыстыру үшін "Іздеу" пернесін басып тұрыңыз</translation> +<translation id="8549316893834449916">Chromebook құрылғысына кіруге Gmail, Drive, YouTube, т.б. үшін қолданатын Google есептік жазбаңызды пайдаланыңыз.</translation> <translation id="8551388862522347954">Лицензиялар</translation> <translation id="8551588720239073785">Күн және уақыт параметрлері</translation> <translation id="8553342806078037065">Басқа пайдаланушыларды басқару</translation> @@ -6280,6 +6315,7 @@ <translation id="8720200012906404956">Мобильдік желіні іздеп жатырмыз. <ph name="BEGIN_LINK" />Толығырақ<ph name="END_LINK" /></translation> <translation id="8720816553731218127">Орнату уақыты атрибуттарын жұмысқа дайындау уақыты өтіп кетті.</translation> <translation id="8722912030556880711">Пайдаланылуы және диагностикасы туралы деректерді жіберу. Бұл құрылғыдан Google-ға диагностика, құрылғы мен қолданбаны пайдалану деректері автоматты түрде жіберіліп тұрады. Олар жүйе мен қолданбаның тұрақты жұмыс істеуіне және басқа да жақсартулар енгізуге көмектеседі. Кейбір жиынтық деректер Google қолданбаларын жетілдіруге және Android әзірлеушілері сияқты серіктестердің жұмысына көмектеседі. Егер "Интернет пен қолданбаларды пайдаланудың қосымша тарихы" параметрі қосулы болса, бұл деректер сіздің Google есептік жазбаңызға сақталуы мүмкін. <ph name="BEGIN_LINK2" />Толығырақ<ph name="END_LINK2" /></translation> +<translation id="8723108084122415655">Әдепкі желі кідірісі шекті мәннен асады.</translation> <translation id="8724405322205516354">Бұл белгіше шыққан кезде, саусақ ізімен тұлғаңызды растаңыз не сатып алған нәрсені мақұлдаңыз.</translation> <translation id="8724409975248965964">Саусақ ізі енгізілді</translation> <translation id="8724859055372736596">&Қалтада көрсету</translation> @@ -6457,6 +6493,7 @@ <translation id="8909833622202089127">Сайт орналасқан жеріңізді бақылауда</translation> <translation id="8910146161325739742">Экранды бөлісу</translation> <translation id="8910222113987937043">Бетбелгілерге, тарихқа, құпия сөздерге және басқа параметрлерге енгізілген өзгертулер бұдан әрі Google есептік жазбасымен синхрондалмайды. Алайда бұрыннан бар деректер Google есептік жазбасында сақталады және <ph name="BEGIN_LINK" />Google бақылау тақтасында<ph name="END_LINK" /> басқарылады.</translation> +<translation id="8910721771319628100">Әдепкі желі кідірісі шекті мәннен асады.</translation> <translation id="8912362522468806198">Google есептік жазбасы</translation> <translation id="8912793549644936705">Созу</translation> <translation id="8912810933860534797">Автоматты түрде іздеу функциясын қосу</translation>
diff --git a/chrome/app/resources/generated_resources_km.xtb b/chrome/app/resources/generated_resources_km.xtb index 5e1b614..a8a4f35 100644 --- a/chrome/app/resources/generated_resources_km.xtb +++ b/chrome/app/resources/generated_resources_km.xtb
@@ -71,6 +71,7 @@ <translation id="1070705170564860382">នឹងបើកកម្មវិធីរុករកតាមអ៊ីនធឺណិតផ្សេងក្នុងរយៈពេល <ph name="COUNTDOWN_SECONDS" /> វិនាទី</translation> <translation id="1071917609930274619">ការបម្លែងទិន្នន័យ</translation> <translation id="1072700771426194907">បានរកឃើញឧបករណ៍ USB</translation> +<translation id="107278043869924952">ប្រើកូដ PIN បន្ថែមពីលើពាក្យសម្ងាត់</translation> <translation id="1076176485976385390">រុករកទំព័រដោយប្រើទស្សន៍ទ្រនិចអក្សរ</translation> <translation id="1076698951459398590">បើករចនាប័ទ្ម</translation> <translation id="1076818208934827215">Microsoft Internet Explorer</translation> @@ -524,7 +525,6 @@ <translation id="1608668830839595724">សកម្មភាពច្រើនជាងមុនសម្រាប់ធាតុដែលបានជ្រើសរើស</translation> <translation id="161042844686301425">បៃតងខ្ចី</translation> <translation id="1611432201750675208">ឧបករណ៍របស់អ្នកជាប់សោ</translation> -<translation id="1611584202130317952">លំហូរនៃការផ្តល់បណ្តាញមានការរំខាន។ សូមព្យាយាមម្តងទៀត ឬទាក់ទងទៅម្ចាស់ឧបករណ៍ ឬអ្នកគ្រប់គ្រងរបស់អ្នក។</translation> <translation id="1614511179807650956">អ្នកប្រហែលជាបានប្រើគម្រោងទិន្នន័យទូរសព្ទចល័តរបស់អ្នកអស់ហើយ។ សូមចូលទៅកាន់ច្រកបើកដំណើរការ <ph name="NAME" /> ដើម្បីទិញទិន្នន័យបន្ថែម</translation> <translation id="161460670679785907">រកទូរសព្ទរបស់អ្នកមិនឃើញទេ</translation> <translation id="1616206807336925449">កម្មវិធីបន្ថែមនេះមិនតម្រូវឲ្យមានការអនុញ្ញាតពិសេសអ្វីទេ។</translation> @@ -533,6 +533,7 @@ <translation id="1618268899808219593">មជ្ឈមណ្ឌលជំនួយ</translation> <translation id="1620307519959413822">ពាក្យសម្ងាត់មិនត្រឹមត្រូវទេ។ សូមព្យាយាមម្ដងទៀត ឬចុច "ភ្លេចពាក្យសម្ងាត់" ដើម្បីកំណត់ពាក្យសម្ងាត់នេះឡើងវិញ។</translation> <translation id="1620510694547887537">កាមេរ៉ា</translation> +<translation id="1621831347985899379">ទិន្នន័យ <ph name="DEVICE_TYPE" /> នឹងត្រូវលុប</translation> <translation id="1622054403950683339">បំភ្លេចបណ្តាញ Wi-Fi</translation> <translation id="1623132449929929218">មិនអាចប្រើរូបភាពនេះនៅពេលនេះ។ សូមភ្ជាប់អ៊ីនធឺណិតឡើងវិញ ដើម្បីមើលបណ្ដុំផ្ទាំងរូបភាព។</translation> <translation id="1623723619460186680">ការកាត់បន្ថយពន្លឺពណ៌ខៀវ</translation> @@ -760,6 +761,7 @@ <translation id="1877377290348678128">ស្លាក (មិនតម្រូវ)</translation> <translation id="1877520246462554164">មិនអាចទាញយកនិមិត្តសញ្ញាផ្ទៀងផ្ទាត់បានទេ។ សូមចេញពីគណនី ហើយចូលមកវិញម្តងទៀត ដើម្បីព្យាយាមម្តងទៀត។</translation> <translation id="1877860345998737529">ការចាត់ចែងសកម្មភាពប៊ូតុងចុច</translation> +<translation id="1878155070920054810">Chromebook របស់អ្នកហាក់ដូចជានឹងអស់ថាមពល មុនពេលបញ្ចប់ការដំឡើងកំណែ។ សូមប្រាកដថា វាកំពុងសាកថ្មបានត្រឹមត្រូវ ដើម្បីជៀសវាងការកាត់ផ្ដាច់។</translation> <translation id="1879000426787380528">ចូលជា</translation> <translation id="1880905663253319515">លុបវិញ្ញាបនប័ត្រ "<ph name="CERTIFICATE_NAME" />"?</translation> <translation id="1881445033931614352">ប្លង់ក្តារចុច</translation> @@ -964,6 +966,7 @@ <translation id="2148219725039824548">មានបញ្ហាក្នុងការភ្ជាប់ការចែករំលែក។ រកមិនឃើញការចែករំលែកដែលបានបញ្ជាក់នៅលើបណ្ដាញទេ។</translation> <translation id="2148756636027685713">ការសម្អាតបានបញ្ចប់</translation> <translation id="2148892889047469596">ខាសផ្ទាំង</translation> +<translation id="2149973817440762519">កែប្រែចំណាំ</translation> <translation id="2150139952286079145">គោលដៅស្វែងរក</translation> <translation id="2150661552845026580">បន្ថែម "<ph name="EXTENSION_NAME" />"?</translation> <translation id="2151576029659734873">សន្ទស្សន៍ផ្ទាំងគ្មានសុពលភាពត្រូវបានបញ្ចូល។</translation> @@ -1073,6 +1076,7 @@ <translation id="2270627217422354837">ផ្តោះប្តូរទិន្នន័យជាមួយឧបករណ៍ណាមួយនៅក្នុងដែន៖ <ph name="DOMAINS" /></translation> <translation id="2272570998639520080">កែវស្រាក្រឡុក</translation> <translation id="2273119997271134996">បញ្ហារន្ធវីដេអូនៃឧបករណ៍ភ្ជាប់</translation> +<translation id="2274840746523584236">សាកថ្ម Chromebook របស់អ្នក</translation> <translation id="2276503375879033601">បន្ថែមកម្មវិធីច្រើនទៀត</translation> <translation id="2277255602909579701">ខុកឃី និងទិន្នន័យគេហទំព័រទាំងអស់</translation> <translation id="2277769717710009150">{COUNT,plural, =1{បានចម្លងធាតុ 1}other{បានចម្លងធាតុ #}}</translation> @@ -1915,6 +1919,7 @@ <translation id="3308116878371095290">ទំព័រនេះត្រូវបានបង្ការពីការកំណត់ខុកឃី។</translation> <translation id="3308134619352333507">ប៊ូតុងលាក់</translation> <translation id="3308852433423051161">កំពុងផ្ទុក Google ជំនួយការ...</translation> +<translation id="3310640316857623290">កម្រិតពន្យាររបស់ DNS ខ្ពស់ជាងកម្រិតអនុញ្ញាតខ្លាំង</translation> <translation id="3311445899360743395">ទិន្នន័យដែលពាក់ព័ន្ធនឹងកម្មវិធីនេះអាចត្រូវបានលុបចេញពីឧបករណ៍នេះ។</translation> <translation id="3312424061798279731">ភាសាដែលបានបើកដំណើរការ</translation> <translation id="3313622045786997898">តម្លៃហត្ថលេខាវិញ្ញាបនប័ត្រ</translation> @@ -1927,6 +1932,7 @@ <translation id="3323295311852517824">{NUM_FILES,plural, =0{ទិន្នន័យនេះមានខ្លឹមសាររសើប ឬគ្រោះថ្នាក់។ សូមលុបខ្លឹមសារនេះចេញ រួចព្យាយាមម្ដងទៀត។}=1{ឯកសារនេះមានខ្លឹមសាររសើប ឬគ្រោះថ្នាក់។ សូមលុបខ្លឹមសារនេះចេញ រួចព្យាយាមម្ដងទៀត។}other{ឯកសារទាំងនេះមានខ្លឹមសាររសើប ឬគ្រោះថ្នាក់។ សូមលុបខ្លឹមសារនេះចេញ រួចព្យាយាមម្ដងទៀត។}}</translation> <translation id="3323521181261657960">ម៉ោងបន្ថែម! អ្នកទទួលបានរយៈពេលប្រើប្រាស់ឧបករណ៍បន្ថែម</translation> <translation id="3325910708063135066">កាម៉េរា និងមីក្រូហ្វូនត្រូវបានបិទនៅក្នុងចំណូលចិត្តប្រព័ន្ធ Mac</translation> +<translation id="3327050066667856415">Chromebook ត្រូវបានរចនាឡើងសម្រាប់សុវត្ថិភាព។ ឧបករណ៍របស់អ្នកទទួលបានការការពារពីកម្មវិធីគ្រោះថ្នាក់ដោយស្វ័យប្រវត្តិ ដោយមិនតម្រូវឱ្យមានកម្មវិធីបន្ថែមទេ។</translation> <translation id="3328489342742826322">ការស្ដារពីការបម្រុងទុកនឹងលុបកម្មវិធី និងទិន្នន័យ Linux ដែលមានស្រាប់នៅក្នុងថតឯកសារ Linux របស់អ្នក។</translation> <translation id="3331321258768829690">(<ph name="UTCOFFSET" />) <ph name="LONGTZNAME" /> (<ph name="EXEMPLARCITY" />)</translation> <translation id="3331974543021145906">ព័ត៌មានកម្មវិធី</translation> @@ -2116,6 +2122,7 @@ <translation id="3556433843310711081">អ្នកគ្រប់គ្រងរបស់អ្នកអាចលុបការរារាំងទំព័រនេះសម្រាប់អ្នកបាន</translation> <translation id="3557101512409028104">កំណត់ការដាក់កំហិតគេហទំព័រ និងរយៈពេលកំណត់នៅលើអេក្រង់ដោយប្រើ Family Link</translation> <translation id="3559262020195162408">មិនអាចដំឡើងគោលការណ៍នៅលើឧបករណ៍បានទេ។</translation> +<translation id="3559533181353831840">នៅសល់ប្រហែល <ph name="TIME_LEFT" /> ទៀត</translation> <translation id="3560034655160545939">&ពិនិត្យអក្ខរាវិរុទ្ធ</translation> <translation id="3562423906127931518">ដំណើរការនេះអាចចំណាយពេលពីរបីនាទី។ កំពុងរៀបចំទម្រង់ផ្ទុក Linux ។</translation> <translation id="3563432852173030730">កម្មវិធីបញ្ជរមិនអាចត្រូវបានទាញយកទេ។</translation> @@ -2158,6 +2165,7 @@ <translation id="3602290021589620013">ពិនិត្យមើល</translation> <translation id="3603622770190368340">ទទួលយកវិញ្ញាបនប័ត្របណ្តាញ</translation> <translation id="3604713164406837697">ប្ដូរផ្ទាំងរូបភាព</translation> +<translation id="360565022852130722">បណ្ដាញ WiFi មានសុវត្ថិភាពជាមួយ WEP 802.1x ប្រូតូកូលខ្សោយ</translation> <translation id="3605780360466892872">Buttondown</translation> <translation id="3608576286259426129">ពិនិត្យមើលរូបភាពអ្នកប្រើ</translation> <translation id="3610369246614755442">កង្ហារឧបករណ៍ភ្ជាប់តម្រូវឱ្យមានការជួលជុល</translation> @@ -2194,6 +2202,7 @@ <translation id="3639220004740062347">ចាកចេញពីមុខងារអាន</translation> <translation id="3640214691812501263">បន្ថែម "<ph name="EXTENSION_NAME" />" សម្រាប់ <ph name="USER_NAME" />?</translation> <translation id="3640613767643722554">បង្រៀនជំនួយការរបស់អ្នកឱ្យស្គាល់សំឡេងរបស់អ្នក</translation> +<translation id="3643014427358482789"><ph name="DOMAIN" /> កំពុងបិទការជួសជុល ADB ដែលនឹងកំណត់ <ph name="DEVICE_TYPE" /> របស់អ្នកឡើងវិញ។ សូមបម្រុងទុកឯកសាររបស់អ្នក មុនពេលចាប់ផ្ដើមឡើងវិញ។</translation> <translation id="3645372836428131288">រំកិលតិចៗដើម្បីថតផ្នែកផ្សេងនៃស្នាមម្រាមដៃ។</translation> <translation id="3647998456578545569">{COUNT,plural, =1{បានទទួល <ph name="ATTACHMENTS" /> ពី <ph name="DEVICE_NAME" />}other{បានទទួល <ph name="ATTACHMENTS" /> ពី <ph name="DEVICE_NAME" />}}</translation> <translation id="3648348069317717750">បានរកឃើញ <ph name="USB_DEVICE_NAME" /></translation> @@ -2282,6 +2291,7 @@ <translation id="3732857534841813090">ព័ត៌មានដែលពាក់ព័ន្ធនឹង Google ជំនួយការ</translation> <translation id="3733127536501031542">ម៉ាស៊ីនមេ SSL ជាមួយនឹង Step-up</translation> <translation id="3735740477244556633">តម្រៀបតាម</translation> +<translation id="3738632186060045350">ទិន្នន័យ <ph name="DEVICE_TYPE" /> នឹងត្រូវលុបក្នុងរយៈពេល 24 ម៉ោង</translation> <translation id="3738924763801731196"><ph name="OID" />:</translation> <translation id="3739254215541673094">បើក <ph name="APPLICATION" /> ឬ?</translation> <translation id="3742055079367172538">រូបថតអេក្រង់ត្រូវបានថតយក</translation> @@ -2469,6 +2479,7 @@ <translation id="3937734102568271121">បកប្រែ <ph name="LANGUAGE" /> ជានិច្ច</translation> <translation id="3938128855950761626">ឧបករណ៍ពីអ្នកលក់ <ph name="VENDOR_ID" /></translation> <translation id="3940233957883229251">បើកដំណើរការធ្វើឡើងវិញស្វ័យប្រវត្តិ</translation> +<translation id="3941014780699102620">មិនអាចដោះស្រាយម៉ាស៊ីនបានទេ</translation> <translation id="3941565636838060942">ដើម្បីលាក់ការចូលប្រើកម្មវិធីនេះ អ្នកត្រូវលុបការតំឡើងវាដោយប្រើ <ph name="CONTROL_PANEL_APPLET_NAME" /> នៅក្នុងផ្ទាំងបញ្ជា @@ -2631,6 +2642,7 @@ <translation id="413121957363593859">សមាសភាគ</translation> <translation id="4131410914670010031">ពណ៌ខ្មៅ និងស</translation> <translation id="413193092008917129">ការធ្វើតេស្តបណ្ដាញតាមការកំណត់</translation> +<translation id="4132183752438206707">ស្វែងរកកម្មវិធីនៅលើ Google Play Store</translation> <translation id="4133076602192971179">បើកកម្មវិធី ដើម្បីប្ដូរពាក្យសម្ងាត់របស់អ្នក</translation> <translation id="4136203100490971508">ពន្លឺពេលយប់នឹងបិទដោយស្វ័យប្រវត្តិពេលថ្ងៃរះ</translation> <translation id="41365691917097717">ការបន្តនឹងបើកការជួសជុល ADB សម្រាប់បង្កើត និងធ្វើតេស្តកម្មវិធី Android។ សូមចំណាំថា សកម្មភាពនេះអនុញ្ញាតការដំឡើងកម្មវិធី Android ដែលមិនមានការផ្ទៀងផ្ទាត់ពី Google និងតម្រូវឱ្យកំណត់ដូចចេញពីរោងចក្រ ដើម្បីបិទ។</translation> @@ -2880,6 +2892,8 @@ <translation id="4479877282574735775">កំពុងកំណត់រចនាសម្ព័ន្ធម៉ាស៊ីននិម្មិត។ ការកំណត់រចនាសម្ព័ន្ធនេះអាចនឹងចំណាយពេលពីរបីនាទី។</translation> <translation id="4480590691557335796">Chrome អាចរកឃើញកម្មវិធីដែលបង្កគ្រោះថ្នាក់នៅលើកុំព្យូទ័ររបស់អ្នក ហើយលុបវាចេញ</translation> <translation id="4481530544597605423">ឧបករណ៍ដែលឈប់ផ្គូផ្គង</translation> +<translation id="4483049906298469269">មិនអាចភីងច្រកបណ្ដាញមិនមែនលំនាំដើមបានទេ</translation> +<translation id="4487489714832036847">Chromebook ប្រើកម្មវិធីជំនួសឱ្យកម្មវិធីប្រភេទចាស់។ ទាញយកកម្មវិធីសម្រាប់ផលិតភាព ការកម្សាន្ត និងអ្វីៗជាច្រើនទៀត។</translation> <translation id="4488502501195719518">សម្អាតទិន្នន័យទាំងអស់ឬ?</translation> <translation id="4493468155686877504">បានណែនាំ (<ph name="INSTALL_SIZE" />)</translation> <translation id="4495419450179050807">កុំបង្ហាញនៅលើទំព័រនេះ</translation> @@ -2930,6 +2944,7 @@ <translation id="4546692474302123343">ការបញ្ចូលដោយប្រើសំឡេងរបស់ Google ជំនួយការ</translation> <translation id="4547659257713117923">គ្មានផ្ទាំងពីឧបករណ៍ដ៏ទៃទេ</translation> <translation id="4547672827276975204">កំណត់ដោយស្វ័យប្រវត្តិ</translation> +<translation id="4548483925627140043">រកមិនឃើញរលកសញ្ញាទេ</translation> <translation id="4549791035683739768">គ្មានស្នាមម្រាមដៃត្រូវបានរក្សាទុកនៅលើសោសុវត្ថិភាពរបស់អ្នកទេ</translation> <translation id="4551763574344810652">ចុច <ph name="MODIFIER_KEY_DESCRIPTION" /> ដើម្បីត្រឡប់វិញ</translation> <translation id="4552089082226364758">Flash</translation> @@ -2969,6 +2984,7 @@ <translation id="4582563038311694664">កំណត់ការកំណត់ទាំងអស់ឡើងវិញ</translation> <translation id="4585793705637313973">កែសម្រួលទំព័រ</translation> <translation id="4586275095964870617">មិនអាចបើក <ph name="URL" /> នៅក្នុងកម្មវិធីរុករកតាមអ៊ីនធឺណិតផ្សេងបានទេ។ សូមទាក់ទងអ្នកគ្រប់គ្រងប្រព័ន្ធរបស់អ្នក។</translation> +<translation id="458794348635939462">មិនអាចដោះស្រាយម៉ាស៊ីនទាំងអស់បានទេ</translation> <translation id="4589713469967853491">បានចម្លងកំណត់ហេតុទៅក្នុងបញ្ជីទាញយកដោយជោគជ័យហើយ។</translation> <translation id="4590324241397107707">ឧបករណ៍ផ្ទុកទិន្នន័យមូលដ្ឋាន</translation> <translation id="4592891116925567110">កម្មវិធីគូរដោយប្រើប៊ិក</translation> @@ -3352,6 +3368,7 @@ <translation id="5089810972385038852">រដ្ឋ</translation> <translation id="5094721898978802975">ទំនាក់ទំនងជាមួយកម្មវិធីដើមសហប្រតិបត្តិការ</translation> <translation id="5097002363526479830">បានបរាជ័យក្នុងការភ្ជាប់ទៅបណ្តាញ៖ '<ph name="NAME" />': <ph name="DETAILS" /></translation> +<translation id="5097649414558628673">ឧបករណ៍៖ <ph name="PRINT_NAME" /></translation> <translation id="5097874180538493929">ចុចដោយស្វ័យប្រវត្តិ នៅពេលទស្សន៍ទ្រនិចឈប់</translation> <translation id="5101042277149003567">បើកចំណាំទាំងអស់</translation> <translation id="5101839224773798795">ចុចដោយស្វ័យប្រវត្តិ នៅពេលសញ្ញាព្រួញឈប់</translation> @@ -3570,6 +3587,7 @@ <translation id="5370819323174483825">ដំណើរការឡើងវិញ</translation> <translation id="5372529912055771682">របៀបចុះឈ្មោះដែលបានផ្តល់ឲ្យមិនត្រូវបានគាំទ្រដោយកំណែនៃប្រព័ន្ធប្រតិបត្តិការនេះទេ។ សូមប្រាកដថាអ្នកកំពុងដំណើរការកំណែថ្មីបំផុត ហើយព្យាយាមម្តងទៀត។</translation> <translation id="5372579129492968947">ដកខ្ទាស់កម្មវិធីបន្ថែម</translation> +<translation id="5372659122375744710">បណ្ដាញ WiFi មិនមានសុវត្ថិភាពទេ</translation> <translation id="5376169624176189338">ចុចដើម្បីត្រលប់ក្រោយ រង់ចាំដើម្បីមើលប្រវត្តិ</translation> <translation id="5376931455988532197">ឯកសារធំណាស់</translation> <translation id="5377721922656071359">{COUNT,plural, =1{បានផ្ញើ <ph name="ATTACHMENTS" /> ទៅ <ph name="DEVICE_NAME" /> ដោយជោគជ័យហើយ}other{បានផ្ញើ <ph name="ATTACHMENTS" /> ទៅ <ph name="DEVICE_NAME" /> ដោយជោគជ័យហើយ}}</translation> @@ -3599,6 +3617,7 @@ <translation id="5414566801737831689">អានរូបតំណាងគេហទំព័រដែលអ្នកទៅកាន់</translation> <translation id="5417312524372586921">រចនាប័ទ្មកម្មវិធីរុករកតាមអ៊ីនធឺណិត</translation> <translation id="5419405654816502573">Voice Match</translation> +<translation id="5420274697768050645">តម្រូវឱ្យមានពាក្យសម្ងាត់ ដើម្បីដោះសោឧបករណ៍សម្រាប់សុវត្ថិភាពបន្ថែម</translation> <translation id="5420438158931847627">កំណត់ភាពច្បាស់មុតនៃអត្ថបទ និងរូបភាព</translation> <translation id="5422221874247253874">ចំណុចចូលប្រើ</translation> <translation id="5422781158178868512">សូមទោស ឧបករណ៍ផ្ទុកទិន្នន័យខាងក្រៅរបស់អ្នកមិនត្រូវបានសម្គាល់ទេ។</translation> @@ -3723,6 +3742,7 @@ <translation id="5548606607480005320">ការពិនិត្យសុវត្ថិភាព</translation> <translation id="5551573675707792127">ក្ដារចុច និងការបញ្ចូលអត្ថបទ</translation> <translation id="5553089923092577885">ការកំណត់ទីតាំងគោលការណ៍វិញ្ញាបនប័ត្រ</translation> +<translation id="5554403733534868102">បន្ទាប់ពីនេះ មិនមានការរង់ចាំសម្រាប់ការដំឡើងកំណែទេ</translation> <translation id="5554489410841842733">រូបតំណាងនេះអាចមើលឃើញ នៅពេលកម្មវិធីបន្ថែមអាចដំណើរនៅលើទំព័របច្ចុប្បន្ន។</translation> <translation id="5554720593229208774">អាជ្ញាធរវិញ្ញាបនប័ត្រអ៊ីម៉ែល</translation> <translation id="5556459405103347317">ដំណើរការឡើងវិញ</translation> @@ -4137,6 +4157,7 @@ <translation id="6061882183774845124">ផ្ញើតំណទៅឧបករណ៍របស់អ្នក</translation> <translation id="6064217302520318294">ការចាក់សោអេក្រង់</translation> <translation id="6065289257230303064">គុណលក្ខណៈថតឯកសារភាគីវិញ្ញាបនប័ត្រ</translation> +<translation id="6069464830445383022">គណនី Google របស់អ្នកគឺជាការចូល Chromebook របស់អ្នក</translation> <translation id="6069671174561668781">កំណត់ផ្ទាំងរូបភាព</translation> <translation id="6071181508177083058">អះអាងពាក្យសម្ងាត់</translation> <translation id="6071576563962215370">ប្រព័ន្ធមិនអាចបង្កើតការចាក់សោលក្ខណៈសម្រាប់រយៈពេលដំឡើងឧបករណ៍បានទេ។</translation> @@ -4179,6 +4200,7 @@ <translation id="6104311680260824317">មិនអាចភ្ជាប់ឧបករណ៍ទៅដែនបានទេ។ ម៉ាសីុនមេមិនអាចប្រើប្រភេទអ៊ីនគ្រីប Kerberos ដែលបានបញ្ជាក់ទេ។ សូមពិនិត្យមើល "ជម្រើសច្រើនទៀត" សម្រាប់ការកំណត់ការអ៊ីនគ្រីប។</translation> <translation id="6104796831253957966">ជួរម៉ាស៊ីនបោះពុម្ពពេញហើយ</translation> <translation id="6105994589138235234">សមកាលកម្មកម្មវិធីរុករកតាមអ៊ីនធឺណិត Chrome</translation> +<translation id="6108689792487843350">មិនអាចភ្ជាប់ជាមួយច្រកបានទេ</translation> <translation id="6111972606040028426">បើក Google ជំនួយការ</translation> <translation id="6112294629795967147">ប៉ះដើម្បីប្ដូរទំហំ</translation> <translation id="6112727384379533756">បញ្ចូលសំបុត្រ</translation> @@ -4239,6 +4261,7 @@ <translation id="6178664161104547336">ជ្រើសរើសវិញ្ញាបនប័ត្រមួយ</translation> <translation id="6181431612547969857">ការទាញយកត្រូវបានរារាំង</translation> <translation id="6185132558746749656">ទីតាំងឧបករណ៍</translation> +<translation id="6191293864534840972">ម៉ាស៊ីនមេឈ្មោះមានទម្រង់មិនត្រឹមត្រូវ</translation> <translation id="6195446518998936840">ដើម្បីរៀបចំការគ្រប់គ្រងដោយមាតាបិតា កូនរបស់អ្នកត្រូវតែមានគណនី Google ដែលអ្នកនឹងជួយគ្រប់គ្រង។ អ្នកអាចកំណត់រយៈពេលកំណត់នៃការប្រើប្រាស់ឧបករណ៍ អនុញ្ញាត ឬទប់ស្កាត់គេហទំព័រ និងអ្វីៗជាច្រើនទៀតដោយប្រើកម្មវិធី Family Link។</translation> <translation id="6195693561221576702">មិនអាចរៀបចំឧបករណ៍នេះនៅក្នុងមុខងារសាកល្បងពេលគ្មានអ៊ីនធឺណិតបានទេ។</translation> <translation id="6196640612572343990">រារាំងខូគីភាគីទីបី</translation> @@ -4452,6 +4475,7 @@ <translation id="6451591602925140504">{NUM_PAGES,plural, =0{<ph name="PAGE_TITLE" />}=1{<ph name="PAGE_TITLE" /> និងផ្ទាំង 1 ផ្សេងទៀត}other{<ph name="PAGE_TITLE" /> និងផ្ទាំង # ផ្សេងទៀត}}</translation> <translation id="6451689256222386810">ប្រសិនបើអ្នកភ្លេចឃ្លាសម្ងាត់របស់អ្នក ឬចង់ប្តូរការកំណត់នេះ <ph name="BEGIN_LINK" />សូមកំណត់ការធ្វើសមកាលកម្មឡើងវិញ<ph name="END_LINK" />។</translation> <translation id="6452181791372256707">បដិសេធ</translation> +<translation id="6452251728599530347">បញ្ចប់ <ph name="PERCENT" /></translation> <translation id="6452961788130242735">បញ្ហាបណ្ដាញ ឬដែនមិនល្អ</translation> <translation id="6455264371803474013">នៅលើគេហទំព័រជាក់លាក់</translation> <translation id="6455894534188563617">&ថតថ្មី</translation> @@ -4508,6 +4532,7 @@ <ph name="EVENT_NAME" /></translation> <translation id="6520876759015997832">លទ្ធផលស្វែងរក <ph name="LIST_POSITION" /> នៃ <ph name="LIST_SIZE" />៖ <ph name="SEARCH_RESULT_TEXT" />។ ចុច Enter ដើម្បីចូលទៅកាន់ផ្នែក។</translation> <translation id="652492607360843641">អ្នកបានភ្ជាប់បណ្ដាញ <ph name="NETWORK_TYPE" /> ។</translation> +<translation id="6527081081771465939">មិនស្គាល់ប្រូតូកូលសុវត្ថិភាព WiFi</translation> <translation id="6527303717912515753">ចែករំលែក</translation> <translation id="6528513914570774834">អនុញ្ញាតឲ្យអ្នកផ្សេងទៀតដែលប្រើប្រាស់ឧបករណ៍នេះប្រើបណ្តាញនេះ</translation> <translation id="652948702951888897">ប្រវត្តិ Chrome</translation> @@ -4624,6 +4649,7 @@ <translation id="6680442031740878064">ទំនេរ៖ <ph name="AVAILABLE_SPACE" /></translation> <translation id="6680650203439190394">អត្រា</translation> <translation id="6681668084120808868">ថតរូបភាព</translation> +<translation id="6684827949542560880">កំពុងទាញយកកំណែថ្មីបំផុត</translation> <translation id="668599234725812620">បើក Google Play</translation> <translation id="6686490380836145850">បិទផ្ទាំងទៅខាងស្តាំ</translation> <translation id="6686817083349815241">រក្សាទុកពាក្យសម្ងាត់របស់អ្នក</translation> @@ -4733,6 +4759,7 @@ <translation id="6812841287760418429">រក្សាការប្តូរ</translation> <translation id="6817174620439930047">សួរនៅពេលដែលទំព័រចង់ប្រើសារផ្តាច់មុខសម្រាប់ប្រព័ន្ធ ដើម្បីចូលប្រើឧបករណ៍ MIDI (បានណែនាំ)</translation> <translation id="6818198425579322765">ភាសាទំព័រដែលត្រូវបកប្រែ</translation> +<translation id="6818802132960437751">ការការពារមេរោគដែលភ្ជាប់មកជាមួយ</translation> <translation id="682123305478866682">ខាសដេស៍ថប</translation> <translation id="6823174134746916417">ការប៉ះដើម្បីចុចនៅលើផ្ទាំងប៉ះ</translation> <translation id="6823506025919456619">អ្នកត្រូវចូលទៅ Chrome ដើម្បីមើលឧបករណ៍របស់អ្នក</translation> @@ -5379,6 +5406,7 @@ <translation id="7631205654593498032">នៅពេលភ្ជាប់ឧបករណ៍របស់អ្នក មានន័យថាអ្នកយល់ព្រមឱ្យ <ph name="DEVICE_TYPE" /> របស់អ្នកអាច៖</translation> <translation id="7631887513477658702">បើកឯកសារប្រភេទនេះជានិច្ច</translation> <translation id="7632948528260659758">កម្មវិធីបញ្ជរខាងក្រោមបានបរាជ័យក្នុងការធ្វើបច្ចុប្បន្នភាព៖</translation> +<translation id="7633724038415831385">អ្នកនឹងរង់ចាំការដំឡើងកំណែ តែលើកនេះប៉ុណ្ណោះ។ នៅលើ Chromebook ការដំឡើងកំណែកម្មវិធីធ្វើឡើងនៅផ្ទៃខាងក្រោយ។</translation> <translation id="7634566076839829401">មានបញ្ហាអ្វីមួយកើតឡើង។ សូមព្យាយាមម្តងទៀត។</translation> <translation id="763632859238619983">កុំអនុញ្ញាតឱ្យទំព័រដំឡើងឧបករណ៍ដោះស្រាយការបង់ប្រាក់</translation> <translation id="7636919061354591437">ដំឡើងនៅលើឧបករណ៍នេះ</translation> @@ -5657,6 +5685,7 @@ <translation id="7933314993013528982">{NUM_TABS,plural, =1{បើកសំឡេងគេហទំព័រ}other{បើកសំឡេងគេហទំព័រ}}</translation> <translation id="7933634003144813719">គ្រប់គ្រងថតរួម</translation> <translation id="793531125873261495">មានបញ្ហាក្នុងការទាញយកម៉ាស៊ីននិម្មិត។ សូមព្យាយាមម្តងទៀត។</translation> +<translation id="7936303884198020182">រកមិនឃើញម៉ាស៊ីនមេឈ្មោះទេ</translation> <translation id="7938594894617528435">បច្ចុប្បន្ននៅក្រៅបណ្ដាញ</translation> <translation id="7939062555109487992">ជម្រើសកម្រិតខ្ពស់</translation> <translation id="7939412583708276221">រក្សាទុកវាទោះបីជាយ៉ាងណាក៏ដោយ</translation> @@ -5899,6 +5928,7 @@ <translation id="8226742006292257240">ខាងក្រោមនេះគឺជាពាក្យសម្ងាត់ដែលបានបង្កើតដោយចៃដន្យ TPM ដែលត្រូវបានផ្ដល់ទៅឲ្យកុំព្យូទ័ររបស់អ្នក៖</translation> <translation id="8227119283605456246">ភ្ជាប់ឯកសារ</translation> <translation id="8230134520748321204">រក្សាទុកពាក្យសម្ងាត់សម្រាប់ <ph name="ORIGIN" />?</translation> +<translation id="8230672074305416752">មិនអាចភីងច្រកបណ្ដាញលំនាំដើមបានទេ</translation> <translation id="8234795456569844941">សូមជួយវិស្វកររបស់យើងក្នុងការដោះស្រាយបញ្ហានេះ។ ប្រាប់យើងអំពីអ្វីដែលបានកើតឡើង មុនពេលដែលអ្នកទទួលបានសារបញ្ហាអំពីកម្រងព័ត៌មាននេះ៖</translation> <translation id="8236917170563564587">ចែករំលែកផ្ទាំងនេះជំនួសវិញ</translation> <translation id="8237647586961940482">ផ្កាឈូកចាស់ និងក្រហម</translation> @@ -5959,6 +5989,7 @@ <translation id="8288032458496410887">លុប <ph name="APP" />...</translation> <translation id="8289128870594824098">ទំហំថាស</translation> <translation id="8291967909914612644">ប្រទេសនៃអ្នកផ្តល់សេវាកម្មនៅផ្ទះ</translation> +<translation id="8293206222192510085">បន្ថែមចំណាំ</translation> <translation id="8294431847097064396">ប្រភព</translation> <translation id="8297006494302853456">ខ្សោយ</translation> <translation id="8299319456683969623">បច្ចុប្បន្ននេះ អ្នកនៅក្រៅបណ្តាញ</translation> @@ -6008,6 +6039,7 @@ <translation id="8363095875018065315">ថេរ</translation> <translation id="8363142353806532503">បានទប់ស្កាត់មីក្រូហ្វូន</translation> <translation id="8363763184161554204">បានអនុញ្ញាត <ph name="PERMISSION" /></translation> +<translation id="8364946094152050673">ម៉ាស៊ីនមេឈ្មោះទទេ</translation> <translation id="8366396658833131068">ការភ្ជាប់បណ្តាញរបសអ្នកត្រូវបានស្តារ។ សូមជ្រើសរើសបណ្តាញផ្សេងទៀត ឬចុចប៊ូតុង 'បន្ត' ខាងក្រោមដើម្បីបើកដំណើរការកម្មវិធីបញ្ជរបស់អ្នក។</translation> <translation id="8368027906805972958">ឧបករណ៍ដែលមិនស្គាល់ ឬមិនអាចប្រើបាន (<ph name="DEVICE_ID" />)</translation> <translation id="8368859634510605990">បើកចំណាំទាំងអស់</translation> @@ -6093,8 +6125,10 @@ <translation id="8472623782143987204">ផ្នែករឹងបម្រុង</translation> <translation id="8473863474539038330">អាសយដ្ឋាន និងច្រើនទៀត</translation> <translation id="8475313423285172237">កម្មវិធីដ៏ទៃទៀតនៅលើកុំព្យូទ័ររបស់អ្នកបានបន្ថែមកម្មវិធីបន្ថែម ដែលអាចប្តូររបៀបដំណើរការរបស់ Chrome។</translation> +<translation id="8475690821716466388">បណ្ដាញ WiFi មានសុវត្ថិភាពជាមួយ WEP PSK ប្រូតូកូលខ្សោយ</translation> <translation id="8477241577829954800">បានជំនួស</translation> <translation id="8477384620836102176">ទូទៅ</translation> +<translation id="8477551185774834963">កម្រិតពន្យាររបស់ DNS ខ្ពស់ជាងកម្រិតអនុញ្ញាតបន្តិច</translation> <translation id="8480082892550707549">បើទោះបីជាអ្នកបានទាញយកឯកសារពីគេហទំព័រនេះពីមុនក៏ដោយ ក៏គេហទំព័រនេះអាចនឹងគ្មានសុវត្ថិជាបណ្ណោះអាសន្ន (បានវាយប្រហារ)។ សូមសាកល្បងទាញយកឯកសារនេះនៅពេលក្រោយ។</translation> <translation id="8480869669560681089">ឧបករណ៍មិនស្គាល់ពី <ph name="VENDOR_NAME" /></translation> <translation id="8481187309597259238">បញ្ជាក់ការអនុញ្ញាត USB</translation> @@ -6146,6 +6180,7 @@ <translation id="8546930481464505581">កំណត់របារប៉ះតាមបំណង</translation> <translation id="8547013269961688403">បើកកែវពង្រីកពេញអេក្រង់</translation> <translation id="85486688517848470">ចុចប៊ូតុងស្វែងរកឲ្យជាប់ ដើម្បីប្តូរលក្ខណៈគ្រាប់ចុចនៅជួរខាងលើ</translation> +<translation id="8549316893834449916">អ្នកនឹងប្រើគណនី Google របស់អ្នក ដើម្បីចូល Chromebook របស់អ្នក។ វាជាគណនីតែមួយដែលអ្នកប្រើសម្រាប់ Gmail, ថាស, YouTube និងអ្វីៗជាច្រើនទៀត។</translation> <translation id="8551388862522347954">អាជ្ញាប័ណ្ណ</translation> <translation id="8551588720239073785">ការកំណត់កាលបរិច្ឆេទ និងម៉ោង</translation> <translation id="8553342806078037065">គ្រប់គ្រងមនុស្សផ្សេងទៀត</translation> @@ -6284,6 +6319,7 @@ <translation id="8720200012906404956">កំពុងស្វែងរកបណ្ដាញទូរសព្ទចល័ត។ <ph name="BEGIN_LINK" />ស្វែងយល់បន្ថែម<ph name="END_LINK" /></translation> <translation id="8720816553731218127">ការចាប់ផ្ដើមលក្ខណៈសម្រាប់រយៈពេលដំឡើងបានអស់ម៉ោង។</translation> <translation id="8722912030556880711">បញ្ជូនទិន្នន័យប្រើប្រាស់ និងវិភាគ។ បច្ចុប្បន្ននេះ ឧបករណ៍នេះកំពុងបញ្ជូនទិន្នន័យនៃការវិភាគ ឧបករណ៍ និងការប្រើប្រាស់កម្មវិធីទៅ Google ដោយស្វ័យប្រវត្តិ។ ការធ្វើបែបនេះនឹងជួយដល់ស្ថិរភាពកម្មវិធី និងប្រព័ន្ធ ព្រមទាំងការកែលម្អផ្សេងទៀត។ ទិន្នន័យប្រមូលបានមួយចំនួនក៏នឹងជួយដល់កម្មវិធី និងដៃគូ Google ដូចជាអ្នកអភិវឌ្ឍន៍ Android ផងដែរ។ ប្រសិនបើការកំណត់សកម្មភាពកម្មវិធី និងគេហទំព័របន្ថែមរបស់អ្នកត្រូវបានបើក នោះទិន្នន័យនេះអាចត្រូវបានរក្សាទុកទៅក្នុងគណនី Google របស់អ្នក។ <ph name="BEGIN_LINK2" />ស្វែងយល់បន្ថែម<ph name="END_LINK2" /></translation> +<translation id="8723108084122415655">កម្រិតពន្យាររបស់បណ្ដាញមិនមែនលំនាំដើមខ្ពស់ពេក</translation> <translation id="8724405322205516354">នៅពេលដែលអ្នកឃើញរូបតំណាងនេះ សូមប្រើស្នាមម្រាមដៃរបស់អ្នកសម្រាប់ការកំណត់អត្តសញ្ញាណ ឬយល់ព្រមលើការទិញ។</translation> <translation id="8724409975248965964">បានបញ្ចូលស្នាមម្រាមដៃរួចហើយ</translation> <translation id="8724859055372736596">បង្ហាញនៅក្នុងថតឯកសារ</translation> @@ -6461,6 +6497,7 @@ <translation id="8909833622202089127">ទំព័រកំពុងតាមដានទីតាំងរបស់អ្នក</translation> <translation id="8910146161325739742">ចែករំលែកអេក្រង់របស់អ្នក</translation> <translation id="8910222113987937043">ការផ្លាស់ប្តូរនៅលើចំណាំ ប្រវត្តិ ពាក្យសម្ងាត់ និងការកំណត់ផ្សេងទៀតរបស់អ្នក នឹងមិនអាចធ្វើសមកាលកម្មទៅគណនី Google របស់អ្នកបានទៀតទេ។ ទោះបីជាយ៉ាងណាក៏ដោយ ទិន្នន័យដែលមានស្រាប់របស់អ្នកនៅតែផ្ទុកក្នុងគណនី Google ដដែល ហើយអ្នកអាចគ្រប់គ្រងវានៅលើ <ph name="BEGIN_LINK" />Google ផ្ទាំងគ្រប់គ្រង<ph name="END_LINK" />។</translation> +<translation id="8910721771319628100">កម្រិតពន្យាររបស់បណ្ដាញលំនាំដើមខ្ពស់ពេក</translation> <translation id="8912362522468806198">គណនី Google</translation> <translation id="8912793549644936705">លាតសន្ធឹង</translation> <translation id="8912810933860534797">បើកការស្កេនស្វ័យប្រវត្តិ</translation>
diff --git a/chrome/app/resources/generated_resources_kn.xtb b/chrome/app/resources/generated_resources_kn.xtb index db21b32a..37eba7f 100644 --- a/chrome/app/resources/generated_resources_kn.xtb +++ b/chrome/app/resources/generated_resources_kn.xtb
@@ -71,6 +71,7 @@ <translation id="1070705170564860382"><ph name="COUNTDOWN_SECONDS" /> ಸೆಕೆಂಡುಗಳಲ್ಲಿ ಪರ್ಯಾಯ ಬ್ರೌಸರ್ನಲ್ಲಿ ತೆರೆಯಲಾಗುತ್ತಿದೆ</translation> <translation id="1071917609930274619">ಡೇಟಾ ಎನ್ಸಿಫರ್ಮೆಂಟ್</translation> <translation id="1072700771426194907">USB ಸಾಧನವನ್ನು ಪತ್ತೆಹಚ್ಚಲಾಗಿದೆ</translation> +<translation id="107278043869924952">ಪಾಸ್ವರ್ಡ್ಗೆ ಹೆಚ್ಚುವರಿಯಾಗಿ ಪಿನ್ ಅನ್ನು ಬಳಸಿ</translation> <translation id="1076176485976385390">ಪಠ್ಯದ ಕರ್ಸರ್ ಮೂಲಕ ಪುಟಗಳನ್ನು ನ್ಯಾವಿಗೇಟ್ ಮಾಡಿ</translation> <translation id="1076698951459398590">ಥೀಮ್ ಸಕ್ರಿಯಗೊಳಿಸಿ</translation> <translation id="1076818208934827215">Microsoft Internet Explorer</translation> @@ -525,7 +526,6 @@ <translation id="1608668830839595724">ಆಯ್ದ ಐಟಂಗಳಿಗಾಗಿ ಹೆಚ್ಚಿನ ಕ್ರಿಯೆಗಳು</translation> <translation id="161042844686301425">ಹಸಿರುನೀಲಿ</translation> <translation id="1611432201750675208">ನಿಮ್ಮ ಸಾಧನವನ್ನು ಲಾಕ್ ಮಾಡಲಾಗಿದೆ</translation> -<translation id="1611584202130317952">ಸರಬರಾಜು ಹರಿವಿನಲ್ಲಿ ಅಡಚಣೆ ಉಂಟಾಗಿದೆ. ಪುನಃ ಪ್ರಯತ್ನಿಸಿ ಅಥವಾ ನಿಮ್ಮ ಸಾಧನದ ಮಾಲೀಕರು ಅಥವಾ ನಿರ್ವಾಹಕರನ್ನು ಸಂಪರ್ಕಕಿಸಿ.</translation> <translation id="1614511179807650956">ನಿಮ್ಮ ಮೊಬೈಲ್ ಡೇಟಾ ಭತ್ಯೆಯನ್ನು ನೀವು ಬಳಸಿರಬಹುದು. ಹೆಚ್ಚಿನ ಡೇಟಾವನ್ನು ಖರೀದಿಸಲು <ph name="NAME" /> ಸಕ್ರಿಯಗೊಳಿಸುವಿಕೆ ಪೋರ್ಟಲ್ಗೆ ಭೇಟಿ ನೀಡಿ</translation> <translation id="161460670679785907">ನಿಮ್ಮ ಫೋನ್ ಅನ್ನು ಪತ್ತೆ ಮಾಡಲು ಸಾಧ್ಯವಿಲ್ಲ</translation> <translation id="1616206807336925449">ಈ ವಿಸ್ತರಣೆಗೆ ಯಾವುದೇ ವಿಶೇಷ ಅನುಮತಿಗಳ ಅಗತ್ಯವಿಲ್ಲ.</translation> @@ -534,6 +534,7 @@ <translation id="1618268899808219593">ಸ&ಹಾಯ ಕೇಂದ್ರ</translation> <translation id="1620307519959413822">ಪಾಸ್ವರ್ಡ್ ತಪ್ಪಾಗಿದೆ. ಪುನಃ ಪ್ರಯತ್ನಿಸಿ ಅಥವಾ ಅದನ್ನು ಮರುಹೊಂದಿಸಲು ಪಾಸ್ವರ್ಡ್ ಮರೆತುಹೋಗಿದೆ ಕ್ಲಿಕ್ ಮಾಡಿ.</translation> <translation id="1620510694547887537">ಕ್ಯಾಮರಾ</translation> +<translation id="1621831347985899379"><ph name="DEVICE_TYPE" /> ಡೇಟಾವನ್ನು ಅಳಿಸಲಾಗುತ್ತದೆ</translation> <translation id="1622054403950683339">ವೈ-ಫೈ ನೆಟ್ವರ್ಕ್ ಮರೆಯಿರಿ</translation> <translation id="1623132449929929218">ಚಿತ್ರಗಳು ಪ್ರಸ್ತುತ ಲಭ್ಯವಿಲ್ಲ. ವಾಲ್ಪೇಪರ್ ಸಂಗ್ರಹಗಳನ್ನು ನೋಡಲು ದಯವಿಟ್ಟು ಇಂಟರ್ನೆಟ್ಗೆ ಮರುಸಂಪರ್ಕಿಸಿ.</translation> <translation id="1623723619460186680">ನೀಲಿ ಲೈಟ್ ಕಡಿಮೆಗೊಳಿಸುವಿಕೆ</translation> @@ -761,6 +762,7 @@ <translation id="1877377290348678128">ಲೇಬಲ್ (ಐಚ್ಛಿಕ)</translation> <translation id="1877520246462554164">ದೃಢೀಕರಣ ಟೋಕನ್ ಪಡೆಯಲು ವಿಫಲವಾಗಿದೆ. ಸೈನ್ ಔಟ್ ಆಗಿ ಮತ್ತೆ ಸೈನ್ ಇನ್ ಆಗಿ ಪ್ರಯತ್ನಿಸಿ.</translation> <translation id="1877860345998737529">ಕ್ರಿಯೆಯ ನಿಯೋಜನೆಯನ್ನು ಬದಲಿಸಿ</translation> +<translation id="1878155070920054810">ಅಪ್ಡೇಟ್ ಪೂರ್ಣವಾಗುವ ಮೊದಲೇ ನಿಮ್ಮ Chromebook ನ ಪವರ್ ಖಾಲಿಯಾಗುವಂತೆ ಕಾಣುತ್ತಿದೆ. ಅಡಚಣೆಯನ್ನು ತಪ್ಪಿಸಲು, ಅದು ಸರಿಯಾಗಿ ಚಾರ್ಜ್ ಆಗುತ್ತಿದೆ ಎಂಬುದನ್ನು ಖಚಿತಪಡಿಸಿಕೊಳ್ಳಿ.</translation> <translation id="1879000426787380528">ಇದರಂತೆ ಸೈನ್ ಇನ್ ಮಾಡಿ</translation> <translation id="1880905663253319515">"<ph name="CERTIFICATE_NAME" />" ಪ್ರಮಾಣಪತ್ರವನ್ನು ಅಳಿಸುವುದೆ?</translation> <translation id="1881445033931614352">ಕೀಬೋರ್ಡ್ ವಿನ್ಯಾಸ</translation> @@ -965,6 +967,7 @@ <translation id="2148219725039824548">ಹಂಚಿಕೆಯನ್ನು ಅಳವಡಿಸುವುದರಲ್ಲಿ ದೋಷವಿದೆ. ನಿರ್ದಿಷ್ಟಪಡಿಸಿದ ಹಂಚಿಕೆಯು ನೆಟ್ವರ್ಕ್ನಲ್ಲಿ ಕಂಡುಬಂದಿಲ್ಲ.</translation> <translation id="2148756636027685713">ಫಾರ್ಮ್ಯಾಟ್ ಮಾಡುವಿಕೆ ಮುಗಿದಿದೆ</translation> <translation id="2148892889047469596">ಟ್ಯಾಬ್ ಬಿತ್ತರಿಸಿ</translation> +<translation id="2149973817440762519">ಬುಕ್ಮಾರ್ಕ್ ಎಡಿಟ್ ಮಾಡಿ</translation> <translation id="2150139952286079145">ಗಮ್ಯಸ್ಥಾನಗಳನ್ನು ಹುಡುಕಿ</translation> <translation id="2150661552845026580">"<ph name="EXTENSION_NAME" />" ಅನ್ನು ಸೇರಿಸುವುದೇ?</translation> <translation id="2151576029659734873">ಅಮಾನ್ಯ ಟ್ಯಾಬ್ ಸೂಚಿಕೆಯನ್ನು ನಮೂದಿಸಲಾಗಿದೆ.</translation> @@ -1074,6 +1077,7 @@ <translation id="2270627217422354837">ಡೊಮೇನ್ಗಳಲ್ಲಿನ ಯಾವುದೇ ಸಾಧನದೊಂದಿಗೆ ಡೇಟಾ ವಿನಿಮಯ ಮಾಡಿ: <ph name="DOMAINS" /></translation> <translation id="2272570998639520080">ಮಾರ್ಟಿನಿ ಗಾಜು</translation> <translation id="2273119997271134996">ಡಾಕ್ ವೀಡಿಯೊ-ಪೋರ್ಟ್ ಸಮಸ್ಯೆಯಿದೆ</translation> +<translation id="2274840746523584236">ನಿಮ್ಮ Chromebook ಅನ್ನು ಚಾರ್ಜ್ ಮಾಡಿ</translation> <translation id="2276503375879033601">ಇನ್ನಷ್ಟು ಅಪ್ಲಿಕೇಶನ್ಗಳನ್ನು ಸೇರಿಸಿ</translation> <translation id="2277255602909579701">ಎಲ್ಲ ಕುಕೀಗಳು ಮತ್ತು ಸೈಟ್ ಡೇಟಾ</translation> <translation id="2277769717710009150">{COUNT,plural, =1{1 ಐಟಂ ನಕಲಿಸಲಾಗಿದೆ}one{# ಐಟಂಗಳನ್ನು ನಕಲಿಸಲಾಗಿದೆ}other{# ಐಟಂಗಳನ್ನು ನಕಲಿಸಲಾಗಿದೆ}}</translation> @@ -1915,6 +1919,7 @@ <translation id="3308116878371095290">ಕುಕ್ಕಿಗಳನ್ನು ಹೊಂದಿಸದಂತೆ ಈ ಪುಟವನ್ನು ತಡೆಗಟ್ಟಲಾಗಿದೆ.</translation> <translation id="3308134619352333507">ಬಟನ್ ಅನ್ನು ಮರೆಮಾಡು</translation> <translation id="3308852433423051161">Google ಅಸಿಸ್ಟೆಂಟ್ ಅನ್ನು ಲೋಡ್ ಮಾಡಲಾಗುತ್ತಿದೆ...</translation> +<translation id="3310640316857623290">ಅನುಮತಿಸಬಹುದಾದ ಥ್ರೆಶ್ಹೋಲ್ಡ್ಗಿಂತ DNS ವಿಳಂಬವು ಗಮನಾರ್ಹವಾಗಿ ಮೇಲಿದೆ</translation> <translation id="3311445899360743395">ಈ ಆ್ಯಪ್ ಜೊತೆಗೆ ಸಂಯೋಜಿತವಾಗಿರುವ ಡೇಟಾವನ್ನು ಈ ಸಾಧನದಿಂದ ತೆಗೆದುಹಾಕಲಾಗುತ್ತದೆ.</translation> <translation id="3312424061798279731">ಸಕ್ರಿಯಗೊಳಿಸಲಾದ ಭಾಷೆಗಳು</translation> <translation id="3313622045786997898">ಪ್ರಮಾಣಪತ್ರ ಸಹಿ ಮೌಲ್ಯ</translation> @@ -1927,6 +1932,7 @@ <translation id="3323295311852517824">{NUM_FILES,plural, =0{ಈ ಡೇಟಾ ಸೂಕ್ಷ್ಮ ಅಥವಾ ಅಪಾಯಕಾರಿ ವಿಷಯವನ್ನು ಒಳಗೊಂಡಿದೆ. ಈ ವಿಷಯವನ್ನು ತೆಗೆದುಹಾಕಿ ಹಾಗೂ ಪುನಃ ಪ್ರಯತ್ನಿಸಿ.}=1{ಈ ಫೈಲ್ ಸೂಕ್ಷ್ಮ ಅಥವಾ ಅಪಾಯಕಾರಿ ವಿಷಯವನ್ನು ಒಳಗೊಂಡಿದೆ. ಈ ವಿಷಯವನ್ನು ತೆಗೆದುಹಾಕಿ ಹಾಗೂ ಪುನಃ ಪ್ರಯತ್ನಿಸಿ.}one{ಈ ಫೈಲ್ಗಳು ಸೂಕ್ಷ್ಮ ಅಥವಾ ಅಪಾಯಕಾರಿ ವಿಷಯವನ್ನು ಒಳಗೊಂಡಿದೆ. ಈ ವಿಷಯವನ್ನು ತೆಗೆದುಹಾಕಿ ಹಾಗೂ ಪುನಃ ಪ್ರಯತ್ನಿಸಿ.}other{ಈ ಫೈಲ್ಗಳು ಸೂಕ್ಷ್ಮ ಅಥವಾ ಅಪಾಯಕಾರಿ ವಿಷಯವನ್ನು ಒಳಗೊಂಡಿದೆ. ಈ ವಿಷಯವನ್ನು ತೆಗೆದುಹಾಕಿ ಹಾಗೂ ಪುನಃ ಪ್ರಯತ್ನಿಸಿ.}}</translation> <translation id="3323521181261657960">ಬೋನಸ್! ನೀವು ಇನ್ನಷ್ಟು ವೀಕ್ಷಣಾ ಅವಧಿಯನ್ನು ಪಡೆದಿದ್ದೀರಿ</translation> <translation id="3325910708063135066">Mac ಸಿಸ್ಟಂ ಆದ್ಯತೆಗಳಲ್ಲಿ ಕ್ಯಾಮರಾ ಹಾಗೂ ಮೈಕ್ರೋಫೋನ್ ಅನ್ನು ಆಫ್ ಮಾಡಲಾಗಿದೆ</translation> +<translation id="3327050066667856415">Chromebooks ಅನ್ನು ಸುರಕ್ಷತೆಗಾಗಿ ವಿನ್ಯಾಸಗೊಳಿಸಲಾಗಿದೆ. ನಿಮ್ಮ ಸಾಧನವನ್ನು ಮಾಲ್ವೇರ್ನಿಂದ ಸ್ವಯಂಚಾಲಿತವಾಗಿ ರಕ್ಷಿಸಲಾಗಿದೆ - ಹೆಚ್ಚುವರಿ ಸಾಫ್ಟ್ವೇರ್ನ ಅಗತ್ಯವಿಲ್ಲ.</translation> <translation id="3328489342742826322">ಬ್ಯಾಕಪ್ ಮೂಲಕ ಮರುಸ್ಥಾಪಿಸುವುದರಿಂದ ನಿಮ್ಮ Linux ಫೈಲ್ಗಳ ಫೋಲ್ಡರ್ನಲ್ಲಿ ಅಸ್ತಿತ್ವದಲ್ಲಿರುವ Linux ಆ್ಯಪ್ಗಳು ಹಾಗೂ ಡೇಟಾವನ್ನು ಅಳಿಸುತ್ತದೆ.</translation> <translation id="3331321258768829690">(<ph name="UTCOFFSET" />) <ph name="LONGTZNAME" /> (<ph name="EXEMPLARCITY" />)</translation> <translation id="3331974543021145906">ಅಪ್ಲಿಕೇಶನ್ ಮಾಹಿತಿ</translation> @@ -2116,6 +2122,7 @@ <translation id="3556433843310711081">ನಿಮ್ಮ ಮ್ಯಾನೇಜರ್ ನಿಮಗಾಗಿ ಅದನ್ನು ಅನಿರ್ಬಂಧಿಸಬಹುದಾಗಿದೆ</translation> <translation id="3557101512409028104">Family Link ಮೂಲಕ ವೆಬ್ಸೈಟ್ ನಿರ್ಬಂಧನೆಗಳು ಮತ್ತು ವೀಕ್ಷಣಾ ಅವಧಿಯನ್ನು ಹೊಂದಿಸಿ</translation> <translation id="3559262020195162408">ಸಾಧನದಲ್ಲಿ ಕಾರ್ಯನೀತಿಯನ್ನು ಇನ್ಸ್ಟಾಲ್ ಮಾಡಲು ವಿಫಲವಾಗಿದೆ.</translation> +<translation id="3559533181353831840"><ph name="TIME_LEFT" /> ಸಮಯ ಬಾಕಿ ಉಳಿದಿದೆ</translation> <translation id="3560034655160545939">&ಕಾಗುಣಿತ ಪರೀಕ್ಷೆ</translation> <translation id="3562423906127931518">ಈ ಪ್ರಕ್ರಿಯೆಗೆ ಕೆಲವು ನಿಮಿಷಗಳ ಕಾಲಾವಕಾಶ ಬೇಕಾಗಬಹುದು. Linux ಕಂಟೇನರ್ ಅನ್ನು ಸೆಟಪ್ ಮಾಡಲಾಗುತ್ತಿದೆ.</translation> <translation id="3563432852173030730">ಕಿಯೋಸ್ಕ್ ಅಪ್ಲಿಕೇಶನ್ ಡೌನ್ಲೋಡ್ ಮಾಡಲು ಸಾಧ್ಯವಿಲ್ಲ.</translation> @@ -2158,6 +2165,7 @@ <translation id="3602290021589620013">ಪೂರ್ವವೀಕ್ಷಣೆ</translation> <translation id="3603622770190368340">ನೆಟ್ವರ್ಕ್ ಪ್ರಮಾಣಪತ್ರವನ್ನು ಪಡೆದುಕೊಳ್ಳಿ</translation> <translation id="3604713164406837697">ವಾಲ್ಪೇಪರ್ ಬದಲಿಸಿ</translation> +<translation id="360565022852130722">ದುರ್ಬಲ ಪ್ರೋಟೋಕಾಲ್ WEP 802.1x ಮೂಲಕ ವೈಫೈ ನೆಟ್ವರ್ಕ್ ರಕ್ಷಿಸಲಾಗಿದೆ</translation> <translation id="3605780360466892872">ಬಟನ್ಡೌನ್</translation> <translation id="3608576286259426129">ಬಳಕೆದಾರರ ಚಿತ್ರದ ಪೂರ್ವವೀಕ್ಷಣೆ</translation> <translation id="3610369246614755442">ಡಾಕ್ ಫ್ಯಾನ್ಗೆ ದುರಸ್ತಿಯ ಅಗತ್ಯವಿದೆ</translation> @@ -2194,6 +2202,7 @@ <translation id="3639220004740062347">ರೀಡರ್ ಮೋಡ್ನಿಂದ ನಿರ್ಗಮಿಸಿ</translation> <translation id="3640214691812501263"><ph name="USER_NAME" /> ಬಳಕೆದಾರರಿಗೆ "<ph name="EXTENSION_NAME" />" ವಿಸ್ತರಣೆಯನ್ನು ಸೇರಿಸುವುದೇ?</translation> <translation id="3640613767643722554">ನಿಮ್ಮ ಅಸಿಸ್ಟೆಂಟ್ಗೆ ನಿಮ್ಮ ಧ್ವನಿಯನ್ನು ಗುರುತಿಸಲು ಕಲಿಸಿ</translation> +<translation id="3643014427358482789">ADB ಡೀಬಗ್ ಮಾಡುವಿಕೆಯನ್ನು <ph name="DOMAIN" /> ನಿಷ್ಕ್ರಿಯಗೊಳಿಸುತ್ತಿದೆ, ಇದು ನಿಮ್ಮ <ph name="DEVICE_TYPE" /> ಅನ್ನು ಮರುಹೊಂದಿಸುತ್ತದೆ. ಮರುಪ್ರಾರಂಭಿಸುವ ಮೊದಲು ನಿಮ್ಮ ಫೈಲ್ಗಳನ್ನು ಬ್ಯಾಕಪ್ ಮಾಡಿ</translation> <translation id="3645372836428131288">ಫಿಂಗರ್ಪ್ರಿಂಟ್ನ ಬೇರೊಂದು ಭಾಗವನ್ನು ಸೆರೆಹಿಡಿಯಲು ಬೆರಳನ್ನು ನಿಧಾನವಾಗಿ ಸರಿಸಿ.</translation> <translation id="3647998456578545569">{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="3648348069317717750"><ph name="USB_DEVICE_NAME" /> ಪತ್ತೆ ಮಾಡಲಾಗಿದೆ</translation> @@ -2282,6 +2291,7 @@ <translation id="3732857534841813090">Google Assistant ಸಂಬಂಧಿತ ಮಾಹಿತಿ</translation> <translation id="3733127536501031542">ಹೆಚ್ಚುವಿಕೆಯೊಂದಿಗೆ SSL ಸರ್ವರ್</translation> <translation id="3735740477244556633">ಈ ಪ್ರಕಾರ ವಿಂಗಡಿಸಿ</translation> +<translation id="3738632186060045350"><ph name="DEVICE_TYPE" /> ಡೇಟಾವನ್ನು 24 ಗಂಟೆಗಳಲ್ಲಿ ಅಳಿಸಲಾಗುತ್ತದೆ</translation> <translation id="3738924763801731196"><ph name="OID" />:</translation> <translation id="3739254215541673094"><ph name="APPLICATION" /> ತೆರೆಯುವುದೇ?</translation> <translation id="3742055079367172538">ಸ್ಕ್ರಿನ್ಶಾಟ್ ತೆಗೆದುಕೊಳ್ಳಲಾಗಿದೆ</translation> @@ -2469,6 +2479,7 @@ <translation id="3937734102568271121">ಯಾವಾಗಲೂ ಅನುವಾದಿಸಿ <ph name="LANGUAGE" /></translation> <translation id="3938128855950761626"><ph name="VENDOR_ID" /> ಮಾರಾಟಗಾರರಿಂದ ಸಾಧನಗಳು</translation> <translation id="3940233957883229251">ಸ್ವಯಂ-ಪುನರಾವರ್ತನೆ ಸಕ್ರಿಯಗೊಳಿಸಿ</translation> +<translation id="3941014780699102620">ಹೋಸ್ಟ್ ಅನ್ನು ಪರಿಹರಿಸಲು ವಿಫಲವಾಗಿದೆ</translation> <translation id="3941565636838060942">ಈ ಪ್ರೋಗ್ರಾಂಗೆ ಪ್ರವೇಶವನ್ನು ಮರೆಮಾಡಲು, ನಿಯಂತ್ರಣ ಫಲಕದಲ್ಲಿ <ph name="CONTROL_PANEL_APPLET_NAME" /> ಅನ್ನು ಬಳಸಿಕೊಂಡು ನೀವದನ್ನು ಅನ್ಇನ್ಸ್ಟಾಲ್ ಮಾಡಬೇಕಾಗುತ್ತದೆ. @@ -2631,6 +2642,7 @@ <translation id="413121957363593859">ಘಟಕಾಂಶಗಳು</translation> <translation id="4131410914670010031">ಕಪ್ಪು ಮತ್ತು ಬಿಳುಪು</translation> <translation id="413193092008917129">ನೆಟ್ವರ್ಕ್ ಡಯಾಗ್ನಾಸ್ಟಿಕ್ ದಿನಚರಿಗಳು</translation> +<translation id="4132183752438206707">Google Play ಸ್ಟೋರ್ನಲ್ಲಿ ಆ್ಯಪ್ಗಳನ್ನು ಹುಡುಕಿ</translation> <translation id="4133076602192971179">ನಿಮ್ಮ ಪಾಸ್ವರ್ಡ್ ಅನ್ನು ಬದಲಾಯಿಸಲು ಆ್ಯಪ್ ಅನ್ನು ತೆರೆಯಿರಿ</translation> <translation id="4136203100490971508">ನೈಟ್ ಲೈಟ್ ಸೂರ್ಯೋದಯದ ಸಮಯದಲ್ಲಿ ಸ್ವಯಂಚಾಲಿತವಾಗಿ ಆಫ್ ಆಗುತ್ತದೆ</translation> <translation id="41365691917097717">ಮುಂದುವರಿಸಿದರೆ, Android ಆ್ಯಪ್ಗಳನ್ನು ರಚಿಸಲು ಮತ್ತು ಪರೀಕ್ಷಿಸಲು ADB ಡೀಬಗ್ ಮಾಡುವಿಕೆಯನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಲಾಗುತ್ತದೆ. ಇದು Google ನಿಂದ ದೃಢೀಕರಿಸದ Android ಆ್ಯಪ್ಗಳನ್ನು ಇನ್ಸ್ಟಾಲ್ ಮಾಡಲು ಅನುಮತಿಸುತ್ತದೆ ಎಂಬುದನ್ನು ಗಮನಿಸಿ ಹಾಗೂ ಇದನ್ನು ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಲು ಫ್ಯಾಕ್ಟರಿ ಸೆಟ್ಟಿಂಗ್ಗಳಿಗೆ ಮರುಹೊಂದಿಸುವ ಅಗತ್ಯವಿದೆ.</translation> @@ -2880,6 +2892,8 @@ <translation id="4479877282574735775">ವರ್ಚುವಲ್ ಯಂತ್ರವನ್ನು ಕಾನ್ಫಿಗರ್ ಮಾಡಲಾಗುತ್ತಿದೆ. ಇದು ಕೆಲವು ನಿಮಿಷಗಳ ಕಾಲಾವಕಾಶವನ್ನು ತೆಗೆದುಕೊಳ್ಳಬಹುದು.</translation> <translation id="4480590691557335796">Chrome, ನಿಮ್ಮ ಕಂಪ್ಯೂಟರ್ನಲ್ಲಿ ಹಾನಿಕಾರಕ ಸಾಫ್ಟ್ವೇರ್ ಅನ್ನು ಕಂಡುಹಿಡಿಯಬಲ್ಲುದು ಮತ್ತು ಅದನ್ನು ತೆಗೆದುಹಾಕಬಲ್ಲುದು</translation> <translation id="4481530544597605423">ಜೋಡಿಯಾಗಿರದ ಸಾಧನಗಳು</translation> +<translation id="4483049906298469269">ಡೀಫಾಲ್ಟ್ ಅಲ್ಲದ ನೆಟ್ವರ್ಕ್ ಗೇಟ್ವೇಗೆ ಪಿಂಗ್ ಮಾಡಲು ವಿಫಲವಾಗಿದೆ</translation> +<translation id="4487489714832036847">ಸಾಂಪ್ರದಾಯಿಕ ಸಾಫ್ಟ್ವೇರ್ ಬದಲಾಗಿ Chromebook ಗಳು ಆ್ಯಪ್ಗಳನ್ನು ಬಳಸುತ್ತದೆ. ಉತ್ಪಾದಕತೆ, ಮನರಂಜನೆ ಮತ್ತು ಇನ್ನಷ್ಟವುಗಳಿಗಾಗಿ ಆ್ಯಪ್ಗಳನ್ನು ಪಡೆದುಕೊಳ್ಳಿ.</translation> <translation id="4488502501195719518">ಎಲ್ಲಾ ಡೇಟಾವನ್ನು ತೆರವುಗೊಳಿಸುವುದೇ?</translation> <translation id="4493468155686877504">ಶಿಫಾರಸು ಮಾಡಲಾಗಿರುವುದು (<ph name="INSTALL_SIZE" />)</translation> <translation id="4495419450179050807">ಈ ಪುಟದಲ್ಲಿ ತೋರಿಸಬೇಡ</translation> @@ -2930,6 +2944,7 @@ <translation id="4546692474302123343">Google Assistant ಧ್ವನಿ ಇನ್ಪುಟ್</translation> <translation id="4547659257713117923">ಇತರ ಸಾಧನಗಳಿಂದ ಯಾವುದೇ ಟ್ಯಾಬ್ಗಳಿಲ್ಲ</translation> <translation id="4547672827276975204">ಸ್ವಯಂಚಾಲಿತವಾಗಿ ಹೊಂದಿಸಿ</translation> +<translation id="4548483925627140043">ಸಿಗ್ನಲ್ ಕಂಡುಬಂದಿಲ್ಲ</translation> <translation id="4549791035683739768">ನಿಮ್ಮ ಭದ್ರತಾ ಕೀಯಲ್ಲಿ ಯಾವುದೇ ಫಿಂಗರ್ಪ್ರಿಂಟ್ಗಳನ್ನು ಸಂಗ್ರಹಣೆ ಮಾಡಿಲ್ಲ</translation> <translation id="4551763574344810652">ರದ್ದುಮಾಡಲು <ph name="MODIFIER_KEY_DESCRIPTION" /> ಅನ್ನು ಒತ್ತಿರಿ</translation> <translation id="4552089082226364758">ಫ್ಲ್ಯಾಶ್</translation> @@ -2969,6 +2984,7 @@ <translation id="4582563038311694664">ಎಲ್ಲ ಸೆಟ್ಟಿಂಗ್ಗಳನ್ನು ಮರುಹೊಂದಿಸಿ</translation> <translation id="4585793705637313973">ಪುಟ ಎಡಿಟ್ ಮಾಡಿ</translation> <translation id="4586275095964870617"><ph name="URL" /> ಅನ್ನು ಪರ್ಯಾಯ ಬ್ರೌಸರ್ನಲ್ಲಿ ತೆರೆಯಲಾಗುವುದಿಲ್ಲ. ದಯವಿಟ್ಟು ನಿಮ್ಮ ಸಿಸ್ಟಂ ನಿರ್ವಾಹಕರನ್ನು ಸಂಪರ್ಕಿಸಿ.</translation> +<translation id="458794348635939462">ಎಲ್ಲಾ ಹೋಸ್ಟ್ಗಳನ್ನು ಪರಿಹರಿಸಲು ವಿಫಲವಾಗಿದೆ</translation> <translation id="4589713469967853491">ಡೌನ್ಲೋಡ್ಗಳ ಡೈರೆಕ್ಟರಿಯಲ್ಲಿ ಲಾಗ್ಗಳನ್ನು ಯಶಸ್ವಿಯಾಗಿ ಬರೆಯಲಾಗಿದೆ.</translation> <translation id="4590324241397107707">ಡೇಟಾಬೇಸ್ ಸಂಗ್ರಹಣೆ</translation> <translation id="4592891116925567110">ಸ್ಟೈಲಸ್ ರೇಖಾಚಿತ್ರದ ಆ್ಯಪ್</translation> @@ -3353,6 +3369,7 @@ <translation id="5089810972385038852">ರಾಜ್ಯ</translation> <translation id="5094721898978802975">ಸಹಕರಿಸುವ ಸ್ಥಳೀಯ ಅಪ್ಲಿಕೇಶನ್ಗಳೊಂದಿಗೆ ಸಂವಹಿಸಿ</translation> <translation id="5097002363526479830">'<ph name="NAME" />' ನೆಟ್ವರ್ಕ್ಗೆ ಸಂಪರ್ಕಿಸಲು ವಿಫಲವಾಗಿದೆ: <ph name="DETAILS" /></translation> +<translation id="5097649414558628673">ಪರಿಕರ: <ph name="PRINT_NAME" /></translation> <translation id="5097874180538493929">ಕರ್ಸರ್ ಚಲಿಸುವುದು ನಿಂತಾಗ ಸ್ವಯಂಚಾಲಿತವಾಗಿ ಕ್ಲಿಕ್ ಮಾಡಿ</translation> <translation id="5101042277149003567">ಎಲ್ಲಾ ಬುಕ್ಮಾರ್ಕ್ಗಳನ್ನು ತೆರೆಯಿರಿ</translation> <translation id="5101839224773798795">ಕರ್ಸರ್ ನಿಂತಾಗ, ಸ್ವಯಂಚಾಲಿತವಾಗಿ ಕ್ಲಿಕ್ ಮಾಡಿ</translation> @@ -3571,6 +3588,7 @@ <translation id="5370819323174483825">&ಮರುಲೋಡ್</translation> <translation id="5372529912055771682">ಪೂರೈಸಿದ ದಾಖಲಾತಿ ಮೋಡ್ ಆಪರೇಟಿಂಗ್ ಸಿಸ್ಟಂನ ಈ ಆವೃತ್ತಿಯ ಮೂಲಕ ಬೆಂಬಲಿತವಾಗಿಲ್ಲ. ನೀವು ಹೊಸ ಆವೃತ್ತಿಯನ್ನು ಚಾಲನೆಗೊಳಿಸುತ್ತಿರುವಿರಿ ಎಂಬುದನ್ನು ದಯವಿಟ್ಟು ಖಚಿತಪಡಿಸಿಕೊಳ್ಳಿ ಮತ್ತು ಪುನಃ ಪ್ರಯತ್ನಿಸಿ.</translation> <translation id="5372579129492968947">ವಿಸ್ತರಣೆಯನ್ನು ಅನ್ಪಿನ್ ಮಾಡಿ</translation> +<translation id="5372659122375744710">ವೈಫೈ ನೆಟ್ವರ್ಕ್ ಸುರಕ್ಷಿತವಾಗಿಲ್ಲ</translation> <translation id="5376169624176189338">ಹಿಂದಕ್ಕೆ ಹೋಗಲು ಕ್ಲಿಕ್ ಮಾಡಿ, ಇತಿಹಾಸ ವೀಕ್ಷಿಸಲು ಒತ್ತಿಹಿಡಿಯಿರಿ</translation> <translation id="5376931455988532197">ಫೈಲ್ ತುಂಬಾ ದೊಡ್ಡದಾಗಿದೆ</translation> <translation id="5377721922656071359">{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> @@ -3600,6 +3618,7 @@ <translation id="5414566801737831689">ನೀವು ಭೇಟಿ ನೀಡುವ ವೆಬ್ಸೈಟ್ಗಳ ಐಕಾನ್ಗಳನ್ನು ಓದಿರಿ</translation> <translation id="5417312524372586921">ಬ್ರೌಸರ್ ಥೀಮ್ಗಳು</translation> <translation id="5419405654816502573">ಧ್ವನಿ ಹೊಂದಾಣಿಕೆ</translation> +<translation id="5420274697768050645">ಹೆಚ್ಚಿನ ಸುರಕ್ಷತೆಗಾಗಿ ಸಾಧನವನ್ನು ಅನ್ಲಾಕ್ ಮಾಡಲು ಪಾಸ್ವರ್ಡ್ನ ಅಗತ್ಯವಿದೆ</translation> <translation id="5420438158931847627">ಪಠ್ಯ ಮತ್ತು ಚಿತ್ರಗಳ ತೀಕ್ಷ್ಣತೆಯನ್ನು ನಿರ್ಧರಿಸುತ್ತದೆ</translation> <translation id="5422221874247253874">ಪ್ರವೇಶ ಬಿಂದು</translation> <translation id="5422781158178868512">ಕ್ಷಮಸಿ, ನಿಮ್ಮ ಬಾಹ್ಯ ಸಂಗ್ರಹಣೆಯ ಸಾಧನವನ್ನು ಗುರುತಿಸಲಾಗಲಿಲ್ಲ.</translation> @@ -3724,6 +3743,7 @@ <translation id="5548606607480005320">ಸುರಕ್ಷತೆಯ ಪರಿಶೀಲನೆ</translation> <translation id="5551573675707792127">ಕೀಬೋರ್ಡ್ ಮತ್ತು ಪಠ್ಯ ಇನ್ಪುಟ್</translation> <translation id="5553089923092577885">ಪ್ರಮಾಣಪತ್ರ ನೀತಿ ಮ್ಯಾಪಿಂಗ್ಗಳು</translation> +<translation id="5554403733534868102">ಇದರ ನಂತರ ಅಪ್ಡೇಟ್ಗಳಿಗಾಗಿ ಕಾಯಬೇಕಾಗಿಲ್ಲ</translation> <translation id="5554489410841842733">ಈ ವಿಸ್ತರಣೆಯು ಪ್ರಸ್ತುತ ಪುಟದಲ್ಲಿ ಕಾರ್ಯನಿರ್ವಹಿಸಬಹುದಾದಾಗ ಈ ಐಕಾನ್ ಕಾಣಿಸಿಕೊಳ್ಳುತ್ತದೆ.</translation> <translation id="5554720593229208774">ಇಮೇಲ್ ಪ್ರಮಾಣಪತ್ರದ ಪ್ರಾಧಿಕಾರ</translation> <translation id="5556459405103347317">ಮರುಲೋಡ್</translation> @@ -4138,6 +4158,7 @@ <translation id="6061882183774845124">ನಿಮ್ಮ ಸಾಧನಗಳಿಗೆ ಲಿಂಕ್ ಕಳುಹಿಸಿ</translation> <translation id="6064217302520318294">ಸ್ಕ್ರೀನ್ ಲಾಕ್</translation> <translation id="6065289257230303064">ಪ್ರಮಾಣಪತ್ರ ವಿಷಯ ಡೈರೆಕ್ಟರಿ ಆಟ್ರಿಬ್ಯೂಟ್ಗಳು</translation> +<translation id="6069464830445383022">ನಿಮ್ಮ Google ಖಾತೆಯು ನಿಮ್ಮ Chromebook ಸೈನ್ ಇನ್ ಆಗಿದೆ</translation> <translation id="6069671174561668781">ವಾಲ್ಪೇಪರ್ ಹೊಂದಿಸಿ</translation> <translation id="6071181508177083058">ಪಾಸ್ವರ್ಡ್ ಅನ್ನು ಖಚಿತಪಡಿಸು</translation> <translation id="6071576563962215370">ಸಾಧನ ಇನ್ಸ್ಟಾಲೇಶನ್-ಸಮಯದ ಗುಣಲಕ್ಷಣಗಳ ಲಾಕ್ ಅನ್ನು ಸ್ಥಾಪಿಸಲು ಸಿಸ್ಟಂ ವಿಫಲವಾಗಿದೆ.</translation> @@ -4180,6 +4201,7 @@ <translation id="6104311680260824317">ಡೊಮೇನ್ಗೆ ಸಾಧನವನ್ನು ಸೇರಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ. ನಿರ್ದಿಷ್ಟ Kerberos ಎನ್ಕ್ರಿಪ್ಶನ್ ಪ್ರಕಾರಗಳನ್ನು ಸರ್ವರ್ ಬೆಂಬಲಿಸುವುದಿಲ್ಲ. ಎನ್ಕ್ರಿಪ್ಶನ್ ಸೆಟ್ಟಿಂಗ್ಗಳಿಗಾಗಿ "ಇನ್ನಷ್ಟು ಆಯ್ಕೆಗಳನ್ನು" ಪರಿಶೀಲಿಸಿ.</translation> <translation id="6104796831253957966">ಪ್ರಿಂಟರ್ ಸರದಿಯು ಭರ್ತಿಯಾಗಿದೆ</translation> <translation id="6105994589138235234">Chrome ಬ್ರೌಸರ್ ಸಿಂಕ್</translation> +<translation id="6108689792487843350">ಗೇಟ್ವೇ ತಲುಪಲಾಗುತ್ತಿಲ್ಲ</translation> <translation id="6111972606040028426">Google Assistant ಅನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಿ</translation> <translation id="6112294629795967147">ಮರುಗಾತ್ರಗೊಳಿಸಲು ಸ್ಪರ್ಶಿಸಿ</translation> <translation id="6112727384379533756">ಟಿಕೆಟ್ ಅನ್ನು ಸೇರಿಸಿ</translation> @@ -4240,6 +4262,7 @@ <translation id="6178664161104547336">ಒಂದು ಪ್ರಮಾಣಪತ್ರವನ್ನು ಆಯ್ಕೆ ಮಾಡಿ</translation> <translation id="6181431612547969857">ಡೌನ್ಲೋಡ್ ನಿರ್ಬಂಧಿಸಲಾಗಿದೆ</translation> <translation id="6185132558746749656">ಸಾಧನದ ಸ್ಥಳ</translation> +<translation id="6191293864534840972">ದೋಷಪೂರಿತ ಹೆಸರಿನ ಸರ್ವರ್ಗಳು</translation> <translation id="6195446518998936840">ಪೋಷಕ ನಿಯಂತ್ರಣಗಳನ್ನು ಸೆಟಪ್ ಮಾಡಲು ನಿಮ್ಮ ಮಗು Google ಖಾತೆಯನ್ನು ಹೊಂದಿರಬೇಕು, ಅದನ್ನು ನಿರ್ವಹಿಸಲು ನೀವು ಸಹಾಯ ಮಾಡುತ್ತೀರಿ. Family Link ಆ್ಯಪ್ ಮೂಲಕ ನೀವು ವೀಕ್ಷಣಾ ಅವಧಿ ಮಿತಿಗಳನ್ನು ಹೊಂದಿಸಬಹುದು, ವೆಬ್ಸೈಟ್ಗಳನ್ನು ಅನುಮೋದಿಸಬಹುದು ಅಥವಾ ನಿರ್ಬಂಧಿಸಬಹುದು ಮತ್ತು ಇನ್ನಷ್ಟವುಗಳನ್ನು ಮಾಡಬಹುದು.</translation> <translation id="6195693561221576702">ಈ ಸಾಧನವನ್ನು ಆಫ್ಲೈನ್ ಡೆಮೊ ಮೋಡ್ನಲ್ಲಿ ಸೆಟಪ್ ಮಾಡಲು ಸಾಧ್ಯವಿಲ್ಲ.</translation> <translation id="6196640612572343990">ಥರ್ಡ್ ಪಾರ್ಟಿ ಕುಕೀಗಳನ್ನು ನಿರ್ಬಂಧಿಸಿ</translation> @@ -4453,6 +4476,7 @@ <translation id="6451591602925140504">{NUM_PAGES,plural, =0{<ph name="PAGE_TITLE" />}=1{<ph name="PAGE_TITLE" /> ಮತ್ತು 1 ಇತರ ಟ್ಯಾಬ್}one{<ph name="PAGE_TITLE" /> ಮತ್ತು # ಇತರ ಟ್ಯಾಬ್ಗಳು}other{<ph name="PAGE_TITLE" /> ಮತ್ತು # ಇತರ ಟ್ಯಾಬ್ಗಳು}}</translation> <translation id="6451689256222386810">ನಿಮ್ಮ ಪಾಸ್ಫ್ರೇಸ್ ಅನ್ನು ನೀವು ಮರೆತಿದ್ದರೆ ಅಥವಾ ಈ ಸೆಟ್ಟಿಂಗ್ ಬದಲಾಯಿಸಲು ಬಯಸಿದರೆ, <ph name="BEGIN_LINK" />ಸಿಂಕ್ ಮರುಹೊಂದಿಸಿ<ph name="END_LINK" />.</translation> <translation id="6452181791372256707">ತಿರಸ್ಕರಿಸಿ</translation> +<translation id="6452251728599530347"><ph name="PERCENT" /> ಪೂರ್ಣವಾಗಿದೆ</translation> <translation id="6452961788130242735">ನೆಟ್ವರ್ಕ್ ಸಮಸ್ಯೆ ಅಥವಾ ಕಳಪೆ ಸಂಪರ್ಕ ಸ್ಥಿತಿ</translation> <translation id="6455264371803474013">ನಿರ್ದಿಷ್ಟ ಸೈಟ್ಗಳಲ್ಲಿ</translation> <translation id="6455894534188563617">&ಹೊಸ ಫೋಲ್ಡರ್</translation> @@ -4509,6 +4533,7 @@ <ph name="EVENT_NAME" /></translation> <translation id="6520876759015997832"><ph name="LIST_SIZE" /> ರಲ್ಲಿ <ph name="LIST_POSITION" /> ಹುಡುಕಾಟ ಫಲಿತಾಂಶ: <ph name="SEARCH_RESULT_TEXT" />. ವಿಭಾಗಕ್ಕೆ ನ್ಯಾವಿಗೇಟ್ ಮಾಡಲು Enter ಅನ್ನು ಒತ್ತಿರಿ.</translation> <translation id="652492607360843641">ನೀವು <ph name="NETWORK_TYPE" /> ನೆಟ್ವರ್ಕ್ಗೆ ಸಂಪರ್ಕಿಸಿದ್ದೀರಿ.</translation> +<translation id="6527081081771465939">ಅಪರಿಚಿತ ವೈಫೈ ಸುರಕ್ಷತೆ ಪ್ರೊಟೊಕಾಲ್</translation> <translation id="6527303717912515753">ಹಂಚಿಕೊಳ್ಳು</translation> <translation id="6528513914570774834">ಈ ನೆಟ್ವರ್ಕ್ ಬಳಸಲು, ಈ ಸಾಧನದ ಇತರ ಬಳಕೆದಾರರಿಗೆ ಅವಕಾಶ ನೀಡಿ</translation> <translation id="652948702951888897">Chrome ಇತಿಹಾಸ</translation> @@ -4625,6 +4650,7 @@ <translation id="6680442031740878064">ಲಭ್ಯವಿದೆ: <ph name="AVAILABLE_SPACE" /></translation> <translation id="6680650203439190394">ದರ</translation> <translation id="6681668084120808868">ಫೋಟೋ ತೆಗೆಯಿರಿ</translation> +<translation id="6684827949542560880">ಇತ್ತೀಚಿನ ಅಪ್ಡೇಟ್ ಅನ್ನು ಡೌನ್ಲೋಡ್ ಮಾಡಲಾಗುತ್ತಿದೆ</translation> <translation id="668599234725812620">Google Play ತೆರೆಯಿರಿ</translation> <translation id="6686490380836145850">ಬಲಗಡೆಗೆ ಟ್ಯಾಬ್ ಅನ್ನು ಮುಚ್ಚಿರಿ</translation> <translation id="6686817083349815241">ನಿಮ್ಮ ಪಾಸ್ವರ್ಡ್ ಉಳಿಸಿ</translation> @@ -4734,6 +4760,7 @@ <translation id="6812841287760418429">ಬದಲಾವಣೆಗಳನ್ನು ಇರಿಸು</translation> <translation id="6817174620439930047">MIDI ಸಾಧನಗಳನ್ನು ಪ್ರವೇಶಿಸಲು ಸೈಟ್ವೊಂದು ಸಿಸ್ಟಮ್ನ ಪ್ರತ್ಯೇಕ ಸಂದೇಶಗಳನ್ನು ಬಳಸಬೇಕೆಂದಾಗ ನನ್ನನ್ನು ಕೇಳಿ (ಶಿಫಾರಸು ಮಾಡಲಾಗಿದೆ)</translation> <translation id="6818198425579322765">ಅನುವಾದಿಸಬೇಕಾದ ಪುಟದ ಭಾಷೆ</translation> +<translation id="6818802132960437751">ಅಂತರ್ನಿರ್ಮಿತ ವೈರಸ್ನಿಂದ ರಕ್ಷಣೆ</translation> <translation id="682123305478866682">ಡೆಸ್ಕ್ಟಾಪ್ ಬಿತ್ತರಿಸಿ</translation> <translation id="6823174134746916417">ಟಚ್ಪ್ಯಾಡ್ ಕ್ಲಿಕ್ - ಮಾಡಲು - ಟ್ಯಾಪ್ ಮಾಡಿ</translation> <translation id="6823506025919456619">ನಿಮ್ಮ ಸಾಧನಗಳನ್ನು ನೋಡಲು ನೀವು Chrome ಗೆ ಸೈನ್ ಇನ್ ಮಾಡಬೇಕಾಗುತ್ತದೆ</translation> @@ -5381,6 +5408,7 @@ <translation id="7631205654593498032">ನಿಮ್ಮ ಸಾಧನಗಳನ್ನು ನೀವು ಸಂಪರ್ಕಿಸಿದಾಗ, ನಿಮ್ಮ <ph name="DEVICE_TYPE" /> ಇವುಗಳನ್ನು ಮಾಡಬಹುದು ಎಂಬುದನ್ನು ನೀವು ಒಪ್ಪುತ್ತೀರಿ:</translation> <translation id="7631887513477658702">&ಯಾವಾಗಲೂ ಈ ಪ್ರಕಾರದ ಫೈಲ್ ಅನ್ನು ತೆರೆಯಿರಿ</translation> <translation id="7632948528260659758">ಕೆಳಗಿನ ಕಿಯೋಸ್ಕ್ ಅಪ್ಲಿಕೇಶನ್ಗಳು ನವೀಕರಿಸುವುದಕ್ಕೆ ವಿಫಲವಾಗಿದೆ:</translation> +<translation id="7633724038415831385">ಅಪ್ಡೇಟ್ಗಾಗಿ ನೀವು ಕಾಯುವ ಏಕೈಕ ಸಮಯ ಇದಾಗಿದೆ. Chromebook ಗಳಲ್ಲಿ, ಸಾಫ್ಟ್ವೇರ್ ಅಪ್ಡೇಟ್ಗಳು ಹಿನ್ನೆಲೆಯಲ್ಲಿ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತದೆ.</translation> <translation id="7634566076839829401">ಯಾವುದೋ ತಪ್ಪು ಸಂಭವಿಸಿದೆ. ದಯವಿಟ್ಟು ಮತ್ತೆ ಪ್ರಯತ್ನಿಸಿ.</translation> <translation id="763632859238619983">ಪಾವತಿ ಹ್ಯಾಂಡ್ಲರ್ಗಳನ್ನು ಇನ್ಸ್ಟಾಲ್ ಮಾಡಲು ಯಾವುದೇ ಸೈಟ್ಗಳಿಗೆ ಅನುಮತಿಸಬೇಡಿ</translation> <translation id="7636919061354591437">ಈ ಸಾಧನದಲ್ಲಿ ಇನ್ಸ್ಟಾಲ್ ಮಾಡಿ</translation> @@ -5658,6 +5686,7 @@ <translation id="7933314993013528982">{NUM_TABS,plural, =1{ಸೈಟ್ ಅನ್ನು ಅನ್ಮ್ಯೂಟ್ ಮಾಡಿ}one{ಸೈಟ್ಗಳನ್ನು ಅನ್ಮ್ಯೂಟ್ ಮಾಡಿ}other{ಸೈಟ್ಗಳನ್ನು ಅನ್ಮ್ಯೂಟ್ ಮಾಡಿ}}</translation> <translation id="7933634003144813719">ಹಂಚಿದ ಫೋಲ್ಡರ್ಗಳನ್ನು ನಿರ್ವಹಿಸಿ</translation> <translation id="793531125873261495">ವರ್ಚುವಲ್ ಯಂತ್ರವನ್ನು ಡೌನ್ಲೋಡ್ ಮಾಡುವಲ್ಲಿ ದೋಷ ಕಂಡುಬಂದಿದೆ. ದಯವಿಟ್ಟು ಮತ್ತೆ ಪ್ರಯತ್ನಿಸಿ.</translation> +<translation id="7936303884198020182">ಹೆಸರಿಲ್ಲದ ಸರ್ವರ್ಗಳು ಕಂಡುಬಂದಿಲ್ಲ</translation> <translation id="7938594894617528435">ಪ್ರಸ್ತುತ ಆಫ್ಲೈನ್</translation> <translation id="7939062555109487992">ಸುಧಾರಿತ ಆಯ್ಕೆಗಳು</translation> <translation id="7939412583708276221">ಹೇಗಾದರೂ ಇರಿಸಿ</translation> @@ -5898,6 +5927,7 @@ <translation id="8226742006292257240">ನಿಮ್ಮ ಕಂಪ್ಯೂಟರ್ಗೆ ಹೊಂದಿಸಲಾದ, ರ್ಯಾಂಡಮ್ ಆಗಿ ರಚಿಸಲಾದ TPM ಪಾಸ್ವರ್ಡ್ ಕೆಳಗಿದೆ:</translation> <translation id="8227119283605456246">ಫೈಲ್ ಲಗತ್ತಿಸಿ</translation> <translation id="8230134520748321204"><ph name="ORIGIN" /> ಗಾಗಿ ಪಾಸ್ವರ್ಡ್ ಉಳಿಸುವುದೇ?</translation> +<translation id="8230672074305416752">ಡೀಫಾಲ್ಟ್ ನೆಟ್ವರ್ಕ್ ಗೇಟ್ವೇಗೆ ಪಿಂಗ್ ಮಾಡಲು ವಿಫಲವಾಗಿದೆ</translation> <translation id="8234795456569844941">ಈ ಸಮಸ್ಯೆಯನ್ನು ಸರಿಪಡಿಸಲು ನಮ್ಮ ಇಂಜಿನಿಯರ್ಗಳಿಗೆ ಸಹಾಯ ಮಾಡಿ. ಪ್ರೊಫೈಲ್ ದೋಷ ಸಂದೇಶವನ್ನು ಪಡೆಯುವುದಕ್ಕೆ ಸ್ವಲ್ಪ ಮೊದಲು ಏನಾಯಿತು ಎಂದು ನಮಗೆ ತಿಳಿಸಿ:</translation> <translation id="8236917170563564587">ಬದಲಾಗಿ ಈ ಟ್ಯಾಬ್ ಅನ್ನು ಹಂಚಿಕೊಳ್ಳಿ</translation> <translation id="8237647586961940482">ಗಾಢ ಗುಲಾಬಿ ಮತ್ತು ಕೆಂಪು</translation> @@ -5958,6 +5988,7 @@ <translation id="8288032458496410887"><ph name="APP" /> ಅನ್ಇನ್ಸ್ಟಾಲ್ ಮಾಡಿ...</translation> <translation id="8289128870594824098">ಡಿಸ್ಕ್ ಗಾತ್ರ</translation> <translation id="8291967909914612644">Home ಪೂರೈಕೆದಾರರ ರಾಷ್ಟ್ರ</translation> +<translation id="8293206222192510085">ಬುಕ್ಮಾರ್ಕ್ ಸೇರಿಸು</translation> <translation id="8294431847097064396">ಮೂಲ</translation> <translation id="8297006494302853456">ದುರ್ಬಲ</translation> <translation id="8299319456683969623">ನೀವು ಪ್ರಸ್ತುತ ಆಫ್ಲೈನ್ನಲ್ಲಿರುವಿರಿ.</translation> @@ -6007,6 +6038,7 @@ <translation id="8363095875018065315">ಸ್ಥಿರ</translation> <translation id="8363142353806532503">ಮೈಕ್ರೊಫೋನ್ ನಿರ್ಬಂಧಿಸಲಾಗಿದೆ</translation> <translation id="8363763184161554204"><ph name="PERMISSION" /> ಅನುಮತಿಸಲಾಗಿದೆ</translation> +<translation id="8364946094152050673">ಖಾಲಿಯಿರುವ ಹೆಸರಿನ ಸರ್ವರ್ಗಳು</translation> <translation id="8366396658833131068">ನಿಮ್ಮ ನೆಟ್ವರ್ಕ್ ಸಂಪರ್ಕವನ್ನು ಮರುಸ್ಥಾಪಿಸಲಾಗಿದೆ. ದಯವಿಟ್ಟು ಬೇರೊಂದು ನೆಟ್ವರ್ಕ್ ಆಯ್ಕೆಮಾಡಿ ಅಥವಾ ನಿಮ್ಮ ಕಿಯೋಸ್ಕ್ ಅಪ್ಲಿಕೇಶನ್ ಪ್ರಾರಂಭಿಸಲು ಕೆಳಗಿರುವ 'ಮುಂದುವರಿಸು' ಬಟನ್ ಕ್ಲಿಕ್ ಮಾಡಿ.</translation> <translation id="8368027906805972958">ಅಪರಿಚಿತ ಅಥವಾ ಬೆಂಬಲಿತವಲ್ಲದ ಸಾಧನ (<ph name="DEVICE_ID" />)</translation> <translation id="8368859634510605990">&ಎಲ್ಲ ಬುಕ್ಮಾರ್ಕ್ಗಳನ್ನು ತೆರೆಯಿರಿ</translation> @@ -6092,8 +6124,10 @@ <translation id="8472623782143987204">ಹಾರ್ಡ್ವೇರ್-ಹಿಂತಿರುಗಿಸಿದೆ</translation> <translation id="8473863474539038330">ವಿಳಾಸಗಳು ಮತ್ತು ಇನ್ನಷ್ಟು</translation> <translation id="8475313423285172237">ನಿಮ್ಮ ಕಂಪ್ಯೂಟರ್ನಲ್ಲಿನ ಮತ್ತೊಂದು ಪ್ರೋಗ್ರಾಂ Chrome ಕಾರ್ಯನಿರ್ವಹಿಸುವ ವಿಧಾನವನ್ನು ಬದಲಿಸಬಹುದಾದಂತಹ ವಿಸ್ತರಣೆಯನ್ನು ಸೇರಿಸಿದೆ.</translation> +<translation id="8475690821716466388">ದುರ್ಬಲ ಪ್ರೋಟೋಕಾಲ್ WEP PSK ಮೂಲಕ ವೈಫೈ ನೆಟ್ವರ್ಕ್ ರಕ್ಷಿಸಲಾಗಿದೆ</translation> <translation id="8477241577829954800">ಬದಲಿ ಇರಿಸಲಾಗಿದೆ</translation> <translation id="8477384620836102176">&ಸಾಮಾನ್ಯ</translation> +<translation id="8477551185774834963">ಅನುಮತಿಸಬಹುದಾದ ಥ್ರೆಶ್ಹೋಲ್ಡ್ಗಿಂತ DNS ವಿಳಂಬವು ಸ್ವಲ್ಪ ಮೇಲಿದೆ</translation> <translation id="8480082892550707549">ಈ ಮೊದಲು ಈ ಸೈಟ್ನಿಂದ ನೀವು ಫೈಲ್ಗಳನ್ನು ಡೌನ್ಲೋಡ್ ಮಾಡಿದ್ದರೂ ಕೂಡಾ, ಸೈಟ್ ತಾತ್ಕಾಲಿಕವಾಗಿ ಅಸುರಕ್ಷಿತವಾಗಿರಬಹುದು (ಹ್ಯಾಕ್ ಆಗಿರಬಹುದು). ಈ ಫೈಲ್ ಅನ್ನು ನಂತರ ಡೌನ್ಲೋಡ್ ಮಾಡಲು ಪ್ರಯತ್ನಿಸಿ.</translation> <translation id="8480869669560681089"><ph name="VENDOR_NAME" /> ನಿಂದ ಅಪರಿಚಿತ ಸಾಧನ</translation> <translation id="8481187309597259238">USB ಅನುಮತಿಯನ್ನು ಖಚಿತಪಡಿಸಿ</translation> @@ -6145,6 +6179,7 @@ <translation id="8546930481464505581">ಸ್ಪರ್ಶ ಪಟ್ಟಿಯನ್ನು ಕಸ್ಟಮೈಸ್ ಮಾಡಿ</translation> <translation id="8547013269961688403">ಪೂರ್ಣಪರದೆ ವರ್ಧಕವನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಿ</translation> <translation id="85486688517848470">ಮೇಲಿನ-ಸಾಲುಗಳ ಕೀಗಳ ನಡುವಳಿಕೆಯನ್ನು ಬದಲಾಯಿಸಲು ಹುಡುಕಾಟದ ಕೀ ಅನ್ನು ಒತ್ತಿ ಹಿಡಿಯಿರಿ</translation> +<translation id="8549316893834449916">ನೀವು Gmail, Drive, YouTube ಮತ್ತು ಇನ್ನಷ್ಟವುಗಳಿಗೆ ಬಳಸುವ ಅದೇ ಖಾತೆಯನ್ನು ನಿಮ್ಮ Chromebook ಗೆ ಸೈನ್ ಇನ್ ಮಾಡಲು ನಿಮ್ಮ Google ಖಾತೆಯನ್ನು ಬಳಸುತ್ತೀರಿ.</translation> <translation id="8551388862522347954">ಪರವಾನಗಿಗಳು</translation> <translation id="8551588720239073785">ದಿನಾಂಕ ಮತ್ತು ಸಮಯದ ಸೆಟ್ಟಿಂಗ್ಗಳು</translation> <translation id="8553342806078037065">ಇತರ ವ್ಯಕ್ತಿಗಳನ್ನು ನಿರ್ವಹಿಸು</translation> @@ -6283,6 +6318,7 @@ <translation id="8720200012906404956">ಮೊಬೈಲ್ ನೆಟ್ವರ್ಕ್ಗೆ ಕಾಯಲಾಗುತ್ತಿದೆ. <ph name="BEGIN_LINK" />ಇನ್ನಷ್ಟು ತಿಳಿಯಿರಿ<ph name="END_LINK" /></translation> <translation id="8720816553731218127">ಇನ್ಸ್ಟಾಲೇಶನ್-ಸಮಯದ ಗುಣಲಕ್ಷಣಗಳ ಪ್ರಾರಂಭಿಸುವಿಕೆಯ ಅವಧಿ ಮೀರಿದೆ.</translation> <translation id="8722912030556880711">ಬಳಕೆ ಮತ್ತು ಡಯಾಗ್ನಾಸ್ಟಿಕ್ ಡೇಟಾವನ್ನು ಕಳುಹಿಸಿ. ಪ್ರಸ್ತುತ ಈ ಸಾಧನವು ಡಯಾಗ್ನಾಸ್ಟಿಕ್, ಸಾಧನ, ಮತ್ತು ಆ್ಯಪ್ ಬಳಕೆಯ ಡೇಟಾವನ್ನು Google ಗೆ ಸ್ವಯಂಚಾಲಿತವಾಗಿ ಕಳುಹಿಸುತ್ತಿದೆ. ಇದು ಸಿಸ್ಟಮ್ ಮತ್ತು ಆ್ಯಪ್ ಸ್ಥಿರತೆಗೆ, ಹಾಗೂ ಇತರ ಸುಧಾರಣೆಗಳಿಗೆ ಸಹಾಯ ಮಾಡುತ್ತದೆ. ಕೆಲವು ಒಟ್ಟುಗೂಡಿಸಿದ ಡೇಟಾವು, Google ಆ್ಯಪ್ಗಳಿಗೆ ಮತ್ತು ಪಾಲುದಾರರಿಗೂ ಸಹ ಸಹಾಯ ಮಾಡುತ್ತದೆ. ಉದಾಹರಣೆಗೆ, Android ಡೆವಲಪರ್ಗಳು. ನಿಮ್ಮ ಹೆಚ್ಚುವರಿ ವೆಬ್ ಮತ್ತು ಆ್ಯಪ್ ಚಟುವಟಿಕೆ ಸೆಟ್ಟಿಂಗ್ ಆನ್ ಆಗಿದ್ದಲ್ಲಿ, ಈ ಡೇಟಾವು ನಿಮ್ಮ Google ಖಾತೆಯಲ್ಲಿ ಉಳಿಸಲ್ಪಡಬಹುದು. <ph name="BEGIN_LINK2" />ಇನ್ನಷ್ಟು ತಿಳಿಯಿರಿ<ph name="END_LINK2" /></translation> +<translation id="8723108084122415655">ವಿಳಂಬ ಥ್ರೆಶ್ಹೋಲ್ಡ್ ಮೇಲಿನ ಡೀಫಾಲ್ಟ್ ಅಲ್ಲದ ನೆಟ್ವರ್ಕ್</translation> <translation id="8724405322205516354">ನೀವು ಈ ಐಕಾನ್ ನೋಡಿದಾಗ, ಗುರುತಿಸಲು ಅಥವಾ ಖರೀದಿಗಳನ್ನು ಅನುಮೋದಿಸಲು ನಿಮ್ಮ ಫಿಂಗರ್ಪ್ರಿಂಟ್ ಬಳಸಿ.</translation> <translation id="8724409975248965964">ಫಿಂಗರ್ಪ್ರಿಂಟ್ ಸೇರಿಸಲಾಗಿದೆ</translation> <translation id="8724859055372736596">ಫೋಲ್ಡರ್ನಲ್ಲಿ &ತೋರಿಸಿ</translation> @@ -6460,6 +6496,7 @@ <translation id="8909833622202089127">ನಿಮ್ಮ ಸ್ಧಳವನ್ನು ಸೈಟ್ ಟ್ರ್ಯಾಕ್ ಮಾಡುತ್ತಿದೆ</translation> <translation id="8910146161325739742">ನಿಮ್ಮ ಪರದೆಯನ್ನು ಹಂಚಿಕೊಳ್ಳಿ</translation> <translation id="8910222113987937043">ನಿಮ್ಮ ಬುಕ್ಮಾರ್ಕ್ಗಳು, ಇತಿಹಾಸ, ಪಾಸ್ವರ್ಡ್ಗಳು ಮತ್ತು ಇತರ ಸೆಟ್ಟಿಂಗ್ಗಳಿಗೆ ಮಾಡಲಾಗುವ ಬದಲಾವಣೆಗಳನ್ನು ಇನ್ನು ಮುಂದೆ ನಿಮ್ಮ Google ಖಾತೆಗೆ ಸಿಂಕ್ ಮಾಡಲಾಗುವುದಿಲ್ಲ. ಆದಾಗ್ಯೂ, ನಿಮ್ಮ ಪ್ರಸ್ತುತ ಡೇಟಾ ನಿಮ್ಮ Google ಖಾತೆಯಲ್ಲಿ ಸಂಗ್ರಹವಾಗಿಯೇ ಇರುತ್ತದೆ ಮತ್ತು <ph name="BEGIN_LINK" />Google ಡ್ಯಾಶ್ಬೋರ್ಡ್<ph name="END_LINK" />ನಲ್ಲಿ ನಿರ್ವಹಿಸಬಹುದಾಗಿದೆ.</translation> +<translation id="8910721771319628100">ವಿಳಂಬ ಥ್ರೆಶ್ಹೋಲ್ಡ್ ಮೇಲಿನ ಡೀಫಾಲ್ಟ್ ನೆಟ್ವರ್ಕ್</translation> <translation id="8912362522468806198">Google ಖಾತೆ</translation> <translation id="8912793549644936705">ಎಳೆದಿರುವುದು</translation> <translation id="8912810933860534797">ಸ್ವಯಂ ಸ್ಕ್ಯಾನ್ ಸಕ್ರಿಯಗೊಳಿಸಿ</translation>
diff --git a/chrome/app/resources/generated_resources_ko.xtb b/chrome/app/resources/generated_resources_ko.xtb index 0d87c9ea..6c710b3 100644 --- a/chrome/app/resources/generated_resources_ko.xtb +++ b/chrome/app/resources/generated_resources_ko.xtb
@@ -71,6 +71,7 @@ <translation id="1070705170564860382"><ph name="COUNTDOWN_SECONDS" />초 후 대체 브라우저에서 열림</translation> <translation id="1071917609930274619">데이터 암호화</translation> <translation id="1072700771426194907">USB 기기 감지됨</translation> +<translation id="107278043869924952">비밀번호 외에 PIN 사용</translation> <translation id="1076176485976385390">텍스트 커서로 페이지 탐색</translation> <translation id="1076698951459398590">테마 사용</translation> <translation id="1076818208934827215">Microsoft Internet Explorer</translation> @@ -524,7 +525,6 @@ <translation id="1608668830839595724">선택한 항목과 관련된 작업 더보기</translation> <translation id="161042844686301425">청록색</translation> <translation id="1611432201750675208">기기가 잠겼습니다</translation> -<translation id="1611584202130317952">프로비저닝 플로가 중단되었습니다. 다시 시도하거나 기기 소유자 또는 관리자에게 문의하시기 바랍니다.</translation> <translation id="1614511179807650956">할당된 모바일 데이터를 모두 사용한 것 같습니다. 추가 데이터를 구입하려면 <ph name="NAME" /> 활성화 포털을 방문하세요.</translation> <translation id="161460670679785907">휴대전화를 인식할 수 없습니다</translation> <translation id="1616206807336925449">이 확장 프로그램은 특별한 권한이 필요하지 않습니다.</translation> @@ -533,6 +533,7 @@ <translation id="1618268899808219593">고객센터(H)</translation> <translation id="1620307519959413822">잘못된 비밀번호입니다. 다시 시도하거나 '비밀번호 찾기'를 클릭하여 재설정하세요.</translation> <translation id="1620510694547887537">카메라</translation> +<translation id="1621831347985899379"><ph name="DEVICE_TYPE" /> 데이터가 삭제됩니다</translation> <translation id="1622054403950683339">Wi-Fi 네트워크 삭제</translation> <translation id="1623132449929929218">현재 이미지를 사용할 수 없습니다. 배경화면 컬렉션을 확인하려면 인터넷에 다시 연결하세요.</translation> <translation id="1623723619460186680">블루라이트 줄이기</translation> @@ -760,6 +761,7 @@ <translation id="1877377290348678128">라벨(선택사항)</translation> <translation id="1877520246462554164">인증 토큰을 가져오지 못했습니다. 로그아웃한 다음 다시 로그인하여 다시 시도해 주세요.</translation> <translation id="1877860345998737529">스위치 작업 할당</translation> +<translation id="1878155070920054810">업데이트가 완료되기 전에 Chromebook의 전원이 부족해질 것 같습니다. 업데이트 중단을 방지하려면 올바르게 충전되고 있는지 확인하세요.</translation> <translation id="1879000426787380528">다음 사용자로 로그인</translation> <translation id="1880905663253319515">인증서 '<ph name="CERTIFICATE_NAME" />'을(를) 삭제하시겠습니까?</translation> <translation id="1881445033931614352">키보드 레이아웃</translation> @@ -964,6 +966,7 @@ <translation id="2148219725039824548">공유를 마운트하는 중에 오류가 발생했습니다. 네트워크에서 지정된 공유를 찾을 수 없습니다.</translation> <translation id="2148756636027685713">포맷을 마쳤습니다.</translation> <translation id="2148892889047469596">탭 전송</translation> +<translation id="2149973817440762519">북마크 수정</translation> <translation id="2150139952286079145">대상 검색</translation> <translation id="2150661552845026580">'<ph name="EXTENSION_NAME" />'을(를) 추가하시겠습니까?</translation> <translation id="2151576029659734873">잘못된 탭 색인을 입력했습니다.</translation> @@ -1073,6 +1076,7 @@ <translation id="2270627217422354837">도메인(<ph name="DOMAINS" />)에 있는 모든 기기와 데이터 교환</translation> <translation id="2272570998639520080">마티니 잔</translation> <translation id="2273119997271134996">도크 비디오 포트 문제</translation> +<translation id="2274840746523584236">Chromebook 충전하기</translation> <translation id="2276503375879033601">앱 추가</translation> <translation id="2277255602909579701">모든 쿠키 및 사이트 데이터</translation> <translation id="2277769717710009150">{COUNT,plural, =1{항목 1개가 복사됨}other{항목 #개가 복사됨}}</translation> @@ -1915,6 +1919,7 @@ <translation id="3308116878371095290">이 페이지에서 쿠키를 설정할 수 없습니다.</translation> <translation id="3308134619352333507">버튼 숨기기</translation> <translation id="3308852433423051161">Google 어시스턴트 로드 중...</translation> +<translation id="3310640316857623290">DNS 지연 시간이 허용되는 기준을 훨씬 초과했습니다.</translation> <translation id="3311445899360743395">앱과 관련된 데이터가 기기에서 삭제될 수 있습니다.</translation> <translation id="3312424061798279731">사용 설정된 언어</translation> <translation id="3313622045786997898">인증서 서명 값</translation> @@ -1927,6 +1932,7 @@ <translation id="3323295311852517824">{NUM_FILES,plural, =0{민감하거나 위험한 콘텐츠가 있는 데이터입니다. 콘텐츠를 삭제한 후 다시 시도해 보세요.}=1{민감하거나 위험한 콘텐츠가 있는 파일입니다. 콘텐츠를 삭제한 후 다시 시도해 보세요.}other{민감하거나 위험한 콘텐츠가 있는 파일입니다. 콘텐츠를 삭제한 후 다시 시도해 보세요.}}</translation> <translation id="3323521181261657960">보너스 기기 사용 시간이 추가되었습니다</translation> <translation id="3325910708063135066">Mac 시스템 환경설정에서 카메라와 마이크가 사용 중지되었습니다</translation> +<translation id="3327050066667856415">Chromebook은 안전하게 설계되었습니다. 기기는 멀웨어로부터 자동으로 보호되고 있으며 소프트웨어가 추가로 필요하지 않습니다.</translation> <translation id="3328489342742826322">백업에서 복원하면 Linux 파일 폴더에 있는 기존 Linux 애플리케이션과 데이터가 삭제됩니다.</translation> <translation id="3331321258768829690">(<ph name="UTCOFFSET" />) <ph name="LONGTZNAME" /> (<ph name="EXEMPLARCITY" />)</translation> <translation id="3331974543021145906">앱 정보</translation> @@ -2116,6 +2122,7 @@ <translation id="3556433843310711081">관리자가 차단 해제할 수 있습니다.</translation> <translation id="3557101512409028104">Family Link를 사용해 웹사이트 제한사항 및 기기 사용 시간 제한 설정</translation> <translation id="3559262020195162408">기기에 정책을 설치하지 못했습니다.</translation> +<translation id="3559533181353831840">약 <ph name="TIME_LEFT" /> 남음</translation> <translation id="3560034655160545939">맞춤법 검사(&S)</translation> <translation id="3562423906127931518">이 과정은 몇 분 정도 걸릴 수 있습니다. Linux 컨테이너를 설정합니다.</translation> <translation id="3563432852173030730">키오스크 애플리케이션을 다운로드할 수 없습니다.</translation> @@ -2158,6 +2165,7 @@ <translation id="3602290021589620013">미리보기</translation> <translation id="3603622770190368340">네트워크 인증서 받기</translation> <translation id="3604713164406837697">배경화면 변경</translation> +<translation id="360565022852130722">Wi-Fi 네트워크가 약한 프로토콜 WEP 802.1x로 보호되었습니다.</translation> <translation id="3605780360466892872">와이셔츠</translation> <translation id="3608576286259426129">사용자 이미지 미리보기</translation> <translation id="3610369246614755442">도크 팬 서비스 필요</translation> @@ -2194,6 +2202,7 @@ <translation id="3639220004740062347">읽기 모드 종료</translation> <translation id="3640214691812501263"><ph name="USER_NAME" />님에 대하여 '<ph name="EXTENSION_NAME" />'을(를) 추가할까요?</translation> <translation id="3640613767643722554">어시스턴트가 내 음성을 인식하도록 학습시키기</translation> +<translation id="3643014427358482789"><ph name="DOMAIN" />에서 ADB 디버깅이 사용 중지되었으며, <ph name="DEVICE_TYPE" />이 초기화됩니다. 다시 시작하기 전에 파일을 백업하세요.</translation> <translation id="3645372836428131288">지문의 다른 부분이 인식되도록 손가락을 살짝 움직이세요.</translation> <translation id="3647998456578545569">{COUNT,plural, =1{<ph name="DEVICE_NAME" />에서 <ph name="ATTACHMENTS" /> 수신}other{<ph name="DEVICE_NAME" />에서 <ph name="ATTACHMENTS" /> 수신}}</translation> <translation id="3648348069317717750"><ph name="USB_DEVICE_NAME" /> 발견됨</translation> @@ -2282,6 +2291,7 @@ <translation id="3732857534841813090">Google 어시스턴트 관련 정보</translation> <translation id="3733127536501031542">SSL 서버(Step-up 사용)</translation> <translation id="3735740477244556633">정렬 기준</translation> +<translation id="3738632186060045350"><ph name="DEVICE_TYPE" /> 데이터가 24시간 후에 삭제됩니다</translation> <translation id="3738924763801731196"><ph name="OID" />:</translation> <translation id="3739254215541673094"><ph name="APPLICATION" />을(를) 여시겠습니까?</translation> <translation id="3742055079367172538">찍은 스크린샷</translation> @@ -2469,6 +2479,7 @@ <translation id="3937734102568271121"><ph name="LANGUAGE" /> 항상 번역</translation> <translation id="3938128855950761626">공급업체 <ph name="VENDOR_ID" />의 기기</translation> <translation id="3940233957883229251">자동 반복 사용</translation> +<translation id="3941014780699102620">호스트를 확인할 수 없습니다.</translation> <translation id="3941565636838060942">이 프로그램에 대한 액세스를 숨기려면 제어판의 <ph name="CONTROL_PANEL_APPLET_NAME" />을(를) 사용하여 프로그램을 제거해야 합니다. @@ -2629,6 +2640,7 @@ <translation id="413121957363593859">컴포넌트</translation> <translation id="4131410914670010031">흑백</translation> <translation id="413193092008917129">네트워크 진단 루틴</translation> +<translation id="4132183752438206707">Google Play 스토어에서 앱 찾기</translation> <translation id="4133076602192971179">비밀번호 변경을 위해 앱 열기</translation> <translation id="4136203100490971508">일출 시 야간 조명이 자동으로 꺼짐</translation> <translation id="41365691917097717">계속하면 Android 앱 생성과 테스트에 ADB 디버깅을 사용 설정합니다. 이렇게 하면 Google에서 확인하지 않은 Android 앱을 설치할 수 있게 되며, 사용 중지하려면 초기화가 필요합니다.</translation> @@ -2878,6 +2890,8 @@ <translation id="4479877282574735775">가상 머신을 구성하고 있습니다. 몇 분 정도 소요될 수 있습니다.</translation> <translation id="4480590691557335796">Chrome이 컴퓨터에서 유해한 소프트웨어를 찾아 삭제할 수 있습니다.</translation> <translation id="4481530544597605423">페어링 해제된 기기</translation> +<translation id="4483049906298469269">기본이 아닌 네트워크 게이트웨이를 핑할 수 없습니다.</translation> +<translation id="4487489714832036847">Chromebook에서는 기존 소프트웨어 대신 앱을 사용합니다. 생산성, 엔터테인먼트 등을 위한 앱을 활용해 보세요.</translation> <translation id="4488502501195719518">모든 데이터를 삭제하시겠습니까?</translation> <translation id="4493468155686877504">권장 크기(<ph name="INSTALL_SIZE" />)</translation> <translation id="4495419450179050807">이 페이지에 표시하지 않음</translation> @@ -2928,6 +2942,7 @@ <translation id="4546692474302123343">Google 어시스턴트 음성 입력</translation> <translation id="4547659257713117923">다른 기기의 탭 없음</translation> <translation id="4547672827276975204">자동 설정</translation> +<translation id="4548483925627140043">신호를 찾을 수 없습니다.</translation> <translation id="4549791035683739768">보안 키에 저장된 지문이 없습니다.</translation> <translation id="4551763574344810652">실행취소하려면 <ph name="MODIFIER_KEY_DESCRIPTION" />을(를) 누르세요.</translation> <translation id="4552089082226364758">Flash</translation> @@ -2967,6 +2982,7 @@ <translation id="4582563038311694664">모든 설정 초기화</translation> <translation id="4585793705637313973">페이지 수정</translation> <translation id="4586275095964870617"><ph name="URL" />을(를) 대체 브라우저에서 열 수 없습니다. 시스템 관리자에게 문의하세요.</translation> +<translation id="458794348635939462">모든 호스트를 확인할 수 없습니다.</translation> <translation id="4589713469967853491">로그가 다운로드 디렉터리에 작성되었습니다.</translation> <translation id="4590324241397107707">데이터베이스 저장소</translation> <translation id="4592891116925567110">스타일러스 그리기 앱</translation> @@ -3350,6 +3366,7 @@ <translation id="5089810972385038852">시/도</translation> <translation id="5094721898978802975">협력 중인 기본 애플리케이션과 통신</translation> <translation id="5097002363526479830">'<ph name="NAME" />' 네트워크에 연결하지 못했습니다: <ph name="DETAILS" /></translation> +<translation id="5097649414558628673">도구: <ph name="PRINT_NAME" /></translation> <translation id="5097874180538493929">커서가 멈추면 자동 클릭</translation> <translation id="5101042277149003567">모든 북마크 열기</translation> <translation id="5101839224773798795">커서가 멈추면 자동으로 클릭</translation> @@ -3568,6 +3585,7 @@ <translation id="5370819323174483825">새로고침(&R)</translation> <translation id="5372529912055771682">제공된 등록 모드는 해당 버전의 운영 체제에서 지원되지 않습니다. 최신 버전을 실행하고 있는지 확인한 뒤 다시 시도하세요.</translation> <translation id="5372579129492968947">확장 프로그램 고정 해제</translation> +<translation id="5372659122375744710">Wi-Fi 네트워크가 안전하지 않습니다.</translation> <translation id="5376169624176189338">클릭하면 이전 페이지로 가고 누르고 있으면 방문 기록이 나타납니다.</translation> <translation id="5376931455988532197">파일이 너무 큼</translation> <translation id="5377721922656071359">{COUNT,plural, =1{<ph name="DEVICE_NAME" />에 <ph name="ATTACHMENTS" /> 전송됨}other{<ph name="DEVICE_NAME" />에 <ph name="ATTACHMENTS" /> 전송됨}}</translation> @@ -3597,6 +3615,7 @@ <translation id="5414566801737831689">방문하는 웹사이트의 아이콘 조회</translation> <translation id="5417312524372586921">브라우저 테마</translation> <translation id="5419405654816502573">Voice Match</translation> +<translation id="5420274697768050645">보안 강화를 위해 비밀번호로 기기를 잠금 해제하도록 설정합니다.</translation> <translation id="5420438158931847627">텍스트와 이미지의 선명도를 결정합니다.</translation> <translation id="5422221874247253874">액세스포인트</translation> <translation id="5422781158178868512">죄송합니다. 외부 저장장치를 인식하지 못했습니다.</translation> @@ -3721,6 +3740,7 @@ <translation id="5548606607480005320">안전 확인</translation> <translation id="5551573675707792127">키보드 및 텍스트 입력</translation> <translation id="5553089923092577885">인증서 정책 매핑</translation> +<translation id="5554403733534868102">다음부터는 업데이트를 기다리지 않아도 됩니다</translation> <translation id="5554489410841842733">현재 페이지에서 확장 프로그램을 실행할 수 있게 되면 아이콘이 표시됩니다.</translation> <translation id="5554720593229208774">이메일 인증 기관</translation> <translation id="5556459405103347317">새로고침</translation> @@ -4134,6 +4154,7 @@ <translation id="6061882183774845124">기기로 링크 전송</translation> <translation id="6064217302520318294">화면 잠금</translation> <translation id="6065289257230303064">인증서 대상 디렉터리 속성</translation> +<translation id="6069464830445383022">Google 계정으로 Chromebook 로그인하기</translation> <translation id="6069671174561668781">배경화면 설정</translation> <translation id="6071181508177083058">비밀번호 확인</translation> <translation id="6071576563962215370">시스템에서 기기 설치 시간 속성 잠금을 설정하지 못했습니다.</translation> @@ -4176,6 +4197,7 @@ <translation id="6104311680260824317">기기가 도메인에 가입하지 못했습니다. 서버가 지정된 Kerberos 암호화 유형을 지원하지 않습니다. '옵션 더보기'에서 암호화 설정을 확인하세요.</translation> <translation id="6104796831253957966">프린터 대기열이 가득 참</translation> <translation id="6105994589138235234">Chrome 브라우저 동기화</translation> +<translation id="6108689792487843350">게이트웨이에 연결할 수 없습니다.</translation> <translation id="6111972606040028426">Google 어시스턴트 사용</translation> <translation id="6112294629795967147">터치하여 크기 조정</translation> <translation id="6112727384379533756">티켓 추가</translation> @@ -4236,6 +4258,7 @@ <translation id="6178664161104547336">인증서 선택</translation> <translation id="6181431612547969857">다운로드 차단됨</translation> <translation id="6185132558746749656">기기 위치</translation> +<translation id="6191293864534840972">네임서버 형식이 잘못되었습니다.</translation> <translation id="6195446518998936840">자녀 보호 기능을 설정하려면 부모가 감독하는 Google 계정을 자녀가 보유하고 있어야 합니다. 부모님은 Family Link 앱을 사용해 기기 사용 시간 한도를 설정하고, 웹사이트를 승인하거나 차단하는 등의 작업을 할 수 있습니다.</translation> <translation id="6195693561221576702">이 기기는 오프라인 데모 모드에서 설정할 수 없습니다.</translation> <translation id="6196640612572343990">타사 쿠키 차단</translation> @@ -4449,6 +4472,7 @@ <translation id="6451591602925140504">{NUM_PAGES,plural, =0{<ph name="PAGE_TITLE" />}=1{<ph name="PAGE_TITLE" /> 외 탭 1개}other{<ph name="PAGE_TITLE" /> 외 탭 #개}}</translation> <translation id="6451689256222386810">암호를 잊어버렸거나 이 설정을 변경하려면 <ph name="BEGIN_LINK" />동기화를 재설정<ph name="END_LINK" />합니다.</translation> <translation id="6452181791372256707">거부</translation> +<translation id="6452251728599530347"><ph name="PERCENT" /> 완료</translation> <translation id="6452961788130242735">네트워크 문제 또는 잘못된 영역</translation> <translation id="6455264371803474013">특정 사이트에서</translation> <translation id="6455894534188563617">새 폴더(&N)</translation> @@ -4505,6 +4529,7 @@ <ph name="EVENT_NAME" /></translation> <translation id="6520876759015997832">검색결과 <ph name="LIST_SIZE" />개 중 <ph name="LIST_POSITION" />번: <ph name="SEARCH_RESULT_TEXT" />. 섹션으로 이동하려면 Enter를 누릅니다.</translation> <translation id="652492607360843641"><ph name="NETWORK_TYPE" /> 네트워크에 연결되어 있습니다.</translation> +<translation id="6527081081771465939">알려지지 않은 Wi-Fi 보안 프로토콜입니다.</translation> <translation id="6527303717912515753">공유</translation> <translation id="6528513914570774834">이 기기의 다른 사용자가 이 네트워크를 사용하도록 허용</translation> <translation id="652948702951888897">Chrome 방문 기록</translation> @@ -4621,6 +4646,7 @@ <translation id="6680442031740878064">사용 가능한 저장용량: <ph name="AVAILABLE_SPACE" /></translation> <translation id="6680650203439190394">속도</translation> <translation id="6681668084120808868">사진 찍기</translation> +<translation id="6684827949542560880">최신 업데이트 다운로드 중</translation> <translation id="668599234725812620">Google Play 열기</translation> <translation id="6686490380836145850">우측 탭 닫기</translation> <translation id="6686817083349815241">비밀번호 저장</translation> @@ -4730,6 +4756,7 @@ <translation id="6812841287760418429">변경사항 유지</translation> <translation id="6817174620439930047">사이트에서 시스템 전용 메시지를 사용하여 MIDI 기기에 액세스하려고 할 때 확인(권장)</translation> <translation id="6818198425579322765">페이지 번역 출발어</translation> +<translation id="6818802132960437751">내장 바이러스 보호 기능</translation> <translation id="682123305478866682">데스크톱 전송</translation> <translation id="6823174134746916417">터치패드 탭하여 클릭</translation> <translation id="6823506025919456619">기기를 보려면 Chrome에 로그인하세요.</translation> @@ -5376,6 +5403,7 @@ <translation id="7631205654593498032">기기를 연결하면 <ph name="DEVICE_TYPE" />에서 다음 작업을 처리하는 것에 동의하게 됩니다.</translation> <translation id="7631887513477658702">해당 유형의 파일 항상 열기(&A)</translation> <translation id="7632948528260659758">다음 키오스크 앱을 업데이트하지 못했습니다.</translation> +<translation id="7633724038415831385">이번에만 업데이트를 기다리시면 됩니다. Chromebook에서는 소프트웨어 업데이트가 백그라운드에서 이루어집니다.</translation> <translation id="7634566076839829401">문제가 발생했습니다. 다시 시도해 주세요.</translation> <translation id="763632859238619983">모든 사이트에서 결제 핸들러 설치 허용 안함</translation> <translation id="7636919061354591437">이 기기에 설치</translation> @@ -5654,6 +5682,7 @@ <translation id="7933314993013528982">{NUM_TABS,plural, =1{사이트 숨기기 취소}other{사이트 숨기기 취소}}</translation> <translation id="7933634003144813719">공유 폴더 관리</translation> <translation id="793531125873261495">가상 머신을 다운로드하는 중 문제가 발생했습니다. 다시 시도해 주세요.</translation> +<translation id="7936303884198020182">네임서버를 찾을 수 없습니다.</translation> <translation id="7938594894617528435">현재 오프라인 상태</translation> <translation id="7939062555109487992">고급 옵션</translation> <translation id="7939412583708276221">계속 다운로드</translation> @@ -5897,6 +5926,7 @@ <translation id="8226742006292257240">다음은 컴퓨터에 임의로 생성 및 할당된 TPM 비밀번호입니다.</translation> <translation id="8227119283605456246">파일 첨부</translation> <translation id="8230134520748321204"><ph name="ORIGIN" />의 비밀번호를 저장하시겠습니까?</translation> +<translation id="8230672074305416752">기본 네트워크 게이트웨이를 핑할 수 없습니다.</translation> <translation id="8234795456569844941">Google 엔지니어가 이 문제를 해결하도록 도와주세요. 프로필 오류 메시지가 표시되기 직전에 무슨 일이 있었는지 알려 주시기 바랍니다.</translation> <translation id="8236917170563564587">이 탭을 대신 공유</translation> <translation id="8237647586961940482">진한 분홍색 및 빨간색</translation> @@ -5957,6 +5987,7 @@ <translation id="8288032458496410887"><ph name="APP" /> 제거...</translation> <translation id="8289128870594824098">디스크 크기</translation> <translation id="8291967909914612644">홈 공급자 국가</translation> +<translation id="8293206222192510085">북마크 추가</translation> <translation id="8294431847097064396">출처</translation> <translation id="8297006494302853456">약함</translation> <translation id="8299319456683969623">현재 오프라인 상태</translation> @@ -6006,6 +6037,7 @@ <translation id="8363095875018065315">안정</translation> <translation id="8363142353806532503">마이크 차단됨</translation> <translation id="8363763184161554204"><ph name="PERMISSION" /> 권한이 허용됨</translation> +<translation id="8364946094152050673">네임서버가 비어 있습니다.</translation> <translation id="8366396658833131068">네트워크 연결이 복원되었습니다. 키오스크 앱을 실행하려면 다른 네트워크를 선택하거나 아래에서 '계속' 버튼을 누르세요.</translation> <translation id="8368027906805972958">알 수 없거나 지원되지 않는 기기(<ph name="DEVICE_ID" />)</translation> <translation id="8368859634510605990">모든 북마크 열기(&O)</translation> @@ -6091,8 +6123,10 @@ <translation id="8472623782143987204">하드웨어 지원</translation> <translation id="8473863474539038330">주소 및 기타</translation> <translation id="8475313423285172237">컴퓨터의 다른 프로그램에서 Chrome 작동에 영향을 줄 수 있는 확장 프로그램을 추가했습니다.</translation> +<translation id="8475690821716466388">Wi-Fi 네트워크가 약한 프로토콜 WEP PSK로 보호되었습니다.</translation> <translation id="8477241577829954800">대체됨</translation> <translation id="8477384620836102176">일반(&G)</translation> +<translation id="8477551185774834963">DNS 지연 시간이 허용되는 기준을 약간 초과했습니다.</translation> <translation id="8480082892550707549">이전에 이 사이트에서 파일을 다운로드한 경우에도 사이트가 일시적으로 안전하지 않을(해킹됨) 수 있습니다. 나중에 다운로드하세요.</translation> <translation id="8480869669560681089"><ph name="VENDOR_NAME" />의 알 수 없는 기기</translation> <translation id="8481187309597259238">USB 권한 확인</translation> @@ -6144,6 +6178,7 @@ <translation id="8546930481464505581">Touch Bar 맞춤설정</translation> <translation id="8547013269961688403">전체화면 돋보기 사용</translation> <translation id="85486688517848470">맨 위 키의 동작을 전환하려면 검색 키를 길게 누름</translation> +<translation id="8549316893834449916">Gmail, 드라이브, YouTube 등에 사용하는 계정과 동일한 Google 계정으로 Chromebook에 로그인합니다.</translation> <translation id="8551388862522347954">라이선스</translation> <translation id="8551588720239073785">날짜 및 시간 설정</translation> <translation id="8553342806078037065">다른 사용자 관리</translation> @@ -6282,6 +6317,7 @@ <translation id="8720200012906404956">모바일 네트워크를 찾고 있습니다. <ph name="BEGIN_LINK" />자세히 알아보기<ph name="END_LINK" /></translation> <translation id="8720816553731218127">설치 시간 속성의 시작 시간이 초과되었습니다.</translation> <translation id="8722912030556880711">사용 및 진단 데이터를 보냅니다. 이 기기는 현재 진단, 기기 및 앱 사용 데이터를 Google에 자동으로 보내고 있습니다. 이 데이터는 시스템 및 앱 안정성 등을 개선하는 데 활용됩니다. 일부 수집 데이터는 Google 앱과 파트너(Android 개발자 등)에게도 도움을 줍니다. 추가 웹 및 앱 활동이 사용 설정되어 있다면 이 데이터가 Google 계정에 저장될 수 있습니다. <ph name="BEGIN_LINK2" />자세히 알아보기<ph name="END_LINK2" /></translation> +<translation id="8723108084122415655">기본이 아닌 네트워크가 지연 시간 기준을 초과했습니다.</translation> <translation id="8724405322205516354">이 아이콘이 표시되면 지문을 사용하여 본인 여부를 인증하거나 구매를 승인할 수 있습니다.</translation> <translation id="8724409975248965964">지문 추가됨</translation> <translation id="8724859055372736596">폴더 열기(&S)</translation> @@ -6459,6 +6495,7 @@ <translation id="8909833622202089127">사이트에서 내 위치를 추적하고 있습니다.</translation> <translation id="8910146161325739742">화면 공유하기</translation> <translation id="8910222113987937043">북마크, 방문 기록, 비밀번호 및 기타 설정을 변경하면 더 이상 Google 계정에 동기화되지 않습니다. 하지만 기존 데이터는 Google 계정에 계속 저장되며 <ph name="BEGIN_LINK" />Google 대시보드<ph name="END_LINK" />에서 관리할 수 있습니다.</translation> +<translation id="8910721771319628100">기본 네트워크가 지연 시간 기준을 초과했습니다.</translation> <translation id="8912362522468806198">Google 계정</translation> <translation id="8912793549644936705">늘이기</translation> <translation id="8912810933860534797">자동 스캔 사용</translation>
diff --git a/chrome/app/resources/generated_resources_ky.xtb b/chrome/app/resources/generated_resources_ky.xtb index 6def2a1c..aca3e003 100644 --- a/chrome/app/resources/generated_resources_ky.xtb +++ b/chrome/app/resources/generated_resources_ky.xtb
@@ -71,6 +71,7 @@ <translation id="1070705170564860382">Кошумча серепчи <ph name="COUNTDOWN_SECONDS" /> секунддан кийин ачылат</translation> <translation id="1071917609930274619">Дайындарды шифрлөө</translation> <translation id="1072700771426194907">USB түзмөгү табылды</translation> +<translation id="107278043869924952">Сырсөзгө кошумча PIN кодду колдонуңуз</translation> <translation id="1076176485976385390">Барактарды текст курсору менен көрүңүз.</translation> <translation id="1076698951459398590">Теманы иштетүү</translation> <translation id="1076818208934827215">Microsoft Internet Explorer</translation> @@ -524,7 +525,6 @@ <translation id="1608668830839595724">Тандалган нерселер үчүн дагы аракеттер</translation> <translation id="161042844686301425">Көгүлтүр</translation> <translation id="1611432201750675208">Түзмөгүңүз кулпуланган</translation> -<translation id="1611584202130317952">Шайкештештирүү үзгүлтүккө учурады. Кайталап көрүңүз, болбосо, түзмөктүн ээсине же администраторго кайрылыңыз.</translation> <translation id="1614511179807650956">Мобилдик Интернетти пайдалануу чегине жетип калдыңыз окшойт. Кошумча трафик сатып алуу үчүн <ph name="NAME" /> жандыруу порталына өтүңүз</translation> <translation id="161460670679785907">Телефонуңуз көрүнбөй жатат</translation> <translation id="1616206807336925449">Бул кеңейтүү атайын уруксаттарды талап кылбайт.</translation> @@ -533,6 +533,7 @@ <translation id="1618268899808219593">Ж&ардам борбору</translation> <translation id="1620307519959413822">Сырсөз туура эмес. Кайталап көрүңүз же "Сырсөздү унутуп койдум" дегенди басыңыз.</translation> <translation id="1620510694547887537">Камера</translation> +<translation id="1621831347985899379"><ph name="DEVICE_TYPE" /> түзмөгүндөгү маалымат жок кылынат</translation> <translation id="1622054403950683339">Wi-Fi тармагы унутулсун</translation> <translation id="1623132449929929218">Учурда сүрөттөрдү көрүү мүмкүн эмес. Тушкагаздардын жыйнактарын көрүү үчүн Интернетке кайра туташыңыз.</translation> <translation id="1623723619460186680">Көк түстү азайтуу</translation> @@ -760,6 +761,7 @@ <translation id="1877377290348678128">Энбелги (милдеттүү эмес)</translation> <translation id="1877520246462554164">Аныктыгын текшерүү токени алынбай калды. Кайра аракет кылуу үчүн чыгып, кайра кириңиз.</translation> <translation id="1877860345998737529">Аракеттерди которуштурууну дайындоо</translation> +<translation id="1878155070920054810">Chromebook'тун кубаты жаңыртуу аягына чыкканга чейин бүтүп калат окшойт. Жаңыртуу үзгүлтүккө учурабашы үчүн, ал туура кубатталып жатканын текшериңиз.</translation> <translation id="1879000426787380528">Төмөнкү катары кирүү:</translation> <translation id="1880905663253319515">"<ph name="CERTIFICATE_NAME" />" тастыктамасы жок кылынсынбы?</translation> <translation id="1881445033931614352">Баскычтоптун калыбы</translation> @@ -964,6 +966,7 @@ <translation id="2148219725039824548">Түзмөктү кошууда ката кетти. Белгиленген түзмөк тармакта табылган жок.</translation> <translation id="2148756636027685713">Форматталып</translation> <translation id="2148892889047469596">Тышкы экранга чыгаруу өтмөгү</translation> +<translation id="2149973817440762519">Кыстарманы түзөтүү</translation> <translation id="2150139952286079145">Көздөлгөн жерлерди издөө</translation> <translation id="2150661552845026580">"<ph name="EXTENSION_NAME" />" кошулсунбу?</translation> <translation id="2151576029659734873">Жараксыз өтмөк индекси киргизилди.</translation> @@ -1073,6 +1076,7 @@ <translation id="2270627217422354837">Домендердеги каалаган түзмөк менен дайындарды алмашуу: <ph name="DOMAINS" /></translation> <translation id="2272570998639520080">Мартини бокалы</translation> <translation id="2273119997271134996">Видео-оюкчаны туташтырууда ката кетти</translation> +<translation id="2274840746523584236">Chromebook'ту кубаттаңыз</translation> <translation id="2276503375879033601">Дагы колдонмо кошуу</translation> <translation id="2277255602909579701">Бардык кукилер жана сайт дайындары</translation> <translation id="2277769717710009150">{COUNT,plural, =1{1 кыстарма көчүрүлдү}other{# кыстарма көчүрүлдү}}</translation> @@ -1915,6 +1919,7 @@ <translation id="3308116878371095290">Бул баракча кукилерди коё албайт.</translation> <translation id="3308134619352333507">Жашыруу баскычы</translation> <translation id="3308852433423051161">Google Жардамчы жүктөлүүдө…</translation> +<translation id="3310640316857623290">DNS күтүү убакыты уруксат берилген босогодон бир кыйла жогору</translation> <translation id="3311445899360743395">Бул колдонмого байланыштуу маалымат бул түзмөктөн өчүрүлүшү мүмкүн.</translation> <translation id="3312424061798279731">Кошулган тилдер</translation> <translation id="3313622045786997898">Тастыктама колтамгасынын мааниси</translation> @@ -1927,6 +1932,7 @@ <translation id="3323295311852517824">{NUM_FILES,plural, =0{Бул маалыматта купуя же кооптуу мазмун камтылган. Бул мазмунду өчүрүп, кайра аракет кылыңыз.}=1{Бул файлда купуя же кооптуу мазмун камтылган. Бул мазмунду өчүрүп, кайра аракет кылыңыз.}other{Бул файлдарда купуя же кооптуу мазмун камтылган. Бул мазмунду өчүрүп, кайра аракет кылыңыз.}}</translation> <translation id="3323521181261657960">Бонус! Түзмөктү колдонуу убакыты узарды</translation> <translation id="3325910708063135066">Камера менен микрофон Mac'тын Тутум жөндөөлөрүнөн өчүрүлдү</translation> +<translation id="3327050066667856415">Chromebook'тар коопсуздукту коргоо үчүн жасалган. Түзмөгүңүз кесепеттүү программалардан автоматтык түрдө корголот – кошумча программаны орнотуунун кереги жок.</translation> <translation id="3328489342742826322">Камдык көчүрмөнү калыбына келтирүү менен, учурдагы Linux колдонмолору менен Linux файлдар папкасындагы бардык дайындар өчүрүлөт.</translation> <translation id="3331321258768829690">(<ph name="UTCOFFSET" />) <ph name="LONGTZNAME" /> (<ph name="EXEMPLARCITY" />)</translation> <translation id="3331974543021145906">Колдонмо маалыматы</translation> @@ -2116,6 +2122,7 @@ <translation id="3556433843310711081">Аны башкаруучуңуз ачып бере алат</translation> <translation id="3557101512409028104">Family Link аркылуу вебсайттарга жана түзмөктү колдонуу убакытына чектөөлөрдү коюу</translation> <translation id="3559262020195162408">Түзмөккө саясат орнотулбай койду.</translation> +<translation id="3559533181353831840">Болжол менен <ph name="TIME_LEFT" /> калды</translation> <translation id="3560034655160545939">&Орфографиялык текшерүү</translation> <translation id="3562423906127931518">Бул бир нече мүнөткө созулушу мүмкүн. Linux контейнери жөндөлүүдө.</translation> <translation id="3563432852173030730">Киоск колдонмосу жүктөлүп алынган жок.</translation> @@ -2158,6 +2165,7 @@ <translation id="3602290021589620013">Алдн-ала көз жүгртүү</translation> <translation id="3603622770190368340">Тармактык тастыктама алыңыз</translation> <translation id="3604713164406837697">Тушкагазды өзгөртүп алыңыз</translation> +<translation id="360565022852130722">WiFi тармагынын WEP 802.1x протоколунун коопсуздугу начар</translation> <translation id="3605780360466892872">Топчуланган</translation> <translation id="3608576286259426129">Колдонуучунун сүрөтүн алдын ала карап көрүү</translation> <translation id="3610369246614755442">Док бекеттин желдеткичин оңдоо керек</translation> @@ -2194,6 +2202,7 @@ <translation id="3639220004740062347">Окугуч режиминен чыгуу</translation> <translation id="3640214691812501263"><ph name="USER_NAME" /> үчүн "<ph name="EXTENSION_NAME" />" кошулсунбу?</translation> <translation id="3640613767643722554">Жардамчыңызга үнүңүздү таанууну үйрөтүңүз</translation> +<translation id="3643014427358482789"><ph name="DOMAIN" /> ADB аркылуу мүчүлүштүктөрдү оңдоону өчүрүүдө, андыктан <ph name="DEVICE_TYPE" /> түзмөгүңүз баштапкы абалга келтирилет. Өчүрүп күйгүзүүдөн мурун файлдарыңыздын камдык көчүрмөсүн сактаңыз.</translation> <translation id="3645372836428131288">Манжа изиңизди ар тараптан тартып алуу үчүн манжаңызды жай жылдырыңыз.</translation> <translation id="3647998456578545569">{COUNT,plural, =1{<ph name="ATTACHMENTS" /> <ph name="DEVICE_NAME" /> түзмөгүнөн алынды}other{<ph name="ATTACHMENTS" /> <ph name="DEVICE_NAME" /> түзмөгүнөн алынды}}</translation> <translation id="3648348069317717750"><ph name="USB_DEVICE_NAME" /> түзмөгү табылды</translation> @@ -2282,6 +2291,7 @@ <translation id="3732857534841813090">Google Жардамчыга тийиштүү маалымат</translation> <translation id="3733127536501031542">Жогорулатмасы бар SSL сервери</translation> <translation id="3735740477244556633">Төмөнкү боюнча иргөө</translation> +<translation id="3738632186060045350"><ph name="DEVICE_TYPE" /> түзмөгүндөгү дайындар 24 сааттын ичинде өчүрүлөт</translation> <translation id="3738924763801731196"><ph name="OID" />:</translation> <translation id="3739254215541673094"><ph name="APPLICATION" /> колдонмосун ачуу керекпи?</translation> <translation id="3742055079367172538">Скриншот тартылды</translation> @@ -2469,6 +2479,7 @@ <translation id="3937734102568271121"><ph name="LANGUAGE" /> тили ар дайым которулсун</translation> <translation id="3938128855950761626">Камсыздоочунун (<ph name="VENDOR_ID" />) түзмөктөрү</translation> <translation id="3940233957883229251">Авто кайталоону иштетүү</translation> +<translation id="3941014780699102620">Башкы түйүн чечилген жок</translation> <translation id="3941565636838060942">Бул программаны колдонуу мүмкүнчүлүгүн жашыруу үчүн, Көзөмөлдөө тактасындагы <ph name="CONTROL_PANEL_APPLET_NAME" /> аркылуу аны орнотуудан чыгарышыңыз керек. @@ -2631,6 +2642,7 @@ <translation id="413121957363593859">Курамдык бөлүктөр</translation> <translation id="4131410914670010031">Ак-кара</translation> <translation id="413193092008917129">Тармактагы мүчүлүштүктөрдү оңдоо</translation> +<translation id="4132183752438206707">Google Play Store'дон колдонмолорду жүктөп алыңыз</translation> <translation id="4133076602192971179">Колдонмону ачып, сырсөзүңүздү өзгөртүңүз</translation> <translation id="4136203100490971508">Түнкү режим күн чыкканда автоматтык түрдө өчөт</translation> <translation id="41365691917097717">Улантсаңыз, ADB Android колдонмолорун түзүп, аларды сыноодогу мүчүлүштүктөрдү оңдоону иштетет. Бул аракет Google тарабынан текшерилбеген Android колдонмолорун орнотууга уруксат берет. Аларды өчүрүү үчүн түзмөктү баштапкы абалга кайтаруу керек болот.</translation> @@ -2880,6 +2892,8 @@ <translation id="4479877282574735775">Виртуалдык машина конфигурацияланууда. Бул бир нече мүнөткө созулушу мүмкүн.</translation> <translation id="4480590691557335796">Chrome компьютериңизден зыянкеч программаны таап, аны алып салат</translation> <translation id="4481530544597605423">Ажыратылган түзмөктөр</translation> +<translation id="4483049906298469269">Демейки эмес тармактын шлюзуна ping сурамы жөнөтүлгөн жок</translation> +<translation id="4487489714832036847">Chromebook'тарда кадимки программалардын ордуна колдонмолор камтылган. Майнаптуулук, көңүл ачуу жана башкалар үчүн колдонмолорду жүктөп алыңыз.</translation> <translation id="4488502501195719518">Бардык дайын-даректер тазалансынбы?</translation> <translation id="4493468155686877504">Сунушталат (<ph name="INSTALL_SIZE" />)</translation> <translation id="4495419450179050807">Бул бетте көрүнбөсүн</translation> @@ -2930,6 +2944,7 @@ <translation id="4546692474302123343">Google Жардамчыга оозеки кайрылуу</translation> <translation id="4547659257713117923">Башка түзмөктөрдө өтмөктөр жок</translation> <translation id="4547672827276975204">Автоматтык түрдө коюлсун</translation> +<translation id="4548483925627140043">Сигнал жок</translation> <translation id="4549791035683739768">Коопсуздук ачкычыңызда сакталган манжаларыңыздын издери жок</translation> <translation id="4551763574344810652">Артка кайтаруу үчүн "<ph name="MODIFIER_KEY_DESCRIPTION" />" баскычтарын басыңыз</translation> <translation id="4552089082226364758">Жарк этме</translation> @@ -2969,6 +2984,7 @@ <translation id="4582563038311694664">Бардык жөндөөлөрдү кайра коюу</translation> <translation id="4585793705637313973">Баракты түзөтүү</translation> <translation id="4586275095964870617"><ph name="URL" /> шилтемеси кошумча серепчиде ачылган жок. Тутум администраторуңузга кайрылыңыз.</translation> +<translation id="458794348635939462">Бардык башкы түйүндөр чечилген жок</translation> <translation id="4589713469967853491">Таржымалдар "Жүктөлүп алынгандар" каталогуна ийгиликтүү жазылды.</translation> <translation id="4590324241397107707">Дайындар базасынын сактагычы</translation> <translation id="4592891116925567110">Стилус менен сүрөт тартуу колдонмосу</translation> @@ -3352,6 +3368,7 @@ <translation id="5089810972385038852">Штат</translation> <translation id="5094721898978802975">Түпнуска колдонмолор менен кызматташып байланышуу</translation> <translation id="5097002363526479830">'<ph name="NAME" />' тармагына туташпай калды: <ph name="DETAILS" /></translation> +<translation id="5097649414558628673">Курал: <ph name="PRINT_NAME" /></translation> <translation id="5097874180538493929">Курсор токтогондо автоматтык түрдө чыкылдатуу</translation> <translation id="5101042277149003567">Бардык кыстармаларды ачуу</translation> <translation id="5101839224773798795">Курсор токтогондо, автоматтык түрдө чыкылдатылсын</translation> @@ -3570,6 +3587,7 @@ <translation id="5370819323174483825">&Кайра жүктөө</translation> <translation id="5372529912055771682">Каттоо режими иш тутумдун бул версиясында колдоого алынбайт. Эң акыркы версиянын колдонулуп жатканын текшерип, кайра аракет кылып көрүңүз.</translation> <translation id="5372579129492968947">Кеңейтүүнү бошотуу</translation> +<translation id="5372659122375744710">WiFi тармагы кооптуу</translation> <translation id="5376169624176189338">Артка кайтуу үчүн, чыкылдатып, таржымалды көрүү үчүн кармап туруңуз</translation> <translation id="5376931455988532197">Файл өтө чоң</translation> <translation id="5377721922656071359">{COUNT,plural, =1{<ph name="ATTACHMENTS" /> <ph name="DEVICE_NAME" /> түзмөгүнө ийгиликтүү жөнөтүлдү}other{<ph name="ATTACHMENTS" /> <ph name="DEVICE_NAME" /> түзмөгүнө ийгиликтүү жөнөтүлдү}}</translation> @@ -3599,6 +3617,7 @@ <translation id="5414566801737831689">Каралган вебсайттардын сүрөтчөлөрүн окуңуз</translation> <translation id="5417312524372586921">Серепчинин темалары</translation> <translation id="5419405654816502573">Voice match</translation> +<translation id="5420274697768050645">Кошумча коопсуздук максатында түзмөктү ачуу үчүн, сырсөздү талап кылуу</translation> <translation id="5420438158931847627">Тексттин жана сүрөттөрдүн дааналыгын аныктайт</translation> <translation id="5422221874247253874">Жетки чекити</translation> <translation id="5422781158178868512">Кечиресиз, тышкы сактагыч түзмөгүңүз таанылбай койду.</translation> @@ -3723,6 +3742,7 @@ <translation id="5548606607480005320">Коопсуздукту текшерүү</translation> <translation id="5551573675707792127">Баскычтоп жана текст киргизүү</translation> <translation id="5553089923092577885">Тастыктама саясатынын картасы</translation> +<translation id="5554403733534868102">Мындан кийин жаңыртууларды күтүүнүн кереги жок</translation> <translation id="5554489410841842733">Бул бетте кеңейтүү иштей баштаганда, бул сүрөтчө көрүнүп калат.</translation> <translation id="5554720593229208774">Электрондук почтанын тастыктама борбору</translation> <translation id="5556459405103347317">Кайра жүктөө</translation> @@ -4136,6 +4156,7 @@ <translation id="6061882183774845124">Шилтемени түзмөктөрүңүзгө жөнөтүү</translation> <translation id="6064217302520318294">Экран кулпусу</translation> <translation id="6065289257230303064">Тастыктама объектисинин каталог атрибуттары</translation> +<translation id="6069464830445383022">Chromebook'ка Google аккаунтуңуз менен киресиз</translation> <translation id="6069671174561668781">Тушкагаз орнотуу</translation> <translation id="6071181508177083058">сырсөздү ырастоо</translation> <translation id="6071576563962215370">Тутум түзмөктү орнотуу убагында анын атрибуттарын кулпулай албай койду.</translation> @@ -4178,6 +4199,7 @@ <translation id="6104311680260824317">Түзмөк доменге кошулбай койду. Сервер Kerberos шифрлөөсүнүн мындай түрлөрүн колдоого албайт. Шифрлөөнүн жөндөөлөрүн көрүү үчүн "Кошумча параметрлер" бөлүмүн караңыз.</translation> <translation id="6104796831253957966">Принтерге кезек толуп калды</translation> <translation id="6105994589138235234">Chrome серепчисин шайкештирүү</translation> +<translation id="6108689792487843350">Шлюз жеткиликсиз</translation> <translation id="6111972606040028426">Google Жардамчыны иштетүү</translation> <translation id="6112294629795967147">Өлчөмүн өзгөртүү үчүн басуу</translation> <translation id="6112727384379533756">Билет кошуу</translation> @@ -4238,6 +4260,7 @@ <translation id="6178664161104547336">Тастыктама тандаңыз</translation> <translation id="6181431612547969857">Жүктөп алуу бөгөттөлдү</translation> <translation id="6185132558746749656">Түзмөктүн жайгашкан жери</translation> +<translation id="6191293864534840972">Бурмаланган ысым серверлери</translation> <translation id="6195446518998936840">Ата-эненин көзөмөлүн жөндөө үчүн, балаңыздын сиз башкарган Google аккаунту болушу керек. Family Link колдонмосу менен түзмөктү колдонуу убакытын чектеп, вебсайттарды жактырып же бөгөттөп жана башка аракеттерди аткара аласыз.</translation> <translation id="6195693561221576702">Түзмөктү оффлайн демо режиминде жөндөөгө болбойт.</translation> <translation id="6196640612572343990">Үчүнчү жактын кукилери бөгөттөлсүн</translation> @@ -4451,6 +4474,7 @@ <translation id="6451591602925140504">{NUM_PAGES,plural, =0{<ph name="PAGE_TITLE" />}=1{<ph name="PAGE_TITLE" /> жана дагы башка 1 өтмөк}other{<ph name="PAGE_TITLE" /> жана дагы башка # өтмөк}}</translation> <translation id="6451689256222386810">Эгер купуя сөз айкашыңызды унутуп калган болсоңуз же бул жөндөөнү өзгөрткүңүз келсе, <ph name="BEGIN_LINK" />шайкештирүүнү баштапкы абалга келтириңиз<ph name="END_LINK" /></translation> <translation id="6452181791372256707">Четке кагуу</translation> +<translation id="6452251728599530347"><ph name="PERCENT" /> бүттү</translation> <translation id="6452961788130242735">Тармакта маселе бар же чөйрө начар</translation> <translation id="6455264371803474013">Белгилүү бир сайттарда</translation> <translation id="6455894534188563617">&Жаңы папка</translation> @@ -4507,6 +4531,7 @@ <ph name="EVENT_NAME" /></translation> <translation id="6520876759015997832"><ph name="LIST_SIZE" /> ичинен <ph name="LIST_POSITION" /> издөө натыйжасы көрсөтүлүүдө:<ph name="SEARCH_RESULT_TEXT" />. Бөлүмгө өтүү үчүн "Enter" баскычын басыңыз.</translation> <translation id="652492607360843641"><ph name="NETWORK_TYPE" /> тармагына туташып турасыз.</translation> +<translation id="6527081081771465939">Белгисиз WiFi коопсуздук протоколу</translation> <translation id="6527303717912515753">Бөлүшүү</translation> <translation id="6528513914570774834">Бул түзмөктү колдонгон кишилерге ушул тармакты колдонууга уруксат берилсин</translation> <translation id="652948702951888897">Chrome таржымалы</translation> @@ -4623,6 +4648,7 @@ <translation id="6680442031740878064">Бош орун: <ph name="AVAILABLE_SPACE" /></translation> <translation id="6680650203439190394">Баалоо</translation> <translation id="6681668084120808868">Сүрөт тартуу</translation> +<translation id="6684827949542560880">Акыркы жаңыртуу жүктөлүп алынууда</translation> <translation id="668599234725812620">Google Play'ди ачуу</translation> <translation id="6686490380836145850">Өтмөктөрдү оңго карай жабуу</translation> <translation id="6686817083349815241">Сырсөзүңүздү сактаңыз</translation> @@ -4732,6 +4758,7 @@ <translation id="6812841287760418429">Өзгөрүүлөрдү сактоо</translation> <translation id="6817174620439930047">Сайт MIDI түзмөктөрүнө кирүү үчүн тутумдун эксклюзивдүү билдирүүлөрүн уруксат сурап колдонсун (сунушталат)</translation> <translation id="6818198425579322765">Которула турган барактын тили</translation> +<translation id="6818802132960437751">Кыстарылган вирустан коргоо</translation> <translation id="682123305478866682">Иш тактасын тышкы экранга чыгаруу</translation> <translation id="6823174134746916417">Тийме тактасында таптап чыкылдатуу</translation> <translation id="6823506025919456619">Өз түзмөктөрүңүздү көрүү үчүн Chrome'го кириңиз</translation> @@ -5378,6 +5405,7 @@ <translation id="7631205654593498032">Түзмөктөрүңүздү туташтыруу менен <ph name="DEVICE_TYPE" /> түзмөгүнө төмөнкүлөрдү аткарууга уруксат бересиз:</translation> <translation id="7631887513477658702">Мындай түрдөгү файлдар &ар дайым ачылсын</translation> <translation id="7632948528260659758">Төмөнкү киоск колдонмолору жаңырбай калды.</translation> +<translation id="7633724038415831385">Жаңыртууну ушул жолу гана аягына чыгаруу керек болот. Chromebook'тарда программалар фондо жаңыртылат.</translation> <translation id="7634566076839829401">Бир жерден ката кетти. Кайталап көрүңүз.</translation> <translation id="763632859238619983">Бардык сайттарга төлөм иштеткичтерин орнотууга тыюу салынсын</translation> <translation id="7636919061354591437">Ушул түзмөккө орнотуу</translation> @@ -5656,6 +5684,7 @@ <translation id="7933314993013528982">{NUM_TABS,plural, =1{Сайттын үнүн чыгаруу}other{Сайттардын үнүн чыгаруу}}</translation> <translation id="7933634003144813719">Бөлүшүлгөн папкаларды башкаруу</translation> <translation id="793531125873261495">Виртуалдык машина жүктөлүп алынбай калды. Кайталап көрүңүз.</translation> +<translation id="7936303884198020182">Ысым серверлери табылган жок</translation> <translation id="7938594894617528435">Учурда оффлайн</translation> <translation id="7939062555109487992">Кошумча параметрлер</translation> <translation id="7939412583708276221">Баары бир кала берсин</translation> @@ -5898,6 +5927,7 @@ <translation id="8226742006292257240">Төмөндө компьютериңизге дайындалган башаламан түзүлгөн TPM сырсөзү келтирилген.</translation> <translation id="8227119283605456246">Файл тиркөө</translation> <translation id="8230134520748321204"><ph name="ORIGIN" /> үчүн сырсөз сакталсынбы?</translation> +<translation id="8230672074305416752">Демейки тармактын шлюзуна ping сурамы жөнөтүлгөн жок</translation> <translation id="8234795456569844941">Биздин инженерлерге бул көйгөйдү чечүүгө жардам бериңиз. Профилдеги ката жөнүндө билдирүүнү алгандан мурун эмне болуп кеткенин айтып бериңиз:</translation> <translation id="8236917170563564587">Анын ордуна бул өтмөктү бөлүшүңүз</translation> <translation id="8237647586961940482">Күңүрт кызгылтым жана кызыл</translation> @@ -5958,6 +5988,7 @@ <translation id="8288032458496410887"><ph name="APP" /> колдонмосун чыгарып салуу…</translation> <translation id="8289128870594824098">Дисктин өлчөмү</translation> <translation id="8291967909914612644">Баштапкы жабдуучу өлкө</translation> +<translation id="8293206222192510085">Кыстарма кошуу</translation> <translation id="8294431847097064396">Булак</translation> <translation id="8297006494302853456">Начар</translation> <translation id="8299319456683969623">Учурда офлайндасыз.</translation> @@ -6007,6 +6038,7 @@ <translation id="8363095875018065315">туруктуу</translation> <translation id="8363142353806532503">Микрофон бөгөттөлдү</translation> <translation id="8363763184161554204"><ph name="PERMISSION" /> – уруксат берилди</translation> +<translation id="8364946094152050673">Ысым серверлери бош</translation> <translation id="8366396658833131068">Тармагыңыздын туташуу жөндөмү калыбына келтирилди. Киоск колдонмоңузду ишке киргизүү үчүн, башка тармак тандаңыз же төмөнкү 'Улантуу' баскычын басыңыз.</translation> <translation id="8368027906805972958">Белгисиз же колдоого алынбаган түзмөк (<ph name="DEVICE_ID" />)</translation> <translation id="8368859634510605990">Бардык кыстармаларды &ачуу</translation> @@ -6092,8 +6124,10 @@ <translation id="8472623782143987204">жабдык менен камсыздалган</translation> <translation id="8473863474539038330">Даректер жана башкалар</translation> <translation id="8475313423285172237">Chrome'дун ишин өзгөртө турган кеңейтүүнү компьютериңиздеги башка программа кошуп койду.</translation> +<translation id="8475690821716466388">WiFi тармагынын WEP PSK протоколунун коопсуздугу начар</translation> <translation id="8477241577829954800">Алмаштырылды</translation> <translation id="8477384620836102176">&Жалпы</translation> +<translation id="8477551185774834963">DNS күтүү убакыты уруксат берилген босогодон бир аз жогору</translation> <translation id="8480082892550707549">Мурун бул вебсайттан файларды жүктөп алган болсоңуз да, ал убактылуу кооптуу (чабуулга туш болгон) болушу мүмкүн. Бул файлды кийинчерээк жүктөп алыңыз.</translation> <translation id="8480869669560681089"><ph name="VENDOR_NAME" /> деген кызмат көрсөтүүчүнүн белгисиз түзмөгү</translation> <translation id="8481187309597259238">USB уруксатын ырастоо</translation> @@ -6145,6 +6179,7 @@ <translation id="8546930481464505581">Басуу тилкесин ыңгайлаштыруу</translation> <translation id="8547013269961688403">Толук экран лупасын иштетүү</translation> <translation id="85486688517848470">Жогорку катардагы баскычтардын аракеттерин которуштуруу үчүн, Издөө баскычын басып туруңуз</translation> +<translation id="8549316893834449916">Chromebook'ка Gmail, Drive, YouTube жана башка кызматтар үчүн колдонгон Google аккаунтуңуз менен киресиз.</translation> <translation id="8551388862522347954">Уруксаттамалар</translation> <translation id="8551588720239073785">Күн менен убакыт жөндөөлөрү</translation> <translation id="8553342806078037065">Башка адамдарды башкаруу</translation> @@ -6283,6 +6318,7 @@ <translation id="8720200012906404956">Мобилдик тармак изделүүдө. <ph name="BEGIN_LINK" />Кеңири маалымат<ph name="END_LINK" /></translation> <translation id="8720816553731218127">Орнотуу убактысынын аттрибуттары үчүн берилген ишке кошуу убакыты аяктады.</translation> <translation id="8722912030556880711">Колдонуу жана мүчүлүштүктөрдү аныктоо дайындарын жөнөтүү. Учурда бул түзмөк мүчүлүштүктөрдү аныктоо маалыматын, түзмөктүн жана колдонмонун иштетилиши жөнүндө дайындарды Google'га автоматтык түрдө жөнөтүп жатат. Бул маалымат тутум менен колдонмонун кыйла туруктуу иштешин камсыз кылууга жана башка нерселерди жакшыртууга көмөктөшөт. Айрым дайын-даректердин Google'дун өнөктөштөрүнө, мисалы, Android'ди иштеп чыгуучуларга да кереги тийиши мүмкүн. Эгер кошумча Колдонмолор жана Интернеттеги аракеттериңиздин таржымалынын жөндөөлөрү күйгүзүлгөн болсо, бул дайындар Google аккаунтуңузга сакталышы мүмкүн. <ph name="BEGIN_LINK2" />Кеңири маалымат<ph name="END_LINK2" /></translation> +<translation id="8723108084122415655">Демейки эмес тармак күтүү убакытынын босогосунан жогору</translation> <translation id="8724405322205516354">Бул сүрөтчө көрүнгөндө, манжаңыздын изи менен өздүгүңүздү же кандайдыр бир нерсени сатып алууну ырастайсыз.</translation> <translation id="8724409975248965964">Манжа изи кошулду</translation> <translation id="8724859055372736596">Куржунда &көрсөтүү</translation> @@ -6460,6 +6496,7 @@ <translation id="8909833622202089127">Сайт кайда жүргөнүңүзгө көз салууда</translation> <translation id="8910146161325739742">Экраныңызды бөлүшүңүз</translation> <translation id="8910222113987937043">Кыстармаларыңызга, таржымалыңызга, сырсөздөрүңүзгө жана башка жөндөөлөргө киргизилген өзгөрүүлөр Google Аккаунтуңуз менен шайкештирилбейт. Ал эми учурдагы дайын-даректериңиз Google Аккаунтуңузде сакталып кала берет жана аларды <ph name="BEGIN_LINK" />Google Жеке кеңсесинен<ph name="END_LINK" /> башкарса болот.</translation> +<translation id="8910721771319628100">Демейки тармак күтүү убакытынын босогосунан жогору</translation> <translation id="8912362522468806198">Google аккаунту</translation> <translation id="8912793549644936705">Чоюу</translation> <translation id="8912810933860534797">Авто-скандоону иштетүү</translation>
diff --git a/chrome/app/resources/generated_resources_lo.xtb b/chrome/app/resources/generated_resources_lo.xtb index e27a5e6f..c677dcd 100644 --- a/chrome/app/resources/generated_resources_lo.xtb +++ b/chrome/app/resources/generated_resources_lo.xtb
@@ -71,6 +71,7 @@ <translation id="1070705170564860382">ກຳລັງເປີດໂປຣແກຣມທ່ອງເວັບສຳຮອງໃນ <ph name="COUNTDOWN_SECONDS" /> ວິນາທີ</translation> <translation id="1071917609930274619">ການປ່ຽນເປັນລະຫັດຂອງຂໍ້ມູນ</translation> <translation id="1072700771426194907">ກວດພົບອຸປະກອນ USB</translation> +<translation id="107278043869924952">ໃຊ້ PIN ນອກຈາກລະຫັດຜ່ານ</translation> <translation id="1076176485976385390">ໄປຫາໜ້າຕ່າງໆດ້ວຍເຄີເຊີຂໍ້ຄວາມ</translation> <translation id="1076698951459398590">ເປີດນຳໃຊ້ສີສັນໜ້າຕາ</translation> <translation id="1076818208934827215">Microsoft Internet Explorer</translation> @@ -522,7 +523,6 @@ <translation id="1608668830839595724">ຄຳສັ່ງເພີ່ມເຕີມສຳລັບລາຍການທີ່ເລືອກ</translation> <translation id="161042844686301425">ສີຟ້າຂຽວ</translation> <translation id="1611432201750675208">ອຸປະກອນຂອງທ່ານລັອກຢູ່</translation> -<translation id="1611584202130317952">ຂັ້ນຕອນການກຽມນຳໃຊ້ຖືກຂັດຈັງຫວະ. ກະລຸນາລອງອີກຄັ້ງ ຫຼື ຕິດຕໍ່ຫາເຈົ້າຂອງ ຫຼື ຜູ້ເບິ່ງແຍງລະບົບອຸປະກອນຂອງທ່ານ.</translation> <translation id="1614511179807650956">ທ່ານອາດໃຊ້ແພັກເກດອິນເຕີເນັດມືຖືຂອງທ່ານໝົດແລ້ວ. ກະລຸນາເຂົ້າຫາໜ້າເວັບການເປີດນຳໃຊ້ <ph name="NAME" /> ເພື່ອຊື້ອິນເຕີເນັດເພີ່ມເຕີມ</translation> <translation id="161460670679785907">ບໍ່ສາມາດກວດພົບໂທລະສັບຂອງທ່ານໄດ້</translation> <translation id="1616206807336925449">ສ່ວນຂະຫຍາຍນີ້ບໍ່ຕ້ອງການໃຫ້ມີການອະນຸຍາດພິເສດອັນໃດ.</translation> @@ -531,6 +531,7 @@ <translation id="1618268899808219593">ສູນຊ່ວຍເຫຼືອ</translation> <translation id="1620307519959413822">ລະຫັດຜ່ານບໍ່ຖືກຕ້ອງ. ກະລຸນາລອງອີກຄັ້ງ ຫຼື ຄລິກລືມລະຫັດຜ່ານເພື່ອຣີເຊັດມັນ.</translation> <translation id="1620510694547887537">ກ້ອງຖ່າຍຮູບ</translation> +<translation id="1621831347985899379">ຂໍ້ມູນ <ph name="DEVICE_TYPE" /> ຈະຖືກລຶບ</translation> <translation id="1622054403950683339">ລືມເຄືອຂ່າຍ Wi-Fi</translation> <translation id="1623132449929929218">ຮູບພາບບໍ່ສາມາດໃຊ້ໄດ້ໃນຕອນນີ້. ກະລຸນາເຊື່ອມຕໍ່ກັບອິນເຕີເນັດຄືນໃໝ່ເພື່ອເບິ່ງຄໍເລັກຊັນຮູບພື້ນຫຼັງ.</translation> <translation id="1623723619460186680">ການຫຼຸດແສງສີຟ້າ</translation> @@ -758,6 +759,7 @@ <translation id="1877377290348678128">ປ້າຍກຳກັບ (ບໍ່ບັງຄັບ)</translation> <translation id="1877520246462554164">ຮັບເອົາໂທເຄັນການຮັບຮອງຄວາມຖືກຕ້ອງບໍ່ສຳເລັດ. ກະລຸນນາອອກຈາກລະບົບ ແລ້ວເຂົ້າສູ່ລະບົບຄືນໃໝ່ເພື່ອລອງອີກຄັ້ງ.</translation> <translation id="1877860345998737529">ການກຳນົດຄຳສັ່ງດ້ວຍສະວິດ</translation> +<translation id="1878155070920054810">ປາກົດວ່າ Chromebook ຂອງທ່ານຈະໝົດໄຟກ່ອນທີ່ການອັບເດດຈະສຳເລັດ. ກວດໃຫ້ແນ່ໃຈວ່າມັນກຳລັງສາກຢ່າງຖືກຕອງເພື່ອຫຼີກເວັ້ນການຂັດຈັງຫວະ.</translation> <translation id="1879000426787380528">ເຂົ້າສູ່ລະບົບເປັນ</translation> <translation id="1880905663253319515">ລຶບໃບຢັ້ງຢືນ "<ph name="CERTIFICATE_NAME" />" ບໍ?</translation> <translation id="1881445033931614352">ໂຄງຮ່າງແປ້ນພິມ</translation> @@ -962,6 +964,7 @@ <translation id="2148219725039824548">ເກີດຂໍ້ຜິດພາດໃນການເຊື່ອມຕໍ່ການແບ່ງປັນ. ບໍ່ພົບການແບ່ງປັນທີ່ລະບຸໄວ້ຢູ່ໃນເຄືອຂ່າຍ.</translation> <translation id="2148756636027685713">ການຟໍແມັດສໍາເລັດແລ້ວ</translation> <translation id="2148892889047469596">ແຖບຄາສ໌ທ</translation> +<translation id="2149973817440762519">ແກ້ໄຂບຸກມາກສ໌</translation> <translation id="2150139952286079145">ຄົ້ນຫາປາຍທາງ</translation> <translation id="2150661552845026580">ເພີ່ມ "<ph name="EXTENSION_NAME" />" ບໍ?</translation> <translation id="2151576029659734873">ດັດຊະນີແຖບປ້ອນເຂົ້າໃຊ້ບໍ່ໄດ້.</translation> @@ -1071,6 +1074,7 @@ <translation id="2270627217422354837">ແລກປ່ຽນຂໍ້ມູນກັບອຸປະກອນໃດຫນຶ່ງຢູ່ໃນໂດເມນ: <ph name="DOMAINS" /></translation> <translation id="2272570998639520080">ຈອກເຫຼົ້າມາຕິນີ</translation> <translation id="2273119997271134996">ບັນຫາຜອດວິດີໂອຂອງແທ່ນສາກ</translation> +<translation id="2274840746523584236">ສາກ Chromebook ຂອງທ່ານ</translation> <translation id="2276503375879033601">ເພີ່ມແອັບເພີ່ມເຕີມ</translation> <translation id="2277255602909579701">ທຸກຂໍ້ມູນຄຸກກີ້ ແລະ ເວັບໄຊ</translation> <translation id="2277769717710009150">{COUNT,plural, =1{ສຳເນົາ 1 ລາຍການແລ້ວ}other{ສຳເນົາ # ລາຍການແລ້ວ}}</translation> @@ -1913,6 +1917,7 @@ <translation id="3308116878371095290">ໜ້ານີ້ຖືກປ້ອງກັນບໍ່ໃຫ້ຕັ້ງຄ່າຄຸກກີ້.</translation> <translation id="3308134619352333507">ເຊື່ອງປຸ່ມ</translation> <translation id="3308852433423051161">ກຳລັງໂຫຼດຜູ້ຊ່ວຍ Google...</translation> +<translation id="3310640316857623290">ເວລາໃນການຕອບສະໜອງ DNS ສູງກວ່າເກນທີ່ຍອມຮັບໄດ້ຫຼາຍ</translation> <translation id="3311445899360743395">ຂໍ້ມູນທີ່ເຊື່ອມໂຍງກັບແອັບນີ້ອາດຈະຖືກລຶບອອກຈາກອຸປະກອນນີ້.</translation> <translation id="3312424061798279731">ພາສາເປີດໃຊ້ງານແລ້ວ</translation> <translation id="3313622045786997898">ຄ່າລາຍເຊັນໃບຢັ້ງຢືນ</translation> @@ -1925,6 +1930,7 @@ <translation id="3323295311852517824">{NUM_FILES,plural, =0{ຂໍ້ມູນນີ້ມີເນື້ອຫາລະອຽດອ່ອນ ຫຼື ອັນຕະລາຍ. ລຶບເນື້ອຫານີ້ອອກ ແລ້ວລອງໃໝ່.}=1{ໄຟລ໌ນີ້ມີເນື້ອຫາລະອຽດອ່ອນ ຫຼື ອັນຕະລາຍ. ລຶບເນື້ອຫານີ້ອອກ ແລ້ວລອງໃໝ່.}other{ໄຟລ໌ເຫຼົ່ານີ້ມີເນື້ອຫາລະອຽດອ່ອນ ຫຼື ອັນຕະລາຍ. ລຶບເນື້ອຫານີ້ອອກ ແລ້ວລອງໃໝ່.}}</translation> <translation id="3323521181261657960">ໂບນັດ! ທ່ານໄດ້ເວລາໜ້າຈໍເພີ່ມ</translation> <translation id="3325910708063135066">ກ້ອງຖ່າຍຮູບ ແລະ ໄມໂຄຣໂຟນປິດຢູ່ໃນການຕັ້ງຄ່າລະບົບ Mac</translation> +<translation id="3327050066667856415">Chromebook ໄດ້ຮັບການອອກແບບມາເພື່ອຄວາມປອດໄພ. ອຸປະກອນຂອງທ່ານໄດ້ຮັບການປົກປ້ອງຈາກເມົາແວໂດຍອັດຕະໂນມັດ, ບໍ່ຈຳເປັນຕ້ອງໃຊ້ຊອບແວເພີ່ມເຕີມ.</translation> <translation id="3328489342742826322">ການກູ້ຄືນຈາກການສຳຮອງຂໍ້ມູນຈະລຶບແອັບພລິເຄຊັນ ແລະ ຂໍ້ມູນ Linux ທີ່ມີຢູ່ໃນໂຟນເດີໄຟລ໌ Linux ຂອງທ່ານ.</translation> <translation id="3331321258768829690">(<ph name="UTCOFFSET" />) <ph name="LONGTZNAME" /> (<ph name="EXEMPLARCITY" />)</translation> <translation id="3331974543021145906">ຂໍ້ມູນແອັບ</translation> @@ -2114,6 +2120,7 @@ <translation id="3556433843310711081">ຜູ້ຈັດການສາມາດບລັອກມັນໃຫ້ທ່ານໄດ້</translation> <translation id="3557101512409028104">ຕັ້ງຄ່າການຈຳກັດເວັບໄຊ ແລະ ຂີດຈຳກັດເວລາໜ້າຈໍດ້ວຍ Family Link</translation> <translation id="3559262020195162408">ຕິດຕັ້ງນະໂຍບາຍໃນອຸປະກອນບໍ່ສຳເລັດ.</translation> +<translation id="3559533181353831840">ຍັງອີກປະມານ <ph name="TIME_LEFT" /></translation> <translation id="3560034655160545939">&ກວດການສະກົດຄຳ</translation> <translation id="3562423906127931518">ຂະບວນການອາດຈະໃຊ້ເວລາສອງສາມນາທີ. ກຳລັງຕັ້ງຄ່າກ່ອງບັນຈຸ Linux.</translation> <translation id="3563432852173030730">ບໍ່ສາມາດດາວໂຫຼດແອັບພລິເຄຊັນ Kiosk ໄດ້.</translation> @@ -2156,6 +2163,7 @@ <translation id="3602290021589620013">ເບິ່ງຕົວຢ່າງ</translation> <translation id="3603622770190368340">ຮັບເອົາໃບຢັ້ງຢືນເຄືອຂ່າຍ</translation> <translation id="3604713164406837697">ປ່ຽນພາບພື້ນຫຼັງ</translation> +<translation id="360565022852130722">ເຄືອຂ່າຍ WiFi ມີການຮັກສາຄວາມປອດໄພດ້ວຍໂປຣໂຕຄໍ WEP 802.1x ທີ່ບໍ່ຮັດກຸມ</translation> <translation id="3605780360466892872">ປຸ່ມລົງລຸ່ມ</translation> <translation id="3608576286259426129">ຕົວຢ່າງຮູບຂອງຜູ້ໃຊ້</translation> <translation id="3610369246614755442">ພັດລົມຂອງແທ່ນສາກຕ້ອງການສ້ອມແປງ</translation> @@ -2192,6 +2200,7 @@ <translation id="3639220004740062347">ອອກຈາກໂໝດຜູ້ອ່ານ</translation> <translation id="3640214691812501263">ເພີ່ມ "<ph name="EXTENSION_NAME" />" ສຳລັບ <ph name="USER_NAME" /> ບໍ?</translation> <translation id="3640613767643722554">ສອນຜູ້ຊ່ວຍຂອງທ່ານໃຫ້ຮັບຮູ້ສຽງຂອງທ່ານ</translation> +<translation id="3643014427358482789"><ph name="DOMAIN" /> ກຳລັງປິດການນຳໃຊ້ການດີບັກ ADB, ເຊິ່ງຈະຣີເຊັດ <ph name="DEVICE_TYPE" /> ຂອງທ່ານ. ສຳຮອງໄຟລ໌ຂອງທ່ານກ່ອນທີ່ຈະຣີສະຕາດ.</translation> <translation id="3645372836428131288">ຍ້າຍຊ້າໆເພື່ອບັນທຶກເອົາສ່ວນຕ່າງໆຂອງລາຍນິ້ວມື.</translation> <translation id="3647998456578545569">{COUNT,plural, =1{<ph name="ATTACHMENTS" /> ທີ່ໄດ້ຮັບຈາກ <ph name="DEVICE_NAME" />}other{<ph name="ATTACHMENTS" /> ທີ່ໄດ້ຮັບຈາກ <ph name="DEVICE_NAME" />}}</translation> <translation id="3648348069317717750"><ph name="USB_DEVICE_NAME" /> ກວດພົບແລ້ວ</translation> @@ -2280,6 +2289,7 @@ <translation id="3732857534841813090">ຂໍ້ມູນທີ່ກ່ຽວຂ້ອງກັບຜູ້ຊ່ວຍ Google</translation> <translation id="3733127536501031542">ເຊີບເວີ SSL ດ້ວຍການກ້າວຕໍ່ໄປ</translation> <translation id="3735740477244556633">ຈັດຮຽງຕາມ</translation> +<translation id="3738632186060045350">ຂໍ້ມູນ <ph name="DEVICE_TYPE" /> ຈະຖືກລຶບໃນ 24 ຊົ່ວໂມງ</translation> <translation id="3738924763801731196"><ph name="OID" />:</translation> <translation id="3739254215541673094">ເປີດ <ph name="APPLICATION" /> ບໍ?</translation> <translation id="3742055079367172538">ຖ່າຍຮູບໜ້າຈໍແລ້ວ</translation> @@ -2467,6 +2477,7 @@ <translation id="3937734102568271121">ແປພາສາ <ph name="LANGUAGE" /> ທຸກເທື່ອ</translation> <translation id="3938128855950761626">ອຸປະກອນຈາກຜູ້ຂາຍ <ph name="VENDOR_ID" /></translation> <translation id="3940233957883229251">ເປີດໃຊ້ງານຊໍ້າຄືນອັດຕະໂນມັດ</translation> +<translation id="3941014780699102620">ແກ້ໄຂບັນຫາໂຮສບໍ່ສຳເລັດ</translation> <translation id="3941565636838060942">ເພື່ອເຊື່ອງການເຂົ້າໃຊ້ໂປຣແກຼມນີ້, ທ່ານຈໍາເປັນຕ້ອງຕິດຕັ້ງມັນໂດຍການໃຊ້ <ph name="CONTROL_PANEL_APPLET_NAME" /> ຢູ່ໃນແຜງຄວບຄຸມ. @@ -2629,6 +2640,7 @@ <translation id="413121957363593859">ອົງປະກອບ</translation> <translation id="4131410914670010031">ຂາວດໍາ</translation> <translation id="413193092008917129">ສິ່ງທີ່ເຮັດປະຈຳສຳລັບການວິເຄາະບັນຫາເຄືອຂ່າຍ</translation> +<translation id="4132183752438206707">ຊອກແອັບໃນ Google Play Store</translation> <translation id="4133076602192971179">ເປີດແອັບເພື່ອປ່ຽນລະຫັດຜ່ານຂອງທ່ານ</translation> <translation id="4136203100490971508">ແສງກາງຄືນຈະປິດໂດຍອັດຕະໂນມັດເມື່ອຕາເວັນຂຶ້ນ</translation> <translation id="41365691917097717">ການສືບຕໍ່ຈະເປີດນຳໃຊ້ການດີບັກ ADB ສຳລັບການສ້າງ ແລະ ທົດສອບແອັບ Android. ກະລຸນາຮັບຊາບວ່າການດຳເນີນການນີ້ອະນຸຍາດການຕິດຕັ້ງແອັບ Android ທີ່ບໍ່ໄດ້ຜ່ານການກວດຢັ້ງຢືນຈາກ Google ແລະ ຈຳເປັນຕ້ອງຣີເຊັດເປັນຄ່າໂຮງງານເພື່ອປິດນຳໃຊ້.</translation> @@ -2878,6 +2890,8 @@ <translation id="4479877282574735775">ກຳລັງກຳນົດຄ່າເຄື່ອງສະເໝືອນຈິງ. ນີ້ອາດຈະໃຊ້ເວລາສອງສາມນາທີ.</translation> <translation id="4480590691557335796">Chrome ສາມາດຊອກຫາຊອບແວອັນຕະລາຍໃນຄອມພິວເຕີຂອງທ່ານ ແລະ ລຶບມັນອອກໄດ້</translation> <translation id="4481530544597605423">ອຸປະກອນທີ່ບໍ່ໄດ້ຈັບຄູ່ກັນ</translation> +<translation id="4483049906298469269">ໃຊ້ຄຳສັ່ງ ping ກັບເກດເວເຄືອຂ່າຍທີ່ບໍ່ແມ່ນຄ່າເລີ່ມຕົ້ນບໍ່ໄດ້</translation> +<translation id="4487489714832036847">Chromebooks ໃຊ້ແອັບແທນຊອບແວດັ້ງເດີມ. ດາວໂຫຼດແອັບສຳລັບປະສິດທິພາບການເຮັດວຽກ, ການບັນເທີງ ແລະ ອື່ນໆອີກ.</translation> <translation id="4488502501195719518">ລຶບລ້າງຂໍ້ມູນທັງໝົດບໍ?</translation> <translation id="4493468155686877504">ແນະນຳ (<ph name="INSTALL_SIZE" />)</translation> <translation id="4495419450179050807">ຢ່າສະແດງຢູ່ໃນໜ້ານີ້ອີກ</translation> @@ -2928,6 +2942,7 @@ <translation id="4546692474302123343">ການປ້ອນຂໍ້ມູນດ້ວຍສຽງໃນຜູ້ຊ່ວຍ Google</translation> <translation id="4547659257713117923">ບໍ່ມີແທັບຈາກອຸປະກອນອື່ນ</translation> <translation id="4547672827276975204">ຕັ້ງຄ່າໂດຍອັດຕະໂນມັດ</translation> +<translation id="4548483925627140043">ບໍ່ພົບສັນຍານ</translation> <translation id="4549791035683739768">ກະແຈຄວາມປອດໄພຂອງທ່ານບໍ່ມີລາຍນິ້ວມືທີ່ເກັບຮັກສາໄວ້</translation> <translation id="4551763574344810652">ກົດ <ph name="MODIFIER_KEY_DESCRIPTION" /> ເພື່ອຍົກເລີກ</translation> <translation id="4552089082226364758">ແຟລດ</translation> @@ -2967,6 +2982,7 @@ <translation id="4582563038311694664">ຕັ້ງທຸກການຕັ້ງຄ່າຄືນໃໝ່</translation> <translation id="4585793705637313973">ແກ້ໄຂໜ້າ</translation> <translation id="4586275095964870617">ບໍ່ສາມາດເປີດ <ph name="URL" /> ໃນໂປຣແກຣມທ່ອງເວັບສຳຮອງໄດ້ ກະລຸນາຕິດຕໍ່ຜູ້ເບິ່ງແຍງລະບົບຂອງທ່ານ.</translation> +<translation id="458794348635939462">ແກ້ໄຂບັນຫາໂຮສທັງໝົດບໍ່ສຳເລັດ</translation> <translation id="4589713469967853491">ຂຽນບັນທຶກໃສ່ແຟ້ມການດາວໂຫຼດສຳເລັດແລ້ວ.</translation> <translation id="4590324241397107707">ບ່ອນເກັບຖານຂໍ້ມູນ</translation> <translation id="4592891116925567110">ແອັບແຕ້ມຮູບດ້ວຍປາຍປາກກາ</translation> @@ -3350,6 +3366,7 @@ <translation id="5089810972385038852">ລັດ</translation> <translation id="5094721898978802975">ສື່ສານກັບແອັບພລິເຄຊັນເດີມທີ່ຮ່ວມມື</translation> <translation id="5097002363526479830">ເຊື່ອມຕໍ່ກັບເຄືອຂ່າຍບໍ່ໄດ້ '<ph name="NAME" />': <ph name="DETAILS" /></translation> +<translation id="5097649414558628673">ເຄື່ອງມື: <ph name="PRINT_NAME" /></translation> <translation id="5097874180538493929">ຄລິກໂດຍອັດຕະໂນມັດເມື່ອເຄີເຊີຢຸດ</translation> <translation id="5101042277149003567">ເປີດທຸກບຸກມາກ</translation> <translation id="5101839224773798795">ຄລິກອັດຕະໂນມັດເມື່ອເຄີເຊີຢຸດ</translation> @@ -3568,6 +3585,7 @@ <translation id="5370819323174483825">ໂຫຼດໃໝ່</translation> <translation id="5372529912055771682">ໂໝດການລົງທະບຽນທີ່ຈັດໃຫ້ບໍ່ຮອງຮັບໂດຍລະບົບໃຊ້ງານລຸ້ນນີ້. ເບິ່ງໃຫ້ແນ່ໃຈວ່າ ທ່ານກໍາລັງແລ່ນລຸ້ນໃໝ່ສຸດ ແລະລອງໃໝ່ອີກ.</translation> <translation id="5372579129492968947">ຖອນປັກໝຸດສ່ວນຂະຫຍາຍ</translation> +<translation id="5372659122375744710">ເຄືອຂ່າຍ WiFi ບໍ່ປອດໄພ</translation> <translation id="5376169624176189338">ຄລິກເພື່ອກັບຄືນ, ປ່ອຍຄ້າງໄວ້ເພື່ອເບິ່ງປະຫວັດ</translation> <translation id="5376931455988532197">ໄຟລ໌ຍາວເກີນໄປ</translation> <translation id="5377721922656071359">{COUNT,plural, =1{ສົ່ງ <ph name="ATTACHMENTS" /> ໄປຍັງ <ph name="DEVICE_NAME" /> ສຳເລັດແລ້ວ}other{ສົ່ງ <ph name="ATTACHMENTS" /> ໄປຍັງ <ph name="DEVICE_NAME" /> ສຳເລັດແລ້ວ}}</translation> @@ -3597,6 +3615,7 @@ <translation id="5414566801737831689">ອ່ານໄອຄອນຂອງເວັບໄຊທ໌ທີ່ທ່ານເຂົ້າເບິ່ງ</translation> <translation id="5417312524372586921">ສີສັນໜ້າຕາໂປຣແກຣມທ່ອງເວັບ</translation> <translation id="5419405654816502573">Voice Match</translation> +<translation id="5420274697768050645">ຈໍາເປັນຕ້ອງມີລະຫັດຜ່ານເພື່ອປົດລັອກອຸປະກອນເພື່ອຄວາມປອດໄພຍິ່ງຂຶ້ນ</translation> <translation id="5420438158931847627">ກຳນົດຄວາມຄົມຊັດຂອງຂໍ້ຄວາມ ແລະ ຮູບພາບ</translation> <translation id="5422221874247253874">ຈຸດເຂົ້າເຖິງ</translation> <translation id="5422781158178868512">ຂໍອະໄພ, ບໍ່ສາມາດຮັບຮູ້ອຸປະກອນເກັບຂໍ້ມູນທາງນອກຂອງທ່ານໄດ້.</translation> @@ -3721,6 +3740,7 @@ <translation id="5548606607480005320">ການກວດສອບຄວາມປອດໄພ</translation> <translation id="5551573675707792127">ແປ້ນພິມ ແລະ ການປ້ອນຂໍ້ຄວາມ</translation> <translation id="5553089923092577885">ການສ້າງແຜນທີ່ນະໂຍບາຍໃບຢັ້ງຢືນ</translation> +<translation id="5554403733534868102">ຫຼັງຈາກນີ້, ຈະບໍ່ມີການລໍຖ້າການອັບເດດ</translation> <translation id="5554489410841842733">ຈະເຫັນໄອຄອນນີ້ໄດ້ ເມື່ອສ່ວນຂະຫຍາຍສາມາດດໍາເນີນການຢູ່ໃນໜ້າປະຈຸບັນໄດ້.</translation> <translation id="5554720593229208774">ໜ່ວຍງານຢັ້ງຢືນອີເມວ</translation> <translation id="5556459405103347317">ໂຫຼດຄືນໃໝ່</translation> @@ -4134,6 +4154,7 @@ <translation id="6061882183774845124">ສົ່ງລິ້ງຫາອຸປະກອນຂອງທ່ານ</translation> <translation id="6064217302520318294">ການລັອກໜ້າຈໍ</translation> <translation id="6065289257230303064">ຄຸນລັກສະນະໄດເຣັກຕໍຣີຫົວຂໍ້ໃບຢັ້ງຢືນ</translation> +<translation id="6069464830445383022">ໃຊ້ບັນຊີ Google ຂອງທ່ານເພື່ອເຂົ້າສູ່ລະບົບ Chromebook ຂອງທ່ານ</translation> <translation id="6069671174561668781">ຕັ້ງຮູບພື້ນຫຼັງ</translation> <translation id="6071181508177083058">ຢືນຢັນລະຫັດຜ່ານ</translation> <translation id="6071576563962215370">ລະບົບກຳນົດການລັອກຄຸນລັກສະນະເວລາການຕິດຕັ້ງຂອງອຸປະກອນບໍ່ສຳເລັດ.</translation> @@ -4176,6 +4197,7 @@ <translation id="6104311680260824317">ບໍ່ສາມາດເພີ່ມອຸປະກອນເຂົ້າຮ່ວມໂດເມນໄດ້. ເຊີບເວີບໍ່ຮອງຮັບການເຂົ້າລະຫັດປະເພດ Kerberos. ກະລຸນາກວດເບິ່ງ "ຕົວເລືອກເພີ່ມເຕີມ" ສຳລັບການຕັ້ງຄ່າການເຂົ້າລະຫັດ.</translation> <translation id="6104796831253957966">ຄິວເຄື່ອງພິມເຕັມແລ້ວ</translation> <translation id="6105994589138235234">ການຊິ້ງຂໍ້ມູນໂປຣແກຣມທ່ອງເວັບ Chrome</translation> +<translation id="6108689792487843350">ບໍ່ສາມາດຕິດຕໍ່ເກດເວໄດ້</translation> <translation id="6111972606040028426">ເປີດການນຳໃຊ້ຜູ້ຊ່ວຍ Google</translation> <translation id="6112294629795967147">ແຕະເພື່ອປັບຂະໜາດ</translation> <translation id="6112727384379533756">ເພີ່ມປີ້</translation> @@ -4236,6 +4258,7 @@ <translation id="6178664161104547336">ເລືອກໃບຢັ້ງຢືນ</translation> <translation id="6181431612547969857">ບລັອກດາວໂຫຼດແລ້ວ</translation> <translation id="6185132558746749656">ທີ່ຕັ້ງອຸປະກອນ</translation> +<translation id="6191293864534840972">ເຊີບເວີຊື່ຜິດຮູບແບບ</translation> <translation id="6195446518998936840">ເພື່ອຕັ້ງຄ່າການຄວບຄຸມຂອງພໍ່ແມ່, ລູກຂອງທ່ານຕ້ອງມີບັນຊີ Google ທີ່ທ່ານຈະຊ່ວຍຈັດການ. ທ່ານສາມາດຕັ້ງຄ່າຂີດຈຳກັດເວລາໜ້າຈໍ, ອະນຸມັດ ຫຼື ບລັອກເວັບໄຊ ແລະ ອື່ນໆອີກດ້ວຍແອັບ Family Link ໄດ້.</translation> <translation id="6195693561221576702">ບໍ່ສາມາດຕັ້ງຄ່າອຸປະກອນນີ້ໃນໂໝດສາທິດອອບລາຍໄດ້.</translation> <translation id="6196640612572343990">ບລັອກຄຸກກີ້ພາກສ່ວນທີສາມ</translation> @@ -4449,6 +4472,7 @@ <translation id="6451591602925140504">{NUM_PAGES,plural, =0{<ph name="PAGE_TITLE" />}=1{<ph name="PAGE_TITLE" /> ແລະ ອີກ 1 ແຖບ}other{<ph name="PAGE_TITLE" /> ແລະ ອີກ # ແຖບ}}</translation> <translation id="6451689256222386810">ຖ້າທ່ານລືມວະລີຜ່ານຂອງທ່ານ ຫຼື ຕ້ອງການປ່ຽນການຕັ້ງຄ່ານີ້, <ph name="BEGIN_LINK" />ຣີເຊັດການຊິ້ງຂໍ້ມູນ<ph name="END_LINK" />.</translation> <translation id="6452181791372256707">ປະຕິເສດ</translation> +<translation id="6452251728599530347">ສຳເລັດ <ph name="PERCENT" /></translation> <translation id="6452961788130242735">ພົບບັນຫາເຄືອຂ່າຍ ຫຼື ຂອບເຂດບໍ່ດີ</translation> <translation id="6455264371803474013">ໃນເວັບໄຊສະເພາະ</translation> <translation id="6455894534188563617">&ໂຟນເດີໃໝ່</translation> @@ -4505,6 +4529,7 @@ <ph name="EVENT_NAME" /></translation> <translation id="6520876759015997832">ຜົນການຊອກຫາ <ph name="LIST_POSITION" /> ຂອງ <ph name="LIST_SIZE" />: <ph name="SEARCH_RESULT_TEXT" />. ກົດ Enter ເພື່ອນຳທາງໄປຫາພາກສ່ວນ.</translation> <translation id="652492607360843641">ທ່ານເຊື່ອມຕໍ່ກັບເຄືອຂ່າຍ <ph name="NETWORK_TYPE" />.</translation> +<translation id="6527081081771465939">ໂປຣໂຕຄໍຮັກສາຄວາມປອດໄພ WiFi ທີ່ບໍ່ຮູ້ຈັກ</translation> <translation id="6527303717912515753">ແຊຣ໌</translation> <translation id="6528513914570774834">ອະນຸຍາດໃຫ້ຜູ້ໃຊ້ອື່ນຂອງອຸປະກອນນີ້ໃຊ້ເຄືອຂ່າຍນີ້</translation> <translation id="652948702951888897">ປະຫວັດ Chrome</translation> @@ -4621,6 +4646,7 @@ <translation id="6680442031740878064">ມີໃຫ້: <ph name="AVAILABLE_SPACE" /></translation> <translation id="6680650203439190394">ໃຫ້ຄະແນນ</translation> <translation id="6681668084120808868">ຖ່າຍຮູບ</translation> +<translation id="6684827949542560880">ກຳລັງດາວໂຫຼດການອັບເດດຫຼ້າສຸດ</translation> <translation id="668599234725812620">ເປີດ Google Play</translation> <translation id="6686490380836145850">ປິດແຖບໄປທາງຂວາ</translation> <translation id="6686817083349815241">ບັນທຶກລະຫັດຜ່ານຂອງທ່ານ</translation> @@ -4730,6 +4756,7 @@ <translation id="6812841287760418429">ສືບຕໍ່ປ່ຽນແປງ</translation> <translation id="6817174620439930047">ຖາມເມື່ອເວັບໄຊຕ້ອງການໃຊ້ຂໍ້ຄວາມສະເພາະລະບົບເພື່ອເຂົ້າຫາອຸປະກອນ MIDI (ແນະນໍາ)</translation> <translation id="6818198425579322765">ພາສາຂອງໜ້າເວັບທີ່ຈະແປ</translation> +<translation id="6818802132960437751">ລະບົບປ້ອງກັນໄວຣັສໃນຕົວ</translation> <translation id="682123305478866682">ຄາສທ໌ເດັສທັອບ</translation> <translation id="6823174134746916417">ແຕະເພື່ອຄລິກແຜ່ນສຳຜັດ</translation> <translation id="6823506025919456619">ທ່ານຈໍາເປັນຕ້ອງລົງຊື່ເຂົ້າໃຊ້ Chrome ເພື່ອເບິ່ງອຸປະກອນຂອງທ່ານ</translation> @@ -5376,6 +5403,7 @@ <translation id="7631205654593498032">ເມື່ອທ່ານເຊື່ອມຕໍ່ອຸປະກອນຂອງທ່ານ, ທ່ານເຫັນດີວ່າ <ph name="DEVICE_TYPE" /> ຂອງທ່ານສາມາດ:</translation> <translation id="7631887513477658702">ເປີດໄຟລ໌ປະເພດນີ້ທຸກຄັ້ງ</translation> <translation id="7632948528260659758">ແອັບ kiosk ຕໍ່ໄປນີ້ຫຼົ້ມເຫຼວສໍາລັບການອັບເດດ:</translation> +<translation id="7633724038415831385">ນີ້ເປັນເວລາໜຶ່ງດຽວທີ່ທ່ານຈະລໍຖ້າການອັບເດດ. ໃນ Chromebook, ການອັບເດດຊອບແວຈະເກີດຂຶ້ນໃນພື້ນຫຼັງ.</translation> <translation id="7634566076839829401">ມີບາງອັນຜິດພາດ. ກະລຸນາລອງໃໝ່ພາຍຫຼັງ.</translation> <translation id="763632859238619983">ບໍ່ອະນຸຍາດໃຫ້ເວັບໄຊໃດຕິດຕັ້ງຕົວຈັດການການຈ່າຍເງິນ</translation> <translation id="7636919061354591437">ຕິດຕັ້ງໃນອຸປະກອນນີ້</translation> @@ -5653,6 +5681,7 @@ <translation id="7933314993013528982">{NUM_TABS,plural, =1{ເປີດສຽງເວັບໄຊ}other{ເປີດສຽງເວັບໄຊ}}</translation> <translation id="7933634003144813719">ຈັດການໂຟນເດີທີ່ໃຊ້ຮ່ວມກັນ</translation> <translation id="793531125873261495">ເກີດຄວາມຜິດພາດໃນດາວໂຫຼດເຄື່ອງຈຳລອງສະເໝືອນຈິງ. ກະລຸນາລອງອີກຄັ້ງ.</translation> +<translation id="7936303884198020182">ບໍ່ພົບເຊີບເວີຊື່</translation> <translation id="7938594894617528435">ອອຟລາຍນ໌ຢູ່ປະຈຸບັນ</translation> <translation id="7939062555109487992">ຕົວເລືອກຂັ້ນສູງ</translation> <translation id="7939412583708276221">ແນວໃດກໍ່ຮັກສາໄວ້</translation> @@ -5895,6 +5924,7 @@ <translation id="8226742006292257240">ຢູ່ລຸ່ມນີ້ແມ່ນລະຫັດຜ່ານ TPM ທີ່ສ້າງຂຶ້ນມາດ້ວຍການສຸ່ມ ທີ່ໄດ້ກໍານົດໃຫ້ກັບຄອມພິວເຕີຂອງທ່ານ:</translation> <translation id="8227119283605456246">ຄັດຕິດໄຟລ໌</translation> <translation id="8230134520748321204">ບັນທຶກລະຫັດຜ່ານສຳລັບ <ph name="ORIGIN" /> ບໍ?</translation> +<translation id="8230672074305416752">ໃຊ້ຄຳສັ່ງ ping ກັບເກດເວເຄືອຂ່າຍຄ່າເລີ່ມຕົ້ນບໍ່ໄດ້</translation> <translation id="8234795456569844941">ກະລຸນາຊ່ວຍວິສະວະກອນຂອງພວກເຮົາແກ້ໄຂບັນຫານີ້. ບອກພວກເຮົາສິ່ງທີ່ເກີດຂຶ້ນທັນທີກ່ອນທີ່ທ່ານໄດ້ຮັບຂໍ້ຄວາມສະແດງຂໍ້ຜິດພາດກ່ຽວກັບໂປຣໄຟລ໌ດັ່ງກ່າວ:</translation> <translation id="8236917170563564587">ແບ່ງປັນແຖບນີ້ແທນ</translation> <translation id="8237647586961940482">ສີບົວເຂັ້ມ ແລະ ສີແດງ</translation> @@ -5955,6 +5985,7 @@ <translation id="8288032458496410887">ຖອນຕິດຕັ້ງ <ph name="APP" />...</translation> <translation id="8289128870594824098">ຂະໜາດດິສ</translation> <translation id="8291967909914612644">ປະເທດຜູ້ໃຫ້ບໍລິການ Home</translation> +<translation id="8293206222192510085">ເພີ່ມບຸກມາກຄ໌</translation> <translation id="8294431847097064396">ແຫຼ່ງທີ່ມາ</translation> <translation id="8297006494302853456">ອ່ອນ</translation> <translation id="8299319456683969623">ປະຈຸບັນທ່ານອອຟລາຍນ໌ຢູ່.</translation> @@ -6004,6 +6035,7 @@ <translation id="8363095875018065315">ຫມັ້ນຄົງ</translation> <translation id="8363142353806532503">ບລັອກໄມໂຄຣໂຟນໄວ້ແລ້ວ</translation> <translation id="8363763184161554204">ອະນຸຍາດ <ph name="PERMISSION" /> ແລ້ວ</translation> +<translation id="8364946094152050673">ເຊີບເວີຊື່ຫວ່າງເປົ່າ</translation> <translation id="8366396658833131068">ການເຊື່ອມຕໍ່ເຄືອຂ່າຍຂອງທ່ານກັບຄືນມາແລ້ວ. ກະລຸນາເລືອກເຄືອຂ່າຍອື່ນ ຫຼືກົດປຸ່ມ 'ສືບຕໍ່' ຢູ່ລຸ່ມນີ້ ເພື່ອເປີດໃຊ້ແອັບ kiosk ຂອງທ່ານ.</translation> <translation id="8368027906805972958">ອຸປະກອນທີ່ບໍ່ຮູ້ຈັກ ຫຼື ບໍ່ຮອງຮັບ (<ph name="DEVICE_ID" />)</translation> <translation id="8368859634510605990">ເປີດທຸກບຸກມາກສ໌</translation> @@ -6089,8 +6121,10 @@ <translation id="8472623782143987204">ຮາດແວສໍາຮອງໄວ້</translation> <translation id="8473863474539038330">ທີ່ຢູ່ ແລະ ອື່ນໆອີກ</translation> <translation id="8475313423285172237">ໂປຣແກຼມອື່ນຢູ່ໃນຄອມພິວເຕີຂອງທ່ານໄດ້ເພີ່ມສ່ວນຂະຫຍາຍທີ່ອາດຈະປ່ຽນແປງວິທີການເຮັດວຽກຂອງ Chrome ແລ້ວ.</translation> +<translation id="8475690821716466388">ເຄືອຂ່າຍ WiFi ມີການຮັກສາຄວາມປອດໄພດ້ວຍໂປຣໂຕຄໍ WEP PSK ທີ່ບໍ່ຮັດກຸມ</translation> <translation id="8477241577829954800">ປ່ຽນແທນແລ້ວ</translation> <translation id="8477384620836102176">ທົ່ວໄປ</translation> +<translation id="8477551185774834963">ເວລາໃນການຕອບສະໜອງ DNS ສູງກວ່າເກນທີ່ຍອມຮັບໄດ້ເລັກນ້ອຍ</translation> <translation id="8480082892550707549">ເຖິງແມ່ນວ່າທ່ານໄດ້ດາວໂຫຼດໄຟລ໌ຈາກເວັບໄຊນີ້ມາກ່ອນ, ເວັບໄຊນີ້ອາດຈະບໍ່ປອດໄພຊົ່ວຄາວ (ຖືກແຮັກ). ລອງດາວໂຫຼດໄຟລ໌ນີ້ໃນພາຍຫຼັງ.</translation> <translation id="8480869669560681089">ອຸປະກອນທີ່ບໍ່ຮູ້ຈັກຈາກ <ph name="VENDOR_NAME" /></translation> <translation id="8481187309597259238">ຢືນຢັນການອະນຸຍາດ USB</translation> @@ -6142,6 +6176,7 @@ <translation id="8546930481464505581">ປັບແຕ່ງແຖບການແຕະ</translation> <translation id="8547013269961688403">ເປີດນຳໃຊ້ແວ່ນຂະຫຍາຍເຕັມຈໍ</translation> <translation id="85486688517848470">ກົດປຸ່ມຊອກຫາຄ້າງໄວ້ເພື່ອປ່ຽນພຶດຕິກຳຂອງປຸ່ມແຖວເທິງ</translation> +<translation id="8549316893834449916">ທ່ານຈະໃຊ້ບັນຊີ Google ຂອງທ່ານເພື່ອເຂົ້າຮ່ວມລະບົບ Chromebook ຂອງທ່ານ, ເຊິ່ງເປັນບັນຊີດຽວກັນກັບທີ່ທ່ານໃຊ້ສຳລັບ Gmail, Drive, YouTube ແລະ ອື່ນໆອີກ.</translation> <translation id="8551388862522347954">ໃບອະນຸຍາດ</translation> <translation id="8551588720239073785">ການຕັ້ງຄ່າວັນທີ ແລະ ເວລາ</translation> <translation id="8553342806078037065">ຈັດການບູກຄົນອື່ນ</translation> @@ -6280,6 +6315,7 @@ <translation id="8720200012906404956">ກຳລັງຊອກຫາເຄືອຂ່າຍມືຖືຢູ່. <ph name="BEGIN_LINK" />ສຶກສາເພີ່ມເຕີມ<ph name="END_LINK" /></translation> <translation id="8720816553731218127">ການລິເລີ່ມຄຸນລັກສະນະເວລາການຕິດຕັ້ງໝົດເວລາແລ້ວ.</translation> <translation id="8722912030556880711">ສົ່ງຂໍ້ມູນການນຳໃຊ້ ແລະ ການວິເຄາະ. ອຸປະກອນນີ້ກຳລັງສົ່ງຂໍ້ມູນການວິເຄາະ, ຂໍ້ມູນອຸປະກອນ ແລະ ການໃຊ້ແອັບໃຫ້ Google ໂດຍອັດຕະໂນມັດໃນຂະນະນີ້. ນີ້ຈະຊ່ວຍປັບປຸງຄວາມສະຖຽນຂອງລະບົບ ແລະ ແອັບ ແລະ ການປັບປຸງອື່ນໆ. ບາງຂໍ້ມູນແບບຮວມກັນຍັງຈະຊ່ວຍແອັບ ແລະ ຮຸ້ນສ່ວນຂອງ Google ນຳອີກ ເຊັ່ນ: ຜູ້ພັດທະນາ Android. ຖ້າເປີດການຕັ້ງຄ່າການເຄື່ອນໄຫວເວັບ ແລະ ແອັບເພີ່ມເຕີມຂອງທ່ານ, ລະບົບອາດຈະບັນທຶກຂໍ້ມູນນີ້ໄວ້ໃນບັນຊີ Google ຂອງທ່ານ. <ph name="BEGIN_LINK2" />ສຶກສາເພີ່ມເຕີມ<ph name="END_LINK2" /></translation> +<translation id="8723108084122415655">ເຄືອຂ່າຍທີ່ບໍ່ແມ່ນຄ່າເລີ່ມຕົ້ນສູງກວ່າເກນເວລາໃນການຕອບສະໜອງ</translation> <translation id="8724405322205516354">ເມື່ອທ່ານເຫັນໄອຄອນນີ້, ໃຫ້ໃຊ້ນິ້ວມືຂອງທ່ານເພື່ອລະບຸຕົວຕົນ ຫຼື ອະນຸມັດການສັ່ງຊື້.</translation> <translation id="8724409975248965964">ເພີ່ມລາຍນີ້ວມືແລ້ວ</translation> <translation id="8724859055372736596">ສະແດງຢູ່ໃນໂຟລເດີ</translation> @@ -6457,6 +6493,7 @@ <translation id="8909833622202089127">ເວັບໄຊກຳລັງຕິດຕາມສະຖານທີ່ຂອງທ່ານ</translation> <translation id="8910146161325739742">ແບ່ງປັນໜ້າຈໍຂອງທ່ານ</translation> <translation id="8910222113987937043">ການປ່ຽນແປງຕໍ່ກັບບຸກມາກ, ປະຫວັດ, ລະຫັດຜ່ານ ແລະ ການຕັ້ງຄ່າອື່ນຂອງທ່ານຈະບໍ່ຖືກຊິ້ງຂໍ້ມູນກັບບັນຊີ Google ຂອງທ່ານອີກຕໍ່ໄປ. ແນວໃດກໍຕາມ, ຂໍ້ມູນທີ່ມີຢູ່ຂອງທ່ານຈະຍັງຄົງຮັກສາໄວ້ໃນບັນຊີ Google ຂອງທ່ານ ແລະ ສາມາດຖືກຈັດການໄດ້ໃນ <ph name="BEGIN_LINK" />Google Dashboard<ph name="END_LINK" />.</translation> +<translation id="8910721771319628100">ເຄືອຂ່າຍເລີ່ມຕົ້ນສູງກວ່າເກນເວລາໃນການຕອບສະໜອງ</translation> <translation id="8912362522468806198">ບັນຊີ Google</translation> <translation id="8912793549644936705">ຢືດອອກ</translation> <translation id="8912810933860534797">ເປີດນຳໃຊ້ການສະແກນອັດຕະໂນມັດ</translation>
diff --git a/chrome/app/resources/generated_resources_lt.xtb b/chrome/app/resources/generated_resources_lt.xtb index fdf8226..87dd702 100644 --- a/chrome/app/resources/generated_resources_lt.xtb +++ b/chrome/app/resources/generated_resources_lt.xtb
@@ -71,6 +71,7 @@ <translation id="1070705170564860382">Atidaroma alternatyvioje naršyklėje už <ph name="COUNTDOWN_SECONDS" /> sek.</translation> <translation id="1071917609930274619">Duomenų kodavimas</translation> <translation id="1072700771426194907">Aptiktas USB įrenginys</translation> +<translation id="107278043869924952">Be slaptažodžio, papildomai naudoti PIN kodą</translation> <translation id="1076176485976385390">Puslapių naršymas teksto žymekliu</translation> <translation id="1076698951459398590">Įgalinti temą</translation> <translation id="1076818208934827215">„Microsoft Internet Explorer“</translation> @@ -524,7 +525,6 @@ <translation id="1608668830839595724">Daugiau veiksmų, skirtų pasirinktiems elementams</translation> <translation id="161042844686301425">Žydra</translation> <translation id="1611432201750675208">Įrenginys užrakintas</translation> -<translation id="1611584202130317952">Pertraukta aprūpinimo eiga. Bandykite dar kartą arba susisiekite su įrenginio savininku ar administratoriumi.</translation> <translation id="1614511179807650956">Gali būti, kad pasiekėte mobiliojo ryšio duomenų apribojimą. Apsilankykite „<ph name="NAME" />“ suaktyvinimo portale, kad įsigytumėte daugiau duomenų</translation> <translation id="161460670679785907">Nepavyko aptikti telefono</translation> <translation id="1616206807336925449">Šiam plėtiniui nereikalingi jokie specialūs leidimai.</translation> @@ -533,6 +533,7 @@ <translation id="1618268899808219593">P&agalbos centras</translation> <translation id="1620307519959413822">Netinkamas slaptažodis. Bandykite dar kartą arba spustelėję „Pamiršau slaptažodį“ nustatykite iš naujo.</translation> <translation id="1620510694547887537">Kamera</translation> +<translation id="1621831347985899379">„<ph name="DEVICE_TYPE" />“ duomenys bus ištrinti</translation> <translation id="1622054403950683339">Pamiršti „Wi-Fi“ tinklą</translation> <translation id="1623132449929929218">Vaizdai šiuo metu nepasiekiami. Prisijunkite prie interneto iš naujo ir peržiūrėkite ekrano fonų kolekcijas.</translation> <translation id="1623723619460186680">Mėlynos šviesos slopinimas</translation> @@ -760,6 +761,7 @@ <translation id="1877377290348678128">Etiketė (pasirenkama)</translation> <translation id="1877520246462554164">Nepavyko gauti tapatybės nustatymo prieigos rakto. Atsijunkite ir vėl prisijunkite, kad galėtumėte bandyti dar kartą.</translation> <translation id="1877860345998737529">Jungiklio veiksmo priskyrimas</translation> +<translation id="1878155070920054810">Panašu, kad „Chromebook“ įrenginio akumuliatoriaus energija išseks nespėjus įdiegti naujinio. Patikrinkite, ar jis įkraunamas tinkamai, kad nebūtų pertrauktas atnaujinimo procesas.</translation> <translation id="1879000426787380528">Prisijungti kaip</translation> <translation id="1880905663253319515">Ištrinti „<ph name="CERTIFICATE_NAME" />“ sertifikatą?</translation> <translation id="1881445033931614352">Klaviatūros išdėstymas</translation> @@ -964,6 +966,7 @@ <translation id="2148219725039824548">Klaida įdedant bendrinamą objektą. Nurodytas bendrinamas objektas nerastas tinkle.</translation> <translation id="2148756636027685713">Formatavimas baigtas</translation> <translation id="2148892889047469596">Skirtuko perdavimas</translation> +<translation id="2149973817440762519">Redaguoti žymes</translation> <translation id="2150139952286079145">Ieškoti paskirties vietų</translation> <translation id="2150661552845026580">Pridėti „<ph name="EXTENSION_NAME" />“?</translation> <translation id="2151576029659734873">Įvestas neteisingas skirtukų indeksas.</translation> @@ -1073,6 +1076,7 @@ <translation id="2270627217422354837">Keistis duomenimis su bet kuriuo įrenginiu iš šių domenų: <ph name="DOMAINS" /></translation> <translation id="2272570998639520080">Martinio taurė</translation> <translation id="2273119997271134996">Doko vaizdo prievado problema</translation> +<translation id="2274840746523584236">Įkraukite „Chromebook“</translation> <translation id="2276503375879033601">Pridėti daugiau programų</translation> <translation id="2277255602909579701">Visi slapukai ir svetainės duomenys</translation> <translation id="2277769717710009150">{COUNT,plural, =1{Nukopijuotas 1 elementas}one{Nukopijuotas # elementas}few{Nukopijuoti # elementai}many{Nukopijuota # elemento}other{Nukopijuota # elementų}}</translation> @@ -1915,6 +1919,7 @@ <translation id="3308116878371095290">Šiame puslapyje neleidžiama nustatyti slapukų.</translation> <translation id="3308134619352333507">Paslėpti mygtuką</translation> <translation id="3308852433423051161">Įkeliamas „Google“ padėjėjas...</translation> +<translation id="3310640316857623290">DNS delsa gerokai viršija leistiną slenksčio vertę</translation> <translation id="3311445899360743395">Su šia programa susieti duomenys gali būti pašalinti iš šio įrenginio.</translation> <translation id="3312424061798279731">Įgalintos kalbos</translation> <translation id="3313622045786997898">Sertifikato parašo vertė</translation> @@ -1927,6 +1932,7 @@ <translation id="3323295311852517824">{NUM_FILES,plural, =0{Šiuose duomenyse yra neskelbtino arba pavojingo turinio. Pašalinkite šį turinį ir bandykite dar kartą.}=1{Šiame faile yra neskelbtino arba pavojingo turinio. Pašalinkite šį turinį ir bandykite dar kartą.}one{Šiuose failuose yra neskelbtino arba pavojingo turinio. Pašalinkite šį turinį ir bandykite dar kartą.}few{Šiuose failuose yra neskelbtino arba pavojingo turinio. Pašalinkite šį turinį ir bandykite dar kartą.}many{Šiuose failuose yra neskelbtino arba pavojingo turinio. Pašalinkite šį turinį ir bandykite dar kartą.}other{Šiuose failuose yra neskelbtino arba pavojingo turinio. Pašalinkite šį turinį ir bandykite dar kartą.}}</translation> <translation id="3323521181261657960">Premija! Galite ilgiau naudoti įrenginį</translation> <translation id="3325910708063135066">Fotoaparatas ir mikrofonas išjungti „Mac“ sistemos nuostatose</translation> +<translation id="3327050066667856415">„Chromebook“ įrenginiuose pasirūpinta sauga. Jūsų įrenginys yra automatiškai apsaugotas nuo kenkėjiškų programų, todėl nereikia jokios papildomos programinės įrangos.</translation> <translation id="3328489342742826322">Atkūrus atsargines failų kopijas bus ištrintos „Linux“ failų aplanke esančios „Linux“ programos ir duomenys.</translation> <translation id="3331321258768829690">(<ph name="UTCOFFSET" />) <ph name="LONGTZNAME" /> (<ph name="EXEMPLARCITY" />)</translation> <translation id="3331974543021145906">Programos informacija</translation> @@ -2116,6 +2122,7 @@ <translation id="3556433843310711081">Jūsų valdytojas gali atblokuoti ją už jus</translation> <translation id="3557101512409028104">Nustatykite svetainės ir įrenginio naudojimo laiko apribojimus naudodami „Family Link“</translation> <translation id="3559262020195162408">Nepavyko įrenginyje įdiegti politikos.</translation> +<translation id="3559533181353831840">Liko maždaug <ph name="TIME_LEFT" /></translation> <translation id="3560034655160545939">&Rašybos tikrinimas</translation> <translation id="3562423906127931518">Šis procesas gali užtrukti kelias minutes. Nustatomas „Linux“ sudėtinis rodinys.</translation> <translation id="3563432852173030730">Nepavyko atsisiųsti viešojo terminalo programos.</translation> @@ -2158,6 +2165,7 @@ <translation id="3602290021589620013">Peržiūra</translation> <translation id="3603622770190368340">Gauti tinklo sertifikatą</translation> <translation id="3604713164406837697">Pakeisti ekrano foną</translation> +<translation id="360565022852130722">„Wi-Fi“ tinklas apsaugotas naudojant nepatikimą protokolą WEP 802.1x</translation> <translation id="3605780360466892872">Konservatyvusis</translation> <translation id="3608576286259426129">Naudotojo vaizdo peržiūra</translation> <translation id="3610369246614755442">Reikia taisyti doko ventiliatorių</translation> @@ -2194,6 +2202,7 @@ <translation id="3639220004740062347">Išeiti iš skaitytojo režimo</translation> <translation id="3640214691812501263">Pridėti „<ph name="EXTENSION_NAME" />“ naudotojui <ph name="USER_NAME" />?</translation> <translation id="3640613767643722554">Išmokykite Padėjėją atpažinti jūsų balsą</translation> +<translation id="3643014427358482789"><ph name="DOMAIN" /> išjungia ADB derinimą, todėl „<ph name="DEVICE_TYPE" />“ bus nustatytas iš naujo. Prieš paleisdami iš naujo, sukurkite atsarginę failų kopiją.</translation> <translation id="3645372836428131288">Truputį pajudinkite pirštą, kad būtų užfiksuota kita piršto antspaudo dalis.</translation> <translation id="3647998456578545569">{COUNT,plural, =1{Turinys (<ph name="ATTACHMENTS" />) gautas iš „<ph name="DEVICE_NAME" />“ įrenginio}one{Turinys (<ph name="ATTACHMENTS" />) gautas iš „<ph name="DEVICE_NAME" />“ įrenginio}few{Turinys (<ph name="ATTACHMENTS" />) gautas iš „<ph name="DEVICE_NAME" />“ įrenginio}many{Turinys (<ph name="ATTACHMENTS" />) gautas iš „<ph name="DEVICE_NAME" />“ įrenginio}other{Turinys (<ph name="ATTACHMENTS" />) gautas iš „<ph name="DEVICE_NAME" />“ įrenginio}}</translation> <translation id="3648348069317717750">Aptiktas „<ph name="USB_DEVICE_NAME" />“</translation> @@ -2282,6 +2291,7 @@ <translation id="3732857534841813090">Aktuali „Google“ padėjėjo informacija</translation> <translation id="3733127536501031542">SSL serveris su sąranka</translation> <translation id="3735740477244556633">Rūšiuoti pagal</translation> +<translation id="3738632186060045350">„<ph name="DEVICE_TYPE" />“ duomenys bus ištrinti po 24 val.</translation> <translation id="3738924763801731196"><ph name="OID" />:</translation> <translation id="3739254215541673094">Atidaryti „<ph name="APPLICATION" />“?</translation> <translation id="3742055079367172538">Ekrano kopija padaryta</translation> @@ -2469,6 +2479,7 @@ <translation id="3937734102568271121">Visada versti <ph name="LANGUAGE" /></translation> <translation id="3938128855950761626">Įrenginiai iš paslaugos teikėjo <ph name="VENDOR_ID" /></translation> <translation id="3940233957883229251">Įgalinti automatinį kartojimą</translation> +<translation id="3941014780699102620">Nepavyko nustatyti prieglobos pavadinimo</translation> <translation id="3941565636838060942">Jei norite paslėpti prieigą prie šios programos, ją turite pašalinti naudodami „<ph name="CONTROL_PANEL_APPLET_NAME" />“ valdymo skydelyje. @@ -2631,6 +2642,7 @@ <translation id="413121957363593859">Komponentai</translation> <translation id="4131410914670010031">Nespalvotai</translation> <translation id="413193092008917129">Tinklo diagnostikos veiksmų sekos</translation> +<translation id="4132183752438206707">Raskite programų „Google Play“ parduotuvėje</translation> <translation id="4133076602192971179">Atidarykite programą, kad pakeistumėte slaptažodį</translation> <translation id="4136203100490971508">Nakties šviesa bus išjungta automatiškai saulei tekant</translation> <translation id="41365691917097717">Tęsdami įgalinsite ADB derinimą, naudojamą „Android“ programoms kurti ir testuoti. 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> @@ -2880,6 +2892,8 @@ <translation id="4479877282574735775">Konfigūruojamas virtualus įrenginys. Tai gali užtrukti kelias minutes.</translation> <translation id="4480590691557335796">„Chrome“ gali rasti kenkėjišką programinę įrangą jūsų kompiuteryje ir ją pašalinti</translation> <translation id="4481530544597605423">Atsieti įrenginiai</translation> +<translation id="4483049906298469269">Nepavyko patikrinti ryšio su nenumatytuoju tinklų sietuvu</translation> +<translation id="4487489714832036847">„Chromebook“ įrenginiuose vietoj įprastos programinės įrangos naudojamos programos. Gaukite programų, skirtų produktyvumui didinti, pramogoms ir pan.</translation> <translation id="4488502501195719518">Išvalyti visus duomenis?</translation> <translation id="4493468155686877504">Rekomenduojama (<ph name="INSTALL_SIZE" />)</translation> <translation id="4495419450179050807">Nerodyti šiame puslapyje</translation> @@ -2930,6 +2944,7 @@ <translation id="4546692474302123343">„Google“ padėjėjo įvestis balsu</translation> <translation id="4547659257713117923">Nėra skirtukų iš kitų įrenginių</translation> <translation id="4547672827276975204">Nustatyti automatiškai</translation> +<translation id="4548483925627140043">Signalas nerastas</translation> <translation id="4549791035683739768">Saugos rakte nėra išsaugota kontrolinių kodų</translation> <translation id="4551763574344810652">Paspauskite „<ph name="MODIFIER_KEY_DESCRIPTION" />“, kad anuliuotumėte</translation> <translation id="4552089082226364758">Flash</translation> @@ -2969,6 +2984,7 @@ <translation id="4582563038311694664">Nustatyti visus nustatymus iš naujo</translation> <translation id="4585793705637313973">Redaguoti puslapį</translation> <translation id="4586275095964870617">Nepavyko atidaryti <ph name="URL" /> alternatyvioje naršyklėje. Susisiekite su sistemos administratoriumi.</translation> +<translation id="458794348635939462">Nepavyko nustatyti jokių prieglobų pavadinimų</translation> <translation id="4589713469967853491">Žurnalai sėkmingai įrašyti kataloge „Atsisiuntimai“.</translation> <translation id="4590324241397107707">Duomenų atmintinė</translation> <translation id="4592891116925567110">Piešimo rašikliu programa</translation> @@ -3352,6 +3368,7 @@ <translation id="5089810972385038852">Valstija</translation> <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="5097649414558628673">Įrankis: <ph name="PRINT_NAME" /></translation> <translation id="5097874180538493929">Automatiškai spustelėti žymekliui sustojus</translation> <translation id="5101042277149003567">Atidaryti visas žymas</translation> <translation id="5101839224773798795">Automatiškai spustelėti sustojus žymekliui</translation> @@ -3570,6 +3587,7 @@ <translation id="5370819323174483825">&Įkelti iš naujo</translation> <translation id="5372529912055771682">Ši operacinė sistema nepalaiko teikiamo registracijos režimo. Įsitikinkite, kad naudojate naujausią versiją ir bandykite dar kartą.</translation> <translation id="5372579129492968947">Atsegti plėtinį</translation> +<translation id="5372659122375744710">„Wi-Fi“ tinklas nesaugus</translation> <translation id="5376169624176189338">Spustelėkite, kad grįžtumėte, palaukite, kad pamatytumėte istoriją</translation> <translation id="5376931455988532197">Failas per didelis</translation> <translation id="5377721922656071359">{COUNT,plural, =1{Turinys (<ph name="ATTACHMENTS" />) sėkmingai nusiųstas į „<ph name="DEVICE_NAME" />“ įrenginį}one{Turinys (<ph name="ATTACHMENTS" />) sėkmingai nusiųstas į „<ph name="DEVICE_NAME" />“ įrenginį}few{Turinys (<ph name="ATTACHMENTS" />) sėkmingai nusiųstas į „<ph name="DEVICE_NAME" />“ įrenginį}many{Turinys (<ph name="ATTACHMENTS" />) sėkmingai nusiųstas į „<ph name="DEVICE_NAME" />“ įrenginį}other{Turinys (<ph name="ATTACHMENTS" />) sėkmingai nusiųstas į „<ph name="DEVICE_NAME" />“ įrenginį}}</translation> @@ -3599,6 +3617,7 @@ <translation id="5414566801737831689">Skaityti lankomų svetainių piktogramas</translation> <translation id="5417312524372586921">Naršyklės temos</translation> <translation id="5419405654816502573">Voice Match</translation> +<translation id="5420274697768050645">Atrakinant įrenginį reikalauti slaptažodžio, kad būtų užtikrintas didesnis saugumas</translation> <translation id="5420438158931847627">Nustatomas teksto ir vaizdų ryškumas</translation> <translation id="5422221874247253874">Prieigos taškas</translation> <translation id="5422781158178868512">Apgailestaujame, tačiau jūsų išorinis atmintinės įrenginys yra neatpažįstamas.</translation> @@ -3723,6 +3742,7 @@ <translation id="5548606607480005320">Saugos patikra</translation> <translation id="5551573675707792127">Klaviatūra ir teksto įvestis</translation> <translation id="5553089923092577885">Sertifikato politikos atvaizdavimas</translation> +<translation id="5554403733534868102">Paskui nebereikės laukti, kol bus įdiegti naujiniai</translation> <translation id="5554489410841842733">Ši piktograma bus matoma, kai plėtinys galės veikti esamame puslapyje.</translation> <translation id="5554720593229208774">El. pašto sertifikavimo institucija</translation> <translation id="5556459405103347317">Įkelti iš naujo</translation> @@ -4137,6 +4157,7 @@ <translation id="6061882183774845124">Siųsti nuorodą į savo įrenginius</translation> <translation id="6064217302520318294">Ekrano užraktas</translation> <translation id="6065289257230303064">Sertifikato subjekto katalogo atributai</translation> +<translation id="6069464830445383022">Prisijunkite prie „Chromebook“ naudodami „Google“ paskyrą</translation> <translation id="6069671174561668781">Nustatyti darbalaukio foną</translation> <translation id="6071181508177083058">patvirtinkite slaptažodį</translation> <translation id="6071576563962215370">Sistemai vykdant įrenginio diegimo laiko atributų fiksavimą įvyko klaida.</translation> @@ -4179,6 +4200,7 @@ <translation id="6104311680260824317">Nepavyko susieti įrenginio su domenu. Serveris nepalaiko nurodytų „Kerberos“ šifruotės tipų. Jei reikia šifruotės nustatymų, žr. „Daugiau parinkčių“.</translation> <translation id="6104796831253957966">Spausdintuvo eilė pilna</translation> <translation id="6105994589138235234">Naršyklės „Chrome“ sinchronizavimas</translation> +<translation id="6108689792487843350">Tinklų sietuvas nepasiekiamas</translation> <translation id="6111972606040028426">Įgalinti „Google“ padėjėją</translation> <translation id="6112294629795967147">Palieskite, kad pakeistumėte dydį</translation> <translation id="6112727384379533756">Pridėti bilietą</translation> @@ -4239,6 +4261,7 @@ <translation id="6178664161104547336">Pasirinkite sertifikatą</translation> <translation id="6181431612547969857">Atsisiuntimas užblokuotas</translation> <translation id="6185132558746749656">Įrenginio vietovė</translation> +<translation id="6191293864534840972">Netinkamai sukonfigūruoti domenų pavadinimų serveriai</translation> <translation id="6195446518998936840">Norint nustatyti tėvų kontrolę, vaikas turi turėti „Google“ paskyrą, kurią padėsite valdyti. Galite nustatyti įrenginio naudojimo laiko apribojimus, patvirtinti arba blokuoti svetaines ir atlikti daugiau veiksmų naudodami programą „Family Link“.</translation> <translation id="6195693561221576702">Šis įrenginys negali būti nustatytas, kai įjungtas neprisijungus pasiekiamas demonstracinis režimas.</translation> <translation id="6196640612572343990">Blokuoti trečiosios šalies slapukus</translation> @@ -4452,6 +4475,7 @@ <translation id="6451591602925140504">{NUM_PAGES,plural, =0{<ph name="PAGE_TITLE" />}=1{<ph name="PAGE_TITLE" /> ir dar 1 skirtukas}one{<ph name="PAGE_TITLE" /> ir dar # skirtukas}few{<ph name="PAGE_TITLE" /> ir dar # skirtukai}many{<ph name="PAGE_TITLE" /> ir dar # skirtuko}other{<ph name="PAGE_TITLE" /> ir dar # skirtukų}}</translation> <translation id="6451689256222386810">Jei pamiršote slaptafrazę arba norite pakeisti šį nustatymą, <ph name="BEGIN_LINK" />iš naujo nustatykite sinchronizavimą<ph name="END_LINK" />.</translation> <translation id="6452181791372256707">Atmesti</translation> +<translation id="6452251728599530347">Atlikta: <ph name="PERCENT" /></translation> <translation id="6452961788130242735">Tinklo problema arba netinkama sritis</translation> <translation id="6455264371803474013">Konkrečiose svetainėse</translation> <translation id="6455894534188563617">&Naujas aplankas</translation> @@ -4508,6 +4532,7 @@ <ph name="EVENT_NAME" /></translation> <translation id="6520876759015997832"><ph name="LIST_POSITION" /> paieškos rezultatas iš <ph name="LIST_SIZE" />: <ph name="SEARCH_RESULT_TEXT" />. Norėdami patekti į skyrių, paspauskite „Enter“.</translation> <translation id="652492607360843641">Esate prisijungę prie šio tinklo: <ph name="NETWORK_TYPE" />.</translation> +<translation id="6527081081771465939">Nežinomas „Wi-Fi“ saugos protokolas</translation> <translation id="6527303717912515753">Bendrinti</translation> <translation id="6528513914570774834">Leisti kitiems šio įrenginio naudotojams naudoti šį tinklą</translation> <translation id="652948702951888897">„Chrome“ istorija</translation> @@ -4624,6 +4649,7 @@ <translation id="6680442031740878064">Pasiekiama: <ph name="AVAILABLE_SPACE" /></translation> <translation id="6680650203439190394">Sparta</translation> <translation id="6681668084120808868">Fotografuoti</translation> +<translation id="6684827949542560880">Atsisiunčiamas naujausias naujinys</translation> <translation id="668599234725812620">Atidaryti „Google Play“</translation> <translation id="6686490380836145850">Uždaryti dešinėje esančius skirtukus</translation> <translation id="6686817083349815241">Išsaugokite slaptažodį</translation> @@ -4733,6 +4759,7 @@ <translation id="6812841287760418429">Palikti pakeitimus</translation> <translation id="6817174620439930047">Paklausti, kai svetainė nori naudoti sistemos išskirtinius pranešimus MIDI įrenginiams pasiekti (rekomenduojama)</translation> <translation id="6818198425579322765">Verčiama puslapio kalba</translation> +<translation id="6818802132960437751">Integruota apsauga nuo virusų</translation> <translation id="682123305478866682">Darbalaukio perdavimas</translation> <translation id="6823174134746916417">Paspaudimas palietus jutiklinę dalį</translation> <translation id="6823506025919456619">Turite prisijungti prie „Chrome“, kad matytumėte savo įrenginius</translation> @@ -5379,6 +5406,7 @@ <translation id="7631205654593498032">Susiedami įrenginius sutinkate, kad įrenginys „<ph name="DEVICE_TYPE" />“ gali:</translation> <translation id="7631887513477658702">&Visada atidaryti tokio tipo failus</translation> <translation id="7632948528260659758">Atnaujinant šias viešojo terminalo programas įvyko klaida:</translation> +<translation id="7633724038415831385">Tai vienintelis kartas, kai tenka laukti, kol bus įdiegtas naujinys. „Chromebook“ įrenginiuose programinės įrangos naujiniai diegiami fone.</translation> <translation id="7634566076839829401">Kažkas negerai. Bandykite dar kartą.</translation> <translation id="763632859238619983">Neleisti jokioms svetainėms diegti mokėjimų doroklių</translation> <translation id="7636919061354591437">Įdiegti šiame įrenginyje</translation> @@ -5657,6 +5685,7 @@ <translation id="7933314993013528982">{NUM_TABS,plural, =1{Įjungti svetainės garsą}one{Įjungti svetainių garsą}few{Įjungti svetainių garsą}many{Įjungti svetainių garsą}other{Įjungti svetainių garsą}}</translation> <translation id="7933634003144813719">Tvarkyti bendrinamus aplankus</translation> <translation id="793531125873261495">Atsisiunčiant virtualų įrenginį įvyko klaida. Bandykite dar kartą.</translation> +<translation id="7936303884198020182">Domenų pavadinimų serverių nerasta</translation> <translation id="7938594894617528435">Šiuo metu neprijungta</translation> <translation id="7939062555109487992">Išplėstinės parinktys</translation> <translation id="7939412583708276221">Vis tiek saugoti</translation> @@ -5900,6 +5929,7 @@ <translation id="8226742006292257240">Toliau pateikiamas kompiuteriui priskirtas atsitiktinai sugeneruotas TPM slaptažodis:</translation> <translation id="8227119283605456246">Pridėtas failas</translation> <translation id="8230134520748321204">Išsaugoti <ph name="ORIGIN" /> slaptažodį?</translation> +<translation id="8230672074305416752">Nepavyko patikrinti ryšio su numatytuoju tinklų sietuvu</translation> <translation id="8234795456569844941">Padėkite inžinieriams išspręsti šią problemą. Papasakokite, kas vyko prieš parodant profilio klaidos pranešimą:</translation> <translation id="8236917170563564587">Geriau bendrinti šį skirtuką</translation> <translation id="8237647586961940482">Tamsiai rožinė ir raudona</translation> @@ -5960,6 +5990,7 @@ <translation id="8288032458496410887">Pašalinti „<ph name="APP" />“...</translation> <translation id="8289128870594824098">Disko dydis</translation> <translation id="8291967909914612644">Namų paslaugos teikėjo šalis</translation> +<translation id="8293206222192510085">Pridėti žymę</translation> <translation id="8294431847097064396">Šaltinis</translation> <translation id="8297006494302853456">Silpnas</translation> <translation id="8299319456683969623">Šiuo metu esate neprisijungę.</translation> @@ -6009,6 +6040,7 @@ <translation id="8363095875018065315">stabilus</translation> <translation id="8363142353806532503">Mikrofonas užblokuotas</translation> <translation id="8363763184161554204">leidžiama: <ph name="PERMISSION" /></translation> +<translation id="8364946094152050673">Domenų pavadinimų serveriai tušti</translation> <translation id="8366396658833131068">Tinklo ryšys atkurtas. Pasirinkite kitą tinklą arba paspauskite toliau pateiktą mygtuką „Tęsti“, kad paleistumėte viešojo terminalo programą.</translation> <translation id="8368027906805972958">Nežinomas arba nepalaikomas įrenginys (<ph name="DEVICE_ID" />)</translation> <translation id="8368859634510605990">&Atidaryti visas žymes</translation> @@ -6094,8 +6126,10 @@ <translation id="8472623782143987204">palaikoma aparatinės įrangos</translation> <translation id="8473863474539038330">Adresai ir dar daugiau</translation> <translation id="8475313423285172237">Kita jūsų kompiuteryje esanti programa pridėjo plėtinį, kuris gali pakeisti „Chrome“ veikimo būdą.</translation> +<translation id="8475690821716466388">„Wi-Fi“ tinklas apsaugotas naudojant nepatikimą protokolą WEP PSK</translation> <translation id="8477241577829954800">Pakeista</translation> <translation id="8477384620836102176">Bendra</translation> +<translation id="8477551185774834963">DNS delsa šiek tiek viršija leistiną slenksčio vertę</translation> <translation id="8480082892550707549">Net jei anksčiau atsisiuntėte failų iš šios svetainės, ji gali būti laikinai nesaugi (į ją įsilaužta). Vėliau bandykite atsisiųsti šį failą.</translation> <translation id="8480869669560681089">Nežinomas įrenginys iš „<ph name="VENDOR_NAME" />“</translation> <translation id="8481187309597259238">USB leidimo patvirtinimas</translation> @@ -6147,6 +6181,7 @@ <translation id="8546930481464505581">Tinkinti lietimo juostą</translation> <translation id="8547013269961688403">Įgalinti viso ekrano didintuvą</translation> <translation id="85486688517848470">Laikykite paspaustą paieškos klavišą, kad perjungtumėte viršutinės eilutės klavišų veikimą</translation> +<translation id="8549316893834449916">Prie „Chromebook“ prisijunkite naudodami „Google“ paskyrą – tą pačią, kurią naudodami jungiatės prie „Gmail“, Disko, „YouTube“ ir kitur.</translation> <translation id="8551388862522347954">Licencijos</translation> <translation id="8551588720239073785">Datos ir laiko nustatymai</translation> <translation id="8553342806078037065">Tvarkyti kitus žmones</translation> @@ -6285,6 +6320,7 @@ <translation id="8720200012906404956">Ieškoma mobiliojo ryšio tinklo. <ph name="BEGIN_LINK" />Sužinokite daugiau<ph name="END_LINK" /></translation> <translation id="8720816553731218127">Diegimo trukmės atributų inicijavimo laikas baigėsi.</translation> <translation id="8722912030556880711">Siųskite naudojimo ir diagnostikos duomenis. Šiuo metu šis įrenginys automatiškai siunčia „Google“ diagnostikos, įrenginio ir programų naudojimo duomenis. Tai padės pagerinti sistemos bei programos stabilumą ir teikti kitus patobulinimus. Kai kurie sukaupti duomenys taip pat bus naudingi „Google“ programoms ir partneriams, pvz., „Android“ kūrėjams. Jei papildomas „Žiniatinklio ir programų veiklos“ nustatymas įjungtas, šie duomenys gali būti išsaugoti „Google“ paskyroje. <ph name="BEGIN_LINK2" />Sužinokite daugiau<ph name="END_LINK2" /></translation> +<translation id="8723108084122415655">Nenumatytojo tinklo delsa viršija slenksčio vertę</translation> <translation id="8724405322205516354">Kai rodoma ši piktograma, tapatybei nustatyti ar pirkimo operacijai patvirtinti naudokite piršto antspaudą.</translation> <translation id="8724409975248965964">Piršto antspaudas pridėtas</translation> <translation id="8724859055372736596">&Rodyti aplanke</translation> @@ -6462,6 +6498,7 @@ <translation id="8909833622202089127">Svetainė stebi jūsų vietą</translation> <translation id="8910146161325739742">Ekrano vaizdo bendrinimas</translation> <translation id="8910222113987937043">Žymių, istorijos, slaptažodžių ir kitų nustatymų pakeitimai nebebus sinchronizuojami su „Google“ paskyra. Tačiau esami duomenys toliau bus saugomi „Google“ paskyroje ir juos bus galima tvarkyti <ph name="BEGIN_LINK" />„Google“ informacijos suvestinėje<ph name="END_LINK" />.</translation> +<translation id="8910721771319628100">Numatytojo tinklo delsa viršija slenksčio vertę</translation> <translation id="8912362522468806198">„Google“ paskyra</translation> <translation id="8912793549644936705">Ištemptas</translation> <translation id="8912810933860534797">Įgalinti automatinį nuskaitymą</translation>
diff --git a/chrome/app/resources/generated_resources_lv.xtb b/chrome/app/resources/generated_resources_lv.xtb index 70d49303..604d0e07 100644 --- a/chrome/app/resources/generated_resources_lv.xtb +++ b/chrome/app/resources/generated_resources_lv.xtb
@@ -525,7 +525,6 @@ <translation id="1608668830839595724">Citas darbības ar atlasītajiem vienumiem</translation> <translation id="161042844686301425">Ciānzila</translation> <translation id="1611432201750675208">Jūsu ierīce ir bloķēta</translation> -<translation id="1611584202130317952">Nodrošināšanas plūsma tika traucēta. Lūdzu, mēģiniet vēlreiz vai sazinieties ar ierīces īpašnieku vai administratoru.</translation> <translation id="1614511179807650956">Iespējams, esat sasniedzis mobilo datu ierobežojumu. Lai iegādātos papildu datus, apmeklējiet <ph name="NAME" /> aktivizācijas portālu.</translation> <translation id="161460670679785907">Nevar noteikt jūsu tālruni.</translation> <translation id="1616206807336925449">Šim paplašinājumam nav nepieciešamas īpašas atļaujas.</translation> @@ -967,6 +966,7 @@ <translation id="2148219725039824548">Iekļaujot kopīgošanu, radās kļūda. Norādītais kopīgošanas vienums netika atrasts tīklā.</translation> <translation id="2148756636027685713">Formatēšana pabeigta</translation> <translation id="2148892889047469596">Cilnes apraide</translation> +<translation id="2149973817440762519">Rediģēt grāmatzīmes</translation> <translation id="2150139952286079145">Meklēt printerus</translation> <translation id="2150661552845026580">Vai pievienot paplašinājumu <ph name="EXTENSION_NAME" />?</translation> <translation id="2151576029659734873">Ievadīts nederīgs cilnes rādītājs.</translation> @@ -5988,6 +5988,7 @@ <translation id="8288032458496410887">Vai atinstalēt lietotni <ph name="APP" />?</translation> <translation id="8289128870594824098">Diska lielums</translation> <translation id="8291967909914612644">Mājas pakalpojumu sniedzēja valsts</translation> +<translation id="8293206222192510085">Pievienot grāmatzīmi</translation> <translation id="8294431847097064396">Avots</translation> <translation id="8297006494302853456">Vājš</translation> <translation id="8299319456683969623">Šobrīd esat bezsaistē.</translation>
diff --git a/chrome/app/resources/generated_resources_mk.xtb b/chrome/app/resources/generated_resources_mk.xtb index e272de5..e97ee2b4 100644 --- a/chrome/app/resources/generated_resources_mk.xtb +++ b/chrome/app/resources/generated_resources_mk.xtb
@@ -493,7 +493,7 @@ <translation id="1572876035008611720">Внесете ја вашата е-пошта</translation> <translation id="1576594961618857597">Стандарден бел аватар</translation> <translation id="1578558981922970608">Затвори присилно</translation> -<translation id="1578784163189013834">Изберете ја заднината со заштитник на екранот</translation> +<translation id="1578784163189013834">Изберете заднина за заштитникот на екранот</translation> <translation id="1580772913177567930">Контактирајте со администраторот</translation> <translation id="1581962803218266616">Прикажи во Наоѓач</translation> <translation id="1582955169539260415">избриши [<ph name="FINGERPRINT_NAME" />]</translation> @@ -525,7 +525,6 @@ <translation id="1608668830839595724">Повеќе дејства за избраните ставки</translation> <translation id="161042844686301425">Тиркизна</translation> <translation id="1611432201750675208">Уредот е заклучен</translation> -<translation id="1611584202130317952">Текот на обезбедување е прекинат. Обидете се повторно или контактирајте со сопственикот или администраторот на уредот.</translation> <translation id="1614511179807650956">Можно е да сте го искористиле доделениот мобилен интернет. Посетете го порталот за активација на <ph name="NAME" /> за да купите уште мобилен интернет</translation> <translation id="161460670679785907">Не може да се открие вашиот телефон</translation> <translation id="1616206807336925449">Оваа наставка не бара специјални дозволи.</translation> @@ -967,6 +966,7 @@ <translation id="2148219725039824548">Грешка при монтирање на споделувањето. Наведеното споделување не е најдено на мрежата.</translation> <translation id="2148756636027685713">Форматирањето заврши</translation> <translation id="2148892889047469596">Картичка за емитување</translation> +<translation id="2149973817440762519">Измени Обележувач</translation> <translation id="2150139952286079145">Пребарај дестинации</translation> <translation id="2150661552845026580">Додај „<ph name="EXTENSION_NAME" />“?</translation> <translation id="2151576029659734873">Внесен е неважечки индекс на картичката.</translation> @@ -1634,7 +1634,7 @@ <translation id="2932483646085333864">Одјавете се, па повторно најавете се за да започнете со синхронизација</translation> <translation id="2932883381142163287">Пријави злоупотреба</translation> <translation id="2933632078076743449">Последно ажурирање</translation> -<translation id="2934999512438267372">Целосната контрола врз MIDI-уредите е дозволена</translation> +<translation id="2934999512438267372">Дозволена е целосна контрола врз MIDI-уредите</translation> <translation id="2936851848721175671">Бекап и обнова</translation> <translation id="2938225289965773019">Отвори <ph name="PROTOCOL" /> врски</translation> <translation id="2938845886082362843">Прегледајте ги и избришете ги податоците за најавување складирани во вашиот безбедносен клуч</translation> @@ -2598,7 +2598,7 @@ <translation id="4087089424473531098">Ја креираше наставката: <ph name="EXTENSION_FILE" /></translation> -<translation id="408721682677442104">Целосната контрола врз MIDI-уредите е одбиена</translation> +<translation id="408721682677442104">Не е дозволена целосна контрола врз MIDI-уредите</translation> <translation id="4088095054444612037">Прифати за групата</translation> <translation id="4089235344645910861">Поставките се зачувани. Синхронизацијата започна.</translation> <translation id="4090103403438682346">Овозможи потврден пристап</translation> @@ -4585,7 +4585,7 @@ <translation id="6590458744723262880">Преименувај папка</translation> <translation id="6592267180249644460">Дневникот WebRTC е зачуван во <ph name="WEBRTC_LOG_CAPTURE_TIME" /></translation> <translation id="6592808042417736307">Вашиот отпечаток е снимен</translation> -<translation id="6595187330192059106">Секогаш блокирај ја можноста <ph name="HOST" /> да има целосна контрола врз MIDI-уредите.</translation> +<translation id="6595187330192059106">Не дозволувај <ph name="HOST" /> да има целосна контрола врз MIDI-уредите.</translation> <translation id="6596325263575161958">Опции за шифрирање</translation> <translation id="6596816719288285829">IP-адреса</translation> <translation id="6597017209724497268">Примероци</translation> @@ -5834,7 +5834,7 @@ <translation id="810728361871746125">Резолуција на екранот</translation> <translation id="8108526232944491552">{COUNT,plural, =0{Нема колачиња од трети страни}=1{Блокирано е 1 колаче од трета страна}one{Блокирано е # колаче од трети страни}other{Блокирани се # колачиња од трети страни}}</translation> <translation id="810875025413331850">Не се најдени уреди во близина.</translation> -<translation id="8113476325385351118">Продолжи да ја блокираш можноста сајтов да има целосна контрола врз MIDI-уредите</translation> +<translation id="8113476325385351118">Не дозволувај сајтов да има целосна контрола врз MIDI-уредите</translation> <translation id="8114199541033039755">Одете на почетен екран, вратете се назад и префрлајте меѓу апликации со копчиња во режим на таблет. Се вклучува кога ќе се овозможи ChromeVox или „Автоматско кликнување“.</translation> <translation id="8114875720387900039">Подели хоризонтално</translation> <translation id="8116972784401310538">&Управник со обележувачи</translation> @@ -5991,6 +5991,7 @@ <translation id="8288032458496410887">Деинсталирајте ја <ph name="APP" />…</translation> <translation id="8289128870594824098">Големина на диск</translation> <translation id="8291967909914612644">Земја на оператор на почетна страница</translation> +<translation id="8293206222192510085">Додај обележувач</translation> <translation id="8294431847097064396">Извор</translation> <translation id="8297006494302853456">Слаб</translation> <translation id="8299319456683969623">Во моментов сте исклучени.</translation>
diff --git a/chrome/app/resources/generated_resources_ml.xtb b/chrome/app/resources/generated_resources_ml.xtb index 5d2dbff8..aef7023 100644 --- a/chrome/app/resources/generated_resources_ml.xtb +++ b/chrome/app/resources/generated_resources_ml.xtb
@@ -522,7 +522,6 @@ <translation id="1608668830839595724">തിരഞ്ഞെടുത്ത ഇനങ്ങൾക്കുള്ള കൂടുതൽ പ്രവർത്തനങ്ങൾ</translation> <translation id="161042844686301425">സിയാൻ</translation> <translation id="1611432201750675208">നിങ്ങളുടെ ഉപകരണം ലോക്ക് ചെയ്തിരിക്കുന്നു</translation> -<translation id="1611584202130317952">പ്രൊവിഷനിംഗ് ഫ്ലോ തടസ്സപ്പെട്ടു. വീണ്ടും ശ്രമിക്കുക അല്ലെങ്കിൽ നിങ്ങളുടെ ഉപകരണ ഉടമയെയോ അഡ്മിനെയോ ബന്ധപ്പെടുക.</translation> <translation id="1614511179807650956">നിങ്ങൾ മൊബൈൽ ഡാറ്റാ അലവൻസിന്റെ പരമാവധി ഉപയോഗിച്ചിരിക്കാനിടയുണ്ട്. കൂടുതൽ ഡാറ്റ വാങ്ങാൻ, <ph name="NAME" /> സജീവമാക്കൽ പോർട്ടൽ സന്ദർശിക്കുക</translation> <translation id="161460670679785907">നിങ്ങളുടെ ഫോൺ തിരിച്ചറിയാനാകുന്നില്ല</translation> <translation id="1616206807336925449">ഈ വിപുലീകരണത്തിന് പ്രത്യേക അനുമതികളൊന്നും ആവശ്യമില്ല.</translation> @@ -964,6 +963,7 @@ <translation id="2148219725039824548">പങ്കിടൽ മൗണ്ട് ചെയ്യുന്നതിൽ പിശക്. നെറ്റ്വർക്കിൽ നിർദ്ദിഷ്ട പങ്കിടൽ കണ്ടെത്തിയില്ല,</translation> <translation id="2148756636027685713">ഫോർമാറ്റിംഗ് പൂർത്തിയായി</translation> <translation id="2148892889047469596">കാസ്റ്റ് ടാബ്</translation> +<translation id="2149973817440762519">ബുക്മാര്ക്ക് എഡിറ്റ് ചെയ്യുക</translation> <translation id="2150139952286079145">ലക്ഷ്യസ്ഥാനങ്ങൾ തിരയുക</translation> <translation id="2150661552845026580">"<ph name="EXTENSION_NAME" />" ചേർക്കണോ?</translation> <translation id="2151576029659734873">അസാധുവായ ടാബ് സൂചികയാണ് നൽകിയത്.</translation> @@ -5987,6 +5987,7 @@ <translation id="8288032458496410887"><ph name="APP" /> അൺ ഇൻസ്റ്റാൾ ചെയ്യുക...</translation> <translation id="8289128870594824098">ഡിസ്ക്കിന്റെ വലുപ്പം</translation> <translation id="8291967909914612644">ഹോം പ്രൊവൈഡറിന്റെ രാജ്യം</translation> +<translation id="8293206222192510085">ബുക്ക്മാര്ക്ക് ചേര്ക്കുക</translation> <translation id="8294431847097064396">ഉറവിടം</translation> <translation id="8297006494302853456">ദുര്ബലം</translation> <translation id="8299319456683969623">നിങ്ങൾ നിലവിൽ ഓഫ്ലൈനിൽ ആണ്.</translation>
diff --git a/chrome/app/resources/generated_resources_mn.xtb b/chrome/app/resources/generated_resources_mn.xtb index a1e1493d..639ed98c 100644 --- a/chrome/app/resources/generated_resources_mn.xtb +++ b/chrome/app/resources/generated_resources_mn.xtb
@@ -71,6 +71,7 @@ <translation id="1070705170564860382">Өөр хөтчид <ph name="COUNTDOWN_SECONDS" /> секундийн дараа нээнэ</translation> <translation id="1071917609930274619">ӨгөгдлийН шифрлэлт</translation> <translation id="1072700771426194907">USB төхөөрөмж олдлоо</translation> +<translation id="107278043869924952">Нууц үг дээрээ ПИН нэмж ашиглах</translation> <translation id="1076176485976385390">Текстийн курсор ашиглан хуудас хооронд шилжих</translation> <translation id="1076698951459398590">Загварыг идэвхжүүлэх</translation> <translation id="1076818208934827215">Microsoft Internet Explorer</translation> @@ -520,7 +521,6 @@ <translation id="1608668830839595724">Сонгосон зүйлс дээр хийх нэмэлт үйлдэл</translation> <translation id="161042844686301425">Шар хөх өнгө</translation> <translation id="1611432201750675208">Таны төхөөрөмжийг түгжсэн байна</translation> -<translation id="1611584202130317952">Тооцооллын урсгал тасалдлаа. Дахин оролдох эсвэл төхөөрөмжийнхөө эзэмшигч, админтайгаа холбогдоно уу.</translation> <translation id="1614511179807650956">Ta боломжтой бүх мобайл датагаа ашигласан байж болзошгүй. Нэмэлт дата худалдаж авахын тулд <ph name="NAME" />-н идэвхжүүлэлтийн порталд зочилно уу</translation> <translation id="161460670679785907">Таны утсыг таних боломжгүй байна</translation> <translation id="1616206807336925449">Энэ өргөтгөл нь ямар нэгэн тусгай зөвшөөрөл шаарддаггүй.</translation> @@ -529,6 +529,7 @@ <translation id="1618268899808219593">Тусламжийн төв</translation> <translation id="1620307519959413822">Нууц үг буруу байна. Дахин оролдоно уу эсвэл нууц үгийг шинэчлэхийн тулд Мартсан дээр товшино уу.</translation> <translation id="1620510694547887537">Камер</translation> +<translation id="1621831347985899379"><ph name="DEVICE_TYPE" />-н өгөгдөл устана</translation> <translation id="1622054403950683339">Wi-Fi сүлжээг мартах</translation> <translation id="1623132449929929218">Зураг одоогоор боломжгүй байна. Ханын зургийн цуглуулгыг харахын тулд интернэтэд дахин холбогдоно уу.</translation> <translation id="1623723619460186680">Цэнхэр гэрлийн бууралт</translation> @@ -756,6 +757,7 @@ <translation id="1877377290348678128">Шошго (заавал биш)</translation> <translation id="1877520246462554164">Нотолгооны тэмдгийг авч чадсангүй. Дахин оролдохын тулд бүртгэлээсээ гараад буцаж нэвтэрнэ үү.</translation> <translation id="1877860345998737529">Үйлдлийн тохируулгыг шилжүүлэх</translation> +<translation id="1878155070920054810">Шинэчилж дуусахаас өмнө таны Chromebook-н тэжээл тань дуусах бололтой. Ажиллагаа тасалдахаас зайлсхийхийн тулд зөв цэнэглэгдэж байгаа эсэхийг нь шалгана уу.</translation> <translation id="1879000426787380528">-р нэвтрэх</translation> <translation id="1880905663253319515">"<ph name="CERTIFICATE_NAME" />" сертификатыг устгах уу?</translation> <translation id="1881445033931614352">Гарын загвар</translation> @@ -960,6 +962,7 @@ <translation id="2148219725039824548">Хуваалцлыг залгаж чадсангүй. Сонгосон хуваалцал сүлжээнээс олдсонгүй.</translation> <translation id="2148756636027685713">Форматлаж дууссан</translation> <translation id="2148892889047469596">Цонх дамжуулах</translation> +<translation id="2149973817440762519">Хадгалагдсан хуудсыг засах</translation> <translation id="2150139952286079145">Очих газрыг хайх</translation> <translation id="2150661552845026580">"<ph name="EXTENSION_NAME" />"-ыг нэмэх үү?</translation> <translation id="2151576029659734873">Цонхийн хүчингүй индекс оруулсан байна.</translation> @@ -1069,6 +1072,7 @@ <translation id="2270627217422354837">Домэйнд <ph name="DOMAINS" /> холбогдсон ямар ч төхөөрөмжийг ашиглан мэдээлэл солилцоорой</translation> <translation id="2272570998639520080">Мартини шил</translation> <translation id="2273119997271134996">Холбогчийн видео портын асуудал</translation> +<translation id="2274840746523584236">Chromebook-ээ цэнэглэнэ үү</translation> <translation id="2276503375879033601">Илүү их апп нэмэх</translation> <translation id="2277255602909579701">Бүх күүки, сайтын өгөгдөл</translation> <translation id="2277769717710009150">{COUNT,plural, =1{1 зүйл хуулсан}other{# зүйл хуулсан}}</translation> @@ -1910,6 +1914,7 @@ <translation id="3308116878371095290">Энэхүү хуудсыг cookies байршуулах тохиргооноос хамгаалсан байна.</translation> <translation id="3308134619352333507">Товчлуурыг нуух</translation> <translation id="3308852433423051161">Google туслахыг ачааллаж байна...</translation> +<translation id="3310640316857623290">DNS-н хоцролт зөвшөөрөгдөх хязгаараас нэлээд өндөр байна</translation> <translation id="3311445899360743395">Энэ апптай холбоотой өгөгдлийг энэ төхөөрөмжөөс устгаж болзошгүй.</translation> <translation id="3312424061798279731">Идэвхжсэн хэл</translation> <translation id="3313622045786997898">Certificate Signature Value</translation> @@ -1922,6 +1927,7 @@ <translation id="3323295311852517824">{NUM_FILES,plural, =0{Энэ өгөгдөл эмзэг эсвэл аюултай контенттой байна. Энэ контентыг хасаад, дахин оролдоно уу.}=1{Энэ файл эмзэг эсвэл аюултай контенттой байна. Энэ контентыг хасаад, дахин оролдоно уу.}other{Эдгээр файл эмзэг эсвэл аюултай контенттой байна. Энэ контентыг хасаад, дахин оролдоно уу.}}</translation> <translation id="3323521181261657960">Бонус! Таны дэлгэцийн цагийг сунгалаа</translation> <translation id="3325910708063135066">Камер болон микрофоныг Mac-н системийн сонголтод унтраасан байна</translation> +<translation id="3327050066667856415">Chromebook-г аюулгүй байдалд зориулж бүтээсэн. Таны төхөөрөмж хортой кодоос автоматаар хамгаалагддаг бөгөөд нэмэлт программ хангамж шаардлагагүй.</translation> <translation id="3328489342742826322">Нөөцлөлтөөс сэргээх нь таны Linux-н файлын фолдерт байгаа Linux-н апп болон өгөгдлийг устгана.</translation> <translation id="3331321258768829690">( <ph name="UTCOFFSET" /> ) <ph name="LONGTZNAME" /> ( <ph name="EXEMPLARCITY" /> )</translation> <translation id="3331974543021145906">Аппликейшний мэдээлэл...</translation> @@ -2111,6 +2117,7 @@ <translation id="3556433843310711081">Таны менежер үүнийг блокоос гаргах боломжтой</translation> <translation id="3557101512409028104">Family Link-р вэб сайтын хязгаарлалт, дэлгэцийн цагийн хязгаар тогтоох</translation> <translation id="3559262020195162408">Удирдамжийг төхөөрөмж дээр суулгаж чадсангүй.</translation> +<translation id="3559533181353831840">Ойролцоогоор <ph name="TIME_LEFT" /> үлдсэн</translation> <translation id="3560034655160545939">&Зөв бичгийн алдаа шалгагч</translation> <translation id="3562423906127931518">Энэ боловсруулалтад хэдэн минут шаардлагатай. Linux-н контейнерыг тохируулж байна.</translation> <translation id="3563432852173030730">Киоск программыг татаж авч чадсангүй.</translation> @@ -2153,6 +2160,7 @@ <translation id="3602290021589620013">Мэдээллийг урьдчилж харах</translation> <translation id="3603622770190368340">Сүлжээний сертификат авах</translation> <translation id="3604713164406837697">Ханын зураг солих</translation> +<translation id="360565022852130722">WiFi сүлжээ WEP 802.1x-н сул протоколоор хамгаалагдсан байна</translation> <translation id="3605780360466892872">Buttondown</translation> <translation id="3608576286259426129">Хэрэглэгчийн зургийг урьдчилан үзэх</translation> <translation id="3610369246614755442">Холбогчийн сэнсийг үйлчилгээнд хамруулах хэрэгтэй</translation> @@ -2189,6 +2197,7 @@ <translation id="3639220004740062347">Уншигчийн горимоос гарах</translation> <translation id="3640214691812501263"><ph name="USER_NAME" />-д зориулсан "<ph name="EXTENSION_NAME" />"-ыг нэмэх үү?</translation> <translation id="3640613767643722554">Туслахдаа дуу хоолойгоо таниулна уу</translation> +<translation id="3643014427358482789"><ph name="DOMAIN" /> таны <ph name="DEVICE_TYPE" />-г шинэчлэх ADB дебагийг идэвхгүй болгож байна. Дахин эхлүүлэхээс өмнө файлуудаа хуулбарлана уу.</translation> <translation id="3645372836428131288">Хурууны хээг өөр талаас нь авахын тулд хуруугаа бага зэрэг хөдөлгөнө үү</translation> <translation id="3647998456578545569">{COUNT,plural, =1{<ph name="DEVICE_NAME" />-с <ph name="ATTACHMENTS" /> хүлээж авсан}other{<ph name="DEVICE_NAME" />-с <ph name="ATTACHMENTS" /> хүлээж авсан}}</translation> <translation id="3648348069317717750"><ph name="USB_DEVICE_NAME" /> илэрсэн</translation> @@ -2277,6 +2286,7 @@ <translation id="3732857534841813090">Google Туслахтай холбоотой мэдээлэл</translation> <translation id="3733127536501031542">Хурдасгагчтай SSL Сервер</translation> <translation id="3735740477244556633">Дараахаар эрэмбэлэх</translation> +<translation id="3738632186060045350"><ph name="DEVICE_TYPE" />-н өгөгдөл 24 цагийн дараа устана</translation> <translation id="3738924763801731196"><ph name="OID" />:</translation> <translation id="3739254215541673094"><ph name="APPLICATION" />-г нээх үү?</translation> <translation id="3742055079367172538">Дэлгэцний зургийг авсан болно (Screenshot)</translation> @@ -2464,6 +2474,7 @@ <translation id="3937734102568271121"><ph name="LANGUAGE" />-г үргэлж орчуулах</translation> <translation id="3938128855950761626"><ph name="VENDOR_ID" /> борлуулагчийн төхөөрөмжүүд</translation> <translation id="3940233957883229251">Авто-давталт идэвхжүүл</translation> +<translation id="3941014780699102620">Хостыг шийдвэрлэж чадсангүй</translation> <translation id="3941565636838060942">Энэ програмд хандалт хийх тэмдэгийг нуухын тулд Хянах Самбарт байгаа <ph name="CONTROL_PANEL_APPLET_NAME" />-ний тусламжтайгаар программыг устгана уу. Та <ph name="CONTROL_PANEL_APPLET_NAME" />-ийг эхлүүлэхийг хүсэж байна уу?</translation> @@ -2625,6 +2636,7 @@ <translation id="413121957363593859">Бүрдлүүд</translation> <translation id="4131410914670010031">Хар ба цагаан</translation> <translation id="413193092008917129">Сүлжээний оношилгооны хэвшлүүд</translation> +<translation id="4132183752438206707">Google Play Дэлгүүрээс апп хайж олох</translation> <translation id="4133076602192971179">Нууц үгээ өөрчлөхийн тулд аппыг нээнэ үү</translation> <translation id="4136203100490971508">Нар мандахад шөнийн гэрэл автоматаар унтарна</translation> <translation id="41365691917097717">Үргэлжлүүлснээр Андройд апп үүсгэх болон туршихад зориулж ADB алдаа засахыг идэвхжүүлнэ. Энэ үйлдэл нь Google-н баталгаажуулаагүй Андройд аппыг суулгахыг зөвшөөрөх бөгөөд идэвхгүй болгоход үйлдвэрийн тохиргоонд шинэчлэх шаардлагатай.</translation> @@ -2874,6 +2886,8 @@ <translation id="4479877282574735775">Виртуал машиныг тохируулж байна. Үүнд хэдэн хором шаардлагатай.</translation> <translation id="4480590691557335796">Chrome таны компьютероос хортой программ хангамжийг олж устгах боломжтой</translation> <translation id="4481530544597605423">Хослоогүй төхөөрөмж</translation> +<translation id="4483049906298469269">Сүлжээний өгөгдмөл бус гэйтвэйд пин илгээж чадсангүй</translation> +<translation id="4487489714832036847">Chromebook уламжлалт программ хангамжийн оронд аппыг ашигладаг. Бүтээмж, энтертэйнмент болон бусад зүйлд зориулсан аппуудыг татаж аваарай.</translation> <translation id="4488502501195719518">Бүх өгөгдлийг устгах уу?</translation> <translation id="4493468155686877504">Санал болгосон (<ph name="INSTALL_SIZE" />)</translation> <translation id="4495419450179050807">Энэ хуудсан дээр бүү үзүүл</translation> @@ -2924,6 +2938,7 @@ <translation id="4546692474302123343">Google Туслахын дуу хоолойгоор оруулах</translation> <translation id="4547659257713117923">Бусад төхөөрөмжөөс ирсэн цонх байхгүй байна</translation> <translation id="4547672827276975204">Автоматаар тохируулах</translation> +<translation id="4548483925627140043">Дохио илэрсэнгүй</translation> <translation id="4549791035683739768">Таны аюулгүй байдлын түлхүүр дээр хадгалсан хурууны хээ байхгүй байна</translation> <translation id="4551763574344810652">Болихын тулд <ph name="MODIFIER_KEY_DESCRIPTION" />-г дарна уу</translation> <translation id="4552089082226364758">Гэрэл</translation> @@ -2963,6 +2978,7 @@ <translation id="4582563038311694664">Бүх тохиргоог дахин тохируулах</translation> <translation id="4585793705637313973">Хуудас засах</translation> <translation id="4586275095964870617"><ph name="URL" />-г өөр хөтчид нээж чадсангүй. Системийнхээ админтай холбогдоно уу.</translation> +<translation id="458794348635939462">Бүх хостыг шийдвэрлэж чадсангүй</translation> <translation id="4589713469967853491">Логуудыг Татаж авсан файлын лавлахад амжилттай бичлээ.</translation> <translation id="4590324241397107707">Өгөгдлийн сангийн хадгалалт</translation> <translation id="4592891116925567110">Мэдрэгч үзгийн зурдаг апп</translation> @@ -3346,6 +3362,7 @@ <translation id="5089810972385038852">Муж</translation> <translation id="5094721898978802975">Хамтарч буй суурин апп-уудтай харилцах</translation> <translation id="5097002363526479830">Сүлжээний холболт амжилтгүй боллоо '<ph name="NAME" />': <ph name="DETAILS" /></translation> +<translation id="5097649414558628673">Хэрэгсэл: <ph name="PRINT_NAME" /></translation> <translation id="5097874180538493929">Курсорыг зогссон үед автоматаар товших</translation> <translation id="5101042277149003567">Бүх хавчуургыг нээх</translation> <translation id="5101839224773798795">Курсор зогссон үед автоматаар товших</translation> @@ -3564,6 +3581,7 @@ <translation id="5370819323174483825">Дахин ачаалла</translation> <translation id="5372529912055771682">Өгөгдсөн оролцооны горимыг үйлдлийн системийн энэ хувилбарт дэмжихгүй байна. Та хамгийн сүүлийн үеийн хувилбарыг ажиллуулж байгаа эсэхээ шалгаад дахин оролдож үзнэ үү.</translation> <translation id="5372579129492968947">Өргөтгөлийг тогтоосныг болиулах</translation> +<translation id="5372659122375744710">Wi-Fi сүлжээ аюулгүй биш байна</translation> <translation id="5376169624176189338">Буцахаар бол энд дарж, түүхийг хараарай</translation> <translation id="5376931455988532197">Файл хэтэрхий том байна</translation> <translation id="5377721922656071359">{COUNT,plural, =1{<ph name="ATTACHMENTS" />-г <ph name="DEVICE_NAME" /> руу амжилттай илгээсэн}other{<ph name="ATTACHMENTS" />-г <ph name="DEVICE_NAME" /> руу амжилттай илгээсэн}}</translation> @@ -3593,6 +3611,7 @@ <translation id="5414566801737831689">Өөрийн ордог вэбсайтуудынхаа дүрснүүдийг уншуулна уу</translation> <translation id="5417312524372586921">Хөтчийн загвар</translation> <translation id="5419405654816502573">Voice match</translation> +<translation id="5420274697768050645">Нэмэлт аюулгүй байдлын үүднээс төхөөрөмжийн түгжээг тайлахын тулд нууц үг оруулахыг шаардана</translation> <translation id="5420438158931847627">Текст болон зургийн хурцлалтыг тодорхойлдог</translation> <translation id="5422221874247253874">Хандах цэг</translation> <translation id="5422781158178868512">Уучлаарай, таны мэдээлэл хадгалах төхөөрөмжийг танихгүй байна.</translation> @@ -3717,6 +3736,7 @@ <translation id="5548606607480005320">Аюулгүй байдлын шалгалт</translation> <translation id="5551573675707792127">Гар болон текстийн оролт</translation> <translation id="5553089923092577885">Гэрчилгээний бодлогын зураглал</translation> +<translation id="5554403733534868102">Үүнээс хойш шинэчлэлт хийхийн тулд хүлээх шаардлагагүй болно</translation> <translation id="5554489410841842733">Өргөтгөл нь одоо байгаа хуудсан дээр ажиллаж чадаж байгаа үед энэ дүрс харагдах болно.</translation> <translation id="5554720593229208774">Имэйл Certification Authority</translation> <translation id="5556459405103347317">Дахин ачаал</translation> @@ -4130,6 +4150,7 @@ <translation id="6061882183774845124">Төхөөрөмжүүддээ холбоос илгээх</translation> <translation id="6064217302520318294">Дэлгэцийн түгжээ</translation> <translation id="6065289257230303064">Certificate Subject Directory Attributes</translation> +<translation id="6069464830445383022">Та Google Бүртгэлээрээ Chromebook-тээ нэвтэрнэ</translation> <translation id="6069671174561668781">Ханын зураг тохируулах</translation> <translation id="6071181508177083058">нууц үгийг баталгаажуулах</translation> <translation id="6071576563962215370">Систем төхөөрөмжийг суулгах хугацааны атрибутын түгжээг үүсгэж чадсангүй.</translation> @@ -4172,6 +4193,7 @@ <translation id="6104311680260824317">Домайнд төхөөрөмжийг оруулах боломжгүй байна. Сервер нь Kerberos-н зарим шифрлэлтийн төрлийг дэмждэггүй. Шифрлэлтийн тохиргоо хийхийн тулд "Бусад сонголт" гэснийг шалгана уу.</translation> <translation id="6104796831253957966">Хэвлэгчийн дараалал дүүрсэн байна</translation> <translation id="6105994589138235234">Chrome хөтчийн синк</translation> +<translation id="6108689792487843350">Гэйтвэйд холбогдох боломжгүй байна</translation> <translation id="6111972606040028426">Google Туслахыг идэвхжүүлэх</translation> <translation id="6112294629795967147">Хэмжээг өөрчлөхийн тулд товших</translation> <translation id="6112727384379533756">Тасалбар нэмэх</translation> @@ -4232,6 +4254,7 @@ <translation id="6178664161104547336">Гэрчилгээг сонгоно уу</translation> <translation id="6181431612547969857">Татаж авах ажиллагаа хаагдлаа</translation> <translation id="6185132558746749656">Төхөөрөмжийн байршил</translation> +<translation id="6191293864534840972">DNS алдаатай байна</translation> <translation id="6195446518998936840">Эцэг эхийн хяналтыг тохируулахын тулд таны зүгээс удирдахад нь туслах Google Бүртгэл танай хүүхдэд байх шаардлагатай. Та Family Link аппыг ашиглан дэлгэцийн цагийн хязгаар тогтоох, вэб сайтуудыг зөвшөөрөх эсвэл блоклох зэрэг бусад тохируулгыг хийх боломжтой.</translation> <translation id="6195693561221576702">Энэ төхөөрөмжийг офлайн демо горимд тохируулах боломжгүй.</translation> <translation id="6196640612572343990">Гуравдагч талын күүкиг блоклох</translation> @@ -4445,6 +4468,7 @@ <translation id="6451591602925140504">{NUM_PAGES,plural, =0{<ph name="PAGE_TITLE" />}=1{<ph name="PAGE_TITLE" /> болон бусад 1 таб}other{<ph name="PAGE_TITLE" /> болон бусад # таб}}</translation> <translation id="6451689256222386810">Хэрэв та нэвтрэх үгээ мартсан, эсвэл энэ тохиргоог өөрчлөх бол <ph name="BEGIN_LINK" />синкийг дахин тохируулна уу<ph name="END_LINK" />.</translation> <translation id="6452181791372256707">Татгалзах</translation> +<translation id="6452251728599530347"><ph name="PERCENT" /> болсон</translation> <translation id="6452961788130242735">Сүлжээний асуудал эсвэл муу домэйн</translation> <translation id="6455264371803474013">Зөвхөн сонгосон сайтуудад</translation> <translation id="6455894534188563617">&Шинэ фолдер</translation> @@ -4501,6 +4525,7 @@ <ph name="EVENT_NAME" /></translation> <translation id="6520876759015997832"><ph name="LIST_SIZE" />-н <ph name="LIST_POSITION" /> дахь хайлтын илэрц: <ph name="SEARCH_RESULT_TEXT" />. Хэсэг рүү шилжихийн тулд Enter дээр дарна уу.</translation> <translation id="652492607360843641">Та <ph name="NETWORK_TYPE" /> сүлжээнд холбогдсон байна.</translation> +<translation id="6527081081771465939">WiFi-н аюулгүй байдлын үл мэдэгдэх протокол</translation> <translation id="6527303717912515753">Хуваалцах</translation> <translation id="6528513914570774834">Энэ төхөөрөмжийн бусад хэрэглэгчдэд энэ сүлжээг ашиглах зөвшөөрөл олгох</translation> <translation id="652948702951888897">Chrome-н түүх</translation> @@ -4617,6 +4642,7 @@ <translation id="6680442031740878064">Сул зай: <ph name="AVAILABLE_SPACE" /></translation> <translation id="6680650203439190394">Үнэлэх</translation> <translation id="6681668084120808868">Гэрэл зураг авах</translation> +<translation id="6684827949542560880">Хамгийн сүүлийн шинэчлэлтийг татаж байна</translation> <translation id="668599234725812620">Google Play-г нээх</translation> <translation id="6686490380836145850">Цонхнуудыг баруун тийш нь хаах</translation> <translation id="6686817083349815241">Нууц үгээ хадгална уу</translation> @@ -4726,6 +4752,7 @@ <translation id="6812841287760418429">Өөрчлөлтийг хадгал</translation> <translation id="6817174620439930047">Сайт MIDI төхөөрөмжид хандахын тулд системийн тусгай мессежийг ашиглахыг хүссэн тохиолдолд асуух (санал болгосон)</translation> <translation id="6818198425579322765">Хуудсыг орчуулах хэл</translation> +<translation id="6818802132960437751">Суурилуулсан вирусний хамгаалалт</translation> <translation id="682123305478866682">Компьютерийг дамжуулах</translation> <translation id="6823174134746916417">Мэдрэгч самбарын tap-to-click</translation> <translation id="6823506025919456619">Та төхөөрөмжүүдээ харахын тулд Chrome руу нэвтрэх хэрэгтэй</translation> @@ -5372,6 +5399,7 @@ <translation id="7631205654593498032">Төхөөрөмжүүдээ холбосноор та <ph name="DEVICE_TYPE" />-даа дараах зөвшөөрлийг олгож байна:</translation> <translation id="7631887513477658702">Энэ төрлийн файлуудыг байнга нээдэг байх</translation> <translation id="7632948528260659758">Дараах киоск апликейшнүүдийг шинэчлэж чадсангүй:</translation> +<translation id="7633724038415831385">Та шинэчлэлт хийхдээ зөвхөн энэ удаа л хүлээнэ. Chromebook дээр программ хангамжийн шинэчлэлт ард хийгдэж байдаг.</translation> <translation id="7634566076839829401">Алдаа гарлаа. Дахин ачаална уу.</translation> <translation id="763632859238619983">Аливаа сайтад төлбөр зохицуулагч суулгахыг бүү зөвшөөр</translation> <translation id="7636919061354591437">Энэ төхөөрөмж дээр суулгах</translation> @@ -5649,6 +5677,7 @@ <translation id="7933314993013528982">{NUM_TABS,plural, =1{Сайтын дууг нээх}other{Сайтуудын дууг нээх}}</translation> <translation id="7933634003144813719">Хуваалцсан фолдерыг удирдах</translation> <translation id="793531125873261495">Виртуал машиныг татаж авахад алдаа гарлаа. Дахин оролдоно уу.</translation> +<translation id="7936303884198020182">DNS олдсонгүй</translation> <translation id="7938594894617528435">Одоогийн байдлаар офлайн байна</translation> <translation id="7939062555109487992">Дэвшилтэт сонголт</translation> <translation id="7939412583708276221">Ямар ч байсан үргэлжлүүлнэ үү</translation> @@ -5774,7 +5803,7 @@ <translation id="8084114998886531721">Хадгалсан нууц үг</translation> <translation id="8086015605808120405"><ph name="PRINTER_NAME" />-г тохируулж байна ...</translation> <translation id="8086442853986205778"><ph name="PRINTER_NAME" />-г тохируулах</translation> -<translation id="8086550884324762001">Жишээ нь: Ажлын, Хувийн, Хүүхдийн, эсвэл хүний нэр</translation> +<translation id="8086550884324762001">Жишээ нь: Ажлын, Хувийн, Хүүхдийн, эсвэл нэр</translation> <translation id="80866457114322936">{NUM_FILES,plural, =1{Энэ файлыг шифрлэсэн байна. Өмчлөгчөөс нь үүний кодыг тайлахыг хүснэ үү.}other{Эдгээр файлын заримыг нь шифрлэсэн байна. Өмчлөгчөөс нь эдгээрийн кодыг тайлахыг хүснэ үү.}}</translation> <translation id="808894953321890993">Нууц үгийг солих</translation> <translation id="8090234456044969073">Хамгийн их зочилсон вэб сайтуудынхаа жагсаалтыг харах</translation> @@ -5830,7 +5859,7 @@ <translation id="8146177459103116374">Хэрэв та энэ төхөөрөмжид аль хэдийн бүртгүүлсэн бол та <ph name="LINK2_START" />бүртгэлтэй хэрэглэгчээр нэвтэрч<ph name="LINK2_END" /> болно.</translation> <translation id="8146793085009540321">Нэвтэрч чадсангүй. Та администратортайгаа холбогдох, эсвэл дахин оролдоно уу.</translation> <translation id="8148760431881541277">Нэвтрэхийг хязгаарлах</translation> -<translation id="8151579390896831136">Нэртэй нь цуг профайлаа өөрчлөх</translation> +<translation id="8151579390896831136">Нэрийг нь оруулаад профайлаа өөрчлөх</translation> <translation id="8151638057146502721">Тохируулах</translation> <translation id="8152091997436726702">Хэвлэгч бүртгэх хугацаа дууссан байна. Хэвлэгчийг компьютерт холбохын тулд Хэвлэгчийн бүртгэлийг заавал баталгаажуулсан байх шаардлагатай.</translation> <translation id="8154790740888707867">Файл байхгүй байна</translation> @@ -5889,6 +5918,7 @@ <translation id="8226742006292257240">Доор таны компьютерт оноосон, санамсаргүй үүссэн TPM нууц үгийг харуулсан байна:</translation> <translation id="8227119283605456246">Файл хавсаргах</translation> <translation id="8230134520748321204">Нууц үгийг <ph name="ORIGIN" />-д хадгалах уу?</translation> +<translation id="8230672074305416752">Сүлжээний өгөгдмөл гэйтвэйд пин илгээж чадсангүй</translation> <translation id="8234795456569844941">Манай инженерүүдэд энэ асуудлыг шийдэхэд тусална уу. Ta профайлын алдааны мессеж авахаас өмнө болсон зүйлийг тайлбарлана уу:</translation> <translation id="8236917170563564587">Оронд нь энэ табыг хуваалцах</translation> <translation id="8237647586961940482">Бараан ягаан ба улаан</translation> @@ -5949,6 +5979,7 @@ <translation id="8288032458496410887"><ph name="APP" />-г устгах...</translation> <translation id="8289128870594824098">Дискийн хэмжээ</translation> <translation id="8291967909914612644">Нүүр хуудас бэлтгэх хост</translation> +<translation id="8293206222192510085">Хадгалагдсан хуудас нэмэх</translation> <translation id="8294431847097064396">Эх сурвалж</translation> <translation id="8297006494302853456">Сул</translation> <translation id="8299319456683969623">Та одоогоор офлайн байна.</translation> @@ -5998,6 +6029,7 @@ <translation id="8363095875018065315">тогтвортой</translation> <translation id="8363142353806532503">Микрофоныг блоклосон</translation> <translation id="8363763184161554204"><ph name="PERMISSION" />-г зөвшөөрсөн</translation> +<translation id="8364946094152050673">DNS хоосон байна</translation> <translation id="8366396658833131068">Таны сүлжээний холболтыг дахин сэргээсэн байна. Өөрийн киоск аппликейшнуудаа эхлүүлэхийн тулд өөр сүлжээ сонгох эсвэл доор байгаа "Үргэлжүүлэх" товчийг дарна уу.</translation> <translation id="8368027906805972958">Үл мэдэгдэх эсвэл дэмжигдээгүй төхөөрөмж (<ph name="DEVICE_ID" />)</translation> <translation id="8368859634510605990">& Бүх хадгалагдсан хуудсуудыг нээх</translation> @@ -6083,8 +6115,10 @@ <translation id="8472623782143987204">Техник хангамж дээр тулгуурласан</translation> <translation id="8473863474539038330">Хаяг болон бусад</translation> <translation id="8475313423285172237">Таны компьютер дээрх программ өргөтгөл нэмсэн байна. Энэ нь Chrome-ийн ажиллагаанд нөлөөлж болох юм.</translation> +<translation id="8475690821716466388">WiFi сүлжээ WEP PSK-н сул протоколоор хамгаалагдсан байна</translation> <translation id="8477241577829954800">Хүчингүй болсон байна</translation> <translation id="8477384620836102176">&Ерөнхий</translation> +<translation id="8477551185774834963">DNS хоцролт зөвшөөрөгдөх хязгаараас бага зэрэг өндөр байна</translation> <translation id="8480082892550707549">Та өмнө нь энэ сайтаас таталт хийж байсан ч энэ сайт түр хугацаанд аюултай болсон байна (хакердсан). Энэ файлыг дараа татна уу.</translation> <translation id="8480869669560681089"><ph name="VENDOR_NAME" />-н үл мэдэгдэх төхөөрөмж</translation> <translation id="8481187309597259238">USB-н зөвшөөрлийг баталгаажуулах</translation> @@ -6136,6 +6170,7 @@ <translation id="8546930481464505581">Хүрэх мөрийг өөрчлөх</translation> <translation id="8547013269961688403">Бүтэн дэлгэцийн томруулагчийг идэвхжүүлэх</translation> <translation id="85486688517848470">Дээд мөрний түлхүүрийн функцийг сэлгэхийн тулд Хайлтын түлхүүрийг дарна уу</translation> +<translation id="8549316893834449916">Та Chromebook- дээ нэвтрэхдээ Gmail, Драйв, YouTube болон бусад зүйлд нэвтрэхдээ ашигладаг Google Бүртгэлээ ашиглана.</translation> <translation id="8551388862522347954">Лиценз</translation> <translation id="8551588720239073785">Огноо болон цагийн тохиргоо</translation> <translation id="8553342806078037065">Бусад хүмүүсийг удирдах</translation> @@ -6274,6 +6309,7 @@ <translation id="8720200012906404956">Мобайл сүлжээг хайж байна. <ph name="BEGIN_LINK" />Нэмэлт мэдээлэл авах<ph name="END_LINK" /></translation> <translation id="8720816553731218127">Суулгалтын хугацааны атрибутын анхны утгыг олох хугацаа дууслаа.</translation> <translation id="8722912030556880711">Ашиглалт болон оношилгооны өгөгдлийг илгээнэ үү. Энэ төхөөрөмж одоогоор оношилгоо, төхөөрөмж болон аппын ашиглалтын өгөгдлийг Google-д автоматаар илгээж байна. Энэ нь систем, аппын тогтвортой байдал болон бусад зүйлийг сайжруулахад тусална. Зарим хуримтлуулсан өгөгдөл нь Google аппууд болон Android хөгжүүлэгч зэрэг түншүүдэд мөн адил тусална. Хэрэв таны Вэб, Аппын нэмэлт үйл ажиллагааны тохиргоо асаалттай байвал энэ өгөгдлийг таны Google Бүртгэлд хадгалж болзошгүй. <ph name="BEGIN_LINK2" />Нэмэлт мэдээлэл авах<ph name="END_LINK2" /></translation> +<translation id="8723108084122415655">Өгөгдмөл бус сүлжээ хоцролтын хязгаараас дээш байна</translation> <translation id="8724405322205516354">Та энэ дүрс тэмдгийг харсан үедээ өөрийгөө мөн болохыг баталгаажуулах эсвэл худалдан авалтыг зөвшөөрөхийн тулд хурууны хээгээ ашиглана уу.</translation> <translation id="8724409975248965964">Хурууны хээ нэмсэн</translation> <translation id="8724859055372736596">&Хавтсанд харуул</translation> @@ -6449,6 +6485,7 @@ <translation id="8909833622202089127">Сайт таны байршлыг шинжилж байна</translation> <translation id="8910146161325739742">Дэлгэцээ хуваалцах</translation> <translation id="8910222113987937043">Таны хавчуурга, түүх, нууц үг болон бусад тохиргоонд хийсэн өөрчлөлтийг цаашид Google бүртгэлд синк хийхгүй. Таны одоогийн өгөгдлийг Google бүртгэлд хадгалсан хэвээр байх бөгөөд <ph name="BEGIN_LINK" />Google Хяналтын самбарт<ph name="END_LINK" /> удирдах боломжтой.</translation> +<translation id="8910721771319628100">Өгөгдмөл сүлжээ хоцролтын хязгаараас дээш байна</translation> <translation id="8912362522468806198">Google Бүртгэл</translation> <translation id="8912793549644936705">Сунгах</translation> <translation id="8912810933860534797">Автомат сканыг идэвхжүүлэх</translation>
diff --git a/chrome/app/resources/generated_resources_mr.xtb b/chrome/app/resources/generated_resources_mr.xtb index f5c7cae..2463d99d 100644 --- a/chrome/app/resources/generated_resources_mr.xtb +++ b/chrome/app/resources/generated_resources_mr.xtb
@@ -71,6 +71,7 @@ <translation id="1070705170564860382"><ph name="COUNTDOWN_SECONDS" /> सेकंदांमध्ये पर्यायी ब्राउझरमध्ये उघडत आहे</translation> <translation id="1071917609930274619">डेटा एनसिफरमेन्ट</translation> <translation id="1072700771426194907">USB डिव्हाइस आढळले आहे</translation> +<translation id="107278043869924952">पासवर्डव्यतिरिक्त पिन वापरा</translation> <translation id="1076176485976385390">मजकुराचा कर्सर वापरून पेज नेव्हिगेट करा</translation> <translation id="1076698951459398590">थीम सुरू करा</translation> <translation id="1076818208934827215">Microsoft Internet Explorer</translation> @@ -523,7 +524,6 @@ <translation id="1608668830839595724">निवडलेल्या आयटमसाठी अधिक कृती</translation> <translation id="161042844686301425">निळसर</translation> <translation id="1611432201750675208">तुमचे डिव्हाइस लॉक केले आहे</translation> -<translation id="1611584202130317952">तरतूद प्रवाहात व्यत्यय आला होता. कृपया पुन्हा प्रयत्न करा किंवा तुमच्या डिव्हाइसच्या मालकाशी किंवा अॅडमिनिस्ट्रेटरशी संपर्क साधा.</translation> <translation id="1614511179807650956">तुम्ही तुमची मोबाईल डेटा सूट वापरली असू शकते. अधिक डेटा विकत घेण्यासाठी <ph name="NAME" /> ॲक्टिव्हेशन पोर्टलला भेट द्या.</translation> <translation id="161460670679785907">तुमचा फोन शोधता आला नाही</translation> <translation id="1616206807336925449">या एक्स्टेंशनला कोणत्याही विशिष्ट परवानग्यांची आवश्यकता नाही.</translation> @@ -532,6 +532,7 @@ <translation id="1618268899808219593">म&दत केंद्र</translation> <translation id="1620307519959413822">चुकीचा पासवर्ड. पुन्हा प्रयत्न करा किंवा तो रीसेट करण्यासाठी पासवर्ड विसरलो/ले वर क्लिक करा.</translation> <translation id="1620510694547887537">कॅमेरा</translation> +<translation id="1621831347985899379"><ph name="DEVICE_TYPE" /> डेटा हटवला जाईल</translation> <translation id="1622054403950683339">वाय-फाय नेटवर्क विसरा</translation> <translation id="1623132449929929218">इमेज सध्या उपलब्ध नाहीत. वॉलपेपर संग्रह पाहण्यासाठी कृपया इंटरनेटला पुन्हा कनेक्ट करा.</translation> <translation id="1623723619460186680">निळा लाइट कमी करणे</translation> @@ -759,6 +760,7 @@ <translation id="1877377290348678128">लेबल (पर्यायी)</translation> <translation id="1877520246462554164">ऑथेंटिकेशन टोकन मिळवण्यात अयशस्वी. कृपया साइन आउट करा आणि नंतर पुन्हा प्रयत्न करण्यासाठी साइन इन करा.</translation> <translation id="1877860345998737529">स्विच ॲक्शन असाइनमेंट</translation> +<translation id="1878155070920054810">अपडेट पूर्ण होण्याआधीच तुमच्या Chromebook ची पॉवर संपेल असे दिसते. व्यत्यय टाळण्यासाठी, ते योग्य प्रकारे चार्ज होत आहे याची खात्री करा.</translation> <translation id="1879000426787380528">हे म्हणून साइन करा</translation> <translation id="1880905663253319515">"<ph name="CERTIFICATE_NAME" />" सर्टिफिकेट हटवायचे?</translation> <translation id="1881445033931614352">कीबोर्ड लेआउट</translation> @@ -963,6 +965,7 @@ <translation id="2148219725039824548">शेअर माउंट करताना एरर आली. नेटवर्कमध्ये नमूद केलेला शेअर आढळला नाही.</translation> <translation id="2148756636027685713">स्वरुपण समाप्त</translation> <translation id="2148892889047469596">टॅब कास्ट करा</translation> +<translation id="2149973817440762519">बुकमार्क संपादित करा</translation> <translation id="2150139952286079145">शोध गंतव्ये</translation> <translation id="2150661552845026580">"<ph name="EXTENSION_NAME" />" जोडायचे ?</translation> <translation id="2151576029659734873">चुकीची टॅब अनुक्रमणिका एंटर केली.</translation> @@ -1072,6 +1075,7 @@ <translation id="2270627217422354837">डोमेनमध्ये कोणत्याही डिव्हाइससह डेटा अदलाबदल करा: <ph name="DOMAINS" /></translation> <translation id="2272570998639520080">मार्टिनी ग्लास</translation> <translation id="2273119997271134996">व्हिडिओ-पोर्ट समस्या डॉक करा</translation> +<translation id="2274840746523584236">तुमचे Chromebook चार्ज करा</translation> <translation id="2276503375879033601">अधिक ॲप्लिकेशन जोडा</translation> <translation id="2277255602909579701">सर्व कुकीज आणि साइट डेटा</translation> <translation id="2277769717710009150">{COUNT,plural, =1{1 आयटम कॉपी केला}other{# आयटम कॉपी केले}}</translation> @@ -1914,6 +1918,7 @@ <translation id="3308116878371095290">हे पृष्ठ कुकीज सेट करण्यापासून प्रतिबंधित केलेले होते.</translation> <translation id="3308134619352333507">बटण लपवा</translation> <translation id="3308852433423051161">Google साहाय्यक लोड करत आहे...</translation> +<translation id="3310640316857623290">DNS लेटंसी अनुमती असलेल्या सीमेपेक्षा लक्षणीयरीत्या जास्त आहे</translation> <translation id="3311445899360743395">या अॅपशी संबंधित डेटा डिव्हाइसवरून काढला जाऊ शकतो.</translation> <translation id="3312424061798279731">सक्षम केलेल्या भाषा</translation> <translation id="3313622045786997898">सर्टिफिकेट स्वाक्षरी मूल्य</translation> @@ -1926,6 +1931,7 @@ <translation id="3323295311852517824">{NUM_FILES,plural, =0{या डेटामध्ये संवेदनशील किंवा धोकादायक आशय आहे. हा आशय काढा आणि पुन्हा प्रयत्न करा.}=1{या फाइलमध्ये संवेदनशील किंवा धोकादायक आशय आहे. हा आशय काढा आणि पुन्हा प्रयत्न करा.}other{या फाइलमध्ये संवेदनशील किंवा धोकादायक आशय आहे. हा आशय काढा आणि पुन्हा प्रयत्न करा.}}</translation> <translation id="3323521181261657960">बोनस! तुम्हाला आणखी स्क्रीन वेळ मिळाला</translation> <translation id="3325910708063135066">Mac सिस्टम प्राधान्ये मधील कॅमेरा आणि मायक्रोफोन बंद आहे</translation> +<translation id="3327050066667856415">Chromebook सुरक्षेसाठी डिझाइन केलेली आहेत. तुमच्या डिव्हाइसचे मालवेअरपासून आपोआप संरक्षण केले जाते - अतिरिक्त सॉफ्टवेअरची गरज नाही.</translation> <translation id="3328489342742826322">बॅकअपमधून रिस्टोअर केल्याने तुमची अस्तित्वात असलेली Linux ॲप्लिकेशन आणि तुमच्या Linux फाइल फोल्डरमध्ये असलेला डेटा हटवला जाईल.</translation> <translation id="3331321258768829690">(<ph name="UTCOFFSET" />) <ph name="LONGTZNAME" /> (<ph name="EXEMPLARCITY" />)</translation> <translation id="3331974543021145906">ॲप माहिती</translation> @@ -2115,6 +2121,7 @@ <translation id="3556433843310711081">तुमचा व्यवस्थापक तुमच्यासाठी ती अनावरोधित करू शकतो</translation> <translation id="3557101512409028104">Family Link सह वेबसाइटवरील बंधने आणि स्क्रीन वेळ मर्यादा सेट करा</translation> <translation id="3559262020195162408">डिव्हाइसवर धोरण इंस्टॉल करता आले नाही.</translation> +<translation id="3559533181353831840">सुमारे <ph name="TIME_LEFT" /> शिल्लक</translation> <translation id="3560034655160545939">&स्पेल चेक</translation> <translation id="3562423906127931518">या प्रक्रियेला काही मिनिटे लागू शकतात. Linux कंटेनर सेट करत आहे.</translation> <translation id="3563432852173030730">कियोस्क ॲप्लिकेशन डाउनलोड केले जाऊ शकले नाही.</translation> @@ -2157,6 +2164,7 @@ <translation id="3602290021589620013">पूर्वावलोकन</translation> <translation id="3603622770190368340">नेटवर्क सर्टिफिकेट प्राप्त करा</translation> <translation id="3604713164406837697">वॉलपेपर बदला</translation> +<translation id="360565022852130722">वायफाय नेटवर्क कमकुवत प्रोटोकॉल WEP 802.1x सह सुरक्षित केले गेले आहे</translation> <translation id="3605780360466892872">बटनडाउन</translation> <translation id="3608576286259426129">वापरकर्ता इमेज पूर्वावलोकन</translation> <translation id="3610369246614755442">डॉक फॅनला सेवा हव्या आहेत</translation> @@ -2193,6 +2201,7 @@ <translation id="3639220004740062347">वाचक मोडमधून बाहेर पडा</translation> <translation id="3640214691812501263"><ph name="USER_NAME" /> साठी "<ph name="EXTENSION_NAME" />" जोडायचे?</translation> <translation id="3640613767643722554">तुमच्या असिस्टंटला तुमचा आवाज ओळखण्यास शिकवा</translation> +<translation id="3643014427358482789"><ph name="DOMAIN" /> हे ADB डीबगिंग बंद करत आहे, ज्यामुळे तुमचे <ph name="DEVICE_TYPE" /> रीसेट होईल. रीस्टार्ट करण्याआधी तुमच्या फाइलचा बॅकअप घ्या.</translation> <translation id="3645372836428131288">फिंगरप्रिंटचा वेगळा भाग कॅप्चर करण्यासाठी बोट किंचित हलवा.</translation> <translation id="3647998456578545569">{COUNT,plural, =1{<ph name="DEVICE_NAME" />कडून <ph name="ATTACHMENTS" /> मिळाला}other{<ph name="DEVICE_NAME" />कडून <ph name="ATTACHMENTS" /> मिळाले}}</translation> <translation id="3648348069317717750"><ph name="USB_DEVICE_NAME" /> आढळले</translation> @@ -2281,6 +2290,7 @@ <translation id="3732857534841813090">Google Assistant शी संबंधित माहिती</translation> <translation id="3733127536501031542">स्टेप-अप सह SSL सर्व्हर</translation> <translation id="3735740477244556633">यानुसार क्रमाने लावा</translation> +<translation id="3738632186060045350"><ph name="DEVICE_TYPE" /> डेटा २४ तासांमध्ये हटवला जाईल</translation> <translation id="3738924763801731196"><ph name="OID" />:</translation> <translation id="3739254215541673094"><ph name="APPLICATION" /> उघडायचा?</translation> <translation id="3742055079367172538">स्क्रीनशॉट घेतला</translation> @@ -2468,6 +2478,7 @@ <translation id="3937734102568271121">नेहमी <ph name="LANGUAGE" /> मध्ये भाषांतर करा</translation> <translation id="3938128855950761626">विक्रेता <ph name="VENDOR_ID" /> कडील डिव्हाइस</translation> <translation id="3940233957883229251">ऑटो-रिपीट सुरू करा</translation> +<translation id="3941014780699102620">होस्टचे निराकरण करता आले नाही</translation> <translation id="3941565636838060942">या प्रोग्रामवरील ॲक्सेस लपवण्यासाठी, तुम्हाला नियंत्रण पॅनेलमधील <ph name="CONTROL_PANEL_APPLET_NAME" /> वापरून तो अनइंस्टॉल करण्याची आवश्यकता आहे. @@ -2628,6 +2639,7 @@ <translation id="413121957363593859">घटक</translation> <translation id="4131410914670010031">कृष्ण धवल</translation> <translation id="413193092008917129">नेटवर्क निदान दिनक्रम</translation> +<translation id="4132183752438206707">Google Play Store वर अॅप्स शोधा</translation> <translation id="4133076602192971179">तुमचा पासवर्ड बदलण्यासाठी अॅप उघडा</translation> <translation id="4136203100490971508">सूर्योदयाच्या वेळी रात्रीचा प्रकाश आपोआप बंद होईल</translation> <translation id="41365691917097717">सुरू ठेवल्याने Android अॅप्स तयार करण्यासाठी आणि त्यांची चाचणी घेण्यासाठी ADB डीबगिंग सुरू केले जाईल. लक्षात घ्या की, ही कृती Google ने पडताळणी न केलेली Android ॲप्स इंस्टॉल करू देते आणि बंद करण्यासाठी फॅक्टरी रीसेटची आवश्यकता आहे.</translation> @@ -2877,6 +2889,8 @@ <translation id="4479877282574735775">व्हर्च्युअल मशीन कॉन्फिगर करत आहे. यासाठी काही मिनिटे लागू शकतात.</translation> <translation id="4480590691557335796">Chrome तुमच्या काँप्युटरवरील नुकसानकारक सॉफ्टवेअर शोधू शकते आणि ते काढू शकते</translation> <translation id="4481530544597605423">जोडणी वेगळी केलेली डिव्हाइस</translation> +<translation id="4483049906298469269">डीफॉल्ट नसलेला नेटवर्क गेटवे पिंग करता आला नाही</translation> +<translation id="4487489714832036847">पारंपरिक सॉफ्टवेअरऐवजी Chromebook अॅप्स वापरतात. उत्पादनक्षमता, मनोरंजन आणि बर्याच गोष्टींसाठी अॅप्स मिळवा.</translation> <translation id="4488502501195719518">सर्व डेटा साफ करायचा?</translation> <translation id="4493468155686877504">शिफारस केलेले (<ph name="INSTALL_SIZE" />)</translation> <translation id="4495419450179050807">या पेजवर दर्शवू नका</translation> @@ -2927,6 +2941,7 @@ <translation id="4546692474302123343">Google Assistant व्हॉइस इनपुट</translation> <translation id="4547659257713117923">अन्य डिव्हाइसेसवरील कोणतेही टॅब नाहीत</translation> <translation id="4547672827276975204">आपोआप सेट करा</translation> +<translation id="4548483925627140043">सिग्नल मिळाला नाही</translation> <translation id="4549791035683739768">तुमच्या सिक्युरिटी कीवर कोणतीही फिंगरप्रिंट स्टोअर केलेली नाहीत</translation> <translation id="4551763574344810652">पहिल्यासारखे करण्यासाठी <ph name="MODIFIER_KEY_DESCRIPTION" /> दाबा</translation> <translation id="4552089082226364758">फ्लॅश</translation> @@ -2966,6 +2981,7 @@ <translation id="4582563038311694664">सर्व सेटिंग्ज रीसेट करा</translation> <translation id="4585793705637313973">पृष्ठ संपादित करा</translation> <translation id="4586275095964870617"><ph name="URL" /> पर्यायी ब्राउझरमध्ये उघडता आले नाही. कृपया तुमच्या सिस्टम अॅडमिनिस्ट्रेटरशी संपर्क साधा.</translation> +<translation id="458794348635939462">सर्व होस्टचे निराकरण करता आले नाही</translation> <translation id="4589713469967853491">डाउनलोड डिरेक्टरीमध्ये लॉग यशस्वीरीत्या राइट केले गेले.</translation> <translation id="4590324241397107707">डेटाबेस स्टोरेज</translation> <translation id="4592891116925567110">स्टायलस ड्रॉइंग अॅप</translation> @@ -3349,6 +3365,7 @@ <translation id="5089810972385038852">राज्य</translation> <translation id="5094721898978802975">मूळ अनुप्रयोगांना सहकार्य करून संवाद प्रस्थापित करा</translation> <translation id="5097002363526479830">'<ph name="NAME" />': नेटवर्कशी कनेक्ट करण्यात अयशस्वी. <ph name="DETAILS" /></translation> +<translation id="5097649414558628673">टूल: <ph name="PRINT_NAME" /></translation> <translation id="5097874180538493929">कर्सर थांबल्यावर आपोआप क्लिक करा</translation> <translation id="5101042277149003567">सर्व बुकमार्क उघडा</translation> <translation id="5101839224773798795">कर्सर थांबल्यावर आपोआप क्लिक करा</translation> @@ -3567,6 +3584,7 @@ <translation id="5370819323174483825">&रीलोड करा</translation> <translation id="5372529912055771682">प्रदान केलेला नोंदणी प्रकार ऑपरेटिंग सिस्टमच्या या आवृत्तीमध्येला सपोर्ट नाही. कृपया तुम्ही नवीनतम आवृत्ती चालवत असल्याची खात्री करा आणि पुन्हा प्रयत्न करा.</translation> <translation id="5372579129492968947">एक्स्टेंशन अनपिन करा</translation> +<translation id="5372659122375744710">वायफाय नेटवर्क सुरक्षित नाही</translation> <translation id="5376169624176189338">परत जाण्यासाठी क्लिक करा, इतिहास पाहण्यासाठी होल्ड करा</translation> <translation id="5376931455988532197">फाईल खूप मोठी आहे</translation> <translation id="5377721922656071359">{COUNT,plural, =1{<ph name="DEVICE_NAME" /> ला <ph name="ATTACHMENTS" /> यशस्वीरीत्या पाठवला}other{<ph name="DEVICE_NAME" /> ला <ph name="ATTACHMENTS" /> यशस्वीरीत्या पाठवले}}</translation> @@ -3596,6 +3614,7 @@ <translation id="5414566801737831689">तुम्ही भेट देता त्या वेबसाइटची चिन्हे वाचा</translation> <translation id="5417312524372586921">ब्राउझर थीम</translation> <translation id="5419405654816502573">Voice match</translation> +<translation id="5420274697768050645">अतिरिक्त सुरक्षेसाठी, डिव्हाइस अनलॉक करण्याकरिता पासवर्डची आवश्यकता आहे</translation> <translation id="5420438158931847627">मजकूर आणि इमेजचे शार्पनेस निर्धारित करते</translation> <translation id="5422221874247253874">ॲक्सेस पॉइंट</translation> <translation id="5422781158178868512">सॉरी, तुमचे बाह्य स्टोरेज डिव्हाइस ओळखता आले नाही.</translation> @@ -3720,6 +3739,7 @@ <translation id="5548606607480005320">सुरक्षा तपासणी</translation> <translation id="5551573675707792127">कीबोर्ड आणि मजकूर इनपुट</translation> <translation id="5553089923092577885">सर्टिफिकेट धोरण मॅपिंग</translation> +<translation id="5554403733534868102">यापुढे, अपडेटची प्रतीक्षा करण्याची गरज नाही</translation> <translation id="5554489410841842733">जेव्हा एक्स्टेंशन वर्तमान पेजवर कार्य करेल तेव्हा हे प्रतीक दृश्यमान होईल.</translation> <translation id="5554720593229208774">ईमेल प्रमाणन अधिकृतता</translation> <translation id="5556459405103347317">रीलोड करा</translation> @@ -4134,6 +4154,7 @@ <translation id="6061882183774845124">तुमच्या डिव्हाइसवर लिंक पाठवा</translation> <translation id="6064217302520318294">स्क्रीन लॉक</translation> <translation id="6065289257230303064">प्रमाणपत्र विषय डिरेक्टरी विशेषता</translation> +<translation id="6069464830445383022">तुमचे Google खाते हेच तुमचे Chromebook साइन इन आहे</translation> <translation id="6069671174561668781">वॉलपेपर सेट करा</translation> <translation id="6071181508177083058">पासवर्ड कन्फर्म करा</translation> <translation id="6071576563962215370">सिस्टमला डिव्हाइस इंस्टॉलेशन वेळ विशेषता लॉक स्थापित करता आले नाही.</translation> @@ -4176,6 +4197,7 @@ <translation id="6104311680260824317">डिव्हाइस डोमेनशी जोडू शकत नाही. सर्व्हर नमूद केलेल्या Kerberos एंक्रिप्शन प्रकारांना सपोर्ट करत नाही. एंक्रिप्शन सेटिंग्जसाठी "आणखी पर्याय" तपासा.</translation> <translation id="6104796831253957966">प्रिंटरची क्यू भरली आहे</translation> <translation id="6105994589138235234">Chrome ब्राउझर सिंक</translation> +<translation id="6108689792487843350">गेटवेशी कनेक्ट करू शकत नाही</translation> <translation id="6111972606040028426">Google Assistant सुरू करा</translation> <translation id="6112294629795967147">आकार बदलण्यासाठी स्पर्श करा</translation> <translation id="6112727384379533756">तिकीट जोडा</translation> @@ -4236,6 +4258,7 @@ <translation id="6178664161104547336">एक सर्टिफिकेट निवडा</translation> <translation id="6181431612547969857">डाउनलोड ब्लॉक केले</translation> <translation id="6185132558746749656">डिव्हाइस स्थान</translation> +<translation id="6191293864534840972">समस्या असलेले नेम सर्व्हर</translation> <translation id="6195446518998936840">पालक नियंत्रणे सेट करण्यासाठी, तुमच्या लहान मुलाकडे Google खाते असणे आवश्यक आहे, जे तुम्ही व्यवस्थापित करण्यात मदत कराल. तुम्ही Family Link अॅपसह स्क्रीन वेळ मर्यादा सेट करू शकता, वेबसाइट मंजूर किंवा ब्लॉक करू शकता आणि आणखी बरेच काही करू शकता.</translation> <translation id="6195693561221576702">हे डिव्हाइस ऑफलाइन डेमो मोडमध्ये सेट केले जाऊ शकत नाही.</translation> <translation id="6196640612572343990">तृतीय-पक्ष कुकीज अवरोधित करा</translation> @@ -4449,6 +4472,7 @@ <translation id="6451591602925140504">{NUM_PAGES,plural, =0{<ph name="PAGE_TITLE" />}=1{<ph name="PAGE_TITLE" /> आणि दुसरा एक टॅब}other{<ph name="PAGE_TITLE" /> आणि दुसरे # टॅब}}</translation> <translation id="6451689256222386810">तुमचा सांकेतिक पासफ्रेझ विसरल्यास किंवा हे सेटिंग बदलू इच्छित असल्यास, <ph name="BEGIN_LINK" />सिंक रीसेट करा<ph name="END_LINK" />.</translation> <translation id="6452181791372256707">नाकारा</translation> +<translation id="6452251728599530347"><ph name="PERCENT" /> पूर्ण</translation> <translation id="6452961788130242735">नेटवर्क समस्या किंवा वाईट क्षेत्र</translation> <translation id="6455264371803474013">विशिष्ट साइटवर</translation> <translation id="6455894534188563617">नवीन फोल्डर</translation> @@ -4505,6 +4529,7 @@ <ph name="EVENT_NAME" /></translation> <translation id="6520876759015997832"><ph name="LIST_SIZE" /> पैकी <ph name="LIST_POSITION" /> शोध परिणाम: <ph name="SEARCH_RESULT_TEXT" />. विभागामध्ये नेव्हिगेट करण्यासाठी Enter दाबा.</translation> <translation id="652492607360843641">तुम्ही <ph name="NETWORK_TYPE" /> नेटवर्कशी कनेक्ट केले आहे.</translation> +<translation id="6527081081771465939">अनोळखी वायफाय सुरक्षा प्रोटोकॉल</translation> <translation id="6527303717912515753">शेअर करा</translation> <translation id="6528513914570774834">या डिव्हाइसच्या इतर वापरकर्त्यांना हे नेटवर्क वापरण्याची परवानगी द्या</translation> <translation id="652948702951888897">Chrome इतिहास</translation> @@ -4621,6 +4646,7 @@ <translation id="6680442031740878064">उपलब्ध: <ph name="AVAILABLE_SPACE" /></translation> <translation id="6680650203439190394">रेट करा</translation> <translation id="6681668084120808868">फोटो घ्या</translation> +<translation id="6684827949542560880">नवीनतम अपडेट डाउनलोड करत आहे</translation> <translation id="668599234725812620">Google Play उघडा</translation> <translation id="6686490380836145850">उजवीकडील टॅब बंद करा</translation> <translation id="6686817083349815241">तुमचा पासवर्ड सेव्ह करा</translation> @@ -4730,6 +4756,7 @@ <translation id="6812841287760418429">बदल ठेवा</translation> <translation id="6817174620439930047">MIDI डिव्हाइसमध्ये ॲक्सेस करण्यासाठी जेव्हा एखादी साइट सिस्टम अनन्य मेसेज वापरू इच्छिते तेव्हा विचारा (शिफारस केलेले)</translation> <translation id="6818198425579322765">भाषांतर करण्यासाठी पेजची भाषा</translation> +<translation id="6818802132960437751">बिल्ट-इन व्हायरस संरक्षण</translation> <translation id="682123305478866682">डेस्कटॉप कास्ट करा</translation> <translation id="6823174134746916417">टचपॅड क्लिक करण्यासाठी टॅप करा</translation> <translation id="6823506025919456619">तुमची डिव्हाइसेस पाहण्यासाठी तुम्हाला Chrome वर साइन इन करणे आवश्यक आहे</translation> @@ -5376,6 +5403,7 @@ <translation id="7631205654593498032">तुम्ही तुमची डिव्हाइस कनेक्ट करता तेव्हा तुम्ही सहमती दर्शवता की तुमचे <ph name="DEVICE_TYPE" /> हे करू शकेल:</translation> <translation id="7631887513477658702">&नेहमी या प्रकारच्या फाइल उघडा</translation> <translation id="7632948528260659758">खालील कियोस्क अॅप्स अद्यतनांसाठी अयशस्वी झाले आहेत:</translation> +<translation id="7633724038415831385">तुम्ही फक्त या वेळी अपडेटची प्रतीक्षा कराल. Chromebook वर, सॉफ्टवेअर अपडेट बॅकग्राउंडमध्ये होतात.</translation> <translation id="7634566076839829401">काहीतरी चूक झाली, कृपया पुन्हा प्रयत्न करा.</translation> <translation id="763632859238619983">कोणत्याही साइटला पेमेंट हँडलर इंस्टॉल करण्याची अनुमती देऊ नका</translation> <translation id="7636919061354591437">या डिव्हाइसवर इंस्टॉल करा</translation> @@ -5652,6 +5680,7 @@ <translation id="7933314993013528982">{NUM_TABS,plural, =1{साइट अनम्यूट करा}other{साइट अनम्यूट करा}}</translation> <translation id="7933634003144813719">शेअर केलेले फोल्डर व्यवस्थापित करा</translation> <translation id="793531125873261495">व्हर्च्युअल मशीन डाउनलोड करताना एरर आली. कृपया पुन्हा प्रयत्न करा.</translation> +<translation id="7936303884198020182">नेम सर्व्हर आढळले नाहीत</translation> <translation id="7938594894617528435">सध्या ऑफलाइन</translation> <translation id="7939062555109487992">प्रगत पर्याय</translation> <translation id="7939412583708276221">तरीही राहू द्या</translation> @@ -5895,6 +5924,7 @@ <translation id="8226742006292257240">खाली यादृच्छिकपणे जनरेट केलेला TPM पासवर्ड आहे जो तुमच्या कॉंप्युटरचा नियुक्त केला गेला आहे:</translation> <translation id="8227119283605456246">फाईल संलग्न करा</translation> <translation id="8230134520748321204"><ph name="ORIGIN" /> साठी पासवर्ड सेव्ह करायचा आहे का?</translation> +<translation id="8230672074305416752">डीफॉल्ट नेटवर्क गेटवे पिंग करता आला नाही</translation> <translation id="8234795456569844941">कृपया आमच्या इंजिनियरना ही समस्या सोडवण्यात मदत करा. तुम्हाला प्रोफाइल एरर मिळण्याआधी नेमके काय झाले ते आम्हाला सांगा:</translation> <translation id="8236917170563564587">त्याऐवजी हा टॅब शेअर करा</translation> <translation id="8237647586961940482">गडद गुलाबी आणि लाल</translation> @@ -5955,6 +5985,7 @@ <translation id="8288032458496410887"><ph name="APP" /> अनइंस्टॉल करा...</translation> <translation id="8289128870594824098">डिस्कचा आकार</translation> <translation id="8291967909914612644">होम पुरवठादार देश</translation> +<translation id="8293206222192510085">बुकमार्क जोडा</translation> <translation id="8294431847097064396">स्रोत</translation> <translation id="8297006494302853456">कमकुवत</translation> <translation id="8299319456683969623">तुम्ही सध्या ऑफलाइन आहात.</translation> @@ -6004,6 +6035,7 @@ <translation id="8363095875018065315">स्थिर</translation> <translation id="8363142353806532503">मायक्रोफोन ब्लॉक केला आहे</translation> <translation id="8363763184161554204">अनुमती असलेली <ph name="PERMISSION" /></translation> +<translation id="8364946094152050673">रिकामे नेम सर्व्हर</translation> <translation id="8366396658833131068">तुमची नेटवर्क कनेक्टिव्हिटी पुनर्संचयित झाली आहे. कृपया एक भिन्न नेटवर्क निवडा किंवा तुमचा कियोस्क ॲप लाँच करण्यासाठी खालील 'सुरू ठेवा' बटण दाबा.</translation> <translation id="8368027906805972958">अज्ञात किंवा सपोर्ट नसलेले डिव्हाइस (<ph name="DEVICE_ID" />)</translation> <translation id="8368859634510605990">सर्व बुकमार्क &उघडा</translation> @@ -6089,8 +6121,10 @@ <translation id="8472623782143987204">हार्डवेअर-बॅक्ड</translation> <translation id="8473863474539038330">पत्ते आणि बरेच काही</translation> <translation id="8475313423285172237">तुमच्या कॉंप्युटरवरील दुसऱ्या प्रोग्रामने Chrome च्या काम करण्याचा मार्ग बदलू शकणारा एक्स्टेंशन जोडला.</translation> +<translation id="8475690821716466388">वायफाय नेटवर्क कमकुवत प्रोटोकॉल WEP PSK सह सुरक्षित केले गेले आहे</translation> <translation id="8477241577829954800">अधिग्रहित</translation> <translation id="8477384620836102176">&सामान्य</translation> +<translation id="8477551185774834963">DNS लेटंसी अनुमती असलेल्या सीमेपेक्षा किंचित जास्त आहे</translation> <translation id="8480082892550707549">तुम्ही यापूर्वी या साइट वरून फाइल डाउनलोड केल्या असल्या तरीदेखील, साइट कदाचित तात्पुरती असुरक्षित (हॅक केलेली) असू शकते. ही फाईल नंतर डाउनलोड करण्याचा प्रयत्न करा.</translation> <translation id="8480869669560681089"><ph name="VENDOR_NAME" /> कडील अज्ञात डिव्हाइस</translation> <translation id="8481187309597259238">USB परवानगीची निश्चिती करा</translation> @@ -6142,6 +6176,7 @@ <translation id="8546930481464505581">स्पर्श बार कस्टमाइझ करा</translation> <translation id="8547013269961688403">पूर्णस्क्रीन भिंग सुरू करा</translation> <translation id="85486688517848470">शीर्ष-पंक्ती की चे वर्तन बदलण्यासाठी शोध की दाबून ठेवा</translation> +<translation id="8549316893834449916">तुमच्या Chromebook मध्ये साइन इन करण्यासाठी तुम्ही तुमचे Google खाते वापराल – जे तुम्ही Gmail, Drive, YouTube आणि बर्याच गोष्टींसाठी वापरता.</translation> <translation id="8551388862522347954">परवाने</translation> <translation id="8551588720239073785">तारीख आणि वेळ सेटिंग्ज</translation> <translation id="8553342806078037065">इतर लोक व्यवस्थापित करा</translation> @@ -6280,6 +6315,7 @@ <translation id="8720200012906404956">मोबाइल नेटवर्क शोधत आहे. <ph name="BEGIN_LINK" />अधिक जाणून घ्या<ph name="END_LINK" /></translation> <translation id="8720816553731218127">इंस्टॉलेशन वेळ विशेषतांची सुरुवात कालबाह्य झाली.</translation> <translation id="8722912030556880711">वापर आणि निदान डेटा पाठवा. हे डिव्हाइस सध्या Google ला आपोआप निदान, डिव्हाइस आणि अॅप वापर डेटा पाठवत आहे. हे सिस्ट्म आणि अॅप स्थिरता आणि इतर सुधारणा करण्यात मदत करेल. काही एकत्रित केलेला डेटा Google अॅप्स आणि Android डेव्हलपर सारख्या भागीदारांना देखील मदत करेल. जर तुमची अतिरिक्त वेब आणि अॅप अॅक्टिव्हिटी सेटिंग सुरू केलेली असल्यास, हा डेटा तुमच्या Google खाते वर सेव्ह केला जाऊ शकतो. <ph name="BEGIN_LINK2" />अधिक जाणून घ्या<ph name="END_LINK2" /></translation> +<translation id="8723108084122415655">डीफॉल्ट नसलेले नेटवर्क लेटंसी सीमेपेक्षा जास्त आहे</translation> <translation id="8724405322205516354">तुम्हाला हा आयकन दिसताच ओळख पडताळणीसाठी किंवा खरेदीला मंजुरी देण्यासाठी तुमचे फिंगरप्रिंट वापरा.</translation> <translation id="8724409975248965964">फिंगरप्रिंट जोडले</translation> <translation id="8724859055372736596">फोल्डरमध्ये &दर्शवा</translation> @@ -6458,6 +6494,7 @@ <translation id="8909833622202089127">साइट तुमचे स्थान ट्रॅक करत आहे</translation> <translation id="8910146161325739742">तुमची स्क्रीन शेअर करा</translation> <translation id="8910222113987937043">आपल्या बुकमार्क, इतिहास आणि अन्य सेटिंग्जसाठी बदल यापुढे आपल्या Google खात्यासह संकालित केले जाणार नाहीत. तथापि, तुमचा विद्यमान डेटा आपल्या Google खात्यामध्ये संग्रहित केलेला असेल आणि <ph name="BEGIN_LINK" />Google डॅशबोर्ड<ph name="END_LINK" /> वर व्यवस्थापित केला जाऊ शकतो.</translation> +<translation id="8910721771319628100">डीफॉल्ट नेटवर्क लेटंसी सीमेच्या वर आहे</translation> <translation id="8912362522468806198">Google खाते</translation> <translation id="8912793549644936705">पसरवा</translation> <translation id="8912810933860534797">ऑटो- स्कॅन सुरू करा</translation>
diff --git a/chrome/app/resources/generated_resources_ms.xtb b/chrome/app/resources/generated_resources_ms.xtb index 66adc27..50e41b66 100644 --- a/chrome/app/resources/generated_resources_ms.xtb +++ b/chrome/app/resources/generated_resources_ms.xtb
@@ -71,6 +71,7 @@ <translation id="1070705170564860382">Membuka pada penyemak imbas alternatif dalam masa<ph name="COUNTDOWN_SECONDS" /> saat</translation> <translation id="1071917609930274619">Data Encipherment</translation> <translation id="1072700771426194907">Peranti USB dikesan</translation> +<translation id="107278043869924952">Gunakan PIN sebagai tambahan kepada kata laluan</translation> <translation id="1076176485976385390">Tukar halaman dengan kursor teks</translation> <translation id="1076698951459398590">Dayakan Tema</translation> <translation id="1076818208934827215">Microsoft Internet Explorer</translation> @@ -329,7 +330,7 @@ <translation id="1383876407941801731">Carian</translation> <translation id="1386387014181100145">Helo.</translation> <translation id="1386791642444521222">Aktifkan SIM</translation> -<translation id="1387519831959169718">Untuk menjadikan penyemakan imbas anda terpisah, anda boleh mencipta profil baharu untuk <ph name="NEW_USER" /></translation> +<translation id="1387519831959169718">Untuk menjadikan penyemakan imbas anda terpisah, anda boleh membuat profil baharu untuk <ph name="NEW_USER" /></translation> <translation id="138784436342154190">Pulihkan halaman permulaan lalai?</translation> <translation id="1388728792929436380"><ph name="DEVICE_TYPE" /> akan dimulakan semula apabila kemaskinian selesai.</translation> <translation id="1390548061267426325">Buka sebagai Tab Biasa</translation> @@ -524,7 +525,6 @@ <translation id="1608668830839595724">Lagi tindakan untuk item yang dipilih</translation> <translation id="161042844686301425">Sian</translation> <translation id="1611432201750675208">Peranti anda dikunci</translation> -<translation id="1611584202130317952">Aliran peruntukan terganggu. Sila cuba lagi atau hubungi pemilik atau pentadbir peranti anda.</translation> <translation id="1614511179807650956">Anda mungkin telah menggunakan kesemua peruntukan data mudah alih anda. Lawati portal pengaktifan <ph name="NAME" /> untuk membeli lagi data</translation> <translation id="161460670679785907">Tidak dapat mengesan telefon anda</translation> <translation id="1616206807336925449">Sambungan ini tidak memerlukan kebenaran khas.</translation> @@ -533,6 +533,7 @@ <translation id="1618268899808219593">P&usat Bantuan</translation> <translation id="1620307519959413822">Kata laluan salah. Cuba lagi atau klik Terlupa kata laluan untuk menetapkan semula kata laluan.</translation> <translation id="1620510694547887537">Kamera</translation> +<translation id="1621831347985899379">Data <ph name="DEVICE_TYPE" /> akan dipadamkan</translation> <translation id="1622054403950683339">Lupakan rangkaian Wi-Fi</translation> <translation id="1623132449929929218">Imej tidak tersedia pada masa ini. Sila sambung semula ke Internet untuk melihat koleksi kertas dinding.</translation> <translation id="1623723619460186680">Pengurangan cahaya biru</translation> @@ -760,6 +761,7 @@ <translation id="1877377290348678128">Label (pilihan)</translation> <translation id="1877520246462554164">Gagal mendapatkan token pengesahan. Sila log keluar, kemudian log masuk semula untuk mencuba lagi.</translation> <translation id="1877860345998737529">Penugasan tindakan suis</translation> +<translation id="1878155070920054810">Nampaknya Chromebook anda akan kehabisan kuasa sebelum kemaskinian selesai. Pastikan Chromebook dicas dengan betul untuk mengelakkan gangguan.</translation> <translation id="1879000426787380528">Log masuk sebagai</translation> <translation id="1880905663253319515">Padamkan sijil "<ph name="CERTIFICATE_NAME" />"?</translation> <translation id="1881445033931614352">Reka letak papan kekunci</translation> @@ -964,6 +966,7 @@ <translation id="2148219725039824548">Ralat melekapkan perkongsian. Perkongsian yang dinyatakan tidak ditemui pada rangkaian.</translation> <translation id="2148756636027685713">Selesai memformat</translation> <translation id="2148892889047469596">Hantar tab</translation> +<translation id="2149973817440762519">Edit Penanda Halaman</translation> <translation id="2150139952286079145">Cari destinasi</translation> <translation id="2150661552845026580">Tambah "<ph name="EXTENSION_NAME" />"?</translation> <translation id="2151576029659734873">Indeks tab tidak sah dimasukkan.</translation> @@ -1060,7 +1063,7 @@ <translation id="2256115617011615191">Mulakan semula sekarang</translation> <translation id="225614027745146050">Selamat datang</translation> <translation id="225692081236532131">Status pengaktifan</translation> -<translation id="2257053455312861282">Tindakan menambah akaun sekolah membolehkan anda log masuk dengan mudah ke tapak web, sambungan dan apl sebagai pelajar dan dalam masa yang sama, masih beroperasi bawah kawalan ibu bapa.</translation> +<translation id="2257053455312861282">Tindakan menambah akaun sekolah membolehkan anda log masuk dengan mudah ke tapak web, sambungan dan apl sebagai pelajar dan dalam masa yang sama, masih beroperasi di bawah kawalan ibu bapa.</translation> <translation id="2261323523305321874">Pentadbir anda telah membuat perubahan pada seluruh sistem yang melumpuhkan beberapa profil lama.</translation> <translation id="2262332168014443534">Kini mod Ringkas menjadikan penyemakan imbas lebih pantas pada semua halaman, termasuk halaman HTTPS.</translation> <translation id="2262477216570151239">Lengah sebelum mengulang</translation> @@ -1073,6 +1076,7 @@ <translation id="2270627217422354837">Bertukar data dengan mana-mana peranti dalam domain: <ph name="DOMAINS" /></translation> <translation id="2272570998639520080">Gelas martini</translation> <translation id="2273119997271134996">Isu port video dok</translation> +<translation id="2274840746523584236">Cas Chromebook anda</translation> <translation id="2276503375879033601">Tambah lagi apl</translation> <translation id="2277255602909579701">Semua kuki dan data tapak</translation> <translation id="2277769717710009150">{COUNT,plural, =1{1 item disalin}other{# item disalin}}</translation> @@ -1915,6 +1919,7 @@ <translation id="3308116878371095290">Halaman ini dihalang daripada menetapkan kuki.</translation> <translation id="3308134619352333507">Sembunyikan Butang</translation> <translation id="3308852433423051161">Memuatkan Google Assistant...</translation> +<translation id="3310640316857623290">Kependaman DNS ternyata melebihi ambang yang dibenarkan</translation> <translation id="3311445899360743395">Data yang berkaitan dengan apl ini mungkin dialih keluar daripada peranti ini.</translation> <translation id="3312424061798279731">Bahasa yang didayakan</translation> <translation id="3313622045786997898">Nilai Tandatangan Sijil</translation> @@ -1927,6 +1932,7 @@ <translation id="3323295311852517824">{NUM_FILES,plural, =0{Data ini mengandungi kandungan sensitif atau berbahaya. Alih keluar kandungan ini dan cuba lagi.}=1{Fail ini mengandungi kandungan sensitif atau berbahaya. Alih keluar kandungan ini dan cuba lagi.}other{Fail ini mengandungi kandungan sensitif atau berbahaya. Alih keluar kandungan ini dan cuba lagi.}}</translation> <translation id="3323521181261657960">Bonus! Masa skrin anda lebih lama</translation> <translation id="3325910708063135066">Kamera dan mikrofon dimatikan dalam Pilihan Sistem Mac</translation> +<translation id="3327050066667856415">Chromebook direka untuk keselamatan. Peranti anda dilindungi daripada perisian hasad secara automatik – tiada perisian tambahan diperlukan.</translation> <translation id="3328489342742826322">Tindakan memulihkan daripada sandaran akan memadamkan aplikasi dan data Linux yang sedia ada dalam folder fail Linux anda.</translation> <translation id="3331321258768829690">(<ph name="UTCOFFSET" />) <ph name="LONGTZNAME" /> (<ph name="EXEMPLARCITY" />)</translation> <translation id="3331974543021145906">Maklumat apl</translation> @@ -2116,6 +2122,7 @@ <translation id="3556433843310711081">Pengurus anda boleh menyahsekatnya untuk anda</translation> <translation id="3557101512409028104">Tetapkan sekatan tapak web & had masa skrin menggunakan Family Link</translation> <translation id="3559262020195162408">Gagal memasang dasar pada peranti.</translation> +<translation id="3559533181353831840">Kira-kira <ph name="TIME_LEFT" /> lagi</translation> <translation id="3560034655160545939">&Semak ejaan</translation> <translation id="3562423906127931518">Proses ini mungkin mengambil masa beberapa minit. Menyediakan bekas Linux.</translation> <translation id="3563432852173030730">Aplikasi kios tidak dapat dimuat turun.</translation> @@ -2158,6 +2165,7 @@ <translation id="3602290021589620013">Pratonton</translation> <translation id="3603622770190368340">Dapatkan sijil rangkaian</translation> <translation id="3604713164406837697">Tukar kertas dinding</translation> +<translation id="360565022852130722">Rangkaian Wi-Fi selamat dengan protokol lemah WEP 802.1x</translation> <translation id="3605780360466892872">Buttondown</translation> <translation id="3608576286259426129">Pratonton imej pengguna</translation> <translation id="3610369246614755442">Kipas dok perlu diselenggara</translation> @@ -2194,6 +2202,7 @@ <translation id="3639220004740062347">Keluar daripada Mod Pembaca</translation> <translation id="3640214691812501263">Tambahkan "<ph name="EXTENSION_NAME" />" untuk <ph name="USER_NAME" />?</translation> <translation id="3640613767643722554">Ajar Assistant supaya mengecam suara anda</translation> +<translation id="3643014427358482789"><ph name="DOMAIN" /> sedang melumpuhkan penyahpepijatan ADB, yang akan menetapkan semula <ph name="DEVICE_TYPE" /> anda. Sandarkan fail anda sebelum memulakan semula peranti.</translation> <translation id="3645372836428131288">Bergerak sedikit untuk menangkap bahagian lain cap jari.</translation> <translation id="3647998456578545569">{COUNT,plural, =1{<ph name="ATTACHMENTS" /> diterima daripada <ph name="DEVICE_NAME" />}other{<ph name="ATTACHMENTS" /> diterima daripada <ph name="DEVICE_NAME" />}}</translation> <translation id="3648348069317717750"><ph name="USB_DEVICE_NAME" /> dikesan</translation> @@ -2282,6 +2291,7 @@ <translation id="3732857534841813090">Maklumat berkaitan Google Assistant</translation> <translation id="3733127536501031542">Pelayan SSL dengan Peningkatan</translation> <translation id="3735740477244556633">Isih mengikut</translation> +<translation id="3738632186060045350">Data <ph name="DEVICE_TYPE" /> akan dipadamkan dalam masa 24 jam</translation> <translation id="3738924763801731196"><ph name="OID" />:</translation> <translation id="3739254215541673094">Buka <ph name="APPLICATION" />?</translation> <translation id="3742055079367172538">Tangkapan skrin diambil</translation> @@ -2469,6 +2479,7 @@ <translation id="3937734102568271121">Sentiasa Terjemahkan <ph name="LANGUAGE" /></translation> <translation id="3938128855950761626">Peranti daripada vendor <ph name="VENDOR_ID" /></translation> <translation id="3940233957883229251">Dayakan autoulang</translation> +<translation id="3941014780699102620">Gagal untuk menyelesaikan hos</translation> <translation id="3941565636838060942">Untuk menyembunyikan akses ke aturcara ini, anda perlu menyahpasangnya dengan menggunakan <ph name="CONTROL_PANEL_APPLET_NAME" /> dalam Panel Kawalan. @@ -2631,6 +2642,7 @@ <translation id="413121957363593859">Komponen</translation> <translation id="4131410914670010031">Hitam putih</translation> <translation id="413193092008917129">Rutin Diagnostik Rangkaian</translation> +<translation id="4132183752438206707">Cari apl di Gedung Google Play</translation> <translation id="4133076602192971179">Buka apl untuk menukar kata laluan anda</translation> <translation id="4136203100490971508">Cahaya Malam akan dimatikan secara automatik pada waktu matahari terbit</translation> <translation id="41365691917097717">Tindakan meneruskan persediaan akan mendayakan penyahpepijatan ADB yang membuat dan menguji apl Android. Harap maklum bahawa tindakan ini membolehkan pemasangan apl Android yang belum disahkan oleh Google dan memerlukan tetapan semula kilang untuk melumpuhkan ciri ini.</translation> @@ -2880,6 +2892,8 @@ <translation id="4479877282574735775">Mengkonfigurasikan mesin maya. Proses ini mungkin mengambil masa beberapa minit.</translation> <translation id="4480590691557335796">Chrome boleh mencari perisian yang berbahaya pada komputer anda dan mengalih keluar perisian tersebut</translation> <translation id="4481530544597605423">Peranti dinyahganding</translation> +<translation id="4483049906298469269">Gagal untuk ping get laluan rangkaian bukan lalai</translation> +<translation id="4487489714832036847">Chromebook menggunakan apl, bukannya perisian tradisional. Gunakan apl untuk produktiviti, hiburan dan banyak lagi.</translation> <translation id="4488502501195719518">Kosongkan semua data?</translation> <translation id="4493468155686877504">Disyorkan (<ph name="INSTALL_SIZE" />)</translation> <translation id="4495419450179050807">Jangan paparkan pada halaman ini</translation> @@ -2908,7 +2922,7 @@ <translation id="4522570452068850558">Butiran</translation> <translation id="4522600456902129422">Teruskan membenarkan tapak ini melihat papan keratan</translation> <translation id="4524832533047962394">Mod pendaftaran yang diberikan tidak disokong oleh versi sistem pengendalian ini. Sila pastikan anda menjalankan versi terbaharu.</translation> -<translation id="4527186207340858212">Cipta profil baharu untuk kerja?</translation> +<translation id="4527186207340858212">Buat profil baharu untuk kerja?</translation> <translation id="452750746583162491">Semak data anda yang disegerak</translation> <translation id="4530494379350999373">Asal</translation> <translation id="4532646538815530781">Tapak ini menggunakan penderia gerakan.</translation> @@ -2930,6 +2944,7 @@ <translation id="4546692474302123343">Input suara Google Assistant</translation> <translation id="4547659257713117923">Tiada Tab daripada Peranti Lain</translation> <translation id="4547672827276975204">Tetapkan secara automatik</translation> +<translation id="4548483925627140043">Isyarat tidak ditemui</translation> <translation id="4549791035683739768">Kunci keselamatan anda tidak menyimpan cap jari.</translation> <translation id="4551763574344810652">Tekan <ph name="MODIFIER_KEY_DESCRIPTION" /> untuk buat asal</translation> <translation id="4552089082226364758">Flash</translation> @@ -2959,7 +2974,7 @@ <translation id="4573515936045019911">Sambungan rangkaian diperlukan untuk meningkatkan Linux. Sila sambung ke Internet dan cuba lagi.</translation> <translation id="457386861538956877">Lagi...</translation> <translation id="4574741712540401491">• <ph name="LIST_ITEM_TEXT" /></translation> -<translation id="457564749856982089">Tindakan menambahkan akaun sekolah pada profil membolehkan anda log masuk dengan mudah ke tapak web, sambungan dan apl sebagai pelajar dan dalam masa yang sama, beroperasi bawah kawalan ibu bapa. Tindakan ini tidak memberi kanak-kanak akses kepada penanda halaman, kata laluan atau data penyemak imbas lain yang disegerakkan dengan akaun sekolah.<br><br> +<translation id="457564749856982089">Tindakan menambahkan akaun sekolah pada profil membolehkan anda log masuk dengan mudah ke tapak web, sambungan dan apl sebagai pelajar dan dalam masa yang sama, beroperasi di bawah kawalan ibu bapa. Tindakan ini tidak memberi kanak-kanak akses kepada penanda halaman, kata laluan atau data penyemak imbas lain yang disegerakkan dengan akaun sekolah.<br><br> Jika anak anda menggunakan Chromebook di sekolah dan anda ingin mencerminkan pengalaman sekolah di rumah untuk memastikan anak anda mempunyai akses kepada semua kerja sekolah yang diperlukan, sila log keluar daripada akaun Family Link ini dan log masuk ke akaun sekolah daripada halaman akaun OS Chrome (nota: kawalan ibu bapa Family Link tidak akan digunakan).<br><br> Jika anak anda tidak menggunakan Chromebook di sekolah atau jika anda lebih suka mengurus pengalaman anak anda di rumah menggunakan Family Link, sila klik butang Seterusnya di bawah untuk menambahkan akaun sekolah pada profil ini.</translation> <translation id="4576541033847873020">Gandingkan peranti Bluetooth</translation> @@ -2969,6 +2984,7 @@ <translation id="4582563038311694664">Tetapkan semula semua tetapan</translation> <translation id="4585793705637313973">Edit halaman</translation> <translation id="4586275095964870617"><ph name="URL" /> tidak dapat dibuka dalam penyemak imbas alternatif. Sila hubungi pentadbir sistem anda.</translation> +<translation id="458794348635939462">Gagal untuk menyelesaikan semua hos</translation> <translation id="4589713469967853491">Log berjaya ditulis ke direktori Muat Turun.</translation> <translation id="4590324241397107707">Storan pangkalan data</translation> <translation id="4592891116925567110">Apl melukis stilus</translation> @@ -3352,6 +3368,7 @@ <translation id="5089810972385038852">Negeri</translation> <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="5097649414558628673">Alat: <ph name="PRINT_NAME" /></translation> <translation id="5097874180538493929">Klik secara automatik apabila kursor berhenti</translation> <translation id="5101042277149003567">Buka semua penanda halaman</translation> <translation id="5101839224773798795">Klik secara automatik apabila kursor berhenti</translation> @@ -3570,6 +3587,7 @@ <translation id="5370819323174483825">&Muat semula</translation> <translation id="5372529912055771682">Mod pendaftaran yang diberikan tidak disokong oleh versi sistem pengendalian ini. Sila pastikan anda menjalankan versi terbaharu dan cuba lagi.</translation> <translation id="5372579129492968947">Nyahsemat sambungan</translation> +<translation id="5372659122375744710">Rangkaian Wi-Fi tidak selamat</translation> <translation id="5376169624176189338">Klik untuk kembali, tahan untuk lihat sejarah</translation> <translation id="5376931455988532197">Fail terlalu besar</translation> <translation id="5377721922656071359">{COUNT,plural, =1{<ph name="ATTACHMENTS" /> berjaya dihantar kepada <ph name="DEVICE_NAME" />}other{<ph name="ATTACHMENTS" /> berjaya dihantar kepada <ph name="DEVICE_NAME" />}}</translation> @@ -3599,6 +3617,7 @@ <translation id="5414566801737831689">Baca ikon tapak web yang anda lawati</translation> <translation id="5417312524372586921">Tema penyemak imbas</translation> <translation id="5419405654816502573">Voice Match</translation> +<translation id="5420274697768050645">Memerlukan kata laluan untuk membuka kunci peranti bagi keselamatan tambahan</translation> <translation id="5420438158931847627">Menentukan kejelasan teks dan imej</translation> <translation id="5422221874247253874">Titik Akses</translation> <translation id="5422781158178868512">Maaf, peranti storan luaran anda tidak dapat dikenali.</translation> @@ -3723,6 +3742,7 @@ <translation id="5548606607480005320">Semakan keselamatan</translation> <translation id="5551573675707792127">Papan kekunci dan masukan teks</translation> <translation id="5553089923092577885">Pemetaan Dasar Sijil</translation> +<translation id="5554403733534868102">Selepas ini, tidak perlu menunggu kemaskinian</translation> <translation id="5554489410841842733">Ikon ini akan kelihatan apabila sambungan boleh bertindak pada halaman semasa.</translation> <translation id="5554720593229208774">Pihak Berkuasa Pensijilan E-mel</translation> <translation id="5556459405103347317">Muat Semula</translation> @@ -4136,6 +4156,7 @@ <translation id="6061882183774845124">Hantar pautan ke peranti anda</translation> <translation id="6064217302520318294">Kunci skrin</translation> <translation id="6065289257230303064">Atribut Direktori Subjek Sijil</translation> +<translation id="6069464830445383022">Akaun Google anda merupakan log masuk Chromebook anda</translation> <translation id="6069671174561668781">Tetapkan Kertas Dinding</translation> <translation id="6071181508177083058">sahkan kata laluan</translation> <translation id="6071576563962215370">Sistem gagal mewujudkan kunci atribut masa pemasangan peranti.</translation> @@ -4178,6 +4199,7 @@ <translation id="6104311680260824317">Tidak dapat menghubungkan peranti ke domain. Pelayan tidak menyokong jenis penyulitan Kerberos yang dinyatakan. Semak "Lagi pilihan" untuk tetapan penyulitan.</translation> <translation id="6104796831253957966">Baris gilir pencetak sudah penuh</translation> <translation id="6105994589138235234">Penyegerakan penyemak imbas Chrome</translation> +<translation id="6108689792487843350">Get Laluan tidak boleh dicapai</translation> <translation id="6111972606040028426">Dayakan Google Assistant</translation> <translation id="6112294629795967147">Sentuh untuk mengubah saiz</translation> <translation id="6112727384379533756">Tambahkan tiket</translation> @@ -4238,6 +4260,7 @@ <translation id="6178664161104547336">Pilih sijil</translation> <translation id="6181431612547969857">Muat turun disekat</translation> <translation id="6185132558746749656">Lokasi Peranti</translation> +<translation id="6191293864534840972">Pelayan nama cacat</translation> <translation id="6195446518998936840">Untuk menyediakan kawalan ibu bapa, anak anda mesti mempunyai Akaun Google yang akan anda bantu untuk uruskan. Anda boleh menetapkan had masa skrin, meluluskan atau menyekat tapak web dan banyak lagi dengan apl Family Link.</translation> <translation id="6195693561221576702">Peranti ini tidak boleh disediakan dalam mod tunjuk cara luar talian.</translation> <translation id="6196640612572343990">Sekat kuki pihak ketiga</translation> @@ -4333,7 +4356,7 @@ <translation id="6298962879096096191">Gunakan Google Play untuk memasang apl Android</translation> <translation id="630065524203833229">K&eluar</translation> <translation id="6300718114348072351"><ph name="PRINTER_NAME" /> tidak dapat dikonfigurasi secara automatik. Sila nyatakan butiran terperinci pencetak. <ph name="LINK_BEGIN" />Ketahui lebih lanjut<ph name="LINK_END" /></translation> -<translation id="6301076166764763868">Untuk memisahkan penyemakan imbas peribadi dan <ph name="EXISTING_USER" />, cipta profil baharu untuk <ph name="NEW_USER" /></translation> +<translation id="6301076166764763868">Untuk memisahkan penyemakan imbas peribadi dan <ph name="EXISTING_USER" />, buat profil baharu untuk <ph name="NEW_USER" /></translation> <translation id="630292539633944562">Cadangan maklumat peribadi</translation> <translation id="6305607932814307878">Dasar Global:</translation> <translation id="6307990684951724544">Sistem sibuk</translation> @@ -4451,6 +4474,7 @@ <translation id="6451591602925140504">{NUM_PAGES,plural, =0{<ph name="PAGE_TITLE" />}=1{<ph name="PAGE_TITLE" /> dan 1 tab lain}other{<ph name="PAGE_TITLE" /> dan # tab lain}}</translation> <translation id="6451689256222386810">Jika anda terlupa ungkapan laluan atau ingin menukar tetapan ini, <ph name="BEGIN_LINK" />tetapkan semula penyegerakan<ph name="END_LINK" />.</translation> <translation id="6452181791372256707">Tolak</translation> +<translation id="6452251728599530347"><ph name="PERCENT" /> selesai</translation> <translation id="6452961788130242735">Masalah rangkaian atau realma teruk</translation> <translation id="6455264371803474013">Di tapak web tertentu</translation> <translation id="6455894534188563617">&Folder Baharu</translation> @@ -4507,6 +4531,7 @@ <ph name="EVENT_NAME" /></translation> <translation id="6520876759015997832">Hasil carian <ph name="LIST_POSITION" /> daripada <ph name="LIST_SIZE" />: <ph name="SEARCH_RESULT_TEXT" />. Tekan Enter untuk menavigasi ke bahagian.</translation> <translation id="652492607360843641">Anda bersambung ke rangkaian <ph name="NETWORK_TYPE" />.</translation> +<translation id="6527081081771465939">Protokol keselamatan Wi-Fi tidak diketahui</translation> <translation id="6527303717912515753">Kongsi</translation> <translation id="6528513914570774834">Benarkan pengguna lain peranti ini untuk menggunakan rangkaian ini</translation> <translation id="652948702951888897">Sejarah Chrome</translation> @@ -4623,6 +4648,7 @@ <translation id="6680442031740878064">Tersedia: <ph name="AVAILABLE_SPACE" /></translation> <translation id="6680650203439190394">Kadar</translation> <translation id="6681668084120808868">Ambil foto</translation> +<translation id="6684827949542560880">Memuat turun kemaskinian terkini</translation> <translation id="668599234725812620">Buka Google Play</translation> <translation id="6686490380836145850">Tutup tab di sebelah kanan</translation> <translation id="6686817083349815241">Simpan kata laluan anda</translation> @@ -4732,6 +4758,7 @@ <translation id="6812841287760418429">Simpan perubahan</translation> <translation id="6817174620439930047">Tanya apabila tapak mahu menggunakan mesej eksklusif sistem untuk mengakses peranti MIDI (disyorkan)</translation> <translation id="6818198425579322765">Bahasa Halaman yang Hendak Diterjemahkan</translation> +<translation id="6818802132960437751">Perlindungan virus terbina dalam</translation> <translation id="682123305478866682">Hantar desktop</translation> <translation id="6823174134746916417">Ketik-untuk-klik pad sentuh</translation> <translation id="6823506025919456619">Anda perlu log masuk ke Chrome untuk melihat peranti anda</translation> @@ -5378,6 +5405,7 @@ <translation id="7631205654593498032">Apabila anda menyambungkan peranti anda, anda bersetuju bahawa <ph name="DEVICE_TYPE" /> anda boleh:</translation> <translation id="7631887513477658702">&Sentiasa Buka Fail Jenis Ini</translation> <translation id="7632948528260659758">Apl kiosk berikut telah gagal untuk mengemas kini:</translation> +<translation id="7633724038415831385">Anda perlu menunggu kemaskinian hanya pada masa ini. Di Chromebook, kemaskinian perisian berlaku di latar.</translation> <translation id="7634566076839829401">Sesuatu yang tidak kena telah berlaku. Sila cuba lagi.</translation> <translation id="763632859238619983">Jangan benarkan mana-mana tapak untuk memasang pengendali pembayaran</translation> <translation id="7636919061354591437">Pasang pada Peranti ini</translation> @@ -5656,6 +5684,7 @@ <translation id="7933314993013528982">{NUM_TABS,plural, =1{Nyahredam Tapak}other{Nyahredam Tapak}}</translation> <translation id="7933634003144813719">Urus folder kongsi</translation> <translation id="793531125873261495">Ralat memuat turun mesin maya. Sila cuba lagi.</translation> +<translation id="7936303884198020182">Pelayan tanpa nama ditemui</translation> <translation id="7938594894617528435">Di luar talian pada masa ini</translation> <translation id="7939062555109487992">Pilihan lanjutan</translation> <translation id="7939412583708276221">Simpan juga</translation> @@ -5899,6 +5928,7 @@ <translation id="8226742006292257240">Di bawah adalah kata laluan TPM yang dijana secara rawak yang diperuntukkan kepada komputer anda:</translation> <translation id="8227119283605456246">Lampirkan fail</translation> <translation id="8230134520748321204">Simpan kata laluan untuk <ph name="ORIGIN" />?</translation> +<translation id="8230672074305416752">Gagal untuk ping get laluan rangkaian lalai</translation> <translation id="8234795456569844941">Sila bantu jurutera kami menyelesaikan masalah ini. Beritahu kami perkara yang berlaku sejurus sebelum anda mendapat mesej ralat profil:</translation> <translation id="8236917170563564587">Kongsi tab ini</translation> <translation id="8237647586961940482">Merah jambu gelap dan merah</translation> @@ -5959,6 +5989,7 @@ <translation id="8288032458496410887">Nyahpasang <ph name="APP" />...</translation> <translation id="8289128870594824098">Saiz cakera</translation> <translation id="8291967909914612644">Negara pembekal tempatan</translation> +<translation id="8293206222192510085">Tambah Penanda Halaman</translation> <translation id="8294431847097064396">Sumber</translation> <translation id="8297006494302853456">Lemah</translation> <translation id="8299319456683969623">Anda kini di luar talian.</translation> @@ -6009,6 +6040,7 @@ <translation id="8363095875018065315">stabil</translation> <translation id="8363142353806532503">Mikrofon disekat</translation> <translation id="8363763184161554204"><ph name="PERMISSION" /> dibenarkan</translation> +<translation id="8364946094152050673">Pelayan tiada nama</translation> <translation id="8366396658833131068">Sambungan rangkaian anda sudah dipulihkan. Sila pilih rangkaian lain atau tekan butang 'Teruskan' di bawah untuk melancarkan apl kios anda.</translation> <translation id="8368027906805972958">Peranti tidak diketahui atau tidak disokong (<ph name="DEVICE_ID" />)</translation> <translation id="8368859634510605990">&Buka semua penanda halaman</translation> @@ -6094,8 +6126,10 @@ <translation id="8472623782143987204">disokong perkakasan</translation> <translation id="8473863474539038330">Alamat dan pelbagai lagi</translation> <translation id="8475313423285172237">Program lain pada komputer anda menambah sambungan yang boleh mengubah cara Chrome berfungsi.</translation> +<translation id="8475690821716466388">Rangkaian Wi-Fi selamat dengan protokol lemah WEP PSK</translation> <translation id="8477241577829954800">Menggantikan</translation> <translation id="8477384620836102176">&Umum</translation> +<translation id="8477551185774834963">Kependaman DNS sedikit melebihi ambang yang dibenarkan</translation> <translation id="8480082892550707549">Walaupun anda pernah memuat turun fail daripada tapak ini sebelum ini, tapak ini mungkin tidak selamat buat sementara waktu (digodam). Cuba muat turun fail ini kemudian.</translation> <translation id="8480869669560681089">Peranti tidak diketahui daripada <ph name="VENDOR_NAME" /></translation> <translation id="8481187309597259238">Sahkan Kebenaran USB</translation> @@ -6147,6 +6181,7 @@ <translation id="8546930481464505581">Sesuaikan Touch Bar</translation> <translation id="8547013269961688403">Dayakan penggadang skrin penuh</translation> <translation id="85486688517848470">Tahan kekunci Cari untuk menukar gelagat kekunci di baris atas</translation> +<translation id="8549316893834449916">Anda akan menggunakan Akaun Google anda untuk mendaftar masuk ke Chromebook anda – akaun sama yang anda gunakan untuk Gmail, Drive, YouTube dan banyak lagi.</translation> <translation id="8551388862522347954">Lesen</translation> <translation id="8551588720239073785">Tetapan tarikh dan masa</translation> <translation id="8553342806078037065">Urus orang lain</translation> @@ -6285,6 +6320,7 @@ <translation id="8720200012906404956">Mencari rangkaian mudah alih. <ph name="BEGIN_LINK" />Ketahui lebih lanjut<ph name="END_LINK" /></translation> <translation id="8720816553731218127">Pemulaan atribut masa pemasangan telah tamat masa.</translation> <translation id="8722912030556880711">Hantar data penggunaan dan diagnostik. Pada masa ini, peranti ini menghantar data diagnostik dan penggunaan peranti serta apl kepada Google secara automatik. Data ini akan membantu peningkatan kestabilan sistem dan apl serta pelbagai lagi. Sesetengah data agregat juga akan membantu apl dan rakan kongsi Google, seperti pembangun Android. Jika tetapan Aktiviti Web & Apl tambahan anda dihidupkan, data ini mungkin disimpan ke Akaun Google anda. <ph name="BEGIN_LINK2" />Ketahui Lebih Lanjut<ph name="END_LINK2" /></translation> +<translation id="8723108084122415655">Rangkaian bukan lalai melebihi ambang kependaman</translation> <translation id="8724405322205516354">Apabila anda melihat ikon ini, gunakan cap jari anda untuk pengenalan atau untuk membenarkan pembelian.</translation> <translation id="8724409975248965964">Cap jari ditambahkan</translation> <translation id="8724859055372736596">&Paparkan dalam Folder</translation> @@ -6462,6 +6498,7 @@ <translation id="8909833622202089127">Tapak sedang menjejak lokasi anda</translation> <translation id="8910146161325739742">Kongsi skrin anda</translation> <translation id="8910222113987937043">Perubahan kepada penanda halaman, sejarah, kata laluan dan tetapan anda yang lain tidak akan disegerakkan ke Akaun Google anda lagi. Namun begitu, data anda yang sedia ada akan terus disimpan dalam Akaun Google anda dan boleh diurus di <ph name="BEGIN_LINK" />Papan Pemuka Google<ph name="END_LINK" />.</translation> +<translation id="8910721771319628100">Rangkaian lalai melebihi ambang kependaman</translation> <translation id="8912362522468806198">Akaun Google</translation> <translation id="8912793549644936705">Regang</translation> <translation id="8912810933860534797">Dayakan autoimbas</translation>
diff --git a/chrome/app/resources/generated_resources_my.xtb b/chrome/app/resources/generated_resources_my.xtb index 566eaeb..109aa99 100644 --- a/chrome/app/resources/generated_resources_my.xtb +++ b/chrome/app/resources/generated_resources_my.xtb
@@ -71,6 +71,7 @@ <translation id="1070705170564860382">အရန်ဘရောင်ဇာ၌ <ph name="COUNTDOWN_SECONDS" /> စက္ကန့်အကြာတွင် ဖွင့်ပါမည်</translation> <translation id="1071917609930274619">အချက်လက် ကုဒ်ရေးဖွဲ့မှု</translation> <translation id="1072700771426194907">USB စက်ပစ္စည်း တွေ့ရှိထားသည်</translation> +<translation id="107278043869924952">စကားဝှက်အပြင် ပင်နံပါတ်ကိုပါသုံးရန်</translation> <translation id="1076176485976385390">စာရိုက်သည့်ပုံကာဆာဖြင့် စာမျက်နှာများကို ကြည့်ရှုပါ</translation> <translation id="1076698951459398590">အပြင်အဆင်များကို အသုံးပြုရန်</translation> <translation id="1076818208934827215">Microsoft Internet Explorer</translation> @@ -524,7 +525,6 @@ <translation id="1608668830839595724">ရွေးထားသောအရာများအတွက် နောက်ထပ် လုပ်ဆောင်ချက်များ</translation> <translation id="161042844686301425">Cyan</translation> <translation id="1611432201750675208">သင့်စက်ကို လော့ခ်ချထားပါသည်</translation> -<translation id="1611584202130317952">ပံ့ပိုးမှုလမ်းကြောင်း ရပ်တန့်သွားသည်။ နောက်တစ်ကြိမ် ထပ်စမ်းကြည့်ပါ သို့မဟုတ် သင့်စက်ပစ္စည်းပိုင်ရှင် သို့မဟုတ် စီမံခန့်ခွဲသူကို ဆက်သွယ်ပါ။</translation> <translation id="1614511179807650956">သင်၏ မိုဘိုင်းဒေတာ သတ်မှတ်ပမာဏကို သင်သုံးထားပြီး ဖြစ်နိုင်သည်။ နောက်ထပ် ဒေတာကို ဝယ်ရန် အသုံးပြုရေး စာမျက်နှာ <ph name="NAME" /> သို့ သွားပါ</translation> <translation id="161460670679785907">သင်၏ဖုန်းကို ရှာမတွေ့ပါ</translation> <translation id="1616206807336925449">ဤတိုးချဲ့လိုင်းသည် အထူးခွင့်ပြုချက် မလိုအပ်ပါ။</translation> @@ -533,6 +533,7 @@ <translation id="1618268899808219593">အကူ&အညီ ဌာန</translation> <translation id="1620307519959413822">စကားဝှက် မမှန်ပါ။ ထပ်စမ်းကြည့်ပါ (သို့) စကားဝှက် ပြင်ဆင်သတ်မှတ်ရန် 'စကားဝှက်မေ့သွားသည်' ကိုနှိပ်ပါ။</translation> <translation id="1620510694547887537">ကင်မရာ</translation> +<translation id="1621831347985899379"><ph name="DEVICE_TYPE" /> ဒေတာကို ဖျက်ပါမည်</translation> <translation id="1622054403950683339">Wi-Fi ကွန်ရက်ကို မေ့ပစ်ရန်</translation> <translation id="1623132449929929218">ပုံများလက်ရှိမရနိုင်ပါ။ နောက်ခံပုံစုစည်းမှုကို ကြည့်ရန် အင်တာနက်သို့ ပြန်လည်ချိတ်ဆက်ပါ။</translation> <translation id="1623723619460186680">အပြာရောင်အလင်း လျှော့ချခြင်း</translation> @@ -761,6 +762,7 @@ <translation id="1877377290348678128">အညွှန်း (ချန်လှပ်နိုင်သည်)</translation> <translation id="1877520246462554164">အထောက်အထားစိစစ်ခြင်းတိုကင်နံပါတ် မရရှိခဲ့ပါ။ ထွက်လိုက်ပြီး လက်မှတ်ထိုးပြန်ဝင်ကာ ထပ်လုပ်ကြည့်ပါ။</translation> <translation id="1877860345998737529">ခလုတ် လုပ်ဆောင်ချက် သတ်မှတ်မှု</translation> +<translation id="1878155070920054810">သင့် Chromebook သည် အပ်ဒိတ်မပြီးမီ အားကုန်မည့်အနေအထားရှိသည်။ ရပ်တန့်မသွားစေရန် ၎င်းကို မှန်ကန်စွာအားသွင်းထားကြောင်း စစ်ဆေးပါ။</translation> <translation id="1879000426787380528">အောက်ပါအဖြစ် လက်မှတ်ထိုးဝင်ပါ-</translation> <translation id="1880905663253319515">လက်မှတ် "<ph name="CERTIFICATE_NAME" />"ကို ဖျက်ရမလား?</translation> <translation id="1881445033931614352">လက်ကွက် အပြင်အဆင်</translation> @@ -965,6 +967,7 @@ <translation id="2148219725039824548">မျှဝေဖိုင်တွဲကို တင်ရာတွင် အမှားအယွင်းရှိသည်။ သတ်မှတ်ထားသည့် မျှဝေဖိုင်တွဲကို ကွန်ရက်ပေါ်တွင် မတွေ့ပါ။</translation> <translation id="2148756636027685713">ဖိုင်ပြန်လည်စီခြင်း ပြီးဆုံးပြီ။</translation> <translation id="2148892889047469596">ကာစ်တ် တဘ်</translation> +<translation id="2149973817440762519">စာညှပ် တည်းဖြတ်ရန်</translation> <translation id="2150139952286079145">ခရီးအဆုံးများကို ရှာဖွေရန်</translation> <translation id="2150661552845026580">"<ph name="EXTENSION_NAME" />"ကို ထည့်ရမလား?</translation> <translation id="2151576029659734873">ရိုက်ထည့်ခဲ့သည့် တဘ် အညွှန်း မမှန်ပါ။</translation> @@ -1074,6 +1077,7 @@ <translation id="2270627217422354837">ဖော်ပြပါ ဒိုမိန်းများတွင် မည်သည့်စက်ကိရိယာဖြင့်မဆို ဒေတာများ အလဲအလှယ်ပြုရန်- <ph name="DOMAINS" /></translation> <translation id="2272570998639520080">မာတီနီဖန်ခွက်</translation> <translation id="2273119997271134996">ဗီဒီယိုပို့တ် တပ်ဆင်မှု ပြဿနာ</translation> +<translation id="2274840746523584236">သင့် Chromebook ကို အားသွင်းပါ</translation> <translation id="2276503375879033601">နောက်ထပ် အက်ပ်များ ပေါင်းထည့်ရန်</translation> <translation id="2277255602909579701">ကွတ်ကီးနှင့် ဆိုက်ဒေတာများအားလုံး</translation> <translation id="2277769717710009150">{COUNT,plural, =1{1 ခုကို မိတ္ထူကူးယူထားသည်}other{# ခုကို မိတ္ထူကူးယူထားသည်}}</translation> @@ -1916,6 +1920,7 @@ <translation id="3308116878371095290">ကူကီးသတ်မှတ်ခြင်းကို ဤစာမျက်နှာတွင် ခွင့်မပြုပါ။</translation> <translation id="3308134619352333507">ခလုတ်ကို ဝှက်ထားရန်</translation> <translation id="3308852433423051161">Google Assistant ကို ဖွင့်နေသည်...</translation> +<translation id="3310640316857623290">DNS တုံ့ပြန်ချိန်က ခွင့်ပြုနိုင်သောသတ်မှတ်ကာလကို သိသာစွာကျော်နေသည်</translation> <translation id="3311445899360743395">ဤအက်ပ်နှင့်ဆက်စပ်သည့် ဒေတာကို ဤစက်ပစ္စည်းမှ ဖယ်ရှားလိုက်ပါမည်။</translation> <translation id="3312424061798279731">ဖွင့်ပေးထားသည့် ဘာသာစကားများ</translation> <translation id="3313622045786997898">အသိမှတ်ပြု လက်မှတ် တန်ဖိုး</translation> @@ -1928,6 +1933,7 @@ <translation id="3323295311852517824">{NUM_FILES,plural, =0{ဤဒေတာတွင် သတိထားရသော သို့မဟုတ် အန္တရာယ်ရှိသော အကြောင်းအရာ ပါဝင်သည်။ ဤအကြောင်းအရာကို ဖယ်ရှားပြီး ထပ်စမ်းကြည့်ပါ။}=1{ဤဖိုင်တွင် သတိထားရသော သို့မဟုတ် အန္တရာယ်ရှိသော အကြောင်းအရာ ပါဝင်သည်။ ဤအကြောင်းအရာကို ဖယ်ရှားပြီး ထပ်စမ်းကြည့်ပါ။}other{ဤဖိုင်များတွင် သတိထားရသော သို့မဟုတ် အန္တရာယ်ရှိသော အကြောင်းအရာ ပါဝင်သည်။ ဤအကြောင်းအရာကို ဖယ်ရှားပြီး ထပ်စမ်းကြည့်ပါ။}}</translation> <translation id="3323521181261657960">အပိုဆု။ အသုံးပြုချိန် ပိုရထားသည်</translation> <translation id="3325910708063135066">'Mac စနစ် သတ်မှတ်ချက်များ' တွင် ကင်မရာနှင့် မိုက်ခရိုဖုန်းကို ပိတ်ထားသည်</translation> +<translation id="3327050066667856415">Chromebook များကို လုံခြုံရေးအတွက် ရည်ရွယ်ထုတ်လုပ်ထားခြင်းဖြစ်သည်။ သင့်စက်ကို မဲလ်ဝဲမှ အလိုအလျောက်ကာကွယ်ပြီးဖြစ်သည်၊ နောက်ထပ်ဆော့ဖ်ဝဲမလိုပါ။</translation> <translation id="3328489342742826322">အရန်သိမ်းဆည်းမှုမှနေ၍ ပြန်ယူခြင်းဖြင့် လက်ရှိ Linux အက်ပ်များနှင့် သင်၏ Linux ဖိုင်တွဲရှိ ဒေတာများကို ဖျက်လိုက်ပါမည်။</translation> <translation id="3331321258768829690">(<ph name="UTCOFFSET" />) <ph name="LONGTZNAME" /> (<ph name="EXEMPLARCITY" />)</translation> <translation id="3331974543021145906">အက်ပ်အင်ဖို</translation> @@ -2117,6 +2123,7 @@ <translation id="3556433843310711081">သင့်စီမံခန့်ခွဲသူသည် ၎င်းကို သင့်အတွက် ဖွင့်ပေးနိုင်ပါသည်</translation> <translation id="3557101512409028104">Family Link ဖြင့် ဝဘ်ဆိုက် ကန့်သတ်ချက်များနှင့် အသုံးပြုချိန် ကန့်သတ်ချက်များ သတ်မှတ်ရန်</translation> <translation id="3559262020195162408">ဤစက်ပစ္စည်းပေါ်တွင် မူဝါဒကို ထည့်သွင်း၍မရပါ။</translation> +<translation id="3559533181353831840"><ph name="TIME_LEFT" /> ခန့် ကျန်သည်</translation> <translation id="3560034655160545939">&စာလုံးပေါင်းစစ်ဆေးခြင်း</translation> <translation id="3562423906127931518">ဤလုပ်ဆောင်ချက်သည် မိနစ်အနည်းငယ်ကြာနိုင်သည်။ Linux ကွန်တိန်နာကို စနစ်ထည့်သွင်းနေသည်။</translation> <translation id="3563432852173030730">Kiosk အပလီကေးရှင်းကို ဒေါင်းလုဒ် မလုပ်နိုင်ခဲ့ပါ။</translation> @@ -2159,6 +2166,7 @@ <translation id="3602290021589620013">ကြိုကြည့်ရန်</translation> <translation id="3603622770190368340">ကွန်ရက် အသိမှတ်ပြုလက်မှတ် ရယူမည်</translation> <translation id="3604713164406837697">နောက်ခံပုံ ပြောင်းရန်</translation> +<translation id="360565022852130722">WiFi ကွန်ရက်ကို အားနည်းသောပရိုတိုကော WEP 802.1x ဖြင့် လုံခြုံအောင်ထားသည်</translation> <translation id="3605780360466892872">အမည်သစ်</translation> <translation id="3608576286259426129">အသုံးပြုသူ ပုံအစမ်းကြည့်</translation> <translation id="3610369246614755442">အထိုင်ပန်ကာကို စစ်ဆေးကြည့်ရှုရန် လိုပါသည်</translation> @@ -2195,6 +2203,7 @@ <translation id="3639220004740062347">'စာဖတ်သူမုဒ်' မှ ထွက်ရန်</translation> <translation id="3640214691812501263">"<ph name="EXTENSION_NAME" />" ကို <ph name="USER_NAME" /> အတွက်ထည့်မလား?</translation> <translation id="3640613767643722554">သင့်အသံကို မှတ်မိစေရန် Assistant အား သင်ကြားပေးပါ</translation> +<translation id="3643014427358482789"><ph name="DOMAIN" /> သည် သင့် <ph name="DEVICE_TYPE" /> ကို ပြင်ဆင်သတ်မှတ်မည့် ADB အမှားရှာပြင်ခြင်းကို ပိတ်နေသည်။ ပြန်လည်မစတင်မီ သင့်ဖိုင်များကို အရန်သိမ်းပါ။</translation> <translation id="3645372836428131288">လက်ဗွေ၏ အခြားအပိုင်းကို ရိုက်ကူးရန် အနည်းငယ် ရွှေ့လိုက်ပါ။</translation> <translation id="3647998456578545569">{COUNT,plural, =1{<ph name="DEVICE_NAME" /> ထံမှရသော <ph name="ATTACHMENTS" /> ခု}other{<ph name="DEVICE_NAME" /> ထံမှရသော <ph name="ATTACHMENTS" /> ခု}}</translation> <translation id="3648348069317717750"><ph name="USB_DEVICE_NAME" /> ကို ရှာတွေ့ခဲ့သည်</translation> @@ -2283,6 +2292,7 @@ <translation id="3732857534841813090">Google Assistant နှင့် ဆက်စပ်သော အချက်အလက်များ</translation> <translation id="3733127536501031542">အဆင့်တက်ခြင်းဖြင့် SSL ဆာဗာ</translation> <translation id="3735740477244556633">အောက်ပါအတိုင်းစီရန်</translation> +<translation id="3738632186060045350"><ph name="DEVICE_TYPE" /> ဒေတာကို ၂၄ နာရီအတွင်း ဖျက်ပါမည်</translation> <translation id="3738924763801731196"><ph name="OID" />:</translation> <translation id="3739254215541673094"><ph name="APPLICATION" /> ကို ဖွင့်မလား။</translation> <translation id="3742055079367172538">မျက်နှာပြင်ပုံရိပ် ရယူပြီး</translation> @@ -2470,6 +2480,7 @@ <translation id="3937734102568271121"><ph name="LANGUAGE" /> ကို အမြဲတမ်း ဘာသာပြန်ရန်</translation> <translation id="3938128855950761626">ရောင်းချသူ <ph name="VENDOR_ID" /> ထံမှ စက်ပစ္စည်းများ</translation> <translation id="3940233957883229251">အော်တို ထပ်လုပ် ဖွင့်ပေးရန်</translation> +<translation id="3941014780699102620">ဆာဗာပင်ရင်းကို မဖြေရှင်းနိုင်ပါ</translation> <translation id="3941565636838060942">ဒီပရိုဂရမ်အား ရယူသုံးမှုကို ဝှက်ထားရန်၊ သင်သည် ၎င်းကို Control Panel ထဲက <ph name="CONTROL_PANEL_APPLET_NAME" />ကို သုံးပြီး ဖြုတ်ရန် လိုအပ်သည်။ သင်သည် <ph name="CONTROL_PANEL_APPLET_NAME" />ကို စတင်လိုပါသလား?</translation> @@ -2631,6 +2642,7 @@ <translation id="413121957363593859">အစိတ်အပိုင်းများ</translation> <translation id="4131410914670010031">အမည်း နှင့် အဖြူ</translation> <translation id="413193092008917129">ကွန်ရက် အမှားရှာဖွေမှုများ 'ပုံမှန်အစီအစဉ်'</translation> +<translation id="4132183752438206707">အက်ပ်များကို 'Google Play စတိုး' တွင် ရှာဖွေပါ</translation> <translation id="4133076602192971179">သင့်စကားဝှက်ပြောင်းရန် အက်ပ်ကို ဖွင့်ပါ</translation> <translation id="4136203100490971508">နေထွက်ချိန်တွင် Night Light အလိုအလျောက် ပိတ်ပါမည်</translation> <translation id="41365691917097717">ရှေ့ဆက်ခြင်းအားဖြင့် Android အက်ပ်များ ပြုလုပ်ရန်နှင့် စမ်းသပ်ရန်အတွက် ADB အမှားရှာပြင်ခြင်းကို ဖွင့်သွားပါမည်။ ယခုလုပ်ဆောင်ချက်သည် Google က အတည်မပြုရသေးသော Android အက်ပ်များကို ထည့်သွင်းရန်ခွင့်ပြုပြီး ပိတ်ရန်အတွက် စက်ရုံထုတ်ဆက်တင် ပြင်ဆင်သတ်မှတ်ရန် လိုအပ်ကြောင်း သတိပြုပါ။</translation> @@ -2880,6 +2892,8 @@ <translation id="4479877282574735775">ပကတိအသွင် စက်စနစ်ကို စီစဉ်သတ်မှတ်နေသည်။ မိနစ်အနည်းငယ် ကြာနိုင်ပါသည်။</translation> <translation id="4480590691557335796">Chrome သည် သင့်ကွန်ပျူတာပေါ်ရှိ အန္တရာယ်ရှိသော ဆော့ဖ်ဝဲများကို ရှာဖွေဖယ်ရှားပေးနိုင်သည်</translation> <translation id="4481530544597605423">ချိတ်ဆက်မှု ဖြုတ်ထားသည့် စက်ပစ္စည်းများ</translation> +<translation id="4483049906298469269">မူရင်းမဟုတ်သည့် ကွန်ရက်ဂိတ်ဝကို ပင်လုပ်၍မရပါ</translation> +<translation id="4487489714832036847">Chromebooks သည် ရှေးနည်းဟန်ဆော့ဖ်ဝဲအစား အက်ပ်များကိုသုံးသည်။ အလုပ်ပြီးမြောက်မှု၊ ဖျော်ဖြေရေးနှင့် အခြားအရာများအတွက် အက်ပ်များရယူပါ။</translation> <translation id="4488502501195719518">ဒေတာအားလုံး ရှင်းထုတ်မလား။</translation> <translation id="4493468155686877504">အကြံပြုထားသည် (<ph name="INSTALL_SIZE" />)</translation> <translation id="4495419450179050807">ဤစာမျက်နှာတွင် မပြပါနှင့်</translation> @@ -2930,6 +2944,7 @@ <translation id="4546692474302123343">Google Assistant အသံဖြင့် ထည့်သွင်းရန်</translation> <translation id="4547659257713117923">အခြားစက်ပစ္စည်းများမှ တဲဘ်များ မရှိပါ</translation> <translation id="4547672827276975204">အလိုအလျောက် သတ်မှတ်ရန်</translation> +<translation id="4548483925627140043">လိုင်းဆွဲအား ရှာမတွေ့ပါ</translation> <translation id="4549791035683739768">သင့်လုံခြုံရေးကီးတွင် လက်ဗွေရာများ သိမ်းမထားပါ</translation> <translation id="4551763574344810652">တစ်ဆင့်နောက်ပြန်ရန် <ph name="MODIFIER_KEY_DESCRIPTION" /> ကို နှိပ်ပါ</translation> <translation id="4552089082226364758">ဖလက်ရှ်</translation> @@ -2969,6 +2984,7 @@ <translation id="4582563038311694664">ဆက်တင်များ အားလုံး ပြင်ဆင်သတ်မှတ်ရန်</translation> <translation id="4585793705637313973">စာမျက်နှာကို တည်းဖြတ်ရန်</translation> <translation id="4586275095964870617"><ph name="URL" /> ကို အရန်ဘရောင်ဇာတွင် ဖွင့်၍မရပါ။ သင်၏ စနစ်စီမံခန့်ခွဲသူကို ဆက်သွယ်ပါ။</translation> +<translation id="458794348635939462">ဆာဗာပင်ရင်းအားလုံးကို ဖြေရှင်း၍မရပါ</translation> <translation id="4589713469967853491">'ဒေါင်းလုဒ်များ' ဖိုင်လမ်းညွှန်သို့ မှတ်တမ်းများ ရေးထည့်ပြီးပါပြီ။</translation> <translation id="4590324241397107707">အချက်အလက်များ သိုလှောင်တိုက်</translation> <translation id="4592891116925567110">စတိုင်လက်စ် ပုံဆွဲသည့်အက်ပ်</translation> @@ -3352,6 +3368,7 @@ <translation id="5089810972385038852">ပြည်နယ်</translation> <translation id="5094721898978802975">ဒေသခံ အပလီကေးရှင်းများဖြင့် ပူးပေါင်းလုပ်ဆောင်ခြင်းဖြင့် ဆက်သွယ်မည်</translation> <translation id="5097002363526479830">'<ph name="NAME" />' ကွန်ရက်သို့ ချိတ်ဆက်၍ မရခဲ့ပါ: <ph name="DETAILS" /></translation> +<translation id="5097649414558628673">ကိရိယာ - <ph name="PRINT_NAME" /></translation> <translation id="5097874180538493929">ကာဆာရပ်သည့်အခါ အလိုအလျောက် နှိပ်ရန်</translation> <translation id="5101042277149003567">မှတ်ထားသော လိပ်စာအားလုံးကို ဖွင့်ရန်</translation> <translation id="5101839224773798795">ကာဆာရပ်သွားသည့်အခါ အလိုအလျောက် နှိပ်ရန်</translation> @@ -3570,6 +3587,7 @@ <translation id="5370819323174483825">&ပြန်တင်ရန်</translation> <translation id="5372529912055771682">သုံးနေသည့် စာရင်းပေးသွင်းရေး မုဒ်ကို လက်ရှိ လည်ပတ်မှု စနစ်၏ ဗားရှင်းမှ မပံ့ပိုးပါ။ ကျေးဇူးပြုပြီး သင်သည် နောက်ဆုံး ဗားရှင်း သုံးနေတာကို သေချာအောင် စစ်ကြည့်ပြီး ထပ်စမ်းပါ။</translation> <translation id="5372579129492968947">နောက်ဆွဲတွဲကို ပင်ဖြုတ်ရန်</translation> +<translation id="5372659122375744710">WiFi ကွန်ရက်က မလုံခြုံပါ</translation> <translation id="5376169624176189338">ရှေ့သို့ သွားရန် ကလစ်ပါ၊ မှတ်တမ်း ကြည့်ရန် ကိုင်ထားပါ</translation> <translation id="5376931455988532197">ဖိုင် ကြီးလွန်းနေ</translation> <translation id="5377721922656071359">{COUNT,plural, =1{<ph name="ATTACHMENTS" /> ခုကို <ph name="DEVICE_NAME" /> သို့ အောင်မြင်စွာ ပို့လိုက်သည်}other{<ph name="ATTACHMENTS" /> ခုကို <ph name="DEVICE_NAME" /> သို့ အောင်မြင်စွာ ပို့လိုက်သည်}}</translation> @@ -3599,6 +3617,7 @@ <translation id="5414566801737831689">သင် ဝင်ကြည့်သည့် ဝက်ဘ်ဆိုက်များ၏ အိုင်ကွန််များကို ဖတ်ရန်</translation> <translation id="5417312524372586921">ဘရောင်ဇာ ပုံစံများ</translation> <translation id="5419405654816502573">Voice Match</translation> +<translation id="5420274697768050645">ထပ်ဆောင်းလုံခြုံရေးအတွက် စက်ကိုဖွင့်ရန် စကားဝှက်လိုသည်</translation> <translation id="5420438158931847627">စာသားနှင့် ပုံများ၏ ပြတ်သားမှုကို ရွေးချယ်သတ်မှတ်ပေးပါသည်</translation> <translation id="5422221874247253874">ချိတ်ဆက်ရန် အမှတ်</translation> <translation id="5422781158178868512">ဆောရီး၊ သင့်ပြင်ပသိုလှောင်မှု စက်ပစ္စည်းကို အသိအမှတ်မပြုပါ။</translation> @@ -3723,6 +3742,7 @@ <translation id="5548606607480005320">လုံခြုံရေး စစ်ဆေးမှု</translation> <translation id="5551573675707792127">ကီးဘုတ်နှင့် လက်ကွက်</translation> <translation id="5553089923092577885">လက်မှတ် မူဝါဒ မြေပုံချပေးခြင်း</translation> +<translation id="5554403733534868102">ဤကိစ္စပြီးနောက်တွင် အပ်ဒိတ်များအတွက် စောင့်ရန်မလိုတော့ပါ</translation> <translation id="5554489410841842733">တိုးချဲ့မှုက လက်ရှိ စာမျက်နှာမှာ လုပ်ဆောင်ချိန်တွင် ဒီအိုင်ကွန်ကို မြင်ရမည်။</translation> <translation id="5554720593229208774">လက်မှတ်ထုတ်ပေးရေး အာဏာပိုင်ထံ အီးမေးလ်ပို့ရန်</translation> <translation id="5556459405103347317">ပြန်တင်ရန်</translation> @@ -4135,6 +4155,7 @@ <translation id="6061882183774845124">သင့်စက်ပစ္စည်းများသို့ လင့်ခ်ပို့ရန်</translation> <translation id="6064217302520318294">မျက်နှာပြင်လော့ခ်</translation> <translation id="6065289257230303064">လက်မှတ် အကြောင်းအရာ ဒါရိုက်ထရီ အချင်းလက္ခဏာများ</translation> +<translation id="6069464830445383022">သင့် Google Account သည် သင်၏ Chromebook သို့ လက်မှတ်ထိုးဝင်ရမည့်အကောင့်ဖြစ်သည်</translation> <translation id="6069671174561668781">နောက်ခံ သတ်မှတ်ရန်</translation> <translation id="6071181508177083058">စကားဝှက် အတည်ပြုပါ</translation> <translation id="6071576563962215370">စနစ်သည် စက်ပစ္စည်းထည့်သွင်းမှုအချိန် ရည်ညွှန်းချက်လော့ခ်ကို သတ်မှတ်၍မရပါ။</translation> @@ -4177,6 +4198,7 @@ <translation id="6104311680260824317">စက်ပစ္စည်းကို ဒိုမိန်းသို့ ချိတ်ဆက်၍မရပါ။ ဆာဗာသည် သတ်မှတ်ထားသည့် Kerberos အသွင်ဝှက်ခြင်း အမျိုးအစားများကို ပံ့ပိုးမထားပါ။ အသွင်ဝှက်ခြင်း ဆက်တင်များအတွက် "နောက်ထပ် ရွေးချယ်စရာများ" တွင် ကြည့်ပါ။</translation> <translation id="6104796831253957966">ပုံနှိပ်စက် စာရင်းစဉ် ပြည့်နေသည်</translation> <translation id="6105994589138235234">Chrome ဘရောင်ဇာ စင့်ခ်လုပ်ခြင်း</translation> +<translation id="6108689792487843350">ဂိတ်ဝကို မချိတ်ဆက်နိုင်ပါ</translation> <translation id="6111972606040028426">Google Assistant ဖွင့်ရန်</translation> <translation id="6112294629795967147">အရွယ်အစားပြင်ရန် ထိပါ</translation> <translation id="6112727384379533756">လက်မှတ်တစ်ခု ထည့်ရန်</translation> @@ -4237,6 +4259,7 @@ <translation id="6178664161104547336">လက်မှတ်တစ်ခု ရွေးရန်</translation> <translation id="6181431612547969857">ဒေါင်းလုဒ် ပိတ်ဆို့ထား</translation> <translation id="6185132558746749656">စက်ကိရိယာ တည်နေရာ</translation> +<translation id="6191293864534840972">ပုံပျက်နေသော အမည်ဆာဗာများ</translation> <translation id="6195446518998936840">မိဘအထိန်းအချုပ်များကို စနစ်ထည့်သွင်းရန် သင့်ကလေးတွင် သင်ကူညီစီမံပေးရမည့် Google Account တစ်ခု ရှိရမည်။ Family Link အက်ပ်ဖြင့် အသုံးပြုချိန်ကန့်သတ်ချက်များကို သတ်မှတ်နိုင်သည်၊ ဝဘ်ဆိုက်များကို အတည်ပြု သို့မဟုတ် ပိတ်နိုင်ပြီး အခြားအရာများကို ပြုလုပ်နိုင်သည်။</translation> <translation id="6195693561221576702">ဤစက်ပစ္စည်းကို အော့ဖ်လိုင်းသရုပ်ပြမုဒ်အဖြစ် စနစ်ထည့်သွင်း၍မရပါ။</translation> <translation id="6196640612572343990">ပြင်ပကုမ္ပဏီကွတ်ကီးများကို ပိတ်ဆို့မည်</translation> @@ -4451,6 +4474,7 @@ <translation id="6451591602925140504">{NUM_PAGES,plural, =0{<ph name="PAGE_TITLE" />}=1{<ph name="PAGE_TITLE" /> နှင့် အခြားတဘ် ၁ ခု}other{<ph name="PAGE_TITLE" /> နှင့် အခြားတဘ် # ခု}}</translation> <translation id="6451689256222386810">သင့်စကားဝှက်ကို မေ့သွားလျှင် သို့မဟုတ် ဤဆက်တင်ကို ပြောင်းလဲလိုလျှင် <ph name="BEGIN_LINK" />စင့်ခ်လုပ်ခြင်းကို ပြန်လည်သတ်မှတ်ပါ<ph name="END_LINK" />။</translation> <translation id="6452181791372256707">ပယ်ချရန်</translation> +<translation id="6452251728599530347"><ph name="PERCENT" /> ပြီးပြီ</translation> <translation id="6452961788130242735">ကွန်ရက် ပြဿနာ သို့မဟုတ် မကောင်းသည့် အခြေအနေ</translation> <translation id="6455264371803474013">ရွေးထားသည့် ဝဘ်ဆိုက်များတွင်</translation> <translation id="6455894534188563617">&ဖိုင်တွဲအသစ်</translation> @@ -4505,6 +4529,7 @@ <translation id="6519437681804756269">[ <ph name="TIMESTAMP" /> ] <ph name="FILE_INFO" /><ph name="EVENT_NAME" /></translation> <translation id="6520876759015997832">ရှာဖွေမှု ရလဒ် <ph name="LIST_SIZE" /> ခုအနက် <ph name="LIST_POSITION" />− <ph name="SEARCH_RESULT_TEXT" />။ ထိုကဏ္ဍသို့သွားရန် Enter နှိပ်ပါ။</translation> <translation id="652492607360843641">သင်သည် <ph name="NETWORK_TYPE" /> ကွန်ရက်သို့ ချိတ်ဆက်ထားသည်။</translation> +<translation id="6527081081771465939">အမည်မသိ WiFi လုံခြုံရေးပရိုတိုကော</translation> <translation id="6527303717912515753">မျှဝေရန်</translation> <translation id="6528513914570774834">ဤစက်ပစ္စည်း၏ အခြားအသုံးပြုသူများအား ဤကွန်ရက်ကို အသုံးပြုခွင့်ပေးရန်</translation> <translation id="652948702951888897">Chrome မှတ်တမ်း</translation> @@ -4621,6 +4646,7 @@ <translation id="6680442031740878064">ရနိုင်သည့် နေရာလွတ်− <ph name="AVAILABLE_SPACE" /></translation> <translation id="6680650203439190394">အဆင့်သတ်မှတ်ရန်</translation> <translation id="6681668084120808868">ဓါတ်ပုံရိုက်</translation> +<translation id="6684827949542560880">နောက်ဆုံးအပ်ဒိတ်များကို ဒေါင်းလုဒ်လုပ်နေသည်</translation> <translation id="668599234725812620">Google Play ကို ဖွင့်ရန်</translation> <translation id="6686490380836145850">ညာဘက်ရှိ တဲဘ်များကို ပိတ်ရန်</translation> <translation id="6686817083349815241">သင့်လျှို့ဝှက်စကားလုံးအား သိမ်းမည်</translation> @@ -4730,6 +4756,7 @@ <translation id="6812841287760418429">ပြောင်းလဲမှုများ ထားရှိမည်</translation> <translation id="6817174620439930047">MIDI စက်ပစ္စည်းများကို အသုံးပြုရန်အတွက် စနစ်သီးခြားမက်ဆေ့ဂျ်များအား ဝဘ်ဆိုက်က အသုံးပြုလိုသည့်အခါ မေးမြန်းပါ (အကြံပြုထားသည်)</translation> <translation id="6818198425579322765">ပြန်ဆိုရမည့် စာမျက်နှာ၏ ဘာသာစကား</translation> +<translation id="6818802132960437751">အသင့်ပါ ဗိုင်းရပ်စ်ကာကွယ်ရေး</translation> <translation id="682123305478866682">ဒက်စ်တော့ကို ကာစ်တ် လုပ်ရန်</translation> <translation id="6823174134746916417">တာ့ချ်ပက် နှိပ်ရန်အတွက် တို့ရန်</translation> <translation id="6823506025919456619">သင့်စက်ပစ္စည်းများ ကိုတွေ့ရန် Chrome သိုဝင်ရောက်ရမည်</translation> @@ -5376,6 +5403,7 @@ <translation id="7631205654593498032">သင့်စက်ပစ္စည်းများကို ချိတ်ဆက်ခြင်းဖြင့် သင်၏ <ph name="DEVICE_TYPE" /> သည် အောက်ပါတို့ကို ပြုလုပ်နိုင်ကြောင်း သဘောတူရာရောက်ပါသည်-</translation> <translation id="7631887513477658702">ဤအမျိုးစား ဖိုင်များကို အမြဲဖွင့်မည်</translation> <translation id="7632948528260659758">အောက်ပါ kiosk apps များအား အဆင့်မမြှင့်နိုင်ပါ-</translation> +<translation id="7633724038415831385">အပ်ဒိတ်လုပ်ရန်အတွက် သင်စောင့်ရမည့်အချိန်က ဤတစ်ကြိမ်တည်းဖြစ်သည်။ Chromebook များတွင် ဆော့ဖ်ဝဲအပ်ဒိတ်များက နောက်ခံတွင် လုပ်ဆောင်သည်။</translation> <translation id="7634566076839829401">တစ်ခုခုမှားနေပြီ။ကျေးဇူးပြုပြီး ထပ်မံကြိုးစားပါ။</translation> <translation id="763632859238619983">ငွေပေးချေမှု စီမံသူများ ထည့်သွင်းရန် မည်သည့်ဆိုက်ကိုမျှ ခွင့်မပြုပါနှင့်</translation> <translation id="7636919061354591437">ဤ' စက်ပစ္စည်း' တွင် ထည့်သွင်းရန်</translation> @@ -5654,6 +5682,7 @@ <translation id="7933314993013528982">{NUM_TABS,plural, =1{ဝဘ်ဆိုက် ပြန်ဖွင့်ပါ}other{ဝဘ်ဆိုက်များ ပြန်ဖွင့်ပါ}}</translation> <translation id="7933634003144813719">မျှဝေထားသော ဖိုင်တွဲများ စီမံခန့်ခွဲရန်</translation> <translation id="793531125873261495">ပကတိအသွင်စက်စနစ် ဒေါင်းလုဒ်လုပ်၍မရပါ။ ထပ်စမ်းကြည့်ပါ။</translation> +<translation id="7936303884198020182">အမည်ဆာဗာတစ်ခုမျှ ရှာမတွေ့ပါ</translation> <translation id="7938594894617528435">လောလောဆယ်မှာ offline</translation> <translation id="7939062555109487992">အဆင့်မြင့် ရွေးစရာများ</translation> <translation id="7939412583708276221">မည်သို့ပင်ဖြစ်စေ သိမ်းရန်</translation> @@ -5896,6 +5925,7 @@ <translation id="8226742006292257240">သင့် ကွန်ပျူတာ အတွက် သတ်မှတ်လိုက်သည့် ကျပန်း ထုတ်လုပ်ပေးခဲ့သည့် TPM စကားလုံးကို အောက်မှာ ဖေါ်ပြလိုက်သည်:</translation> <translation id="8227119283605456246">ပူးတွဲဖိုင်</translation> <translation id="8230134520748321204"><ph name="ORIGIN" /> အတွက် စကားဝှက်ကို သိမ်းဆည်းလိုပါသလား။</translation> +<translation id="8230672074305416752">မူလကွန်ရက်ဂိတ်ဝကို ပင်လုပ်၍မရပါ</translation> <translation id="8234795456569844941">ကျွန်ုပ်တို့၏ အင်ဂျင်နီယာများက ဤပြဿနာကို ဖြေရှင်းနိုင်ရန် ကူညီပေးပါ။ ပရိုဖိုင်မှားယွင်းကြောင်းမက်ဆေ့ဂျ်ကို မရရှိမီ ဖြစ်ပျက်ခဲ့ပုံကို ကျွန်ုပ်တို့အား ပြောပါ−</translation> <translation id="8236917170563564587">၎င်းအစား ဤတဘ်ကို မျှဝေရန်</translation> <translation id="8237647586961940482">ပန်းရောင်ရင့်နှင့် အနီ</translation> @@ -5956,6 +5986,7 @@ <translation id="8288032458496410887"><ph name="APP" /> ကို ဖယ်ရှားပါ...</translation> <translation id="8289128870594824098">ဒစ်ခ်အရွယ်အစား</translation> <translation id="8291967909914612644">ပင်မထောက်ပံ့သူ နိုင်ငံ</translation> +<translation id="8293206222192510085">စာညှပ် ထည့်ပေးရန်</translation> <translation id="8294431847097064396">အရင်းအမြစ်</translation> <translation id="8297006494302853456">အားမကောင်းပါ</translation> <translation id="8299319456683969623">သင်သည် လောလောဆယ်မှာ အော့ဖ်လိုင်း ဖြစ်နေ</translation> @@ -6005,6 +6036,7 @@ <translation id="8363095875018065315">တည်ငြိမ်</translation> <translation id="8363142353806532503">မိုက်ခရိုဖုန်းကို ပိတ်ထားသည်</translation> <translation id="8363763184161554204"><ph name="PERMISSION" /> ကို ခွင့်ပြုထားသည်</translation> +<translation id="8364946094152050673">အမည်ဆာဗာအလွတ်များ</translation> <translation id="8366396658833131068">သင့် ကွန်ရက်၏ ချိတ်ဆက်နိုင်စွမ်း ပြန်လည် ကောင်းလာပါပြီ။ ကျေးဇူးပြုပြီး အခြား ကွန်ရက် တစ်ခုကို ရွေးပါ သို့မဟုတ် သင်၏ kiosk အက်ပ်ကို ဖွင့်တင်ရန် အောက်ပါ 'ဆက်လုပ်ရန်' ခလုတ်ကို နှိပ်ပါ။</translation> <translation id="8368027906805972958">အမျိုးအမည်မသိ သို့မဟုတ် ပံ့ပိုးမထားသည့် ကိရိယာ ( <ph name="DEVICE_ID" /> )</translation> <translation id="8368859634510605990">&စာညှပ်များ အားလုံး ဖွင့်ရန်</translation> @@ -6090,8 +6122,10 @@ <translation id="8472623782143987204">ဟာ့ဒ်ဝဲ-ပံ့ပိုးမှု</translation> <translation id="8473863474539038330">လိပ်စာများနှင့် အခြားအရာများ</translation> <translation id="8475313423285172237">Chrome အလုပ်လုပ်ပုံ ပြောင်းလဲသွားစေမည့် တိုးချဲ့မှုကို သင့်ကွန်ပျူတာ ထဲက အခြား ပရိုဂရမ်မှ ထည့်ပေးခဲ့သည်။</translation> +<translation id="8475690821716466388">WiFi ကွန်ရက်ကို အားနည်းသောပရိုတိုကော WEP PSK ဖြင့် လုံခြုံအောင်ထားသည်</translation> <translation id="8477241577829954800">အစားထိုးပြီး</translation> <translation id="8477384620836102176">&အထွေထွေ</translation> +<translation id="8477551185774834963">DNS တုံ့ပြန်ချိန်က ခွင့်ပြုနိုင်သောသတ်မှတ်ကာလကို အနည်းငယ်ကျော်နေသည်</translation> <translation id="8480082892550707549">ဤဆိုက်မှ ဖိုင်များကို ဒေါင်းလုဒ်လုပ်ခဲ့ဖူးလျှင်ပင် ဤဆိုက်သည် ယာယီအားဖြင့် လုံခြုံမှု မရှိနိုင်ပါ (အဟက်ခံထားရခြင်း ဖြစ်နိုင်သည်)။ ဤဖိုင်ကို နောက်မှ ဒေါင်းလုဒ်လုပ်ကြည့်ပါ။</translation> <translation id="8480869669560681089"><ph name="VENDOR_NAME" /> မှ အမည်မသိ စက်ပစ္စည်း</translation> <translation id="8481187309597259238">USB ခွင့်ပြုချက်ကို အတည်ပြုပါ</translation> @@ -6143,6 +6177,7 @@ <translation id="8546930481464505581">ထိတွေ့ဘားကို စိတ်ကြိုက်ပြင်ဆင်ရန်</translation> <translation id="8547013269961688403">မျက်နှာပြင်အပြည့် မှန်ဘီလူးကို ဖွင့်ရန်</translation> <translation id="85486688517848470">အပေါ်ဆုံးအတန်း ခလုတ်များ၏ အမူအကျင့်ကို ပြောင်းရန် 'ရှာဖွေရန်' ခလုတ်ကို ဖိထားပါ</translation> +<translation id="8549316893834449916">သင့် Chromebook သို့ လက်မှတ်ထိုးဝင်ရန် Gmail၊ Drive၊ YouTube နှင့် အခြားအရာများအတွက် အသုံးပြုသော သင်၏ Google Account ကို အသုံးပြုရမည်။</translation> <translation id="8551388862522347954">လိုင်စင်များ</translation> <translation id="8551588720239073785">ရက်စွဲနှင့် အချိန်ဆက်တင်များ</translation> <translation id="8553342806078037065">အခြားလူများကို စီမံခန့်ခွဲရန်</translation> @@ -6281,6 +6316,7 @@ <translation id="8720200012906404956">မိုဘိုင်းကွန်ရက် ရှာဖွေနေသည်။ <ph name="BEGIN_LINK" />ပိုမိုလေ့လာရန်<ph name="END_LINK" /></translation> <translation id="8720816553731218127">ထည့်သွင်းချိန် ရည်ညွှန်းချက်များကို စတင်မှု အချိန်ကုန်သွားပါပြီ။</translation> <translation id="8722912030556880711">အသုံးပြုမှုနှင့် အမှားရှာဖွေမှုဒေတာ ပို့ပါ။ ဤစက်ပစ္စည်းက အမှားရှာဖွေမှု၊ ကိရိယာနှင့် အက်ပ်အသုံးပြုမှု ဒေတာတို့ကို လောလောဆယ်တွင် Google သို့ အလိုအလျောက် ပို့ပေးပါသည်။ ၎င်းက စနစ်နှင့် အက်ပ်တည်ငြိမ်မှု၊ အခြား တိုးတက်ပြင်ဆင်မှုများအတွက် ပံ့ပိုးပေးပါမည်။ စုစည်းထားသော ဒေတာအချို့က Google အက်ပ်နှင့် Android ဆော့ဖ်ဝဲအင်ဂျင်နီယာများကဲ့သို့ ပါတနာများကို ကူညီပေးပါမည်။ သင်၏ထပ်တိုး 'ဝဘ်နှင့် အက်ပ်လုပ်ဆောင်ချက်' ကို ဖွင့်ထားသည့်အခါ ဤဒေတာကို သင့် Google အကောင့်သို့ သိမ်းသွားပါမည်။ <ph name="BEGIN_LINK2" />ပိုမိုလေ့လာရန်<ph name="END_LINK2" /></translation> +<translation id="8723108084122415655">တုံ့ပြန်ချိန် သတ်မှတ်ကာလအထက်ရှိနေသော မူရင်းမဟုတ်သည့်ကွန်ရက်</translation> <translation id="8724405322205516354">ဤသင်္ကေတကို မြင်ပါက အထောက်အထားတင်ပြရန် သို့မဟုတ် ဝယ်ယူမှုများကို အတည်ပြုရန် သင့်လက်ဗွေကို အသုံးပြုပါ။</translation> <translation id="8724409975248965964">လက်ဗွေကို ထည့်ပြီးပါပြီ</translation> <translation id="8724859055372736596">&ဖိုလ်ဒါ ထဲမှာ ပြရန်</translation> @@ -6458,6 +6494,7 @@ <translation id="8909833622202089127">ဝဘ်ဆိုက်က သင့်တည်နေရာကို ရှာနေသည်</translation> <translation id="8910146161325739742">သင်ရဲ့ မျက်နှာပြင်ကို မျှဝေရန်</translation> <translation id="8910222113987937043">သင့်စာညှပ်များ၊ စကားဝှက်များနှင့် အခြားဆက်တင်များကို ပြောင်းလဲခြင်းများအား သင့် Google အကောင့်သို့ စင့်ခ်လုပ်တော့မည် မဟုတ်ပါ။ သို့သော် လက်ရှိဒေတာများကို သင့် Google အကောင့်တွင် ဆက်လက် သိမ်းဆည်းထားမည်ဖြစ်ပြီး <ph name="BEGIN_LINK" />Google Dashboard<ph name="END_LINK" /> တွင် စီမံနိုင်ပါမည်။</translation> +<translation id="8910721771319628100">တုံ့ပြန်ချိန် သတ်မှတ်ကာလအထက်ရှိနေသော မူလကွန်ရက်</translation> <translation id="8912362522468806198">Google အကောင့်</translation> <translation id="8912793549644936705">ဆန့်ရန်</translation> <translation id="8912810933860534797">အလိုအလျောက် စကင်ဖတ်ခြင်းကို ဖွင့်ရန်</translation>
diff --git a/chrome/app/resources/generated_resources_ne.xtb b/chrome/app/resources/generated_resources_ne.xtb index d4ffac2..89116c34 100644 --- a/chrome/app/resources/generated_resources_ne.xtb +++ b/chrome/app/resources/generated_resources_ne.xtb
@@ -327,6 +327,7 @@ <translation id="1383876407941801731">खोज्नुहोस्</translation> <translation id="1386387014181100145">के छ.</translation> <translation id="1386791642444521222">SIM कार्ड सक्रिय पार्नुहोस्</translation> +<translation id="1387519831959169718">आफूले व्यक्तिगत रूपमा गर्ने ब्राउजिङ अलग गर्न तपाईं <ph name="NEW_USER" /> का लागि एउटा नयाँ प्रोफाइल बनाउन सक्नुहुन्छ</translation> <translation id="138784436342154190">पूर्वनिर्धारित सुरुवात पृष्ठलाई पुनर्स्थापना गर्ने हो?</translation> <translation id="1388728792929436380">अपडेट पूरा भएपछि <ph name="DEVICE_TYPE" /> रिस्टार्ट हुने छ।</translation> <translation id="1390548061267426325">नियमित ट्याबको रूपमा खोल्नुहोस्</translation> @@ -341,6 +342,7 @@ <translation id="139911022479327130">आफ्नो फोन अनलक गर्नुहोस् र यो व्यक्ति तपाईं नै हो भन्ने पुष्टि गर्नुहोस्</translation> <translation id="1399511500114202393">प्रयोगकर्ताको प्रमाणपत्र छैन</translation> <translation id="1401308693935339022">स्थानसम्बन्धी सेवा प्रयोग गर्नुहोस्। स्थानसम्बन्धी सेवा प्रयोग गर्ने अनुमति भएका एप र सेवाहरूलाई यो यन्त्रको स्थानसम्बन्धी जानकारी प्रयोग गर्न दिनुहोस्। Google ले आवधिक रूपमा स्थानसम्बन्धी डेटा सङ्कलन गर्न र स्थानसम्बन्धी जानकारीको सटीकता र स्थानमा आधारित सेवाहरूमा सुधार ल्याउन व्यक्तिगत पहिचान नखुल्ने गरी उक्त डेटा प्रयोग गर्न सक्छ।</translation> +<translation id="1403222014593521787">प्रोक्सीमा कनेक्ट गर्न सकिएन</translation> <translation id="140520891692800925"><ph name="PROFILE_DISPLAY_NAME" /> (निरीक्षण गरिएको)</translation> <translation id="1405779994569073824">क्र्यास भयो।</translation> <translation id="1406500794671479665">रुजू गर्दै...</translation> @@ -477,6 +479,7 @@ <translation id="1555130319947370107">निलो</translation> <translation id="1556537182262721003">प्रोफाइलमा एक्स्टेन्शन निर्देशिका सार्न सकिएन।</translation> <translation id="155865706765934889">टचप्याड</translation> +<translation id="1563702743503072935">तपाईं साइन इन भएका बेला तपाईंको Google खातामा सुरक्षित गरिएका पासवर्डहरू यो यन्त्रमा पनि उपलब्ध हुने छन्</translation> <translation id="1566049601598938765">वेबसाइट</translation> <translation id="15662109988763471">चयन गरिएको प्रिन्टर उपलब्ध छैन वा त्यसलाई राम्ररी स्थापना गरिएको छैन। आफ्नो प्रिन्टर जाँच्नुहोस् वा अर्को प्रिन्टर चयन गरी हेर्नुहोस्।</translation> <translation id="1567387640189251553">तपाईंले पछिल्लो पटक आफ्नो पासवर्ड प्रविष्ट गर्नुभएपछि एउटा भिन्न किबोर्ड जडान गरिएको छ। यसले तपाईंका किस्ट्रोकहरू चोर्न खोजिरहेको हुन सक्छ।</translation> @@ -517,7 +520,6 @@ <translation id="1608668830839595724">चयन गरिएका वस्तुमा गर्न सकिने थप कारबाहीहरू</translation> <translation id="161042844686301425">सायन</translation> <translation id="1611432201750675208">तपाईंको यन्त्र लक गरिएको छ।</translation> -<translation id="1611584202130317952">प्रावधानीकरणको प्रवाह अवरूद्ध भयो। कृपया फेरि प्रयास गर्नुहोस् वा आफ्नो यन्त्रको मालिक वा प्रशासकलाई सम्पर्क गर्नुहोस्।</translation> <translation id="1614511179807650956">तपाईंले आफ्नो मोबाइल डेटाको सीमा बराबरको डेटा प्रयोग गरिसक्नुभएको हुन सक्छ। थप डेटा किन्नका लागि <ph name="NAME" /> नामक सक्रियता पोर्टलमा जानुहोस्।</translation> <translation id="161460670679785907">तपाईंको फोन पत्ता लगाउन सकिएन</translation> <translation id="1616206807336925449">यस विस्तारलाई कुनै विशेष अनुमति आवश्यक पर्दैन।</translation> @@ -902,6 +904,7 @@ <translation id="2080070583977670716">थप सेटिङहरू</translation> <translation id="2081816110395725788">ब्याट्री प्रयोग भइरहेका बेला स्लिप मोडमा लैजानुहोस्</translation> <translation id="2082187087049518845">समूहको ट्याब</translation> +<translation id="2082510809738716738">थिमको रङ छान्नुहोस्</translation> <translation id="2087822576218954668">प्रिन्ट: <ph name="PRINT_NAME" /></translation> <translation id="2088690981887365033">VPN नेटवर्क</translation> <translation id="208928984520943006">जुनसुकै बेला गृह स्क्रिनमा जान तलबाट माथितिर स्वाइप गर्नुहोस्।</translation> @@ -956,6 +959,7 @@ <translation id="2148219725039824548">आदान प्रदान माउन्ट गर्ने क्रममा त्रुटि भयो। तोकिएको आदान प्रदान नेटवर्कमा फेला परेन।</translation> <translation id="2148756636027685713">फर्म्याट समाप्त भयो</translation> <translation id="2148892889047469596">Cast ट्याब</translation> +<translation id="2149973817440762519">बुकमार्क सम्पादन गर्नुहोस्</translation> <translation id="2150139952286079145">खोज गन्तव्यहरू</translation> <translation id="2150661552845026580">"<ph name="EXTENSION_NAME" />" थप्ने?</translation> <translation id="2151576029659734873">अवैध ट्याब सूचकांक प्रवेश गरिएको छ।</translation> @@ -1052,6 +1056,7 @@ <translation id="2256115617011615191">अब फेरि सुरु गर्नुहोस्</translation> <translation id="225614027745146050">स्वागत छ</translation> <translation id="225692081236532131">सक्रियताको वस्तुस्थिति</translation> +<translation id="2257053455312861282">विद्यालयको खाता थप्दा विद्यार्थी सजिलैसँग वेबसाइट, एक्स्टेन्सन र एपहरूमा साइन गर्न सक्छन् भने अभिभावकीय नियन्त्रणहरू पनि लागू भइरहन्छन्।</translation> <translation id="2261323523305321874">तपाईंको प्रशासकले गर्नुभएको प्रणालीव्यापी परिवर्तनले केही पुराना प्रोफाइलहरूलाई असक्षम पार्छ।</translation> <translation id="2262332168014443534">लाइट मोडले अब HTTPS लगायत सबै पृष्ठहरू ब्राउज गर्ने कार्यलाई अझ छिटो बनाउँछ।</translation> <translation id="2262477216570151239">दोहोर्याउनु अघिको ढिलाइ</translation> @@ -1967,6 +1972,7 @@ <translation id="3396800784455899911">"स्वीकार गरी जारी राख्नुहोस् " नामक बटनमा क्लिक गरेर तपाईं Google का यी सेवाहरूका लागि माथि वर्णन गरिएको प्रक्रियामा सहमति जनाउनु हुन्छ।</translation> <translation id="3399432415385675819">सूचनाहरू प्राप्त गर्ने सुविधालाई असक्षम पारिनेछ</translation> <translation id="3400390787768057815"><ph name="WIDTH" /> x <ph name="HEIGHT" /> (<ph name="REFRESH_RATE" /> Hertz) - अन्तर्गर्भित</translation> +<translation id="3402255108239926910">कुनै अवतार रोज्नुहोस्</translation> <translation id="3402585168444815892">डेमो मोडमा दर्ता गर्दै</translation> <translation id="340282674066624"><ph name="DOWNLOAD_RECEIVED" />, <ph name="TIME_LEFT" /></translation> <translation id="3404065873681873169">यो साइटका लागि कुनै पनि पासवर्ड सुरक्षित गरिएको छैन</translation> @@ -1994,6 +2000,7 @@ <translation id="3428747202529429621">तपाईं साइन इन भएका बेला यस सुविधाले Chrome मा तपाईंलाई सुरक्षित राख्छ। त्यस्तै, यो सुविधा तपाईंलाई Google का अन्य एपहरूमा अझ् धेरै सुरक्षा प्रदान गर्न पनि प्रयोग गरिन सक्छ</translation> <translation id="3428800329481094896">Linux कन्टेनरका ssh कुञ्जीहरू प्राप्त हुँदै छन्</translation> <translation id="3429275422858276529">यो पृष्ठलाई पछि सजिलैसँग फेला पार्नका लागि यसमा पुस्तक चिन्ह लगाउनुहोस्</translation> +<translation id="3431370546335300761">यो प्रोक्सीमा कनेक्ट गर्न साइन इन गर्नुहोस्</translation> <translation id="3432227430032737297">देखाइएका सबै कुराहरू हटाउनुहोस्</translation> <translation id="3432757130254800023">स्थानीय नेटवर्कमा प्रदर्शनहरूमा अडियो र भिडियो पठाउनुहोस्</translation> <translation id="3432762828853624962">Shared Workers</translation> @@ -2375,6 +2382,7 @@ <translation id="3841964634449506551">पासवर्ड मिलेन</translation> <translation id="3842552989725514455">सेरिफ फन्ट</translation> <translation id="3843464315703645664">आन्तरिक रूपमा श्वेतसूचीमा राखिएको</translation> +<translation id="3844888638014364087">इमोजी इन्सर्ट गरियो</translation> <translation id="3846116211488856547">वेबसाइट, Android एप र थप कुराहरू विकास गर्ने उपकरणहरू प्राप्त गर्नुहोस्। Linux स्थापना गर्नुले <ph name="DOWNLOAD_SIZE" /> डेटा डाउनलोड हुने छ।</translation> <translation id="3847319713229060696">वेब प्रयोग गर्ने सम्पूर्ण प्रयोगकर्ताहरूलाई सुरक्षित रहन मद्दत गर्नुहोस्</translation> <translation id="385051799172605136">पछाडि जानुहोस्</translation> @@ -2677,6 +2685,7 @@ <translation id="4232375817808480934">Kerberos कन्फिगर गर्नुहोस्</translation> <translation id="4235200303672858594">सम्पूर्ण स्क्रिन</translation> <translation id="4235965441080806197">साइन इन रद्द गर्नुहोस्</translation> +<translation id="4237773362828263530">"*" वाइल्डकार्ड भएका सेटिङले अब उप्रान्त काम गर्दैनन्। <ph name="BEGIN_LINK" />यी सेटिङ परिवर्तन गर्न<ph name="END_LINK" /> तपाईंका एड्मिनलाई सम्पर्क गर्नुहोस्।</translation> <translation id="4242145785130247982">एकभन्दा बढी क्लाइन्टका प्रमाणपत्रहरू समर्थित छैनन्</translation> <translation id="4242533952199664413">सेटिङहरू खोल्नुहोस्</translation> <translation id="4242577469625748426">यन्त्रमा नीति सेटिङहरू स्थापना गर्न असफल भयो। <ph name="VALIDATION_ERROR" />।</translation> @@ -2787,6 +2796,7 @@ <translation id="4384312707950789900">रुचाइएकोमा थप्नुहोस्</translation> <translation id="4384652540891215547">विस्तार सक्रिय गर्नुहोस्</translation> <translation id="438503109373656455">साराटोगा</translation> +<translation id="4385040356362222432">आफूले <ph name="EXISTING_USER" /> बाट गरेको ब्राउजिङ <ph name="NEW_USER" /> बाट गरेको ब्राउजिङबाट अलग गर्न एउटा नयाँ प्रोफाइल बनाउनुहोस्</translation> <translation id="4387004326333427325">प्रमाणीकरण प्रमाणपत्रलाई सीधै अस्वीकार गर्यो</translation> <translation id="4387890294700445764">अरूले देखेका पासवर्डहरू</translation> <translation id="4389091756366370506">प्रयोगकर्ता <ph name="VALUE" /></translation> @@ -2894,6 +2904,7 @@ <translation id="4522570452068850558">विवरणहरू</translation> <translation id="4522600456902129422">यो साइटलाई क्लिपबोर्ड हेर्न दिने अनुमति जारी राख्नुहोस्</translation> <translation id="4524832533047962394">अपरेटिङ सिस्टमको यो संस्करणले उपलब्ध गराइएको दर्ता मोड समर्थन गर्दैन। कृपया आफूले सबैभन्दा नवीनतम संस्करण चलाइरहेको कुरा सुनिश्चित गर्नुहोस्।</translation> +<translation id="4527186207340858212">नयाँ कार्य प्रोफाइल बनाउने हो?</translation> <translation id="452750746583162491">आफ्नो सिंक गरिएको डेटाको समीक्षा गर्नुहोस्</translation> <translation id="4530494379350999373">उत्पति</translation> <translation id="4532646538815530781">यो साइटले चालसम्बन्धी सेन्सरहरू प्रयोग गर्दै छ।</translation> @@ -2944,6 +2955,9 @@ <translation id="4573515936045019911">Linux को स्तरवृद्धि गर्न नेटवर्क जडान चाहिन्छ। कृपया इन्टरनेटमा जोडी फेरि प्रयास गर्नुहोस्।</translation> <translation id="457386861538956877">थप...</translation> <translation id="4574741712540401491">• <ph name="LIST_ITEM_TEXT" /></translation> +<translation id="457564749856982089">कुनै प्रोफाइलमा विद्यालयको खाता थप्दा विद्यार्थी सजिलैसँग वेबसाइट, एक्स्टेन्सन र एपहरूमा साइन गर्न सक्छन् भने अभिभावकीय नियन्त्रणहरू पनि लागू भइरहन्छन्। यस कार्यले बच्चालाई विद्यालयको खातामा सिंक गरिएका बुकमार्क, पासवर्ड र ब्राउजरसम्बन्धी अन्य डेटा प्रयोग गर्न दिने छैन।<br><br> + तपाईंका बच्चा विद्यालयमा Chromebook प्रयोग गर्छन् र तपाईं उनी घरमा भएका बेलामा पनि विद्यालयमा प्रयोग गर्ने सुविधाहरू उपभोग गर्दै विद्यालयका सबै काम गर्न सकून् भन्ने चाहनुहुन्छ भने कृपया यो Family Link खाताबाट साइन आउट गर्नुहोस् र Chrome OS को खाताहरू नामक पृष्ठमा गई विद्यालयको खातामा साइन इन गर्नुहोस् (याद राख्नुहोस्: Family Link का अभिभावकीय नियन्त्रणहरू लागू हुने छैनन्)।<br><br> + तपाईंका बच्चा विद्यालयमा Chromebook प्रयोग गर्दैनन् वा तपाईं आफ्ना बच्चा घरमा भएका बेला उनले गर्ने कामहरू Family Link प्रयोग गरी व्यवस्थापन गर्न चाहनुहुन्छ भने यो प्रोफाइलमा विद्यालयको खाता थप्न कृपया तलको 'अर्को' बटनमा क्लिक गर्नुहोस्।</translation> <translation id="4576541033847873020">ब्लुटुथ यन्त्रको जोडा बनाउनुहोस्</translation> <translation id="4579453506923101210">कनेक्ट गरिएको फोन हटाउनुहोस्</translation> <translation id="4579581181964204535"><ph name="HOST_NAME" /> लाई cast गर्न असमर्थ।</translation> @@ -3081,6 +3095,7 @@ <translation id="4763408175235639573">तपाईंले यस पृष्ठ हेर्दा निम्न कुकीहरू सेट गरिए</translation> <translation id="4765582662863429759">यसले Android Messages लाई तपाईंको फोनबाट तपाईंको Chromebook मा पाठ प्रसारण गर्न दिन्छ</translation> <translation id="4768332406694066911">तपाईँसँग यी संगठनहरूका तपाईँको पहिचान गर्ने प्रमाणपत्रहरू छन्</translation> +<translation id="477647109558161443">एउटा डेस्कटप सर्टकट सिर्जना गर्नुहोस्</translation> <translation id="4776917500594043016"><ph name="USER_EMAIL_ADDRESS" /> को लागि लागि पासवर्ड</translation> <translation id="4777825441726637019">Play स्टोर</translation> <translation id="4777943778632837590">नेटवर्कका नेम सर्भरहरू कन्फिगर गर्नुहोस्</translation> @@ -3452,6 +3467,7 @@ <translation id="5249624017678798539">डाउनलोड पूरा हुनुभन्दा अगाडि नै ब्राउजर क्र्यास भयो।</translation> <translation id="5250372599208556903"><ph name="SEARCH_ENGINE_NAME" /> ले तपाईं समक्ष स्थानीय सामग्री प्रस्तुत गर्नका लागि तपाईंको स्थानसम्बन्धी जानकारी प्रयोग गर्छ। तपाईंले <ph name="SETTINGS_LINK" /> मा गएर यसलाई परिवर्तन गर्न सक्नुहुन्छ।</translation> <translation id="5252456968953390977">रोमिङ</translation> +<translation id="5252496130205799136">पासवर्डहरू सुरक्षित गर्न र स्वतः भर्न आफ्नो Google खाता प्रयोग गर्ने हो?</translation> <translation id="5252653240322147470">PIN अनिवार्य रूपले <ph name="MAXIMUM" /> भन्दा कम अङ्कको हुनु पर्छ</translation> <translation id="5254368820972107711">हटाउनु पर्ने फाइलहरू देखाउनुहोस्</translation> <translation id="52550593576409946">Kiosk एप्लिकेसन सुरु गर्न सकिएन।</translation> @@ -3716,6 +3732,7 @@ <translation id="5565735124758917034">सक्रिय</translation> <translation id="5567989639534621706">एप क्यासहरू</translation> <translation id="5568069709869097550">साइन इन गर्न सक्दैन</translation> +<translation id="5571832155627049070">आफ्नो प्रोफाइल आफ्नो रोजाइअनुकूल पार्नुहोस्</translation> <translation id="5572851009514199876">Chrome ले तपाईंलाई यस साइटमाथि पहुँच राख्ने अनुमति छ वा छैन भनी जाँच्न सकोस् भन्नका लागि कृपया Chrome सुरु गरी साइन इन गर्नुहोस्।</translation> <translation id="5575473780076478375">इंकोग्निटो एक्स्टेन्शन: <ph name="EXTENSION_NAME" /></translation> <translation id="5575528586625653441">डेमो दर्ताको अनुरोधसम्बन्धी कुनै समस्या भयो।</translation> @@ -4290,6 +4307,7 @@ <translation id="6270770586500173387"><ph name="BEGIN_LINK1" />प्रणाली तथा एप सम्बन्धी जानकारी<ph name="END_LINK1" /> र <ph name="BEGIN_LINK2" />मेट्रिक्स<ph name="END_LINK2" /> पठाउनुहोस्</translation> <translation id="6272643420381259437">प्लगइन डाउनलोड गर्दा त्रुटि (<ph name="ERROR" />) भयो</translation> <translation id="6273677812470008672">गुण</translation> +<translation id="6276210637549544171">प्रोक्सी <ph name="PROXY_SERVER" /> मा कनेक्ट गर्न युजरनेम र पासवर्ड प्रयोग गर्नु पर्ने हुन्छ।</translation> <translation id="6277105963844135994">नेटवर्कको समय समाप्त भयो</translation> <translation id="6277518330158259200">स्क्रिसट लि&नुहोस्</translation> <translation id="6278057325678116358">GTK+ प्रयोग गर्नुहोस्</translation> @@ -4310,6 +4328,7 @@ <translation id="6298962879096096191">Android का अनुप्रयोगहरूको स्थापना गर्न Google Play को प्रयोग गर्नुहोस्</translation> <translation id="630065524203833229">बा&हिर निस्कनुहोस्</translation> <translation id="6300718114348072351"><ph name="PRINTER_NAME" /> स्वतः कन्फिगर गर्न सकिएन। कृपया प्रिन्टरका उन्नत विवरणहरू तोक्नुहोस्। <ph name="LINK_BEGIN" />थप जान्नुहोस्<ph name="LINK_END" /></translation> +<translation id="6301076166764763868">व्यक्तिगत रूपमा गरिने ब्राउजिङ र <ph name="EXISTING_USER" /> बाट गरिने ब्राउजिङ अलग गर्न <ph name="NEW_USER" /> का लागि एउटा नयाँ प्रोफाइल बनाउनुहोस्</translation> <translation id="630292539633944562">व्यक्तिगत जानकारीसम्बन्धी सिफारिसहरू</translation> <translation id="6305607932814307878">विश्वव्यापी नीति:</translation> <translation id="6307990684951724544">प्रणाली व्यस्त</translation> @@ -4513,6 +4532,7 @@ <translation id="6556866813142980365">फेरि गर्नुहोस्</translation> <translation id="6556903358015358733">थिम तथा वालपेपर</translation> <translation id="6557290421156335491">मेरा सर्टकटहरू</translation> +<translation id="6560151649238390891">सुझाव गरिएको इमोजी प्रयोग गरियो</translation> <translation id="6561560012278703671">सुटुक्क सन्देश पठाउने सुविधा प्रयोग गर्नुहोस् (यसले सूचनाका प्रम्प्टलाई आफूलाई बाधा पुर्याउनबाट रोक लगाउँछ)</translation> <translation id="6561726789132298588">प्रविष्टि गर्नुहोस्</translation> <translation id="6562117348069327379">प्रणालीका लगहरू डाउनलोड नामक डिरेक्टरीमा भण्डारण गर्नुहोस्।</translation> @@ -5162,6 +5182,7 @@ <translation id="7385854874724088939">छाप्ने प्रयास गर्दा केही गलत भयो। कृपया तपाइँको मुद्रक जाँच गरि पुण; प्रयास गर्नुहोस्।</translation> <translation id="7385896526023870365">यो विस्तारले कुनै अतिरिक्त साइटमाथि पहुँच राख्न सक्दैन।</translation> <translation id="7388044238629873883">तपाईले लगभग सक्नुभयो!</translation> +<translation id="7388209873137778229">यो सुविधा उपलब्ध यन्त्रहरू मात्र देखाइएका छन्।</translation> <translation id="7392118418926456391">भाइरस स्क्यान असफल भयो</translation> <translation id="7392915005464253525">बन्द विण्डोलाई पुन: खो&ल्नुहोस्</translation> <translation id="7396017167185131589">आदान प्रदान गरिएका फोल्डरहरू यहाँ देखिने छन्</translation> @@ -5185,6 +5206,7 @@ <translation id="7415454883318062233">सेटअप सम्पन्न भयो</translation> <translation id="7416362041876611053">अज्ञात सञ्जाल त्रुटि ।</translation> <translation id="741906494724992817">यो एपको लागि कुनैपनि विशेष अनुमतिहरू आवश्यक छैन।</translation> +<translation id="7420817660256886596">प्रोक्सी <ph name="PROXY" /> मा कनेक्ट गर्न तपाईंले युजरनेम र पासवर्ड प्रयोग गरी आफ्नो पहिचान पुष्टि गर्नु पर्ने हुन्छ</translation> <translation id="742130257665691897">पुस्तक चिन्हहरू हटाइए</translation> <translation id="7421925624202799674">पृष्ठ स्रोत &हेर्नुहोस्</translation> <translation id="7422192691352527311">प्राथमिकताहरू...</translation> @@ -5444,6 +5466,7 @@ <translation id="7737115349420013392">"<ph name="DEVICE_NAME" />" सँग जोडा बनाउँदै ...</translation> <translation id="7737238973539693982">Linux (बिटा) मेटनुहोस्</translation> <translation id="7740996059027112821">मानक</translation> +<translation id="7741721175294046818">प्रोक्सीमा कनेक्ट गर्न सकिएन, कृपया फेरि प्रयास गर्नुहोस्</translation> <translation id="774377079771918250">सुरक्षित गर्ने स्थान छनौट गर्नुहोस्</translation> <translation id="7744047395460924128">आफ्नो छपाइसम्बन्धी इतिहास हेर्नुहोस्</translation> <translation id="7744192722284567281">डेटा चोरीको घटनामा फेला परेको</translation> @@ -5688,6 +5711,7 @@ <translation id="8002670234429879764"><ph name="PRINTER_NAME" /> अब उप्रान्त उपलब्ध छैन</translation> <translation id="8004582292198964060">ब्राउजर</translation> <translation id="8005600846065423578"><ph name="HOST" /> लाई क्लिपबोर्ड हेर्न सधैँ अनुमति दिनुहोस्</translation> +<translation id="8006143138282906848">यो प्रोफाइल हटाउनुहोस्</translation> <translation id="8008356846765065031">इन्टरनेट जडान विच्छेद भयो। कृपया तपाइँको इन्टरनेट जडान जाँच्नुहोस्।</translation> <translation id="8009225694047762179">पासवर्डहरूको व्यवस्थापन गर्नुहोस्</translation> <translation id="8012647001091218357">हामी अहिले तपाईँको अविभावकमा पुग्न सकेनौं। कृपया फेरि प्रयास गर्नुहोस्।</translation> @@ -5753,9 +5777,11 @@ <translation id="8084114998886531721">सुरक्षित गरिएको पासवर्ड</translation> <translation id="8086015605808120405"><ph name="PRINTER_NAME" /> लाई कन्फिगर गर्दै ...</translation> <translation id="8086442853986205778"><ph name="PRINTER_NAME" /> सेटअप गर्नुहोस्</translation> +<translation id="8086550884324762001">उदाहरणका लागि: कार्य प्रोफाइल, व्यक्तिगत प्रोफाइल, बालबालिका प्रोफाइल वा कुनै नामको प्रोफाइल</translation> <translation id="80866457114322936">{NUM_FILES,plural, =1{यो फाइल इन्क्रिप्ट गरिएको छ। यसका मालिकलाई डिक्रिप्ट गर्न लगाउनुहोस्।}other{यीमध्ये केही फाइलहरू इन्क्रिप्ट गरिएका छन्। यिनका मालिकलाई डिक्रिप्ट गर्न लगाउनुहोस्।}}</translation> <translation id="808894953321890993">पासवर्ड परिवर्तन गर्नुहोस्</translation> <translation id="8090234456044969073">तपाइँको सबैभन्दा धेरै भ्रमण गरिएका वेबसाइटहरूको सूची पढ्नुहोस्</translation> +<translation id="8092681102116274204">"*" वाइल्डकार्ड भएका सेटिङले अब उप्रान्त काम गर्दैनन्। <ph name="BEGIN_LINK" />यी सेटिङ परिवर्तन<ph name="END_LINK" /> गर्न यो एक्स्टेन्सनका विकासकर्ता वा आफ्ना एड्मिनलाई सम्पर्क गर्नुहोस्।</translation> <translation id="8093359998839330381"><ph name="PLUGIN_NAME" /> ले प्रतिक्रिया जनाइरहेको छैन</translation> <translation id="8095105960962832018"><ph name="BEGIN_PARAGRAPH1" />Google ड्राइभमा ब्याकअप गर्नुहोस्। जुनसुकै बेला सजिलैसँग आफ्नो डेटा पुनर्स्थापना गर्नुहोस् वा यन्त्र बदल्नुहोस्। तपाईंको ब्याकअपमा एपको डेटा समावेश हुन्छ।<ph name="END_PARAGRAPH1" /> <ph name="BEGIN_PARAGRAPH2" />तपाईंका ब्याकअपहरू Google मा अपलोड गरी तपाईंको Google खाताको पासवर्ड प्रयोग गरेर इन्क्रिप्ट गरिन्छन्।<ph name="END_PARAGRAPH2" /> @@ -5808,6 +5834,7 @@ <translation id="8146177459103116374">यदि तपाईंले यो यन्त्रमा पहिले नै दर्ता गराउनुभएको छ भने, तपाईंले <ph name="LINK2_START" />एउटा विद्यमान प्रयोगकर्ताको रूपमा साइन इन<ph name="LINK2_END" /> गर्न सक्नुहुन्छ।</translation> <translation id="8146793085009540321">साइन इन गर्न सकिएन। कृपया आफ्नो प्रशासकलाई सम्पर्क गर्नुहोस् वा फेरि प्रयास गर्नुहोस्।</translation> <translation id="8148760431881541277">साइन इन गर्ने सीमा तोक्नुहोस्</translation> +<translation id="8151579390896831136">आफ्नो प्रोफाइल (यसको नामलगायतका कुराहरू) आफ्नो रोजाइअनुकूल पार्नुहोस्</translation> <translation id="8151638057146502721">विन्यास गर्नुहोस्</translation> <translation id="8152091997436726702">मुद्रक दर्ताको समय सकियो। मुद्रक दर्ता गर्नको लागि, तपाइँले मुद्रकमा दर्ता निश्चय गर्नपर्छ।</translation> <translation id="8154790740888707867">कुनै फाइल छैन</translation> @@ -5926,6 +5953,7 @@ <translation id="8288032458496410887"><ph name="APP" /> को स्थापना रद्द गर्नुहोस्...</translation> <translation id="8289128870594824098">डिस्कको आकार</translation> <translation id="8291967909914612644">गृह प्रदायकको देश</translation> +<translation id="8293206222192510085">बुकमार्क थप्नुहोस्</translation> <translation id="8294431847097064396">स्रोत</translation> <translation id="8297006494302853456">कमजोर</translation> <translation id="8299319456683969623">तपाईं हाल अफलाइन हुनुहुन्छ।</translation> @@ -6531,6 +6559,7 @@ <translation id="9031549947500880805">Google ड्राइभमा ब्याकअप गर्नुहोस् जुनसुकै बेला सजिलैसँग आफ्नो डेटा पुनर्स्थापना गर्नुहोस् वा यन्त्र बदल्नुहोस्। तपाईंको ब्याकअपमा एपको डेटा समावेश हुन्छ।</translation> <translation id="9033765790910064284">जे भए पनि जारी राख्नुहोस्</translation> <translation id="9033857511263905942">&टाँस्नुहोस्</translation> +<translation id="9037818663270399707">तपाईंको कनेक्सन सबै नेटवर्क ट्राफिकका लागि निजी हुँदैन</translation> <translation id="9037965129289936994">मूल पाठ देखाउनुहोस्</translation> <translation id="9039014462651733343">{NUM_ATTEMPTS,plural, =1{तपाईं अब एक पटक प्रयास गर्न सक्नुहुन्छ।}other{तपाईं अब # पटक प्रयास गर्न सक्नुहुन्छ।}}</translation> <translation id="9039663905644212491">PEAP</translation>
diff --git a/chrome/app/resources/generated_resources_nl.xtb b/chrome/app/resources/generated_resources_nl.xtb index 193208cc..30f1754 100644 --- a/chrome/app/resources/generated_resources_nl.xtb +++ b/chrome/app/resources/generated_resources_nl.xtb
@@ -71,6 +71,7 @@ <translation id="1070705170564860382">Wordt over <ph name="COUNTDOWN_SECONDS" /> seconden in alternatieve browser geopend</translation> <translation id="1071917609930274619">Gegevenscodering</translation> <translation id="1072700771426194907">USB-apparaat gedetecteerd</translation> +<translation id="107278043869924952">Pincode gebruiken naast wachtwoord</translation> <translation id="1076176485976385390">Navigeren op pagina's met een tekstcursor</translation> <translation id="1076698951459398590">Thema inschakelen</translation> <translation id="1076818208934827215">Microsoft Internet Explorer</translation> @@ -524,7 +525,6 @@ <translation id="1608668830839595724">Meer acties voor geselecteerde items</translation> <translation id="161042844686301425">Cyaan</translation> <translation id="1611432201750675208">Je apparaat is vergrendeld</translation> -<translation id="1611584202130317952">Het registratieproces is onderbroken. Probeer het opnieuw of neem contact op met de eigenaar of beheerder van het apparaat.</translation> <translation id="1614511179807650956">Je hebt mogelijk je quotum voor mobiele data verbruikt. Ga naar de activeringsportal van <ph name="NAME" /> om meer data te kopen.</translation> <translation id="161460670679785907">Je telefoon kan niet worden gedetecteerd</translation> <translation id="1616206807336925449">De extensie vereist geen speciale rechten.</translation> @@ -533,6 +533,7 @@ <translation id="1618268899808219593">H&elpcentrum</translation> <translation id="1620307519959413822">Onjuist wachtwoord. Probeer het opnieuw of klik op 'Wachtwoord vergeten' om het te resetten.</translation> <translation id="1620510694547887537">Camera</translation> +<translation id="1621831347985899379"><ph name="DEVICE_TYPE" />-gegevens worden verwijderd</translation> <translation id="1622054403950683339">Wifi-netwerk vergeten</translation> <translation id="1623132449929929218">De afbeeldingen zijn momenteel niet beschikbaar. Maak opnieuw verbinding om collecties van achtergronden te bekijken.</translation> <translation id="1623723619460186680">Blauw licht verminderen</translation> @@ -760,6 +761,7 @@ <translation id="1877377290348678128">Label (optioneel)</translation> <translation id="1877520246462554164">Ophalen van verificatietoken is mislukt. Log uit en weer in om het opnieuw te proberen.</translation> <translation id="1877860345998737529">Toewijzing van acties voor schakelaar</translation> +<translation id="1878155070920054810">Zo te zien komt je Chromebook zonder batterij te zitten voordat de update is voltooid. Check of je Chromebook correct wordt opgeladen om onderbrekingen te voorkomen.</translation> <translation id="1879000426787380528">Inloggen als</translation> <translation id="1880905663253319515">Certificaat '<ph name="CERTIFICATE_NAME" />' verwijderen?</translation> <translation id="1881445033931614352">Toetsenbordindeling</translation> @@ -964,6 +966,7 @@ <translation id="2148219725039824548">Fout bij het activeren van de fileshare. De opgegeven fileshare kan niet in het netwerk worden gevonden.</translation> <translation id="2148756636027685713">Formatteren voltooid</translation> <translation id="2148892889047469596">Tabblad casten</translation> +<translation id="2149973817440762519">Bookmark bewerken</translation> <translation id="2150139952286079145">Bestemmingen zoeken</translation> <translation id="2150661552845026580">Wil je '<ph name="EXTENSION_NAME" />' toevoegen?</translation> <translation id="2151576029659734873">Ongeldige tabbladindex opgegeven.</translation> @@ -1073,6 +1076,7 @@ <translation id="2270627217422354837">Gegevens uitwisselen met elk apparaat in de volgende domeinen: <ph name="DOMAINS" /></translation> <translation id="2272570998639520080">Martiniglas</translation> <translation id="2273119997271134996">Probleem met videopoort van dock</translation> +<translation id="2274840746523584236">Laad je Chromebook op</translation> <translation id="2276503375879033601">Meer apps toevoegen</translation> <translation id="2277255602909579701">Alle cookies en sitegegevens</translation> <translation id="2277769717710009150">{COUNT,plural, =1{1 item gekopieerd}other{# items gekopieerd}}</translation> @@ -1915,6 +1919,7 @@ <translation id="3308116878371095290">Het instellen van cookies door deze pagina is geblokkeerd.</translation> <translation id="3308134619352333507">Knop verbergen</translation> <translation id="3308852433423051161">Google Assistent laden...</translation> +<translation id="3310640316857623290">DNS-wachttijd aanzienlijk langer dan toelaatbare drempel</translation> <translation id="3311445899360743395">Gegevens die zijn gekoppeld aan deze app, worden mogelijk verwijderd van dit apparaat.</translation> <translation id="3312424061798279731">Ingeschakelde talen</translation> <translation id="3313622045786997898">Handtekeningwaarde van certificaat</translation> @@ -1927,6 +1932,7 @@ <translation id="3323295311852517824">{NUM_FILES,plural, =0{Deze gegevens bevatten gevoelige of gevaarlijke content. Verwijder deze content en probeer het opnieuw.}=1{Dit bestand bevat gevoelige of gevaarlijke content. Verwijder deze content en probeer het opnieuw.}other{Deze bestanden bevatten gevoelige of gevaarlijke content. Verwijder deze content en probeer het opnieuw.}}</translation> <translation id="3323521181261657960">Bonus! Je hebt meer schermtijd gekregen</translation> <translation id="3325910708063135066">Camera en microfoon zijn uitgeschakeld in Mac-systeemvoorkeuren</translation> +<translation id="3327050066667856415">Chromebooks zijn ontworpen voor beveiliging. Je apparaat is automatisch beveiligd tegen malware. Je hebt geen extra software nodig.</translation> <translation id="3328489342742826322">Als je herstelt vanuit een back-up, worden bestaande Linux-apps en gegevens in je map met Linux-bestanden verwijderd.</translation> <translation id="3331321258768829690">(<ph name="UTCOFFSET" />) <ph name="LONGTZNAME" /> (<ph name="EXEMPLARCITY" />)</translation> <translation id="3331974543021145906">App-informatie</translation> @@ -2116,6 +2122,7 @@ <translation id="3556433843310711081">Je beheerder kan de blokkering van de site opheffen</translation> <translation id="3557101512409028104">Stel websitebeperkingen en limieten voor schermtijd in met Family Link</translation> <translation id="3559262020195162408">Kan beleid niet op het apparaat installeren.</translation> +<translation id="3559533181353831840">Nog ongeveer <ph name="TIME_LEFT" /></translation> <translation id="3560034655160545939">&Spellingcontrole</translation> <translation id="3562423906127931518">Dit proces kan enkele minuten duren. De Linux-container wordt ingesteld.</translation> <translation id="3563432852173030730">Kiosk-app kan niet worden gedownload.</translation> @@ -2158,6 +2165,7 @@ <translation id="3602290021589620013">Voorbeeld</translation> <translation id="3603622770190368340">Netwerkcertificaat verkrijgen</translation> <translation id="3604713164406837697">Achtergrond wijzigen</translation> +<translation id="360565022852130722">Wifi-netwerk is beveiligd met het zwakke protocol WEP 802.1x</translation> <translation id="3605780360466892872">Zakenman</translation> <translation id="3608576286259426129">Voorbeeld van gebruikersafbeelding</translation> <translation id="3610369246614755442">De ventilator van het dock heeft onderhoud nodig</translation> @@ -2194,6 +2202,7 @@ <translation id="3639220004740062347">Lezermodus afsluiten</translation> <translation id="3640214691812501263">'<ph name="EXTENSION_NAME" />' toevoegen voor <ph name="USER_NAME" />?</translation> <translation id="3640613767643722554">Train de Assistent om je stem te herkennen</translation> +<translation id="3643014427358482789"><ph name="DOMAIN" /> schakelt ADB-foutopsporing uit. Hierdoor wordt je <ph name="DEVICE_TYPE" /> gereset. Maak een back-up van je bestanden voordat je opnieuw opstart.</translation> <translation id="3645372836428131288">Beweeg je vinger enigszins om een ander deel van de vingerafdruk vast te leggen.</translation> <translation id="3647998456578545569">{COUNT,plural, =1{<ph name="ATTACHMENTS" /> ontvangen van <ph name="DEVICE_NAME" />}other{<ph name="ATTACHMENTS" /> ontvangen van <ph name="DEVICE_NAME" />}}</translation> <translation id="3648348069317717750"><ph name="USB_DEVICE_NAME" /> gedetecteerd</translation> @@ -2282,6 +2291,7 @@ <translation id="3732857534841813090">Aan de Google Assistent gerelateerde informatie</translation> <translation id="3733127536501031542">SSL-server met step-up</translation> <translation id="3735740477244556633">Sorteren op</translation> +<translation id="3738632186060045350"><ph name="DEVICE_TYPE" />-gegevens worden over 24 uur verwijderd</translation> <translation id="3738924763801731196"><ph name="OID" />:</translation> <translation id="3739254215541673094"><ph name="APPLICATION" /> openen?</translation> <translation id="3742055079367172538">Screenshot gemaakt</translation> @@ -2469,6 +2479,7 @@ <translation id="3937734102568271121"><ph name="LANGUAGE" /> altijd vertalen</translation> <translation id="3938128855950761626">Apparaten van leverancier <ph name="VENDOR_ID" /></translation> <translation id="3940233957883229251">Automatische herhaling inschakelen</translation> +<translation id="3941014780699102620">Kan host niet omzetten</translation> <translation id="3941565636838060942">Als je toegang tot dit programma wilt verbergen, moet je dit verwijderen via <ph name="CONTROL_PANEL_APPLET_NAME" /> in het Configuratiescherm. @@ -2631,6 +2642,7 @@ <translation id="413121957363593859">Componenten</translation> <translation id="4131410914670010031">Zwart/wit</translation> <translation id="413193092008917129">Routines voor netwerkdiagnose</translation> +<translation id="4132183752438206707">Apps zoeken in de Google Play Store</translation> <translation id="4133076602192971179">Open de app om je wachtwoord te wijzigen</translation> <translation id="4136203100490971508">Nachtverlichting wordt automatisch uitgeschakeld bij zonsopgang</translation> <translation id="41365691917097717">Als je doorgaat, wordt ADB-foutopsporing ingeschakeld om Android-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 uitschakelen, moet je apparaat worden teruggezet op de fabrieksinstellingen.</translation> @@ -2880,6 +2892,8 @@ <translation id="4479877282574735775">De virtuele machine wordt geconfigureerd. Dit kan enkele minuten duren.</translation> <translation id="4480590691557335796">Chrome kan schadelijke software op je computer vinden en verwijderen</translation> <translation id="4481530544597605423">Ontkoppelde apparaten</translation> +<translation id="4483049906298469269">Kan de niet-standaard netwerkgateway niet pingen</translation> +<translation id="4487489714832036847">Chromebooks gebruiken apps in plaats van traditionele software. Download apps voor productiviteit, entertainment en meer.</translation> <translation id="4488502501195719518">Alle gegevens wissen?</translation> <translation id="4493468155686877504">Aanbevolen (<ph name="INSTALL_SIZE" />)</translation> <translation id="4495419450179050807">Niet op deze pagina weergeven</translation> @@ -2930,6 +2944,7 @@ <translation id="4546692474302123343">Google Assistent-spraakinvoer</translation> <translation id="4547659257713117923">Geen tabbladen van andere apparaten</translation> <translation id="4547672827276975204">Automatisch instellen</translation> +<translation id="4548483925627140043">Signaal niet gevonden</translation> <translation id="4549791035683739768">Je beveiligingssleutel heeft geen opgeslagen vingerafdrukken</translation> <translation id="4551763574344810652">Druk op <ph name="MODIFIER_KEY_DESCRIPTION" /> om dit ongedaan te maken</translation> <translation id="4552089082226364758">Flash</translation> @@ -2969,6 +2984,7 @@ <translation id="4582563038311694664">Alle instellingen opnieuw instellen</translation> <translation id="4585793705637313973">Pagina bewerken</translation> <translation id="4586275095964870617"><ph name="URL" /> kan niet in een alternatieve browser worden geopend. Neem contact op met je systeembeheerder.</translation> +<translation id="458794348635939462">Kan niet alle hosts omzetten</translation> <translation id="4589713469967853491">Logboeken zijn naar de map Downloads geschreven.</translation> <translation id="4590324241397107707">Opslag in database</translation> <translation id="4592891116925567110">App voor tekenen met stylus</translation> @@ -3352,6 +3368,7 @@ <translation id="5089810972385038852">Staat</translation> <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="5097649414558628673">Tool: <ph name="PRINT_NAME" /></translation> <translation id="5097874180538493929">Automatisch klikken als de cursor stopt</translation> <translation id="5101042277149003567">Alle bookmarks openen</translation> <translation id="5101839224773798795">Automatisch klikken wanneer de muisaanwijzer stopt</translation> @@ -3570,6 +3587,7 @@ <translation id="5370819323174483825">&Opnieuw laden</translation> <translation id="5372529912055771682">De geleverde inschrijvingsmodus wordt niet ondersteund door deze versie van het besturingssysteem. Zorg ervoor dat je de nieuwste versie gebruikt en probeer het opnieuw.</translation> <translation id="5372579129492968947">Extensie losmaken</translation> +<translation id="5372659122375744710">Wifi-netwerk is niet beveiligd</translation> <translation id="5376169624176189338">Klik om terug te gaan, houd ingedrukt om de geschiedenis weer te geven</translation> <translation id="5376931455988532197">Bestand is te groot</translation> <translation id="5377721922656071359">{COUNT,plural, =1{<ph name="ATTACHMENTS" /> naar <ph name="DEVICE_NAME" /> gestuurd}other{<ph name="ATTACHMENTS" /> naar <ph name="DEVICE_NAME" /> gestuurd}}</translation> @@ -3599,6 +3617,7 @@ <translation id="5414566801737831689">De pictogrammen lezen van websites die je bezoekt</translation> <translation id="5417312524372586921">Browserthema's</translation> <translation id="5419405654816502573">Voice Match</translation> +<translation id="5420274697768050645">Een wachtwoord voor apparaatontgrendeling vereisen voor extra beveiliging</translation> <translation id="5420438158931847627">Hiermee wordt de scherpte van tekst en afbeeldingen bepaald</translation> <translation id="5422221874247253874">Toegangspunt</translation> <translation id="5422781158178868512">Je externe opslagapparaat kan niet worden herkend.</translation> @@ -3723,6 +3742,7 @@ <translation id="5548606607480005320">Veiligheidscheck</translation> <translation id="5551573675707792127">Toetsenbord en tekstinvoer</translation> <translation id="5553089923092577885">Beleidstoewijzing voor certificaat</translation> +<translation id="5554403733534868102">Hierna hoef je niet meer te wachten op updates</translation> <translation id="5554489410841842733">Dit icoon wordt weergegeven wanneer de extensie een actie kan uitvoeren op de huidige pagina.</translation> <translation id="5554720593229208774">Certificeringsinstantie voor e-mail</translation> <translation id="5556459405103347317">Opnieuw laden</translation> @@ -4136,6 +4156,7 @@ <translation id="6061882183774845124">Link verzenden naar je apparaten</translation> <translation id="6064217302520318294">Schermvergrendeling</translation> <translation id="6065289257230303064">Directorykenmerken van certificaatonderwerp</translation> +<translation id="6069464830445383022">Je Google-account is je Chromebook-login</translation> <translation id="6069671174561668781">Achtergrond instellen</translation> <translation id="6071181508177083058">wachtwoord bevestigen</translation> <translation id="6071576563962215370">Het systeem kan de vergrendeling van de instellingen ten tijde van de apparaatinstallatie niet uitvoeren.</translation> @@ -4178,6 +4199,7 @@ <translation id="6104311680260824317">Kan het apparaat niet aan het domein koppelen. De server ondersteunt de opgegeven typen Kerberos-versleuteling niet. De instellingen voor versleuteling vind je bij 'Meer opties'.</translation> <translation id="6104796831253957966">Printerwachtrij is vol</translation> <translation id="6105994589138235234">Chrome-browsersynchronisatie</translation> +<translation id="6108689792487843350">Gateway is onbereikbaar</translation> <translation id="6111972606040028426">De Google Assistent inschakelen</translation> <translation id="6112294629795967147">Tikken om het formaat aan te passen</translation> <translation id="6112727384379533756">Een ticket toevoegen</translation> @@ -4238,6 +4260,7 @@ <translation id="6178664161104547336">Een certificaat selecteren</translation> <translation id="6181431612547969857">Download geblokkeerd</translation> <translation id="6185132558746749656">Apparaatlocatie</translation> +<translation id="6191293864534840972">Nameservers met onjuiste notatie</translation> <translation id="6195446518998936840">Als je ouderlijk toezicht wilt instellen, moet je kind een Google-account hebben dat jij helpt te beheren. Met de Family Link-app kun je de schermtijd beperken, websites goedkeuren of blokkeren en nog veel meer.</translation> <translation id="6195693561221576702">Dit apparaat kan niet worden ingesteld in de offline demomodus.</translation> <translation id="6196640612572343990">Indirecte cookies blokkeren</translation> @@ -4451,6 +4474,7 @@ <translation id="6451591602925140504">{NUM_PAGES,plural, =0{<ph name="PAGE_TITLE" />}=1{<ph name="PAGE_TITLE" /> en 1 ander tabblad}other{<ph name="PAGE_TITLE" /> en # andere tabbladen}}</translation> <translation id="6451689256222386810">Als je je wachtwoordzin bent vergeten of deze instelling wilt wijzigen, <ph name="BEGIN_LINK" />stel je de synchronisatie opnieuw in<ph name="END_LINK" />.</translation> <translation id="6452181791372256707">Weigeren</translation> +<translation id="6452251728599530347"><ph name="PERCENT" /> voltooid</translation> <translation id="6452961788130242735">Netwerkprobleem of onjuist domein</translation> <translation id="6455264371803474013">Op specifieke sites</translation> <translation id="6455894534188563617">&Nieuwe map</translation> @@ -4507,6 +4531,7 @@ <ph name="EVENT_NAME" /></translation> <translation id="6520876759015997832">Zoekresultaat <ph name="LIST_POSITION" /> van <ph name="LIST_SIZE" />: <ph name="SEARCH_RESULT_TEXT" />. Druk op Enter om naar de sectie te navigeren.</translation> <translation id="652492607360843641">Je hebt verbinding met een <ph name="NETWORK_TYPE" /> netwerk.</translation> +<translation id="6527081081771465939">Onbekend wifi-beveiligingsprotocol</translation> <translation id="6527303717912515753">Delen</translation> <translation id="6528513914570774834">Andere gebruikers van dit apparaat toestaan om dit netwerk te gebruiken</translation> <translation id="652948702951888897">Chrome-geschiedenis</translation> @@ -4623,6 +4648,7 @@ <translation id="6680442031740878064">Beschikbaar: <ph name="AVAILABLE_SPACE" /></translation> <translation id="6680650203439190394">Snelheid</translation> <translation id="6681668084120808868">Foto nemen</translation> +<translation id="6684827949542560880">De nieuwste update downloaden</translation> <translation id="668599234725812620">Google Play openen</translation> <translation id="6686490380836145850">Tabbladen aan de rechterkant sluiten</translation> <translation id="6686817083349815241">Je wachtwoord opslaan</translation> @@ -4732,6 +4758,7 @@ <translation id="6812841287760418429">Wijzigingen behouden</translation> <translation id="6817174620439930047">Vragen als een site berichten exclusief voor het systeem wil gebruiken om toegang te krijgen tot MIDI-apparaten (aanbevolen)</translation> <translation id="6818198425579322765">Paginataal om te vertalen</translation> +<translation id="6818802132960437751">Ingebouwde virusbeveiliging</translation> <translation id="682123305478866682">Bureaublad casten</translation> <translation id="6823174134746916417">Tikken-om-te-klikken voor touchpad</translation> <translation id="6823506025919456619">Je moet inloggen bij Chrome om je apparaten te bekijken</translation> @@ -5378,6 +5405,7 @@ <translation id="7631205654593498032">Door je apparaten te koppelen geef je de <ph name="DEVICE_TYPE" /> toestemming om:</translation> <translation id="7631887513477658702">&Altijd bestanden van dit type openen</translation> <translation id="7632948528260659758">Bijwerken van de volgende kiosk-apps is mislukt:</translation> +<translation id="7633724038415831385">Dit is de enige keer dat je moet wachten op een update. Op Chromebooks vinden softwareupdates in de achtergrond plaats.</translation> <translation id="7634566076839829401">Er is iets misgegaan. Probeer het opnieuw.</translation> <translation id="763632859238619983">Niet toestaan dat sites betalingshandlers installeren</translation> <translation id="7636919061354591437">Installeren op dit apparaat</translation> @@ -5655,6 +5683,7 @@ <translation id="7933314993013528982">{NUM_TABS,plural, =1{Dempen site opheffen}other{Dempen sites opheffen}}</translation> <translation id="7933634003144813719">Gedeelde mappen beheren</translation> <translation id="793531125873261495">Fout bij downloaden van virtuele machine. Probeer het opnieuw.</translation> +<translation id="7936303884198020182">Geen naamservers gevonden</translation> <translation id="7938594894617528435">Op dit moment offline</translation> <translation id="7939062555109487992">Geavanceerde opties</translation> <translation id="7939412583708276221">Toch bewaren</translation> @@ -5898,6 +5927,7 @@ <translation id="8226742006292257240">Hieronder staat het willekeurig gegenereerde TPM-wachtwoord dat aan je computer is toegekend:</translation> <translation id="8227119283605456246">Bestand bijvoegen</translation> <translation id="8230134520748321204">Wachtwoord opslaan voor <ph name="ORIGIN" />?</translation> +<translation id="8230672074305416752">Kan de standaard netwerkgateway niet pingen</translation> <translation id="8234795456569844941">Help onze engineers dit probleem op te lossen. Vertel ons wat er gebeurde vlak voordat het bericht met de profielfout werd weergegeven:</translation> <translation id="8236917170563564587">In plaats daarvan dit tabblad delen</translation> <translation id="8237647586961940482">Donkerroze/rood</translation> @@ -5958,6 +5988,7 @@ <translation id="8288032458496410887"><ph name="APP" /> verwijderen...</translation> <translation id="8289128870594824098">Schijfgrootte</translation> <translation id="8291967909914612644">Land thuisprovider</translation> +<translation id="8293206222192510085">Bookmark toevoegen</translation> <translation id="8294431847097064396">Bron</translation> <translation id="8297006494302853456">Zwak</translation> <translation id="8299319456683969623">Je bent momenteel offline.</translation> @@ -6007,6 +6038,7 @@ <translation id="8363095875018065315">stabiel</translation> <translation id="8363142353806532503">Microfoon geblokkeerd</translation> <translation id="8363763184161554204"><ph name="PERMISSION" /> toegestaan</translation> +<translation id="8364946094152050673">Lege naamservers</translation> <translation id="8366396658833131068">Je netwerkverbinding is hersteld. Selecteer een ander netwerk of druk hieronder op de knop 'Doorgaan' om je kiosk-app te starten.</translation> <translation id="8368027906805972958">Onbekend of niet-ondersteund apparaat (<ph name="DEVICE_ID" />)</translation> <translation id="8368859634510605990">Alle bookmarks &openen</translation> @@ -6092,8 +6124,10 @@ <translation id="8472623782143987204">hardware-ondersteund</translation> <translation id="8473863474539038330">Adressen en meer</translation> <translation id="8475313423285172237">Een ander programma op je computer heeft een extensie toegevoegd die de manier waarop Chrome werkt kan wijzigen.</translation> +<translation id="8475690821716466388">Wifi-netwerk is beveiligd met het zwakke protocol WEP PSK</translation> <translation id="8477241577829954800">Vervangen</translation> <translation id="8477384620836102176">&Algemeen</translation> +<translation id="8477551185774834963">DNS-wachttijd is iets langer dan de toelaatbare drempel</translation> <translation id="8480082892550707549">Ook als je eerder bestanden van deze site hebt gedownload, kan de site tegelijk onveilig (gehackt) zijn. Probeer dit bestand later te downloaden.</translation> <translation id="8480869669560681089">Onbekend apparaat van <ph name="VENDOR_NAME" /></translation> <translation id="8481187309597259238">USB-rechten bevestigen</translation> @@ -6145,6 +6179,7 @@ <translation id="8546930481464505581">Aanraakbalk aanpassen</translation> <translation id="8547013269961688403">'Volledig scherm vergroten' inschakelen</translation> <translation id="85486688517848470">Houd de zoektoets ingedrukt om het gedrag van de toetsen in de bovenste rij om te schakelen</translation> +<translation id="8549316893834449916">Je gebruikt je Google-account om in te loggen op je Chromebook. Dit is hetzelfde account dat je gebruikt voor Gmail, Drive, YouTube en meer.</translation> <translation id="8551388862522347954">Licenties</translation> <translation id="8551588720239073785">Instellingen voor datum en tijd</translation> <translation id="8553342806078037065">Andere mensen beheren</translation> @@ -6283,6 +6318,7 @@ <translation id="8720200012906404956">Zoeken naar een mobiel netwerk. <ph name="BEGIN_LINK" />Meer informatie<ph name="END_LINK" /></translation> <translation id="8720816553731218127">De initialisatie van de kenmerken ten tijde van de installatietijd is verlopen.</translation> <translation id="8722912030556880711">Verzend gebruiks- en diagnostische gegevens. Dit apparaat verzendt momenteel automatisch diagnostische, apparaat- en app-gebruiksgegevens naar Google. Deze gegevens kunnen worden gebruikt om de systeem- en app-stabiliteit te verbeteren en andere optimalisaties mogelijk te maken. Daarnaast zijn bepaalde verzamelde gegevens nuttig voor Google-apps en -partners, zoals Android-ontwikkelaars. Als je de instelling voor aanvullende Web- en app-activiteit hebt ingeschakeld, kunnen deze gegevens worden opgeslagen in je Google-account. <ph name="BEGIN_LINK2" />Meer informatie<ph name="END_LINK2" /></translation> +<translation id="8723108084122415655">Niet-standaard netwerk overschrijdt drempel voor wachttijd</translation> <translation id="8724405322205516354">Als je dit icoon ziet, kun je je vingerafdruk gebruiken voor identificatie of om een aankoop goed te keuren.</translation> <translation id="8724409975248965964">Vingerafdruk toegevoegd</translation> <translation id="8724859055372736596">&Weergeven in map</translation> @@ -6461,6 +6497,7 @@ <translation id="8909833622202089127">Site houdt je locatie bij</translation> <translation id="8910146161325739742">Je scherm delen</translation> <translation id="8910222113987937043">Wijzigingen in je bookmarks, geschiedenis, wachtwoorden en andere instellingen worden niet meer gesynchroniseerd met je Google-account. Je bestaande gegevens blijven echter opgeslagen in je Google-account en kunnen worden beheerd via <ph name="BEGIN_LINK" />Google Dashboard<ph name="END_LINK" />.</translation> +<translation id="8910721771319628100">Standaardnetwerk overschrijdt drempel voor wachttijd</translation> <translation id="8912362522468806198">Google-account</translation> <translation id="8912793549644936705">Uitrekken</translation> <translation id="8912810933860534797">Automatisch scannen inschakelen</translation>
diff --git a/chrome/app/resources/generated_resources_no.xtb b/chrome/app/resources/generated_resources_no.xtb index a96a3f8..16f8680 100644 --- a/chrome/app/resources/generated_resources_no.xtb +++ b/chrome/app/resources/generated_resources_no.xtb
@@ -71,6 +71,7 @@ <translation id="1070705170564860382">Åpnes i alternativ nettleser om <ph name="COUNTDOWN_SECONDS" /> sekunder</translation> <translation id="1071917609930274619">Datachiffrering</translation> <translation id="1072700771426194907">USB-enhet oppdaget</translation> +<translation id="107278043869924952">Bruk PIN-kode i tillegg til passord</translation> <translation id="1076176485976385390">Naviger på sider med en tekstmarkør</translation> <translation id="1076698951459398590">Slå på temaet</translation> <translation id="1076818208934827215">Microsoft Internet Explorer</translation> @@ -521,7 +522,6 @@ <translation id="1608668830839595724">Flere handlinger for de valgte elementene</translation> <translation id="161042844686301425">Cyan</translation> <translation id="1611432201750675208">Enheten er låst</translation> -<translation id="1611584202130317952">Leveringsflyten ble avbrutt. Prøv igjen, eller kontakt enhetseieren eller administratoren.</translation> <translation id="1614511179807650956">Du kan ha brukt opp mobildatakvoten din. Gå til aktiveringsportalen for <ph name="NAME" /> for å kjøpe mer data.</translation> <translation id="161460670679785907">Finner ikke telefonen din</translation> <translation id="1616206807336925449">Denne utvidelsen krever ingen spesielle tillatelser.</translation> @@ -530,6 +530,7 @@ <translation id="1618268899808219593">&Brukerstøtte</translation> <translation id="1620307519959413822">Feil passord. Prøv på nytt, eller klikk på Glemt passord for å tilbakestille det.</translation> <translation id="1620510694547887537">Kamera</translation> +<translation id="1621831347985899379">Dataene på <ph name="DEVICE_TYPE" /> kommer til å bli slettet</translation> <translation id="1622054403950683339">Glem Wi-Fi-nettverket</translation> <translation id="1623132449929929218">Bildene er ikke tilgjengelige nå. Koble til Internett på nytt for å se bakgrunnssamlingene.</translation> <translation id="1623723619460186680">Reduksjon av blått lys</translation> @@ -757,6 +758,7 @@ <translation id="1877377290348678128">Etikett (valgfritt)</translation> <translation id="1877520246462554164">Kunne ikke hente autentiseringstokenet. Logg av og på igjen for å prøve på nytt.</translation> <translation id="1877860345998737529">Tilordning av bryterhandlinger</translation> +<translation id="1878155070920054810">Det ser ut til at Chromebooken din kommer til å gå tom for strøm før oppdateringen er ferdig. Sørg for at den lades ordentlig, for å unngå avbrudd.</translation> <translation id="1879000426787380528">Logg på som</translation> <translation id="1880905663253319515">Vil du slette sertifikatet «<ph name="CERTIFICATE_NAME" />»?</translation> <translation id="1881445033931614352">Tastaturoppsett</translation> @@ -961,6 +963,7 @@ <translation id="2148219725039824548">Feil ved innsetting av deling. Den spesifiserte delingen ble ikke funnet på nettverket.</translation> <translation id="2148756636027685713">Formatering er fullført</translation> <translation id="2148892889047469596">Castefane</translation> +<translation id="2149973817440762519">Rediger bokmerke</translation> <translation id="2150139952286079145">Søk etter destinasjoner</translation> <translation id="2150661552845026580">Vil du legge til «<ph name="EXTENSION_NAME" />»?</translation> <translation id="2151576029659734873">Ugyldig faneindeks angitt.</translation> @@ -1070,6 +1073,7 @@ <translation id="2270627217422354837">Utveksle data med en hvilken som helst enhet på domenene <ph name="DOMAINS" /></translation> <translation id="2272570998639520080">Martiniglass</translation> <translation id="2273119997271134996">Problem med videoporten på dokken</translation> +<translation id="2274840746523584236">Lad Chromebooken</translation> <translation id="2276503375879033601">Legg til flere programmer</translation> <translation id="2277255602909579701">Alle informasjonskapsler og nettstedsdata</translation> <translation id="2277769717710009150">{COUNT,plural, =1{1 element er kopiert}other{# elementer er kopiert}}</translation> @@ -1912,6 +1916,7 @@ <translation id="3308116878371095290">Informasjonskapsler fra denne siden ble blokkert.</translation> <translation id="3308134619352333507">Skjul knappen</translation> <translation id="3308852433423051161">Laster inn Google-assistenten …</translation> +<translation id="3310640316857623290">DNS-forsinkelsen er betydelig høyere enn den tillatte grenseverdien</translation> <translation id="3311445899360743395">Data som er tilknyttet denne appen, kan bli fjernet fra denne enheten.</translation> <translation id="3312424061798279731">Språk som er slått på</translation> <translation id="3313622045786997898">Sertifikatets signaturverdi</translation> @@ -1924,6 +1929,7 @@ <translation id="3323295311852517824">{NUM_FILES,plural, =0{Disse dataene har sensitivt eller farlig innhold. Fjern dette innholdet, og prøv på nytt.}=1{Denne filen har sensitivt eller farlig innhold. Fjern dette innholdet, og prøv på nytt.}other{Disse filene har sensitivt eller farlig innhold. Fjern dette innholdet, og prøv på nytt.}}</translation> <translation id="3323521181261657960">Bonus! Du har fått mer skjermtid</translation> <translation id="3325910708063135066">Kameraet og mikrofonen er slått av i Mac-systemvalgene</translation> +<translation id="3327050066667856415">Chromebook er designet for sikkerhet. Enheten din er automatisk beskyttet mot skadelig programvare – du trenger ingen tilleggsprogramvare.</translation> <translation id="3328489342742826322">Når du gjenoppretter fra en sikkerhetskopi, slettes eksisterende Linux-programmer og -data i mappen for Linux-filer.</translation> <translation id="3331321258768829690">(<ph name="UTCOFFSET" />) <ph name="LONGTZNAME" /> (<ph name="EXEMPLARCITY" />)</translation> <translation id="3331974543021145906">Appinformasjon</translation> @@ -2113,6 +2119,7 @@ <translation id="3556433843310711081">Administratoren din kan oppheve blokkeringen for deg</translation> <translation id="3557101512409028104">Angi begrensninger for nettsteder og skjermtid med Family Link</translation> <translation id="3559262020195162408">Kunne ikke installere regelen på enheten.</translation> +<translation id="3559533181353831840">Omtrent <ph name="TIME_LEFT" /> gjenstår</translation> <translation id="3560034655160545939">&Stavekontroll</translation> <translation id="3562423906127931518">Denne prosessen kan ta noen minutter. Konfigurerer Linux-beholderen.</translation> <translation id="3563432852173030730">Kiosk-appen kunne ikke lastes ned.</translation> @@ -2155,6 +2162,7 @@ <translation id="3602290021589620013">Forhåndsvisning</translation> <translation id="3603622770190368340">Hent nettverkssertifikat</translation> <translation id="3604713164406837697">Endre bakgrunn</translation> +<translation id="360565022852130722">Wi-Fi-nettverket er sikret med den svake protokollen WEP 802.1x</translation> <translation id="3605780360466892872">Businessmann</translation> <translation id="3608576286259426129">Forhåndsvisning av brukerbilde</translation> <translation id="3610369246614755442">Dokkviften må på service</translation> @@ -2191,6 +2199,7 @@ <translation id="3639220004740062347">Avslutt lesermodus</translation> <translation id="3640214691812501263">Vil du legge til «<ph name="EXTENSION_NAME" />» for <ph name="USER_NAME" />?</translation> <translation id="3640613767643722554">Lær assistenten å gjenkjenne stemmen din</translation> +<translation id="3643014427358482789"><ph name="DOMAIN" /> holder på å slå av ADB-feilsøking. Dette medfører at <ph name="DEVICE_TYPE" /> blir tilbakestilt. Sikkerhetskopiér filene dine før du starter på nytt.</translation> <translation id="3645372836428131288">Flytt litt på fingeren for å registrere en annen del av fingeravtrykket.</translation> <translation id="3647998456578545569">{COUNT,plural, =1{<ph name="ATTACHMENTS" /> mottatt fra <ph name="DEVICE_NAME" />}other{<ph name="ATTACHMENTS" /> mottatt fra <ph name="DEVICE_NAME" />}}</translation> <translation id="3648348069317717750"><ph name="USB_DEVICE_NAME" /> oppdaget</translation> @@ -2279,6 +2288,7 @@ <translation id="3732857534841813090">Beslektet informasjon for Google Assistent</translation> <translation id="3733127536501031542">SSL-tjener med oppgradering </translation> <translation id="3735740477244556633">Sortér etter</translation> +<translation id="3738632186060045350">Dataene på <ph name="DEVICE_TYPE" /> blir slettet om 24 timer</translation> <translation id="3738924763801731196"><ph name="OID" />:</translation> <translation id="3739254215541673094">Vil du åpne <ph name="APPLICATION" />?</translation> <translation id="3742055079367172538">Skjermdump tatt</translation> @@ -2466,6 +2476,7 @@ <translation id="3937734102568271121">Oversett alltid <ph name="LANGUAGE" /></translation> <translation id="3938128855950761626">Enheter fra leverandør <ph name="VENDOR_ID" /></translation> <translation id="3940233957883229251">Aktiver automatisk gjentakelse</translation> +<translation id="3941014780699102620">Kunne ikke finne tilknytning til verten</translation> <translation id="3941565636838060942">Hvis du vil skjule tilgangen til dette programmet, må du avinstallere det ved hjelp av <ph name="CONTROL_PANEL_APPLET_NAME" /> i kontrollpanelet. Vil du starte <ph name="CONTROL_PANEL_APPLET_NAME" />?</translation> <translation id="394183848452296464">Kan ikke opprette snarvei</translation> @@ -2626,6 +2637,7 @@ <translation id="413121957363593859">Komponenter</translation> <translation id="4131410914670010031">Svarthvitt</translation> <translation id="413193092008917129">Rutiner for nettverksdiagnostikk</translation> +<translation id="4132183752438206707">Finn apper i Google Play-butikken</translation> <translation id="4133076602192971179">Åpne appen for å endre passordet</translation> <translation id="4136203100490971508">Nattlys blir slått av automatisk ved soloppgang</translation> <translation id="41365691917097717">Hvis du fortsetter, blir ADB-feilsøking slått på for utvikling og testing av Android-apper. Merk at dette gjør det mulig å installere Android-apper som ikke er verifisert av Google, og enheten må tilbakestilles til fabrikkinnstillingene hvis du vil slå av ADB igjen.</translation> @@ -2875,6 +2887,8 @@ <translation id="4479877282574735775">Konfigurerer den virtuelle maskinen. Dette kan ta noen minutter.</translation> <translation id="4480590691557335796">Chrome kan finne skadelig programvare på datamaskinen din og fjerne den</translation> <translation id="4481530544597605423">Frakoblede enheter</translation> +<translation id="4483049906298469269">Kunne ikke pinge gatewayen for ikke-standardnettverket</translation> +<translation id="4487489714832036847">Chromebook bruker apper i stedet for tradisjonell programvare. Skaff deg apper for produktivitet, underholdning med mer.</translation> <translation id="4488502501195719518">Vil du slette alle dataene?</translation> <translation id="4493468155686877504">Anbefalt (<ph name="INSTALL_SIZE" />)</translation> <translation id="4495419450179050807">Ikke vis på denne siden</translation> @@ -2925,6 +2939,7 @@ <translation id="4546692474302123343">Google Assistent-taleinndata</translation> <translation id="4547659257713117923">Ingen faner fra andre enheter</translation> <translation id="4547672827276975204">Angi automatisk</translation> +<translation id="4548483925627140043">Fant ikke noe signal</translation> <translation id="4549791035683739768">Det er ikke lagret noen fingeravtrykk på sikkerhetsnøkkelen</translation> <translation id="4551763574344810652">Trykk på <ph name="MODIFIER_KEY_DESCRIPTION" /> for å angre</translation> <translation id="4552089082226364758">Flash</translation> @@ -2964,6 +2979,7 @@ <translation id="4582563038311694664">Tilbakestill alle innstillingene</translation> <translation id="4585793705637313973">Endre siden</translation> <translation id="4586275095964870617">Kunne ikke åpne <ph name="URL" /> i en alternativ nettleser. Kontakt systemadministrator.</translation> +<translation id="458794348635939462">Kunne ikke finne tilknytning til alle vertene</translation> <translation id="4589713469967853491">Loggene er skrevet til Nedlastinger-katalogen.</translation> <translation id="4590324241397107707">Databaselagring</translation> <translation id="4592891116925567110">App for tegning med pekepenn</translation> @@ -3347,6 +3363,7 @@ <translation id="5089810972385038852">Fylke/delstat</translation> <translation id="5094721898978802975">kommunisere med samarbeidende integrerte apper</translation> <translation id="5097002363526479830">Kunne ikke koble til nettverket «<ph name="NAME" />»: <ph name="DETAILS" /></translation> +<translation id="5097649414558628673">Verktøy: <ph name="PRINT_NAME" /></translation> <translation id="5097874180538493929">Klikk automatisk når markøren stanser</translation> <translation id="5101042277149003567">Åpne alle bokmerker</translation> <translation id="5101839224773798795">Klikk automatisk når pekeren stopper</translation> @@ -3565,6 +3582,7 @@ <translation id="5370819323174483825">&Last inn på nytt</translation> <translation id="5372529912055771682">Denne versjonen av operativsystemet støtter ikke registreringsmodusen som ble angitt. Kontroller at du kjører den nyeste versjonen, og prøv på nytt.</translation> <translation id="5372579129492968947">Løsne utvidelsen</translation> +<translation id="5372659122375744710">Wi-Fi-nettverket er ikke sikkert</translation> <translation id="5376169624176189338">Klikk for å gå tilbake – hold for å se logg</translation> <translation id="5376931455988532197">Filen er for stor</translation> <translation id="5377721922656071359">{COUNT,plural, =1{<ph name="ATTACHMENTS" /> ble sendt til <ph name="DEVICE_NAME" />}other{<ph name="ATTACHMENTS" /> ble sendt til <ph name="DEVICE_NAME" />}}</translation> @@ -3594,6 +3612,7 @@ <translation id="5414566801737831689">lese ikonene på nettstedene du besøker</translation> <translation id="5417312524372586921">Nettlesertemaer</translation> <translation id="5419405654816502573">Voice Match</translation> +<translation id="5420274697768050645">Krev passord for å låse opp enheten, for ekstra sikkerhet</translation> <translation id="5420438158931847627">Bestemmer skarpheten på tekst og bilder</translation> <translation id="5422221874247253874">Tilgangspunkt</translation> <translation id="5422781158178868512">Beklager, men den eksterne lagringsenheten din ble ikke gjenkjent.</translation> @@ -3718,6 +3737,7 @@ <translation id="5548606607480005320">Sikkerhetssjekk</translation> <translation id="5551573675707792127">Tastatur og innskriving av tekst</translation> <translation id="5553089923092577885">Retningslinjetilordninger for sertifikat</translation> +<translation id="5554403733534868102">Etter dette er det slutt på å vente på oppdateringer</translation> <translation id="5554489410841842733">Dette ikonet vises når utvidelsen kan brukes på gjeldende side.</translation> <translation id="5554720593229208774">Sertifiseringsinstans for e-post</translation> <translation id="5556459405103347317">Last inn på nytt</translation> @@ -4131,6 +4151,7 @@ <translation id="6061882183774845124">Send link til enhetene dine</translation> <translation id="6064217302520318294">Skjermlås</translation> <translation id="6065289257230303064">Katalogattributter for sertifikatemne</translation> +<translation id="6069464830445383022">Google-kontoen din er Chromebook-påloggingen din</translation> <translation id="6069671174561668781">Angi bakgrunnsbilde</translation> <translation id="6071181508177083058">bekreft passordet</translation> <translation id="6071576563962215370">Systemet kunne ikke opprette enhetens attributtlås under installasjonen.</translation> @@ -4173,6 +4194,7 @@ <translation id="6104311680260824317">Kan ikke knytte enheten til domenet. Tjeneren støtter ikke de angitte Kerberos-krypteringstypene. Du finner innstillinger for kryptering under «Flere alternativer».</translation> <translation id="6104796831253957966">Utskriftskøen er full</translation> <translation id="6105994589138235234">Synkronisering av Chrome-nettleser</translation> +<translation id="6108689792487843350">Gatewayen er utilgjengelig</translation> <translation id="6111972606040028426">Slå på Google-assistenten</translation> <translation id="6112294629795967147">Trykk for å endre størrelsen</translation> <translation id="6112727384379533756">Legg til en sak</translation> @@ -4233,6 +4255,7 @@ <translation id="6178664161104547336">Velg et sertifikat</translation> <translation id="6181431612547969857">Nedlastingen ble blokkert</translation> <translation id="6185132558746749656">Enhetsposisjon</translation> +<translation id="6191293864534840972">Navnetjenerne inneholder feil</translation> <translation id="6195446518998936840">For at du skal kunne konfigurere foreldrekontroll, må barnet ditt ha en Google-konto som du hjelper til med å administrere. Med Family Link-appen kan du angi grenser for skjermtid, godkjenne eller blokkere nettsteder med mer.</translation> <translation id="6195693561221576702">Denne enheten kan ikke konfigureres i demomodus uten nett.</translation> <translation id="6196640612572343990">Blokkér informasjonskapsler fra tredjeparter</translation> @@ -4446,6 +4469,7 @@ <translation id="6451591602925140504">{NUM_PAGES,plural, =0{<ph name="PAGE_TITLE" />}=1{<ph name="PAGE_TITLE" /> og 1 fane til}other{<ph name="PAGE_TITLE" /> og # faner til}}</translation> <translation id="6451689256222386810">Hvis du har glemt passordfrasen din eller vil endre denne innstillingen, må du <ph name="BEGIN_LINK" />tilbakestille synkroniseringen<ph name="END_LINK" />.</translation> <translation id="6452181791372256707">Avslå</translation> +<translation id="6452251728599530347"><ph name="PERCENT" /> fullført</translation> <translation id="6452961788130242735">Nettverksproblem eller ugyldig område</translation> <translation id="6455264371803474013">På bestemte nettsteder</translation> <translation id="6455894534188563617">&Ny mappe</translation> @@ -4502,6 +4526,7 @@ <ph name="EVENT_NAME" /></translation> <translation id="6520876759015997832">Søkeresultat <ph name="LIST_POSITION" /> av <ph name="LIST_SIZE" />: <ph name="SEARCH_RESULT_TEXT" />. Trykk på Enter for å navigere til denne delen.</translation> <translation id="652492607360843641">Du er koblet til et <ph name="NETWORK_TYPE" />-nettverk.</translation> +<translation id="6527081081771465939">Ukjent Wi-Fi-sikkerhetsprotokoll</translation> <translation id="6527303717912515753">Del</translation> <translation id="6528513914570774834">La andre brukere av denne enheten bruke dette nettverket</translation> <translation id="652948702951888897">Chrome-logg</translation> @@ -4618,6 +4643,7 @@ <translation id="6680442031740878064">Tilgjengelig: <ph name="AVAILABLE_SPACE" /></translation> <translation id="6680650203439190394">Hastighet</translation> <translation id="6681668084120808868">Ta et bilde</translation> +<translation id="6684827949542560880">Laster ned den nyeste oppdateringen</translation> <translation id="668599234725812620">Åpne Google Play</translation> <translation id="6686490380836145850">Lukk fanene til høyre</translation> <translation id="6686817083349815241">Lagre passordet ditt</translation> @@ -4727,6 +4753,7 @@ <translation id="6812841287760418429">Behold endringene</translation> <translation id="6817174620439930047">Spør meg når nettsteder vil bruke systemeksklusive meldinger for å få tilgang til MIDI-enheter (anbefales)</translation> <translation id="6818198425579322765">Sidespråket du vil oversette</translation> +<translation id="6818802132960437751">Innebygd virusbeskyttelse</translation> <translation id="682123305478866682">Cast skrivebordet</translation> <translation id="6823174134746916417">Berøringsklikk på styreflaten</translation> <translation id="6823506025919456619">Du må logge på Chrome for å se enhetene dine</translation> @@ -5373,6 +5400,7 @@ <translation id="7631205654593498032">Når du kobler sammen enhetene, godtar du at <ph name="DEVICE_TYPE" /> kan</translation> <translation id="7631887513477658702">Åpne &alltid filer av denne typen</translation> <translation id="7632948528260659758">Kunne ikke oppdatere de følgende kioskappene:</translation> +<translation id="7633724038415831385">Dette er den eneste gangen du må vente på en oppdatering. På Chromebook skjer programvareoppdateringer i bakgrunnen.</translation> <translation id="7634566076839829401">Noe gikk galt. Prøv på nytt.</translation> <translation id="763632859238619983">Ikke tillat at nettsteder installerer betalingsbehandlere</translation> <translation id="7636919061354591437">Installer på denne enheten</translation> @@ -5651,6 +5679,7 @@ <translation id="7933314993013528982">{NUM_TABS,plural, =1{Slå på lyden for nettstedet}other{Slå på lyden for nettstedene}}</translation> <translation id="7933634003144813719">Administrer delte mapper</translation> <translation id="793531125873261495">Feil ved nedlasting av den virtuelle maskinen. Prøv på nytt.</translation> +<translation id="7936303884198020182">Fant ingen navnetjenere</translation> <translation id="7938594894617528435">Frakoblet for øyeblikket</translation> <translation id="7939062555109487992">Avanserte alternativer</translation> <translation id="7939412583708276221">Behold uansett</translation> @@ -5894,6 +5923,7 @@ <translation id="8226742006292257240">Nedenfor ser du et tilfeldig generert TPM-passord som er tildelt datamaskinen din:</translation> <translation id="8227119283605456246">Legg ved fil</translation> <translation id="8230134520748321204">Vil du lagre passord for <ph name="ORIGIN" />?</translation> +<translation id="8230672074305416752">Kunne ikke pinge gatewayen for standardnettverket</translation> <translation id="8234795456569844941">Hjelp programutviklerne våre med å løse dette problemet. Fortell oss hva som skjedde rett før du fikk profilfeilmeldingen:</translation> <translation id="8236917170563564587">Del denne fanen i stedet</translation> <translation id="8237647586961940482">Mørk rosa og rød</translation> @@ -5954,6 +5984,7 @@ <translation id="8288032458496410887">Avinstaller <ph name="APP" /></translation> <translation id="8289128870594824098">Diskstørrelse</translation> <translation id="8291967909914612644">Land for leverandøren av hjemmeenheten</translation> +<translation id="8293206222192510085">Legg til bokmerke</translation> <translation id="8294431847097064396">Kilde</translation> <translation id="8297006494302853456">Svakt</translation> <translation id="8299319456683969623">Du er for øyeblikket ikke på nett.</translation> @@ -6003,6 +6034,7 @@ <translation id="8363095875018065315">stabil</translation> <translation id="8363142353806532503">Mikrofonen er blokkert</translation> <translation id="8363763184161554204">tillatt <ph name="PERMISSION" /></translation> +<translation id="8364946094152050673">Tomme navnetjenere</translation> <translation id="8366396658833131068">Nettverkstilkoblingen er gjenopprettet. Velg et annet nettverk eller trykk på «Fortsett»-knappen nedenfor for å starte kioskappen din.</translation> <translation id="8368027906805972958">Ukjent eller ikke-støttet enhet (<ph name="DEVICE_ID" />)</translation> <translation id="8368859634510605990">&Åpne alle bokmerker</translation> @@ -6088,8 +6120,10 @@ <translation id="8472623782143987204">maskinvarestøttet</translation> <translation id="8473863474539038330">Adresser med mer</translation> <translation id="8475313423285172237">Et annet program på datamaskinen la til en utvidelse som kan endre måten Chrome fungerer på.</translation> +<translation id="8475690821716466388">Wi-Fi-nettverket er sikret med den svake protokollen WEP PSK</translation> <translation id="8477241577829954800">Erstattet</translation> <translation id="8477384620836102176">&Generelt</translation> +<translation id="8477551185774834963">DNS-forsinkelsen er noe høyere enn den tillatte grenseverdien</translation> <translation id="8480082892550707549">Selv om du har lastet ned filer fra dette nettstedet før, kan det hende at nettstedet er midlertidig utrygt (hacket). Prøv å laste ned filen på nytt senere.</translation> <translation id="8480869669560681089">Ukjent enhet fra <ph name="VENDOR_NAME" /></translation> <translation id="8481187309597259238">Bekreft USB-tillatelse</translation> @@ -6141,6 +6175,7 @@ <translation id="8546930481464505581">Tilpass Touch Bar</translation> <translation id="8547013269961688403">Aktivér lupen for hele skjermen</translation> <translation id="85486688517848470">Hold Søk-tasten inne for å endre funksjonene for tastene på øverste rad</translation> +<translation id="8549316893834449916">Du bruker Google-kontoen din til å logge på Chromebook – den samme kontoen som du bruker for Gmail, Disk, YouTube med mer.</translation> <translation id="8551388862522347954">Lisenser</translation> <translation id="8551588720239073785">Innstillinger for dato og klokkeslett</translation> <translation id="8553342806078037065">Administrer andre</translation> @@ -6279,6 +6314,7 @@ <translation id="8720200012906404956">Ser etter et mobilnettverk. <ph name="BEGIN_LINK" />Finn ut mer<ph name="END_LINK" /></translation> <translation id="8720816553731218127">Initialiseringen av installsjonsattributtene er tidsavbrutt.</translation> <translation id="8722912030556880711">Send bruks- og diagnostikkdata. Denne enheten sender for øyeblikket diagnostikk-, enhets- og appbruksdata til Google automatisk. Dette bidrar til å gjøre systemet og appene bedre og mer stabile. Noen aggregerte data hjelper også Google-apper og -partnere, for eksempel Android-utviklere. Hvis du har slått på innstillingen for annen nett- og appaktivitet, kan disse dataene bli lagret i Google-kontoen din. <ph name="BEGIN_LINK2" />Finn ut mer<ph name="END_LINK2" /></translation> +<translation id="8723108084122415655">Tidsforsinkelsen for ikke-standardnettverket er over grenseverdien</translation> <translation id="8724405322205516354">Når du ser dette ikonet, kan du bruke fingeravtrykket ditt for å identifisere deg eller godkjenne kjøp.</translation> <translation id="8724409975248965964">Fingeravtrykk lagt til</translation> <translation id="8724859055372736596">&Vis i mappe</translation> @@ -6456,6 +6492,7 @@ <translation id="8909833622202089127">Nettstedet sporer posisjonen din</translation> <translation id="8910146161325739742">Del skjermen</translation> <translation id="8910222113987937043">Endringer i bokmerkene, loggen, passordene og andre innstillinger du har, blir ikke lenger synkronisert med Google-kontoen din. Data som allerede er lagret i Google-kontoen din, blir imidlertid værende og kan administreres ved hjelp av <ph name="BEGIN_LINK" />Google Oversikt<ph name="END_LINK" />.</translation> +<translation id="8910721771319628100">Tidsforsinkelsen for standardnettverket er over grenseverdien</translation> <translation id="8912362522468806198">Google-konto</translation> <translation id="8912793549644936705">Strekk ut</translation> <translation id="8912810933860534797">Aktivér automatisk skanning</translation>
diff --git a/chrome/app/resources/generated_resources_or.xtb b/chrome/app/resources/generated_resources_or.xtb index e67d036..3a50012 100644 --- a/chrome/app/resources/generated_resources_or.xtb +++ b/chrome/app/resources/generated_resources_or.xtb
@@ -328,6 +328,7 @@ <translation id="1383876407941801731">Search</translation> <translation id="1386387014181100145">ହାୱଡି</translation> <translation id="1386791642444521222">ଫିଜିକାଲ୍ SIM ସକ୍ରିୟ କରନ୍ତୁ</translation> +<translation id="1387519831959169718">ଆପଣଙ୍କ ବ୍ରାଉଜିଂକୁ ଅଲଗା ରଖିବାକୁ, ଆପଣ <ph name="NEW_USER" /> ପାଇଁ ଏକ ନୂଆ ପ୍ରୋଫାଇଲ୍ ତିଆରି କରିପାରିବେ</translation> <translation id="138784436342154190">ଡିଫଲ୍ଟ ଷ୍ଟାର୍ଟଅପ୍ ପୃଷ୍ଠାକୁ ରିଷ୍ଟୋର୍ କରିବେ?</translation> <translation id="1388728792929436380">ଅପଡେଟଗୁଡ଼ିକ ସମ୍ପୂର୍ଣ୍ଣ ହେଲେ <ph name="DEVICE_TYPE" /> ପୁଣି ରିଷ୍ଟାର୍ଟ ହେବ।</translation> <translation id="1390548061267426325">ନିୟମିତ ଟାବ୍ ଭାବରେ ଖୋଲନ୍ତୁ</translation> @@ -342,6 +343,7 @@ <translation id="139911022479327130">ଆପଣଙ୍କର ଫୋନ୍ ଅନଲକ୍ କରି ଏହା ଆପଣ ବୋଲି ସୁନିଶ୍ଚିତ କରନ୍ତୁ</translation> <translation id="1399511500114202393">କୌଣସି ଉପଯୋଗକର୍ତ୍ତା ସାର୍ଟିଫିକେଟ୍ ନାହିଁ</translation> <translation id="1401308693935339022">ଲୋକେସନ୍ ବ୍ୟବହାର କରନ୍ତୁ। ଏହି ଡିଭାଇସର ଲୋକେସନ୍ ବ୍ୟବହାର କରିବା ପାଇଁ ଲୋକେସନ୍ ଅନୁମତି ସହିତ ଆପ୍ ଓ ସେବାଗୁଡ଼ିକୁ ଅନୁମତି ଦିଅନ୍ତୁ। ସମୟ ଅନୁଯାୟୀ Google ଲୋକେସନ୍ ଡାଟା ସଂଗ୍ରହ କରିପାରେ ଏବଂ ଏକ ଅଜଣା ଉପାୟରେ ଏହି ଡାଟାକୁ ଲୋକେସନ୍ ସଠିକତା ତଥା ଲୋକେସନ୍-ଆଧାରିତ ସେବାଗୁଡ଼ିକରେ ଉନ୍ନତି ଆଣିବାକୁ ବ୍ୟବହାର କରିପାରେ।</translation> +<translation id="1403222014593521787">ପ୍ରକ୍ସି ସହିତ ସଂଯୋଗ କରିବାକୁ ଅକ୍ଷମ</translation> <translation id="140520891692800925"><ph name="PROFILE_DISPLAY_NAME" /> (ପର୍ଯ୍ୟବେକ୍ଷିତ)</translation> <translation id="1405779994569073824">କ୍ରାସ୍ ହୋଇଯାଇଛି।</translation> <translation id="1406500794671479665">ଯାଞ୍ଚ ହେଉଛି...</translation> @@ -475,6 +477,7 @@ <translation id="1555130319947370107">ନୀଳ</translation> <translation id="1556537182262721003">ପ୍ରୋଫାଇଲ୍କୁ ଏକ୍ସଟେନ୍ସନ୍ ଡିରେକ୍ଟୋରୀ ପଠାଯାଇପାରିଲାନାହିଁ।</translation> <translation id="155865706765934889">ଟଚ୍ପ୍ୟାଡ୍</translation> +<translation id="1563702743503072935">ଆପଣ ସାଇନ୍ ଇନ୍ କରିଥିବା ସମୟରେ ଆପଣଙ୍କ Google ଆକାଉଣ୍ଟରୁ ପାସୱାର୍ଡଗୁଡ଼ିକ ଏହି ଡିଭାଇସରେ ମଧ୍ୟ ଉପଲବ୍ଧ ହେବ</translation> <translation id="1566049601598938765">ୱେବ୍ସାଇଟ୍</translation> <translation id="15662109988763471">ଚୟନ କରାଯାଇଥିବା ପ୍ରିଣ୍ଟର୍ ଉପଲବ୍ଧ ନାହିଁ କିମ୍ବା ଠିକ୍ ଭାବେ ଇନ୍ଷ୍ଟଲ୍ କରାଯାଇନାହିଁ। ଆପଣଙ୍କର ପ୍ରିଣ୍ଟର୍ ଯାଞ୍ଚ କରନ୍ତୁ କିମ୍ବା ଅନ୍ୟ ଏକ ପ୍ରିଣ୍ଟର୍ ଚୟନ କରି ଦେଖନ୍ତୁ।</translation> <translation id="1567387640189251553">ଯେବେଠାରୁ ଆପଣ ଶେଷଥର ନିଜର ପାସ୍ୱର୍ଡ ଲେଖିଥିଲେ, ସେବେଠାରୁ ଏକ ଅଲଗା କୀବୋର୍ଡ ସଂଯୋଗ କରାଯାଇଛି। ଏହା ଆପଣଙ୍କର କୀ'ଷ୍ଟ୍ରୋକ୍କୁ ଚୋରି କରିବାକୁ ପ୍ରଚେଷ୍ଟା କରୁଥାଇପାରେ।</translation> @@ -517,7 +520,6 @@ <translation id="1608668830839595724">ଚୟନ କରାଯାଇଥିବା ଆଇଟମ୍ଗୁଡ଼ିକ ପାଇଁ ଅଧିକ ପଦକ୍ଷେପଗୁଡ଼ିକ</translation> <translation id="161042844686301425">ସାୟାନ୍</translation> <translation id="1611432201750675208">ଆପଣଙ୍କ ଡିଭାଇସ୍ ଲକ୍ ଅଛି</translation> -<translation id="1611584202130317952">ପ୍ରୋଭିଜନିଂ ଫ୍ଲୋରେ ବାଧା ଆସିଛି। ଦୟାକରି ପୁଣି ଚେଷ୍ଟା କରନ୍ତୁ କିମ୍ବା ଆପଣଙ୍କ ଡିଭାଇସ୍ର ମାଲିକ ବା ବ୍ୟବସ୍ଥାପକଙ୍କ ସହିତ ଯୋଗାଯୋଗ କରନ୍ତୁ।</translation> <translation id="1614511179807650956">ଆପଣ ବୋଧହୁଏ, ଆପଣଙ୍କର ମୋବାଇଲ୍ ଡାଟା ରିହାତି ବ୍ୟବହାର କରିସାରିଛନ୍ତି। ଅଧିକ ଡାଟା କିଣିବାକୁ <ph name="NAME" />ର ସକ୍ରିୟକରଣ ପୋର୍ଟାଲ୍କୁ ଯାଆନ୍ତୁ</translation> <translation id="161460670679785907">ଆପଣଙ୍କର ଫୋନ୍କୁ ଚିହ୍ନଟ କରିପାରୁନାହିଁ</translation> <translation id="1616206807336925449">ଏହି ଏକ୍ସଟେନ୍ସନ୍ ପାଇଁ କୌଣସି ବିଶେଷ ଅନୁମତିର ଆବଶ୍ୟକତା ନାହିଁ।</translation> @@ -900,6 +902,7 @@ <translation id="2080070583977670716">ଅଧିକ ସେଟିଂ</translation> <translation id="2081816110395725788">ବ୍ୟାଟେରୀ ଚାର୍ଜ ହେଉନଥିବା ସମୟରେ ଡିଭାଇସକୁ ନିଷ୍କ୍ରିୟ ମୋଡରେ ରଖନ୍ତୁ</translation> <translation id="2082187087049518845">ଗୋଷ୍ଠୀ ଟାବ୍</translation> +<translation id="2082510809738716738">ଏକ ଥିମ୍ ରଙ୍ଗ ବାଛନ୍ତୁ</translation> <translation id="2087822576218954668">ପ୍ରିଣ୍ଟ କରନ୍ତୁ: <ph name="PRINT_NAME" /></translation> <translation id="2088690981887365033">VPN ନେଟ୍ୱାର୍କ</translation> <translation id="208928984520943006">ଯେ କୌଣସି ସମୟରେ ମୂଳସ୍କ୍ରିନକୁ ଯିବା ପାଇଁ ତଳୁ ଉପରକୁ ସ୍ୱାଇପ୍ କରନ୍ତୁ।</translation> @@ -954,6 +957,7 @@ <translation id="2148219725039824548">ସେୟାର୍ ଖଞ୍ଜିବାରେ ତ୍ରୁଟି। ନେଟ୍ୱର୍କରେ ଧାର୍ଯ୍ୟ କରାଯାଇଥିବା ସେୟାର୍ ମିଳିଲା ନାହିଁ।</translation> <translation id="2148756636027685713">ଫର୍ମାଟିଂ ଶେଷ ହୋଇଛି</translation> <translation id="2148892889047469596">ଟାବ୍ କାଷ୍ଟ କରନ୍ତୁ</translation> +<translation id="2149973817440762519">ବୁକମାର୍କ୍ ସମ୍ପାଦନ କରନ୍ତୁ</translation> <translation id="2150139952286079145">ଗନ୍ତବ୍ୟସ୍ଥଳ ଖୋଜନ୍ତୁ</translation> <translation id="2150661552845026580">"<ph name="EXTENSION_NAME" />" ଯୋଗ କରିବେ?</translation> <translation id="2151576029659734873">ଅବୈଧ ଟାବ୍ ସୂଚୀ ଲେଖାଯାଇଛି।</translation> @@ -1050,6 +1054,7 @@ <translation id="2256115617011615191">ରିଷ୍ଟାର୍ଟ କରନ୍ତୁ</translation> <translation id="225614027745146050">ସ୍ଵାଗତ</translation> <translation id="225692081236532131">ସକ୍ରିୟକରଣ ସ୍ଥିତି</translation> +<translation id="2257053455312861282">ଜଣେ ବିଦ୍ୟାର୍ଥୀ ଭାବରେ ଏବେ ବି ବାପାମାଙ୍କ ନିୟନ୍ତ୍ରଣରେ କାମ କରୁଥିବା ସମୟରେ ଏକ ସ୍କୁଲ ଆକାଉଣ୍ଟକୁ ଯୋଗ କରିବା ଦ୍ଵାରା ୱେବସାଇଟ୍, ଏକ୍ସଟେନସନ୍ ଏବଂ ଆପଗୁଡ଼ିକରେ ସହଜରେ ସାଇନ୍-ଇନ୍ କରିବାକୁ ସକ୍ଷମ କରିଥାଏ।</translation> <translation id="2261323523305321874">ଆପଣଙ୍କର ବ୍ୟବସ୍ଥାପକ ସମ୍ପୂର୍ଣ୍ଣ ସିଷ୍ଟମ୍ରେ ଏକ ପରିବର୍ତ୍ତନ କରିଛନ୍ତି ଯାହା କିଛି ପୁରୁଣା ପ୍ରୋଫାଇଲ୍ଗୁଡ଼ିକ ଅକ୍ଷମ କରେ।</translation> <translation id="2262332168014443534">ବର୍ତ୍ତମାନ ଲାଇଟ୍ ମୋଡ୍ HTTPS ସହିତ ସମସ୍ତ ପୃଷ୍ଠାରେ ଦ୍ରୁତତର ବ୍ରାଉଜିଂ କରିଥାଏ।</translation> <translation id="2262477216570151239">ପୁନରାବୃତ୍ତିର ପୂର୍ବରୁ ବିଳମ୍ବ</translation> @@ -1963,6 +1968,7 @@ <translation id="3396800784455899911">"ରାଜି ଅଛି ଏବଂ ଜାରି ରଖନ୍ତୁ" ବଟନ୍ରେ କ୍ଲିକ୍ କରିବା ଦ୍ୱାରା, ଆପଣ Googleର ଏହି ସେବାଗୁଡ଼ିକ ପାଇଁ ଉପରେ ବର୍ଣ୍ଣନା କରାଯାଇଥିବା ପ୍ରକ୍ରିୟାରେ ସମ୍ମତ ହେଉଛନ୍ତି।</translation> <translation id="3399432415385675819">ବିଜ୍ଞପ୍ତିଗୁଡ଼ିକୁ ଅକ୍ଷମ କରାଯିବ</translation> <translation id="3400390787768057815"><ph name="WIDTH" /> x <ph name="HEIGHT" /> (<ph name="REFRESH_RATE" /> ହର୍ଜ) - ଇଣ୍ଟର୍ଲେସ୍ ହୋଇଛି</translation> +<translation id="3402255108239926910">ଏକ ଅବତାର ବାଛନ୍ତୁ</translation> <translation id="3402585168444815892">ଡେମୋ ମୋଡରେ ପଞ୍ଜିକରଣ କରାଯାଉଛି</translation> <translation id="340282674066624"><ph name="DOWNLOAD_RECEIVED" />, <ph name="TIME_LEFT" /></translation> <translation id="3404065873681873169">ଏହି ସାଇଟ୍ ପାଇଁ କୌଣସି ପାସ୍ୱର୍ଡ ସେଭ୍ କରାଯାଇନାହିଁ</translation> @@ -1990,6 +1996,7 @@ <translation id="3428747202529429621">ଯେତେବେଳେ ଆପଣ ସାଇନ୍ ଇନ୍ କରନ୍ତି ଏହା ଆପଣଙ୍କୁ Chromeରେ ସୁରକ୍ଷିତ ରଖେ ଏବଂ ଅନ୍ୟ Google ଆପଗୁଡ଼ିକରେ ଆପଣଙ୍କ ସୁରକ୍ଷାକୁ ଉନ୍ନତ କରିବା ପାଇଁ ବ୍ୟବହାର କରାଯାଇପାରେ</translation> <translation id="3428800329481094896">Linux କଣ୍ଟେନରର ssh କୀଗୁଡ଼ିକ ଫେଚ୍ କରାଯାଉଛି</translation> <translation id="3429275422858276529">ଏହାକୁ ପରେ ସହଜରେ ଖୋଜିବା ପାଇଁ ଏହି ପୃଷ୍ଠାକୁ ବୁକ୍ମାର୍କ କରନ୍ତୁ</translation> +<translation id="3431370546335300761">ପ୍ରକ୍ସି ସହ ସଂଯୋଗ କରିବାକୁ ସାଇନ୍ ଇନ୍ କରନ୍ତୁ</translation> <translation id="3432227430032737297">ସମସ୍ତ ପ୍ରଦର୍ଶନକୁ କାଢ଼ି ଦିଅନ୍ତୁ</translation> <translation id="3432757130254800023">ସ୍ଥାନୀୟ ନେଟ୍ୱର୍କରେ ପ୍ରଦର୍ଶନ କରିବା ପାଇଁ ଅଡିଓ ଏବଂ ଭିଡିଓ ପଠାନ୍ତୁ</translation> <translation id="3432762828853624962">ସେୟାର୍ କରାଯାଇଥିବା କର୍ମୀ</translation> @@ -2371,6 +2378,7 @@ <translation id="3841964634449506551">ପାସ୍ୱାର୍ଡ ଅବୈଧ ଅଟେ</translation> <translation id="3842552989725514455">ସେରିଫ୍ ଫଣ୍ଟ</translation> <translation id="3843464315703645664">ଆଭ୍ୟନ୍ତରୀଣ ଭାବେ ଆଲାଉଲିଷ୍ଟ କରାଯାଇଛି</translation> +<translation id="3844888638014364087">ଇମୋଜି ଭର୍ତ୍ତି କରାଯାଇଛି</translation> <translation id="3846116211488856547">ୱେବ୍ସାଇଟ୍, Android ଆପ୍ସ ଏବଂ ଆହୁରି ଅନେକ କିଛିକୁ ଡେଭଲପ୍ କରିବା ପାଇଁ ଟୁଲ୍ଗୁଡ଼ିକୁ ପ୍ରାପ୍ତ କରନ୍ତୁ। Linuxକୁ ଇନ୍ଷ୍ଟଲ୍ କରିବା ଦ୍ଵାରା <ph name="DOWNLOAD_SIZE" /> ପରିମାଣର ଡାଟା ଡାଉନ୍ଲୋଡ୍ ହେବ।</translation> <translation id="3847319713229060696">ୱେବରେ ସମସ୍ତଙ୍କ ପାଇଁ ସୁରକ୍ଷାକୁ ଉନ୍ନତ କରିବାରେ ସାହାଯ୍ୟ କରନ୍ତୁ</translation> <translation id="385051799172605136">ପଛକୁ</translation> @@ -2673,6 +2681,7 @@ <translation id="4232375817808480934">Kerberos କନ୍ଫିଗର୍ କରନ୍ତୁ</translation> <translation id="4235200303672858594">ସମଗ୍ର ସ୍କ୍ରିନ୍</translation> <translation id="4235965441080806197">ସାଇନ୍ ଇନ୍ ବାତିଲ୍ କରନ୍ତୁ</translation> +<translation id="4237773362828263530">"*" ୱାଇଲ୍ଡକାର୍ଡଗୁଡ଼ିକ ଥିବା ସେଟିଂସ୍ ଆଉ ସମର୍ଥିତ ନୁହେଁ। <ph name="BEGIN_LINK" />ଏହି ସେଟିଂସ୍ ପରିବର୍ତ୍ତନ<ph name="END_LINK" /> କରିବାକୁ ଆପଣଙ୍କ ଆଡମିନିଷ୍ଟ୍ରେଟରଙ୍କ ସହ ଯୋଗାଯୋଗ କରନ୍ତୁ।</translation> <translation id="4242145785130247982">ଏକାଧିକ କ୍ଲାଏଣ୍ଟ ସାର୍ଟିଫିକେଟ୍ ସମର୍ଥନ କରେ ନାହିଁ</translation> <translation id="4242533952199664413">ସେଟିଂସ୍ ଖୋଲନ୍ତୁ</translation> <translation id="4242577469625748426">ଡିଭାଇସ୍ରେ ନୀତି ସେଟିଂସ୍ ଇନ୍ଷ୍ଟଲ୍ କରିବାରେ ବିଫଳ ହୋଇଛି: <ph name="VALIDATION_ERROR" />।</translation> @@ -2783,6 +2792,7 @@ <translation id="4384312707950789900">ଅଗ୍ରାଧିକାରରେ ଯୋଗ କରନ୍ତୁ</translation> <translation id="4384652540891215547">ଏକ୍ସଟେନ୍ସନ୍ ସକ୍ରିୟ କରନ୍ତୁ</translation> <translation id="438503109373656455">ସାରାଟୋଗା</translation> +<translation id="4385040356362222432">ଆପଣଙ୍କର <ph name="NEW_USER" /> ବ୍ରାଉଜିଂକୁ ଆପଣଙ୍କ <ph name="EXISTING_USER" /> ବ୍ରାଉଜିଂ ଠାରୁ ଅଲଗା କରିବାକୁ, ଏକ ନୂଆ ପ୍ରୋଫାଇଲ୍ ତିଆରି କରନ୍ତୁ</translation> <translation id="4387004326333427325">ପ୍ରମାଣିକିକରଣ ସାର୍ଟିଫିକେଟ୍ ରିମୋଟ୍ ଭାବେ ଖାରଜ କରାଯାଇଛି</translation> <translation id="4387890294700445764">ଚୋରି ହୋଇଯାଇଥିବା ପାସୱାର୍ଡଗୁଡ଼ିକ</translation> <translation id="4389091756366370506">ଉପଯୋଗକର୍ତ୍ତା <ph name="VALUE" /></translation> @@ -2890,6 +2900,7 @@ <translation id="4522570452068850558">ବିବରଣୀ</translation> <translation id="4522600456902129422">କ୍ଲିପ୍ବୋର୍ଡ ଦେଖିବାକୁ ଏହି ସାଇଟ୍କୁ ଜାରି ରଖିବା ପାଇଁ ଅନୁମତି ଦିଅନ୍ତୁ</translation> <translation id="4524832533047962394">ପ୍ରଦାନ କରାଯାଇଥିବା ନାମାଙ୍କନ ମୋଡ୍, ଅପରେଟିଂ ସିଷ୍ଟମ୍ର ଏହି ସଂସ୍କରଣରେ ସମର୍ଥିତ ନୁହେଁ। ଦୟାକରି ସୁନିଶ୍ଚିତ କରନ୍ତୁ କି ଆପଣ ନବୀନତମ ସଂସ୍କରଣ ଚଲାଉଛନ୍ତି।</translation> +<translation id="4527186207340858212">କାର୍ଯ୍ୟ ପାଇଁ ଏକ ନୂଆ ପ୍ରୋଫାଇଲ୍ ତିଆରି କରିବେ?</translation> <translation id="452750746583162491">ଆପଣଙ୍କ ସିଙ୍କ୍ କରାଯାଇଥିବା ଡାଟାର ସମୀକ୍ଷା କରନ୍ତୁ</translation> <translation id="4530494379350999373">ମୂଳ</translation> <translation id="4532646538815530781">ଏହି ସାଇଟ୍ ମୋସନ୍ ସେନ୍ସର୍ ବ୍ୟବହାର କରୁଛି।</translation> @@ -2940,6 +2951,9 @@ <translation id="4573515936045019911">Linux ଅପଗ୍ରେଡ୍ କରିବା ପାଇଁ ଏକ ନେଟୱାର୍କ ସଂଯୋଗର ଆବଶ୍ୟକତା ଅଛି। ଦୟାକରି ଇଣ୍ଟର୍ନେଟ୍ ସଂଯୋଗ କରି ପୁଣି ଚେଷ୍ଟା କରନ୍ତୁ।</translation> <translation id="457386861538956877">ଅଧିକ...</translation> <translation id="4574741712540401491">• <ph name="LIST_ITEM_TEXT" /></translation> +<translation id="457564749856982089">ଜଣେ ବିଦ୍ୟାର୍ଥୀ ଭାବରେ ବାପାମାଙ୍କ ନିୟନ୍ତ୍ରଣରେ କାମ କରୁଥିବା ସମୟରେ ଏକ ସ୍କୁଲ ଆକାଉଣ୍ଟକୁ ପ୍ରୋଫାଇଲ୍ ସହ ଯୋଗ କରିବା ଦ୍ଵାରା ୱେବସାଇଟ୍, ଏକ୍ସଟେନସନ୍ ଏବଂ ଆପଗୁଡ଼ିକୁ ସହଜରେ ସାଇନ୍-ଇନ୍ କରିବାକୁ ସକ୍ଷମ କରିଥାଏ। ଏହା ଜଣେ ପିଲାକୁ ସ୍କୁଲ ଆକାଉଣ୍ଟ ସହିତ ସିଙ୍କ୍ କରାଯାଇଥିବା ବୁକମାର୍କ, ପାସୱାର୍ଡ କିମ୍ବା ଅନ୍ୟ ବ୍ରାଉଜର୍ ଡାଟା ଆକ୍ସେସ୍ କରିବାକୁ ଦେଇନଥାଏ।<br><br> + ଯଦି ଆପଣଙ୍କ ପିଲା ସ୍କୁଲରେ କୌଣସି Chromebook ବ୍ୟବହାର କରେ ଏବଂ ଆପଣଙ୍କ ପିଲା ପାଖରେ ସମସ୍ତ ଆବଶ୍ୟକୀୟ ସ୍କୁଲ କାର୍ଯ୍ୟକୁ ଆକ୍ସେସ୍ ଅଛି ବୋଲି ସୁନିଶ୍ଚିତ କରିବାକୁ ଆପଣ ଘରେ ସ୍କୁଲର ଅନୁଭୂତି ଦେବାକୁ ଚାହୁଁଛନ୍ତି, ତେବେ ଦୟାକରି ଏହି Family Link ଆକାଉଣ୍ଟରୁ ସାଇନ୍ ଆଉଟ୍ କରି Chrome OS ଆକାଉଣ୍ଟ ପୃଷ୍ଠାରୁ ସ୍କୁଲ ଆକାଉଣ୍ଟରେ ସାଇନ୍ ଇନ୍ କରନ୍ତୁ (ଧ୍ୟାନ ଦିଅନ୍ତୁ: Family Link ବାପାମାଙ୍କ ନିୟନ୍ତ୍ରଣଗୁଡ଼ିକ ଲାଗୁ ହେବ ନାହିଁ)।<br><br> + ଯଦି ଆପଣଙ୍କ ପିଲା ସ୍କୁଲରେ କୌଣସି Chromebook ବ୍ୟବହାର କରେ ନାହିଁ କିମ୍ବା ଯଦି ଆପଣ ଆପଣଙ୍କ ଘରେ Family Link ବ୍ୟବହାର କରି ପିଲାର ଅନୁଭୂତି ପରିଚାଳନା କରିବାକୁ ପସନ୍ଦ କରନ୍ତି, ତେବେ ଦୟାକରି ଏହି ପ୍ରୋଫାଇଲରେ ଏକ ସ୍କୁଲ ଆକାଉଣ୍ଟ ଯୋଗ କରିବାକୁ ନିମ୍ନରେ ଥିବା ପରବର୍ତ୍ତୀ ବଟନରେ କ୍ଲିକ୍ କରନ୍ତୁ।</translation> <translation id="4576541033847873020">ବ୍ଲୁଟୁଥ୍ ଡିଭାଇସ୍ ପେୟାର୍ କରନ୍ତୁ</translation> <translation id="4579453506923101210">ସଂଯୁକ୍ତ ଥିବା ଫୋନ୍ ବିଚ୍ଛିନ୍ନ କରନ୍ତୁ</translation> <translation id="4579581181964204535"><ph name="HOST_NAME" />କୁ କାଷ୍ଟ କରିବାରେ ଅକ୍ଷମ।</translation> @@ -3077,6 +3091,7 @@ <translation id="4763408175235639573">ଯେତେବେଳେ ଆପଣ ଏହି ପୃଷ୍ଠା ଦେଖିଥିଲେ, ସେତେବେଳେ ନିମ୍ନରେ ଦିଆଯାଇଥିବା କୁକୀଗୁଡ଼ିକ ସେଟ୍ କରାଯାଇଥିଲା</translation> <translation id="4765582662863429759">ଆପଣଙ୍କର ଫୋନ୍ରୁ Chromebookକୁ ଟେକ୍ସଟ୍ ପ୍ରତିସାରଣ କରିବାକୁ Androidର ମେସେଜ୍ଗୁଡ଼ିକୁ ଅନୁମତି ଦିଏ।</translation> <translation id="4768332406694066911">ଆପଣଙ୍କ ପାଖରେ ଏହି ସଂଗଠନଗୁଡ଼ିକରୁ ସାର୍ଟିଫିକେଟ୍ଗୁଡ଼ିକ ଅଛି ଯାହା ଆପଣଙ୍କୁ ଚିହ୍ନଟ କରିଥାଏ</translation> +<translation id="477647109558161443">ଏକ ଡେସ୍କଟପ୍ ସର୍ଟକଟ୍ ତିଆରି କରନ୍ତୁ</translation> <translation id="4776917500594043016"><ph name="USER_EMAIL_ADDRESS" />ଙ୍କ ପାଇଁ ପାସ୍ୱାର୍ଡ</translation> <translation id="4777825441726637019">Play ଷ୍ଟୋର୍</translation> <translation id="4777943778632837590">ନେଟୱାର୍କ ନାମ ସର୍ଭର୍ କନଫିଗର୍ କରନ୍ତୁ</translation> @@ -3448,6 +3463,7 @@ <translation id="5249624017678798539">ଡାଉନ୍ଲୋଡ୍ ସମାପ୍ତ ହେବା ପୂର୍ବରୁ ବ୍ରାଉଜର୍ କ୍ରାଶ୍ ହୋଇଗଲା।</translation> <translation id="5250372599208556903"><ph name="SEARCH_ENGINE_NAME" /> ଆପଣଙ୍କୁ ସ୍ଥାନୀୟ ବିଷୟବସ୍ତୁ ଦେବା ପାଇଁ ଆପଣଙ୍କର ଲୋକେସନ୍କୁ ବ୍ୟବହାର କରିଥାଏ। ଆପଣ ଏହାକୁ <ph name="SETTINGS_LINK" />ରେ ପରିବର୍ତ୍ତନ କରିପାରିବେ।</translation> <translation id="5252456968953390977">ରୋମିଂ</translation> +<translation id="5252496130205799136">ପାସୱାର୍ଡଗୁଡ଼ିକୁ ସେଭ୍ ଏବଂ ପୂରଣ କରିବାକୁ ଆପଣଙ୍କ Google ଆକାଉଣ୍ଟ ବ୍ୟବହାର କରିବେ?</translation> <translation id="5252653240322147470">PIN <ph name="MAXIMUM" />ଟି ଅଙ୍କରୁ କମ୍ ହେବା ଆବଶ୍ୟକ ଅଟେ</translation> <translation id="5254368820972107711">କଢ଼ାଯିବାକୁ ଥିବା ଫାଇଲ୍ଗୁଡ଼ିକ ଦେଖାନ୍ତୁ</translation> <translation id="52550593576409946">କିଓସ୍କ ଆପ୍ଲିକେସନ୍କୁ ଲଞ୍ଚ କରିହେଲା ନାହିଁ।</translation> @@ -3712,6 +3728,7 @@ <translation id="5565735124758917034">ସକ୍ରିୟ ଅଛି</translation> <translation id="5567989639534621706">ଆପ୍ଲିକେସନ୍ କେଚ୍</translation> <translation id="5568069709869097550">ସାଇନ୍ ଇନ୍ କରିପାରିବ ନାହିଁ</translation> +<translation id="5571832155627049070">ଆପଣଙ୍କ ପ୍ରୋଫାଇଲ୍ କଷ୍ଟମାଇଜ୍ କରନ୍ତୁ</translation> <translation id="5572851009514199876">ଦୟାକରି Chromeରେ ସାଇନ୍ ଇନ୍ କରି ଆରମ୍ଭ କରନ୍ତୁ ଯାହା ଦ୍ୱାରା Chrome ଏହା ଯାଞ୍ଚ କରିପାରିବ ଯେ ଆପଣଙ୍କୁ ଏହି ସାଇଟ୍ ଆକ୍ସେସ୍ କରିବାକୁ ଅନୁମତି ଅଛି କି ନାହିଁ।</translation> <translation id="5575473780076478375">ଇନ୍କଗ୍ନିଟୋ ଏକ୍ସଟେନ୍ସନ୍: <ph name="EXTENSION_NAME" /></translation> <translation id="5575528586625653441">ଡେମୋ ପଞ୍ଜିକରଣ ଅନୁରୋଧରେ ଏକ ସମସ୍ୟା ହୋଇଛି।</translation> @@ -4287,6 +4304,7 @@ <translation id="6270770586500173387"><ph name="BEGIN_LINK1" />ସିଷ୍ଟମ୍ ଏବଂ ଆପ୍ ସୂଚନା <ph name="END_LINK1" /> ଏବଂ <ph name="BEGIN_LINK2" />ମେଟ୍ରିକ୍ସ<ph name="END_LINK2" /> ପଠାନ୍ତୁ</translation> <translation id="6272643420381259437">ପ୍ଲଗ୍ଇନ୍ ଡାଉନ୍ଲୋଡ୍ କରିବା ସମୟରେ ଏକ ତ୍ରୁଟି (<ph name="ERROR" />) ଦେଖାଯାଇଥିଲା</translation> <translation id="6273677812470008672">ଗୁଣବତ୍ତା</translation> +<translation id="6276210637549544171">ପ୍ରକ୍ସି <ph name="PROXY_SERVER" /> ପାଇଁ ଏକ ଉପଯୋଗକର୍ତ୍ତାନାମ ଓ ପାସୱାର୍ଡ ଆବଶ୍ୟକ</translation> <translation id="6277105963844135994">ନେଟ୍ୱାର୍କର ସମୟ ସମାପ୍ତ</translation> <translation id="6277518330158259200">ସ୍କ୍ରିନ୍ସଟ୍ ନିଅନ୍ତୁ</translation> <translation id="6278057325678116358">GTK+ ବ୍ୟବହାର କରନ୍ତୁ</translation> @@ -4307,6 +4325,7 @@ <translation id="6298962879096096191">Android ଆପ୍ସ ଇନ୍ଷ୍ଟଲ୍ କରିବାକୁ Google Play ବ୍ୟବହାର କରନ୍ତୁ</translation> <translation id="630065524203833229">&ପ୍ରସ୍ଥାନ କରନ୍ତୁ</translation> <translation id="6300718114348072351"><ph name="PRINTER_NAME" />କୁ ସ୍ୱଚାଳିତ ଭାବେ କନ୍ଫିଗର୍ କରାଯାଇପାରିଲା ନାହିଁ। ଦୟାକରି ଉନ୍ନତ ପ୍ରିଣ୍ଟର୍ ବିବରଣୀ ନିର୍ଦ୍ଦିଷ୍ଟ କରନ୍ତୁ। <ph name="LINK_BEGIN" />ଅଧିକ ଜାଣନ୍ତୁ<ph name="LINK_END" /></translation> +<translation id="6301076166764763868">ବ୍ୟକ୍ତିଗତ ଏବଂ <ph name="EXISTING_USER" /> ବ୍ରାଉଜିଂକୁ ଅଲଗା କରିବାକୁ, <ph name="NEW_USER" /> ପାଇଁ ଏକ ନୂଆ ପ୍ରୋଫାଇଲ୍ ତିଆରି କରନ୍ତୁ</translation> <translation id="630292539633944562">ବ୍ୟକ୍ତିଗତ ସୂଚନା ପରାମର୍ଶଗୁଡ଼ିକ</translation> <translation id="6305607932814307878">ବୈଶ୍ୱିକ ନୀତି:</translation> <translation id="6307990684951724544">ସିଷ୍ଟମ୍ ବ୍ୟସ୍ତ ଅଛି</translation> @@ -4511,6 +4530,7 @@ <translation id="6556866813142980365">ରି-ଡୁ କରନ୍ତୁ</translation> <translation id="6556903358015358733">ଥିମ୍ ଏବଂ ୱାଲପେପର୍</translation> <translation id="6557290421156335491">ମୋର ସର୍ଟକଟ୍ଗୁଡ଼ିକ</translation> +<translation id="6560151649238390891">ପରାମର୍ଶ ଭର୍ତ୍ତି କରାଯାଇଛି</translation> <translation id="6561560012278703671">’କ୍ୱାଇଟର୍ ମେସେଜିଂ’ ବ୍ୟବହାର କରନ୍ତୁ (ଆପଣଙ୍କୁ ବାଧା ଦେବାରୁ ବିଜ୍ଞପ୍ତି ପ୍ରମ୍ପ୍ଟଗୁଡ଼ିକୁ ବ୍ଲକ୍ କରେ)</translation> <translation id="6561726789132298588">ଏଣ୍ଟର୍</translation> <translation id="6562117348069327379">ଡାଉନଲୋଡ୍ ଡିରେକ୍ଟୋରୀରେ ସିଷ୍ଟମ୍ ଲଗଗୁଡ଼ିକ ଷ୍ଟୋର୍ କରନ୍ତୁ।</translation> @@ -5161,6 +5181,7 @@ <translation id="7385854874724088939">ମୁଦ୍ରଣ କରିବାକୁ ଚେଷ୍ଟା କରିବା ସମୟରେ କିଛି ଭୂଲ ହେଉଛି । ଦୟାକରି ଆପଣଙ୍କର ପ୍ରିଣ୍ଟର୍ ଯାଞ୍ଚ କରନ୍ତୁ ଏବଂ ପୁନଃ ଚେଷ୍ଟା କରନ୍ତୁ ।</translation> <translation id="7385896526023870365">ଏହି ଏକ୍ସଟେନ୍ସନ୍ର କୌଣସି ଅତିରିକ୍ତ ସାଇଟ୍ ଆକ୍ସେସ୍ ନାହିଁ।</translation> <translation id="7388044238629873883">ଆପଣ ପ୍ରାୟ କରିସାରିଛନ୍ତି!</translation> +<translation id="7388209873137778229">କେବଳ ସମର୍ଥିତ ଡିଭାଇସଗୁଡ଼ିକ ଦେଖାଯାଇଛି।</translation> <translation id="7392118418926456391">ଭାଇରସ୍ ସ୍କାନ୍ ବିଫଳ ହେଲା</translation> <translation id="7392915005464253525">ବନ୍ଦ ହୋଇଥିବା ୱିଣ୍ଡୋ ପୁନଃ ଖୋ&ଲନ୍ତୁ</translation> <translation id="7396017167185131589">ସେୟାର୍ କରାଯାଇଥିବା ଫୋଲ୍ଡରଗୁଡ଼ିକ ଏଠାରେ ଦେଖାଯିବ</translation> @@ -5184,6 +5205,7 @@ <translation id="7415454883318062233">ସେଟଅପ୍ ସମ୍ପୁର୍ଣ୍ଣ ହୋଇଛି</translation> <translation id="7416362041876611053">ଅଜଣା ନେଟ୍ୱାର୍କ ତ୍ରୁଟି।</translation> <translation id="741906494724992817">ଏହି ଆପ୍ ପାଇଁ କୌଣସି ବିଶେଷ ଅନୁମତିର ଆବଶ୍ୟକତା ନାହିଁ।</translation> +<translation id="7420817660256886596">ପ୍ରକ୍ସି <ph name="PROXY" /> ପାଇଁ ଆପଣ ଏକ ଉପଯୋଗକର୍ତ୍ତାନାମ ଏବଂ ପାସୱାର୍ଡ ପ୍ରମାଣିତ କରିବା ଆବଶ୍ୟକ</translation> <translation id="742130257665691897">ବୁକ୍ମାର୍କଗୁଡିକ କାଢ଼ିଦିଆଯାଇଛି</translation> <translation id="7421925624202799674">&ପୃଷ୍ଠା ଉତ୍ସ ଦେଖନ୍ତୁ</translation> <translation id="7422192691352527311">ଅଗ୍ରାଧିକାର...</translation> @@ -5443,6 +5465,7 @@ <translation id="7737115349420013392">"<ph name="DEVICE_NAME" />" ସହ ପେୟାର୍ କରାଯାଉଛି ...</translation> <translation id="7737238973539693982">Linux (ବେଟା) ଡିଲିଟ୍ କରନ୍ତୁ</translation> <translation id="7740996059027112821">ମାନାଙ୍କ</translation> +<translation id="7741721175294046818">ପ୍ରକ୍ସି ସହ ସଂଯୋଗ କରିବାକୁ ଅକ୍ଷମ, ଦୟାକରି ପୁଣି ଚେଷ୍ଟା କରନ୍ତୁ</translation> <translation id="774377079771918250">କେଉଁଠାରେ ସେଭ୍ କରିବେ, ତାହା ବାଛନ୍ତୁ</translation> <translation id="7744047395460924128">ଆପଣଙ୍କର ପ୍ରିଣ୍ଟିଂ ଇତିହାସ ଦେଖନ୍ତୁ</translation> <translation id="7744192722284567281">ଡାଟା ଚୋରିରେ ପାସୱାର୍ଡ ମିଳିଛି</translation> @@ -5686,6 +5709,7 @@ <translation id="8002670234429879764"><ph name="PRINTER_NAME" /> ଆଉ ଉପଲବ୍ଧ ନାହିଁ</translation> <translation id="8004582292198964060">ବ୍ରାଉଜର</translation> <translation id="8005600846065423578">କ୍ଲିପ୍ବୋର୍ଡ ଦେଖିବାକୁ ସର୍ବଦା <ph name="HOST" />କୁ ଅନୁମତି ଦିଅନ୍ତୁ</translation> +<translation id="8006143138282906848">ଏହି ପ୍ରୋଫାଇଲକୁ କାଢ଼ି ଦିଅନ୍ତୁ</translation> <translation id="8008356846765065031">ଇଣ୍ଟର୍ନେଟ୍ ସଂଯୋଗ ବିଚ୍ଛିନ୍ନ ହୋଇଛି। ଦୟାକରି ଆପଣଙ୍କର ଇଣ୍ଟର୍ନେଟ୍ ସଂଯୋଗ ଯାଞ୍ଚ କରନ୍ତୁ।</translation> <translation id="8009225694047762179">ପାସ୍ୱର୍ଡଗୁଡ଼ିକୁ ପରିଚାଳିତ କରନ୍ତୁ</translation> <translation id="8012647001091218357">ଆମେ ଏହି ସମୟରେ ଆପଣଙ୍କ ମାତାପିତାଙ୍କ ନିକଟରେ ପହଞ୍ଚି ପାରିଲୁ ନାହିଁ। ଦୟାକରି ପୁଣି ଚେଷ୍ଟା କରନ୍ତୁ।</translation> @@ -5751,9 +5775,11 @@ <translation id="8084114998886531721">ସେଭ୍ ହୋଇଥିବା ପାସ୍ୱର୍ଡ</translation> <translation id="8086015605808120405"><ph name="PRINTER_NAME" /> କନ୍ଫିଗର୍ କରାଯାଉଛି ...</translation> <translation id="8086442853986205778"><ph name="PRINTER_NAME" /> ସେଟ୍ ଅପ୍ କରନ୍ତୁ</translation> +<translation id="8086550884324762001">ଉଦାହରଣ: କାର୍ଯ୍ୟ, ବ୍ୟକ୍ତିଗତ, ପିଲା କିମ୍ବା ଏକ ନାମ</translation> <translation id="80866457114322936">{NUM_FILES,plural, =1{ଏହି ଫାଇଲଟି ଏନକ୍ରିପ୍ଟ କରାଯାଇଛି। ଏହାର ମାଲିକଙ୍କୁ ଡିକ୍ରିପ୍ଟ କରିବାକୁ କୁହନ୍ତୁ।}other{ଏହି ଫାଇଲଗୁଡ଼ିକ ମଧ୍ୟରୁ କିଛି ଫାଇଲ୍ ଏନକ୍ରିପ୍ଟ କରାଯାଇଛି। ସେଗୁଡ଼ିକର ମାଲିକଙ୍କୁ ଡିକ୍ରିପ୍ଟ କରିବାକୁ କୁହନ୍ତୁ।}}</translation> <translation id="808894953321890993">ପାସ୍ୱାର୍ଡ ବଦଳାନ୍ତୁ</translation> <translation id="8090234456044969073">ଆପଣ ସବୁଠାରୁ ଅଧିକ ଥର ଯାଉଥିବା ୱେବ୍ସାଇଟ୍ଗୁଡ଼ିକର ଗୋଟିଏ ତାଲିକା ପଢ଼ନ୍ତୁ</translation> +<translation id="8092681102116274204">"*" ୱାଇଲ୍ଡକାର୍ଡଗୁଡ଼ିକ ଥିବା ସେଟିଂସ୍ ଆଉ ସମର୍ଥିତ ନୁହେଁ। <ph name="BEGIN_LINK" />ଏହି ସେଟିଂସ୍ ପରିବର୍ତ୍ତନ<ph name="END_LINK" /> କରିବାକୁ ଏକ୍ସଟେନସନ୍ ଡେଭଲପର୍ କିମ୍ବା ଆପଣଙ୍କ ଆଡମିନିଷ୍ଟ୍ରେଟରଙ୍କ ସହ ଯୋଗାଯୋଗ କରନ୍ତୁ।</translation> <translation id="8093359998839330381"><ph name="PLUGIN_NAME" /> ପ୍ରତିକ୍ରିୟା ଦେଉନାହିଁ</translation> <translation id="8095105960962832018"><ph name="BEGIN_PARAGRAPH1" />Google ଡ୍ରାଇଭ୍ରେ ବ୍ୟାକ୍ଅପ୍ ନିଅନ୍ତୁ। ଯେକୌଣସି ସମୟରେ ସହଜରେ ନିଜର ଡାଟା ପୁନଃସ୍ଥାପନ କରନ୍ତୁ କିମ୍ୱା ଡିଭାଇସ୍ ସ୍ୱିଚ୍ କରନ୍ତୁ। ଆପଣଙ୍କର ବ୍ୟାକ୍ଅପ୍ରେ ଆପ୍ ଡାଟା ସାମିଲ୍ ଅଛି।<ph name="END_PARAGRAPH1" /> <ph name="BEGIN_PARAGRAPH2" />ଆପଣଙ୍କର ବ୍ୟାକ୍ଅପ୍ଗୁଡ଼ିକ Googleରେ ଅପ୍ଲୋଡ୍ କରାଯାଇଛି ଏବଂ ଆପଣଙ୍କର Google ଆକାଉଣ୍ଟ ପାସ୍ୱର୍ଡ ବ୍ୟବହାର କରି ଏନ୍କ୍ରାଇପ୍ଟ କରାଯାଇଛି।<ph name="END_PARAGRAPH2" /> @@ -5805,6 +5831,7 @@ <translation id="8146177459103116374">ଯଦି ଆପଣ ଆଗରୁ ଏହି ଡିଭାଇସ୍ରେ ପଞ୍ଜିକୃତ କରିସାରିଛନ୍ତି, ତେବେ ଆପଣ <ph name="LINK2_START" />ଜଣେ ବିଦ୍ୟମାନ ଉପଯୋଗକର୍ତ୍ତା ଭାବରେ ସାଇନ୍ ଇନ୍<ph name="LINK2_END" /> କରିପାରିବେ।</translation> <translation id="8146793085009540321">ସାଇନ୍-ଇନ୍ ବିଫଳ ହୋଇଛି। ଦୟାକରି ଆପଣଙ୍କ ବ୍ୟବସ୍ଥାପକଙ୍କ ସହ ଯୋଗାଯୋଗ କରନ୍ତୁ କିମ୍ବା ପୁଣି ଚେଷ୍ଟା କରନ୍ତୁ।</translation> <translation id="8148760431881541277">ସାଇନ୍-ଇନ୍ ସୀମିତ କରନ୍ତୁ</translation> +<translation id="8151579390896831136">ଆପଣଙ୍କ ପ୍ରୋଫାଇଲକୁ, ଏହାର ନାମ ସହିତ କଷ୍ଟମାଇଜ୍ କରନ୍ତୁ</translation> <translation id="8151638057146502721">କନ୍ଫିଗର୍ କରନ୍ତୁ</translation> <translation id="8152091997436726702">ପ୍ରିଣ୍ଟର୍ ପଞ୍ଜିକରଣର ସମୟ ସମାପ୍ତ ହୋଇଯାଇଛି। ଗୋଟିଏ ପ୍ରିଣ୍ଟର୍ ପଞ୍ଜୀକୃତ କରିବା ପାଇଁ, ଆପଣଙ୍କୁ ନିଶ୍ଚିତ ଭାବେ ପଞ୍ଜିକରଣ ସୁନିଶ୍ଚିତ କରିବା ଦରକାର।</translation> <translation id="8154790740888707867">କୌଣସି ଫାଇଲ୍ ନାହିଁ</translation> @@ -5923,6 +5950,7 @@ <translation id="8288032458496410887"><ph name="APP" /> ଅନ୍ଇନ୍ଷ୍ଟଲ୍ କରନ୍ତୁ...</translation> <translation id="8289128870594824098">ଡିସ୍କ ଆକାର</translation> <translation id="8291967909914612644">ମୂଳ ପ୍ରଦାତା ଦେଶ</translation> +<translation id="8293206222192510085">ବୁକ୍ମାର୍କ ଯୋଗ କରନ୍ତୁ</translation> <translation id="8294431847097064396">ଉତ୍ସ</translation> <translation id="8297006494302853456">ଦୁର୍ବଳ</translation> <translation id="8299319456683969623">ବର୍ତ୍ତମାନ ଆପଣ ଅଫ୍ଲାଇନ୍ ଅଛନ୍ତି।</translation> @@ -6528,6 +6556,7 @@ <translation id="9031549947500880805">Google Driveରେ ବ୍ୟାକଅପ୍ ନିଅନ୍ତୁ। ସହଜରେ ଆପଣଙ୍କ ଡାଟା ରିଷ୍ଟୋର୍ କରନ୍ତୁ କିମ୍ୱା ଯେ କୌଣସି ସମୟରେ ଡିଭାଇସ୍ ସ୍ୱିଚ୍ କରନ୍ତୁ। ଆପଣଙ୍କ ବ୍ୟାକଅପ୍ ଆପ୍ ଡାଟା ଅନ୍ତର୍ଭୁକ୍ତ କରେ।</translation> <translation id="9033765790910064284">ଯେ କୌଣସି ମତେ ଜାରି ରଖନ୍ତୁ</translation> <translation id="9033857511263905942">&ପେଷ୍ଟ କରନ୍ତୁ</translation> +<translation id="9037818663270399707">ଆପଣଙ୍କ ସଂଯୋଗ ସମସ୍ତ ନେଟୱାର୍କ ଟ୍ରାଫିକ୍ ପାଇଁ ବ୍ୟକ୍ତିଗତ ନୁହେଁ</translation> <translation id="9037965129289936994">ମୂଳ ଲେଖା ଦେଖାନ୍ତୁ</translation> <translation id="9039014462651733343">{NUM_ATTEMPTS,plural, =1{ଆପଣଙ୍କର ଗୋଟିଏ ପ୍ରଚେଷ୍ଟା ବାକି ଅଛି।}other{ଆପଣଙ୍କର #ଟି ପ୍ରଚେଷ୍ଟା ବାକି ଅଛି।}}</translation> <translation id="9039663905644212491">PEAP</translation>
diff --git a/chrome/app/resources/generated_resources_pa.xtb b/chrome/app/resources/generated_resources_pa.xtb index c1c945e4..e47934e5 100644 --- a/chrome/app/resources/generated_resources_pa.xtb +++ b/chrome/app/resources/generated_resources_pa.xtb
@@ -71,6 +71,7 @@ <translation id="1070705170564860382"><ph name="COUNTDOWN_SECONDS" /> ਸਕਿੰਟਾਂ ਵਿੱਚ ਵਿਕਲਪਿਕ ਬ੍ਰਾਊਜ਼ਰ ਵਿੱਚ ਖੁੱਲ੍ਹ ਰਿਹਾ ਹੈ</translation> <translation id="1071917609930274619">ਡਾਟਾ Encipherment</translation> <translation id="1072700771426194907">USB ਡੀਵਾਈਸ ਦਾ ਪਤਾ ਲੱਗਿਆ</translation> +<translation id="107278043869924952">ਆਪਣੇ ਪਾਸਵਰਡ ਤੋਂ ਇਲਾਵਾ ਪਿੰਨ ਵਰਤੋ</translation> <translation id="1076176485976385390">ਲਿਖਤ ਕਰਸਰ ਦੇ ਨਾਲ ਪੰਨਿਆਂ 'ਤੇ ਨੈਵੀਗੇਟ ਕਰੋ</translation> <translation id="1076698951459398590">ਥੀਮ ਨੂੰ ਚਾਲੂ ਕਰੋ</translation> <translation id="1076818208934827215">Microsoft Internet Explorer</translation> @@ -524,7 +525,6 @@ <translation id="1608668830839595724">ਚੁਣੀਆਂ ਆਈਟਮਾਂ ਲਈ ਹੋਰ ਕਾਰਵਾਈਆਂ</translation> <translation id="161042844686301425">Cyan</translation> <translation id="1611432201750675208">ਤੁਹਾਡਾ ਡੀਵਾਈਸ ਲਾਕ ਹੈ</translation> -<translation id="1611584202130317952">ਵਿਵਸਥਾਕਰਨ ਪ੍ਰਵਾਹ ਨੂੰ ਰੋਕਿਆ ਗਿਆ। ਕਿਰਪਾ ਕਰਕੇ ਦੁਬਾਰਾ ਕੋਸ਼ਿਸ਼ ਕਰੋ ਜਾਂ ਆਪਣੇ ਡੀਵਾਈਸ ਮਾਲਕ ਜਾਂ ਪ੍ਰਸ਼ਾਸਕ ਨਾਲ ਸੰਪਰਕ ਕਰੋ।</translation> <translation id="1614511179807650956">ਸ਼ਾਇਦ ਤੁਸੀਂ ਆਪਣਾ ਮੋਬਾਈਲ ਡਾਟਾ ਭੱਤਾ ਵਰਤ ਲਿਆ ਹੈ। ਹੋਰ ਡਾਟਾ ਖਰੀਦਣ ਲਈ <ph name="NAME" /> ਦੇ ਕਿਰਿਆਸ਼ੀਲ ਕਰਨ ਵਾਲੇ ਪੋਰਟਲ 'ਤੇ ਜਾਓ</translation> <translation id="161460670679785907">ਤੁਹਾਡੇ ਫ਼ੋਨ ਦਾ ਪਤਾ ਨਹੀਂ ਲਗਾਇਆ ਜਾ ਸਕਿਆ</translation> <translation id="1616206807336925449">ਇਸ ਐਕਸਟੈਂਸ਼ਨ ਲਈ ਕੋਈ ਖ਼ਾਸ ਇਜਾਜ਼ਤਾਂ ਦੀ ਲੋੜ ਨਹੀਂ ਹੈ।</translation> @@ -533,6 +533,7 @@ <translation id="1618268899808219593">ਸ&ਹਾਇਤਾ ਕੇਂਦਰ</translation> <translation id="1620307519959413822">ਗਲਤ ਪਾਸਵਰਡ। ਦੁਬਾਰਾ ਕੋਸ਼ਿਸ਼ ਕਰੋ ਜਾਂ ਪਾਸਵਰਡ ਰੀਸੈੱਟ ਕਰਨ ਲਈ 'ਪਾਸਵਰਡ ਭੁੱਲ ਗਏ' 'ਤੇ ਕਲਿੱਕ ਕਰੋ।</translation> <translation id="1620510694547887537">ਕੈਮਰਾ</translation> +<translation id="1621831347985899379"><ph name="DEVICE_TYPE" /> ਡਾਟਾ ਮਿਟਾ ਦਿੱਤਾ ਜਾਵੇਗਾ</translation> <translation id="1622054403950683339">ਵਾਈ-ਫਾਈ ਨੈੱਟਵਰਕ ਛੱਡੋ</translation> <translation id="1623132449929929218">ਚਿੱਤਰ ਇਸ ਵੇਲੇ ਉਪਲਬਧ ਨਹੀਂ ਹਨ। ਵਾਲਪੇਪਰ ਸੰਗ੍ਰਹਿ ਦੇਖਣ ਲਈ ਕਿਰਪਾ ਕਰਕੇ ਇੰਟਰਨੈੱਟ ਨਾਲ ਮੁੜ-ਕਨੈਕਟ ਕਰੋ।</translation> <translation id="1623723619460186680">ਨੀਲੀ ਲਾਈਟ ਘਟਾਉਣਾ</translation> @@ -760,6 +761,7 @@ <translation id="1877377290348678128">ਲੇਬਲ (ਵਿਕਲਪਿਕ)</translation> <translation id="1877520246462554164">ਪ੍ਰਮਾਣੀਕਰਨ ਟੋਕਨ ਪ੍ਰਾਪਤ ਕਰਨਾ ਅਸਫਲ ਰਿਹਾ। ਕਿਰਪਾ ਕਰਕੇ ਦੁਬਾਰਾ ਕੋਸ਼ਿਸ਼ ਕਰਨ ਲਈ ਸਾਈਨ-ਆਊਟ ਹੋਵੋ, ਫਿਰ ਦੁਬਾਰਾ ਸਾਈਨ-ਇਨ ਕਰੋ।</translation> <translation id="1877860345998737529">ਕਾਰਵਾਈ ਨੂੰ ਜ਼ਿੰਮੇ ਲਗਾਉਣ ਨੂੰ ਬਦਲਣਾ</translation> +<translation id="1878155070920054810">ਇੰਝ ਲੱਗਦਾ ਹੈ ਕਿ ਅੱਪਡੇਟ ਪੂਰਾ ਹੋਣ ਤੋਂ ਪਹਿਲਾਂ ਤੁਹਾਡੀ Chromebook ਦੀ ਪਾਵਰ ਖਤਮ ਹੋ ਜਾਵੇਗੀ। ਰੁਕਾਵਟ ਤੋਂ ਬਚਣ ਲਈ ਇਹ ਪੱਕਾ ਕਰੋ ਇਹ ਸਹੀ ਢੰਗ ਨਾਲ ਚਾਰਜ ਹੋ ਰਹੀ ਹੈ।</translation> <translation id="1879000426787380528">ਇਸ ਵਜੋਂ ਸਾਈਨ-ਇਨ ਕਰੋ</translation> <translation id="1880905663253319515">ਕੀ ਪ੍ਰਮਾਣ-ਪੱਤਰ "<ph name="CERTIFICATE_NAME" />" ਮਿਟਾਉਣਾ ਹੈ?</translation> <translation id="1881445033931614352">ਕੀ-ਬੋਰਡ ਖਾਕਾ</translation> @@ -964,6 +966,7 @@ <translation id="2148219725039824548">ਸਾਂਝਾਕਰਨ ਮਾਊਂਟ ਕਰਨ ਵਿੱਚ ਗੜਬੜ ਹੋਈ। ਨਿਰਧਾਰਤ ਸਾਂਝਾਕਰਨ ਨੈੱਟਵਰਕ 'ਤੇ ਨਹੀਂ ਮਿਲਿਆ।</translation> <translation id="2148756636027685713">ਫੌਰਮੈਟ ਕਰਨਾ ਪੂਰਾ ਕੀਤਾ</translation> <translation id="2148892889047469596">ਟੈਬ ਨੂੰ ਕਾਸਟ ਕਰੋ</translation> +<translation id="2149973817440762519">ਬੁੱਕਮਾਰਕ ਸੰਪਾਦਿਤ ਕਰੋ</translation> <translation id="2150139952286079145">ਮੰਜ਼ਿਲਾਂ ਖੋਜੋ</translation> <translation id="2150661552845026580">ਕੀ "<ph name="EXTENSION_NAME" />" ਨੂੰ ਜੋੜਨਾ ਹੈ?</translation> <translation id="2151576029659734873">ਅਵੈਧ ਟੈਬ ਕ੍ਰਮ-ਸੂਚੀ ਦਰਜ ਕੀਤਾ ਗਿਆ।</translation> @@ -1073,6 +1076,7 @@ <translation id="2270627217422354837">ਡੋਮੇਨਾਂ ਵਿੱਚ ਕਿਸੇ ਵੀ ਡੀਵਾਈਸ ਨਾਲ ਡਾਟਾ ਐਕਸਚੇਂਜ ਕਰੋ: <ph name="DOMAINS" /></translation> <translation id="2272570998639520080">ਮਾਟੀਨੀ ਗਲਾਸ</translation> <translation id="2273119997271134996">ਡੌਕ ਦੇ ਵੀਡੀਓ-ਪੋਰਟ ਵਿੱਚ ਸਮੱਸਿਆ</translation> +<translation id="2274840746523584236">ਆਪਣੀ Chromebook ਨੂੰ ਚਾਰਜ ਕਰੋ</translation> <translation id="2276503375879033601">ਹੋਰ ਐਪਸ ਜੋੜੋ</translation> <translation id="2277255602909579701">ਸਾਰੀਆਂ ਕੁਕੀਜ਼ ਅਤੇ ਸਾਈਟ ਡਾਟਾ</translation> <translation id="2277769717710009150">{COUNT,plural, =1{1 ਆਈਟਮ ਕਾਪੀ ਕੀਤੀ ਗਈ}one{# ਆਈਟਮ ਕਾਪੀ ਕੀਤੀ ਗਈ}other{# ਆਈਟਮਾਂ ਕਾਪੀ ਕੀਤੀਆਂ ਗਈਆਂ}}</translation> @@ -1913,6 +1917,7 @@ <translation id="3308116878371095290">ਇਸ ਸਫ਼ੇ ਨੂੰ ਕੁਕੀਜ਼ ਸੈਟ ਕਰਨ ਤੋਂ ਰੋਕਿਆ ਗਿਆ ਸੀ।</translation> <translation id="3308134619352333507">ਬਟਨ ਲੁਕਾਓ</translation> <translation id="3308852433423051161">Google ਸਹਾਇਕ ਲੋਡ ਕੀਤਾ ਜਾ ਰਿਹਾ ਹੈ...</translation> +<translation id="3310640316857623290">DNS ਵਿਲੰਬਤਾ ਇਜਾਜ਼ਤ ਦਿੱਤੀ ਘੱਟੋ-ਘੱਟ ਸੀਮਾ ਤੋਂ ਕਾਫ਼ੀ ਜ਼ਿਆਦਾ ਉੱਪਰ ਹੈ</translation> <translation id="3311445899360743395">ਸ਼ਾਇਦ ਇਸ ਐਪ ਨਾਲ ਸੰਬੰਧਿਤ ਡਾਟੇ ਨੂੰ ਇਸ ਡੀਵਾਈਸ ਤੋਂ ਹਟਾ ਦਿੱਤਾ ਜਾਵੇ।</translation> <translation id="3312424061798279731">ਸਮਰਥਿਤ ਭਾਸ਼ਾਵਾਂ</translation> <translation id="3313622045786997898">ਪ੍ਰਮਾਣ-ਪੱਤਰ ਹਸਤਾਖਰ ਲਾਭ</translation> @@ -1925,6 +1930,7 @@ <translation id="3323295311852517824">{NUM_FILES,plural, =0{ਇਸ ਡਾਟੇ ਵਿੱਚ ਸੰਵੇਦਨਸ਼ੀਲ ਜਾਂ ਖਤਰਨਾਕ ਸਮੱਗਰੀ ਹੈ। ਇਸ ਸਮੱਗਰੀ ਨੂੰ ਹਟਾ ਕੇ ਦੁਬਾਰਾ ਕੋਸ਼ਿਸ਼ ਕਰੋ।}=1{ਇਸ ਫ਼ਾਈਲ ਵਿੱਚ ਸੰਵੇਦਨਸ਼ੀਲ ਜਾਂ ਖਤਰਨਾਕ ਸਮੱਗਰੀ ਹੈ। ਇਸ ਸਮੱਗਰੀ ਨੂੰ ਹਟਾ ਕੇ ਦੁਬਾਰਾ ਕੋਸ਼ਿਸ਼ ਕਰੋ।}other{ਇਹਨਾਂ ਫ਼ਾਈਲਾਂ ਵਿੱਚ ਸੰਵੇਦਨਸ਼ੀਲ ਜਾਂ ਖਤਰਨਾਕ ਸਮੱਗਰੀ ਹੈ। ਇਸ ਸਮੱਗਰੀ ਨੂੰ ਹਟਾ ਕੇ ਦੁਬਾਰਾ ਕੋਸ਼ਿਸ਼ ਕਰੋ।}}</translation> <translation id="3323521181261657960">ਬੋਨਸ! ਤੁਹਾਡਾ ਸਕ੍ਰੀਨ ਸਮਾਂ ਵਧਾਇਆ ਗਿਆ</translation> <translation id="3325910708063135066">Mac ਸਿਸਟਮ ਤਰਜੀਹਾਂ ਵਿੱਚ ਕੈਮਰਾ ਅਤੇ ਮਾਈਕ੍ਰੋਫ਼ੋਨ ਬੰਦ ਕੀਤੇ ਹੋਏ ਹਨ</translation> +<translation id="3327050066667856415">Chromebooks ਨੂੰ ਸੁਰੱਖਿਆ ਉਦੇਸ਼ ਲਈ ਤਿਆਰ ਕੀਤਾ ਗਿਆ ਹੈ। ਤੁਹਾਡਾ ਡੀਵਾਈਸ ਸਵੈਚਲਿਤ ਤੌਰ 'ਤੇ ਮਾਲਵੇਅਰ ਤੋਂ ਸੁਰੱਖਿਅਤ ਹੈ – ਕਿਸੇ ਹੋਰ ਸਾਫ਼ਟਵੇਅਰ ਦੀ ਲੋੜ ਨਹੀਂ ਹੈ।</translation> <translation id="3328489342742826322">ਬੈਕਅੱਪ ਤੋਂ ਮੁੜ-ਬਹਾਲ ਕਰਨ ਨਾਲ ਤੁਹਾਡੇ Linux ਫ਼ਾਈਲਾਂ ਦੇ ਫੋਲਡਰ ਵਿੱਚ ਮੌਜੂਦ ਸਾਰੀਆਂ Linux ਐਪਲੀਕੇਸ਼ਨਾਂ ਅਤੇ ਡਾਟਾ ਮਿਟ ਜਾਵੇਗਾ।</translation> <translation id="3331321258768829690">(<ph name="UTCOFFSET" />) <ph name="LONGTZNAME" /> (<ph name="EXEMPLARCITY" />)</translation> <translation id="3331974543021145906">ਐਪ ਜਾਣਕਾਰੀ</translation> @@ -2114,6 +2120,7 @@ <translation id="3556433843310711081">ਤੁਹਾਡਾ ਪ੍ਰਬੰਧਕ ਇਸ ਨੂੰ ਤੁਹਾਡੇ ਲਈ ਅਣਬਲੌਕ ਕਰ ਸਕਦਾ ਹੈ</translation> <translation id="3557101512409028104">Family Link ਨਾਲ ਵੈੱਬਸਾਈਟ ਪਾਬੰਦੀਆਂ ਅਤੇ ਸਕ੍ਰੀਨ ਸਮੇਂ ਦੀਆਂ ਸੀਮਾਵਾਂ ਸੈੱਟ ਕਰੋ</translation> <translation id="3559262020195162408">ਡੀਵਾਈਸ 'ਤੇ ਨੀਤੀ ਨੂੰ ਸਥਾਪਤ ਕਰਨਾ ਅਸਫਲ ਰਿਹਾ।</translation> +<translation id="3559533181353831840">ਲਗਭਗ <ph name="TIME_LEFT" /> ਬਾਕੀ</translation> <translation id="3560034655160545939">&ਸ਼ਬਦ-ਜੋੜ ਜਾਂਚ</translation> <translation id="3562423906127931518">ਇਸ ਪ੍ਰਕਿਰਿਆ ਵਿੱਚ ਕੁਝ ਮਿੰਟ ਲੱਗ ਸਕਦੇ ਹਨ। Linux ਕੰਟੇਨਰ ਦਾ ਸੈੱਟਅੱਪ ਕੀਤਾ ਜਾ ਰਿਹਾ ਹੈ।</translation> <translation id="3563432852173030730">ਕਿਓਸਕ ਐਪਲੀਕੇਸ਼ਨ ਡਾਊਨਲੋਡ ਨਹੀਂ ਕੀਤੀ ਜਾ ਸਕੀ।</translation> @@ -2156,6 +2163,7 @@ <translation id="3602290021589620013">ਪ੍ਰੀਵਿਊ</translation> <translation id="3603622770190368340">ਨੈੱਟਵਰਕ ਪ੍ਰਮਾਣ-ਪੱਤਰ ਪ੍ਰਾਪਤ ਕਰੋ</translation> <translation id="3604713164406837697">ਵਾਲਪੇਪਰ ਬਦਲੋ</translation> +<translation id="360565022852130722">ਵਾਈ-ਫਾਈ ਨੈੱਟਵਰਕ ਕਮਜ਼ੋਰ ਪ੍ਰੋਟੋਕੋਲ WEP 802.1x ਨਾਲ ਸੁਰੱਖਿਅਤ ਹੈ</translation> <translation id="3605780360466892872">Buttondown</translation> <translation id="3608576286259426129">ਵਰਤੋਂਕਾਰ ਚਿੱਤਰ ਪੂਰਵ-ਝਲਕ</translation> <translation id="3610369246614755442">ਡੌਕ ਦੇ ਪੱਖੇ ਦੀ ਮੁਰੰਮਤ ਕਰਵਾਉਣ ਦੀ ਲੋੜ ਹੈ</translation> @@ -2192,6 +2200,7 @@ <translation id="3639220004740062347">ਰੀਡਰ ਮੋਡ ਤੋਂ ਬਾਹਰ ਆਓ</translation> <translation id="3640214691812501263">ਕੀ <ph name="USER_NAME" /> ਲਈ "<ph name="EXTENSION_NAME" />" ਨੂੰ ਜੋੜਨਾ ਹੈ?</translation> <translation id="3640613767643722554">ਆਪਣੀ 'ਅਸਿਸਟੈਂਟ' ਨੂੰ ਤੁਹਾਡੀ ਅਵਾਜ਼ ਪਛਾਣਨਾ ਸਿਖਾਓ</translation> +<translation id="3643014427358482789"><ph name="DOMAIN" /> ਵੱਲੋਂ ADB ਡੀਬੱਗਿੰਗ ਨੂੰ ਬੰਦ ਕੀਤਾ ਜਾ ਰਿਹਾ ਹੈ, ਜਿਸ ਨਾਲ ਤੁਹਾਡੀ <ph name="DEVICE_TYPE" /> ਰੀਸੈੱਟ ਹੋ ਜਾਵੇਗੀ। ਮੁੜ-ਸ਼ੁਰੂ ਕਰਨ ਤੋਂ ਪਹਿਲਾਂ ਆਪਣੀਆਂ ਫ਼ਾਈਲਾਂ ਦਾ ਬੈਕਅੱਪ ਲਓ।</translation> <translation id="3645372836428131288">ਫਿੰਗਰਪ੍ਰਿੰਟ ਦੇ ਇੱਕ ਵੱਖਰੇ ਹਿੱਸੇ ਨੂੰ ਕੈਪਚਰ ਕਰਨ ਲਈ ਉਂਗਲ ਨੂੰ ਥੋੜ੍ਹਾ ਜਿਹਾ ਹਿਲਾਓ।</translation> <translation id="3647998456578545569">{COUNT,plural, =1{<ph name="DEVICE_NAME" /> ਤੋਂ <ph name="ATTACHMENTS" /> ਪ੍ਰਾਪਤ ਹੋਈ}one{<ph name="DEVICE_NAME" /> ਤੋਂ <ph name="ATTACHMENTS" /> ਪ੍ਰਾਪਤ ਹੋਈ}other{<ph name="DEVICE_NAME" /> ਤੋਂ <ph name="ATTACHMENTS" /> ਪ੍ਰਾਪਤ ਹੋਈਆਂ}}</translation> <translation id="3648348069317717750"><ph name="USB_DEVICE_NAME" /> ਖੋਜਿਆ ਗਿਆ</translation> @@ -2280,6 +2289,7 @@ <translation id="3732857534841813090">Google Assistant ਨਾਲ ਸੰਬੰਧਿਤ ਜਾਣਕਾਰੀ</translation> <translation id="3733127536501031542">ਸਟੈਪ-ਅਪ ਨਾਲ SSL ਸਰਵਰ</translation> <translation id="3735740477244556633">ਇਸ ਮੁਤਾਬਕ ਕ੍ਰਮ-ਬੱਧ ਕਰੋ</translation> +<translation id="3738632186060045350"><ph name="DEVICE_TYPE" /> ਡਾਟਾ 24 ਘੰਟਿਆਂ ਦੇ ਅੰਦਰ ਮਿਟਾ ਦਿੱਤਾ ਜਾਵੇਗਾ</translation> <translation id="3738924763801731196"><ph name="OID" />:</translation> <translation id="3739254215541673094">ਕੀ <ph name="APPLICATION" /> ਨੂੰ ਖੋਲ੍ਹਣਾ ਹੈ?</translation> <translation id="3742055079367172538">ਸਕ੍ਰੀਨਸ਼ਾਟ ਲਿਆ ਗਿਆ</translation> @@ -2467,6 +2477,7 @@ <translation id="3937734102568271121"><ph name="LANGUAGE" /> ਦਾ ਹਮੇਸ਼ਾਂ ਅਨੁਵਾਦ ਕਰੋ</translation> <translation id="3938128855950761626">ਵਿਕਰੇਤਾ <ph name="VENDOR_ID" /> ਦੇ ਡੀਵਾਈਸ</translation> <translation id="3940233957883229251">ਆਟੋ-ਰਿਪੀਟ ਚਾਲੂ ਕਰੋ</translation> +<translation id="3941014780699102620">ਹੋਸਟ ਨੂੰ ਹੱਲ ਕਰਨਾ ਅਸਫਲ ਰਿਹਾ</translation> <translation id="3941565636838060942">ਇਸ ਪ੍ਰੋਗਰਾਮ ਤੱਕ ਪਹੁੰਚ ਨੂੰ ਲੁਕਾਉਣ ਲਈ, ਤੁਹਾਨੂੰ ਕੰਟਰੋਲ ਪੈਨਲ ਵਿੱਚ <ph name="CONTROL_PANEL_APPLET_NAME" /> ਵਰਤ ਕੇ ਇਸਨੂੰ ਅਣਸਥਾਪਤ ਕਰਨ ਦੀ ਲੋੜ ਹੈ। @@ -2629,6 +2640,7 @@ <translation id="413121957363593859">ਕੰਪੋਨੈਂਟਸ</translation> <translation id="4131410914670010031">ਕਾਲਾ ਅਤੇ ਚਿੱਟਾ</translation> <translation id="413193092008917129">ਨੈੱਟਵਰਕ ਤਸ਼ਖੀਸ ਸੰਬੰਧੀ ਨਿਯਮਬੱਧ ਕੰਮ</translation> +<translation id="4132183752438206707">Google Play ਸਟੋਰ 'ਤੇ ਐਪਾਂ ਲੱਭੋ</translation> <translation id="4133076602192971179">ਆਪਣਾ ਪਾਸਵਰਡ ਬਦਲਣ ਲਈ ਐਪ ਖੋਲ੍ਹੋ</translation> <translation id="4136203100490971508">ਸੂਰਜ ਚੜ੍ਹਨ ਸਮੇਂ ਰਾਤ ਦੀ ਰੋਸ਼ਨੀ ਆਪਣੇ ਆਪ ਬੰਦ ਹੋ ਜਾਵੇਗੀ</translation> <translation id="41365691917097717">ਜਾਰੀ ਰੱਖਣ ਨਾਲ ADB ਡੀਬੱਗਿੰਗ ਨੂੰ Android ਐਪਾਂ ਬਣਾਉਣ ਅਤੇ ਉਹਨਾਂ ਦੀ ਜਾਂਚ ਕਰਨ ਲਈ ਚਾਲੂ ਕੀਤਾ ਜਾਵੇਗਾ। ਨੋਟ ਕਰੋ ਕਿ ਇਸ ਕਾਰਵਾਈ ਨਾਲ ਉਹ Android ਐਪਾਂ ਸਥਾਪਤ ਹੋ ਸਕਦੀਆਂ ਹਨ, ਜਿਨ੍ਹਾਂ ਦੀ ਪੁਸ਼ਟੀ Google ਨੇ ਨਹੀਂ ਕੀਤੀ ਹੈ, ਅਤੇ ਫੈਕਟਰੀ ਰੀਸੈੱਟ ਨੂੰ ਬੰਦ ਕਰਨ ਦੀ ਲੋੜ ਪੈਂਦੀ ਹੈ।</translation> @@ -2878,6 +2890,8 @@ <translation id="4479877282574735775">ਆਭਾਸੀ ਮਸ਼ੀਨ ਦਾ ਸੰਰੂਪਣ ਕੀਤਾ ਜਾ ਰਿਹਾ ਹੈ। ਇਸ ਵਿੱਚ ਕੁਝ ਮਿੰਟ ਲੱਗ ਸਕਦੇ ਹਨ।</translation> <translation id="4480590691557335796">Chrome ਤੁਹਾਡੇ ਕੰਪਿਊਟਰ 'ਤੇ ਹਾਨੀਕਾਰਕ ਸਾਫ਼ਟਵੇਅਰ ਲੱਭ ਸਕਦਾ ਹੈ ਅਤੇ ਉਸਨੂੰ ਹਟਾ ਸਕਦਾ ਹੈ</translation> <translation id="4481530544597605423">ਅਣ-ਜੋੜਾਬੱਧ ਕੀਤੀਆਂ ਡੀਵਾਈਸਾਂ</translation> +<translation id="4483049906298469269">ਗੈਰ-ਪੂਰਵ-ਨਿਰਧਾਰਤ ਨੈੱਟਵਰਕ ਗੇਟਵੇ ਨੂੰ ਪਿੰਗ ਕਰਨਾ ਅਸਫਲ ਰਿਹਾ</translation> +<translation id="4487489714832036847">Chromebooks ਰਵਾਇਤੀ ਸਾਫ਼ਟਵੇਅਰ ਦੀ ਬਜਾਏ ਐਪਾਂ ਦੀ ਵਰਤੋਂ ਕਰਦੀਆਂ ਹਨ। ਉਤਪਾਦਕਤਾ, ਮਨੋਰੰਜਨ ਅਤੇ ਹੋਰ ਬਹੁਤ ਕੁਝ ਲਈ ਐਪਾਂ ਪ੍ਰਾਪਤ ਕਰੋ।</translation> <translation id="4488502501195719518">ਕੀ ਸਾਰਾ ਡਾਟਾ ਕਲੀਅਰ ਕਰਨਾ ਹੈ?</translation> <translation id="4493468155686877504">ਸਿਫ਼ਾਰਸ਼ੀ (<ph name="INSTALL_SIZE" />)</translation> <translation id="4495419450179050807">ਇਸ ਸਫ਼ੇ ਤੇ ਨਾ ਦਿਖਾਓ</translation> @@ -2928,6 +2942,7 @@ <translation id="4546692474302123343">Google Assistant ਵੌਇਸ ਇਨਪੁੱਟ</translation> <translation id="4547659257713117923">ਹੋਰਾਂ ਡਿਵਾਈਸਾਂ ਤੋਂ ਕੋਈ ਟੈਬਸ ਨਹੀਂ</translation> <translation id="4547672827276975204">ਸਵੈਚਲਿਤ ਤੌਰ 'ਤੇ ਸੈੱਟ ਕਰੋ</translation> +<translation id="4548483925627140043">ਸਿਗਨਲ ਨਹੀਂ ਮਿਲਿਆ</translation> <translation id="4549791035683739768">ਤੁਹਾਡੀ ਸੁਰੱਖਿਆ ਕੁੰਜੀ ਵਿੱਚ ਕੋਈ ਵੀ ਫਿੰਗਰਪ੍ਰਿੰਟ ਸਟੋਰ ਨਹੀਂ ਕੀਤਾ ਹੋਇਆ ਹੈ</translation> <translation id="4551763574344810652">ਅਣਕੀਤਾ ਕਰਨ ਲਈ <ph name="MODIFIER_KEY_DESCRIPTION" /> ਨੂੰ ਦਬਾਓ</translation> <translation id="4552089082226364758">ਫਲੈਸ਼</translation> @@ -2967,6 +2982,7 @@ <translation id="4582563038311694664">ਸਾਰੀਆਂ ਸੈਟਿੰਗਾਂ ਰੀਸੈੱਟ ਕਰੋ</translation> <translation id="4585793705637313973">ਪੰਨੇ ਦਾ ਸੰਪਾਦਨ ਕਰੋ</translation> <translation id="4586275095964870617"><ph name="URL" /> ਕਿਸੇ ਵਿਕਲਪਿਕ ਬ੍ਰਾਊਜ਼ਰ ਵਿੱਚ ਨਹੀਂ ਖੁੱਲ੍ਹ ਸਕਿਆ। ਕਿਰਪਾ ਕਰਕੇ ਆਪਣੇ ਸਿਸਟਮ ਪ੍ਰਸ਼ਾਸਕ ਨਾਲ ਸੰਪਰਕ ਕਰੋ।</translation> +<translation id="458794348635939462">ਸਾਰੇ ਹੋਸਟਾਂ ਨੂੰ ਹੱਲ ਕਰਨਾ ਅਸਫਲ ਰਿਹਾ</translation> <translation id="4589713469967853491">ਲੌਗਾਂ ਨੂੰ ਡਾਊਨਲੋਡ ਡਾਇਰੈਕਟਰੀ ਵਿੱਚ ਸਫਲਤਾਪੂਰਕ ਲਿਖਿਆ ਗਿਆ।</translation> <translation id="4590324241397107707">ਡਾਟਾਬੇਸ ਸਟੋਰੇਜ</translation> <translation id="4592891116925567110">ਸਟਾਈਲਸ ਚਿੱਤਰਕਾਰੀ ਸੰਬੰਧੀ ਐਪ</translation> @@ -3350,6 +3366,7 @@ <translation id="5089810972385038852">ਰਾਜ</translation> <translation id="5094721898978802975">ਨੇਟਿਵ ਐਪਲੀਕੇਸ਼ਨਾਂ ਨਾਲ ਸਹਿਯੋਗ ਕਰਦੇ ਹੋਏ ਸੰਚਾਰ ਕਰੋੇ</translation> <translation id="5097002363526479830">'<ph name="NAME" />' ਨਾਲ ਕਨੈਕਟ ਕਰਨ ਵਿੱਚ ਅਸਫਲ ਹੋ ਗਿਆ: <ph name="DETAILS" /></translation> +<translation id="5097649414558628673">ਟੂਲ: <ph name="PRINT_NAME" /></translation> <translation id="5097874180538493929">ਕਰਸਰ ਦੇ ਰੁਕਣ 'ਤੇ ਸਵੈਚਲਿਤ ਤੌਰ 'ਤੇ ਕਲਿੱਕ ਕਰੋ</translation> <translation id="5101042277149003567">ਸਭ ਬੁੱਕਮਾਰਕ ਖੋਲ੍ਹੋ</translation> <translation id="5101839224773798795">ਕਰਸਰ ਦੇ ਰੁਕਣ 'ਤੇ ਸਵੈਚਲਿਤ ਤੌਰ 'ਤੇ ਕਲਿੱਕ ਕਰੋ</translation> @@ -3568,6 +3585,7 @@ <translation id="5370819323174483825">&ਰੀਲੋਡ ਕਰੋ</translation> <translation id="5372529912055771682">ਸਪਲਾਈ ਕੀਤਾ ਗਿਆ ਦਾਖਲਾ ਮੋਡ ਓਪਰੇਟਿੰਗ ਸਿਸਟਮ ਦੇ ਇਸ ਵਰਜਨ ਵੱਲੋਂ ਸਮਰਥਿਤ ਨਹੀਂ ਹੈ। ਕਿਰਪਾ ਕਰਕੇ ਪੱਕਾ ਕਰੋ ਕਿ ਤੁਸੀਂ ਨਵੀਨਤਮ ਵਰਜਨ ਚਲਾ ਰਹੇ ਹੋ ਅਤੇ ਦੁਬਾਰਾ ਕੋਸ਼ਿਸ਼ ਕਰੋ।</translation> <translation id="5372579129492968947">ਐਕਸਟੈਂਸ਼ਨ ਨੂੰ ਅਨਪਿੰਨ ਕਰੋ</translation> +<translation id="5372659122375744710">ਵਾਈ-ਫਾਈ ਨੈੱਟਵਰਕ ਸੁਰੱਖਿਅਤ ਨਹੀਂ ਹੈ</translation> <translation id="5376169624176189338">ਪਿੱਛੇ ਜਾਣ ਲਈ ਕਲਿੱਕ ਕਰੋ, ਇਤਿਹਾਸ ਦੇਖਣ ਲਈ ਹੋਲਡ ਕਰੋ</translation> <translation id="5376931455988532197">ਫਾਈਲ ਬਹੁਤ ਜ਼ਿਆਦਾ ਵੱਡੀ ਹੈ</translation> <translation id="5377721922656071359">{COUNT,plural, =1{<ph name="DEVICE_NAME" /> ਨੂੰ <ph name="ATTACHMENTS" /> ਸਫਲਤਾਪੂਰਵਕ ਭੇਜੀ ਗਈ}one{<ph name="DEVICE_NAME" /> ਨੂੰ <ph name="ATTACHMENTS" /> ਸਫਲਤਾਪੂਰਵਕ ਭੇਜੀ ਗਈ}other{<ph name="DEVICE_NAME" /> ਨੂੰ <ph name="ATTACHMENTS" /> ਸਫਲਤਾਪੂਰਵਕ ਭੇਜੀਆਂ ਗਈਆਂ}}</translation> @@ -3597,6 +3615,7 @@ <translation id="5414566801737831689">ਉਨ੍ਹਾਂ ਵੈੱਬਸਾਈਟਾਂ ਦੇ ਪ੍ਰਤੀਕਾਂ ਨੂੰ ਪੜ੍ਹੋ ਜਿਨ੍ਹਾਂ ਜਿਨ੍ਹਾਂ ਵੈੱਬਸਾਈਟਾਂ 'ਤੇ ਤੁਸੀਂ ਜਾਂਦੇ ਹੋ</translation> <translation id="5417312524372586921">ਬ੍ਰਾਊਜ਼ਰ ਥੀਮ</translation> <translation id="5419405654816502573">Voice match</translation> +<translation id="5420274697768050645">ਸ਼ਾਮਲ ਕੀਤੀ ਸੁਰੱਖਿਆ ਲਈ ਡੀਵਾਈਸ ਨੂੰ ਅਣਲਾਕ ਕਰਨ ਵਾਸਤੇ ਪਾਸਵਰਡ ਦੀ ਲੋੜ ਹੈ</translation> <translation id="5420438158931847627">ਲਿਖਤ ਅਤੇ ਚਿੱਤਰਾਂ ਦੀ ਤਿਖਣਤਾ ਨੂੰ ਨਿਰਧਾਰਤ ਕਰਦਾ ਹੈ</translation> <translation id="5422221874247253874">ਐਕਸੈੱਸ ਪੁਆਇੰਟ</translation> <translation id="5422781158178868512">ਮਾਫ਼ ਕਰਨਾ, ਤੁਹਾਡੀ ਬਾਹਰੀ ਸਟੋਰੇਜ ਡੀਵਾਈਸ ਦੀ ਪਛਾਣ ਨਹੀਂ ਕੀਤੀ ਜਾ ਸਕੀ।</translation> @@ -3721,6 +3740,7 @@ <translation id="5548606607480005320">ਸੁਰੱਖਿਆ ਜਾਂਚ</translation> <translation id="5551573675707792127">ਕੀ-ਬੋਰਡ ਅਤੇ ਲਿਖਤ ਇਨਪੁੱਟ</translation> <translation id="5553089923092577885">ਪ੍ਰਮਾਣ-ਪੱਤਰ ਨੀਤੀ ਨਕਸ਼ੇ</translation> +<translation id="5554403733534868102">ਇਸ ਤੋਂ ਬਾਅਦ, ਅੱਪਡੇਟਾਂ ਲਈ ਉਡੀਕ ਨਹੀਂ ਕਰਨੀ ਪਵੇਗੀ</translation> <translation id="5554489410841842733">ਇਹ ਪ੍ਰਤੀਕ ਉਦੋਂ ਦਿਖਾਈ ਦੇਵੇਗਾ ਜਦੋਂ ਐਕਸਟੈਂਸ਼ਨ ਮੌਜੂਦਾ ਪੰਨੇ 'ਤੇ ਕਾਰਵਾਈ ਕਰ ਸਕਦੀ ਹੈ।</translation> <translation id="5554720593229208774">ਈਮੇਲ ਸਰਟੀਫਿਕੇਸ਼ਨ ਅਧਿਕਾਰ</translation> <translation id="5556459405103347317">ਰੀਲੋਡ ਕਰੋ</translation> @@ -4134,6 +4154,7 @@ <translation id="6061882183774845124">ਲਿੰਕ ਨੂੰ ਆਪਣੇ ਡੀਵਾਈਸਾਂ 'ਤੇ ਭੇਜੋ</translation> <translation id="6064217302520318294">ਸਕ੍ਰੀਨ ਲੌਕ</translation> <translation id="6065289257230303064">ਪ੍ਰਮਾਣ-ਪੱਤਰ ਵਿਸ਼ਾ ਡਾਇਰੈਕਟਰੀ ਵਿਸ਼ੇਸ਼ਤਾਵਾਂ</translation> +<translation id="6069464830445383022">ਤੁਹਾਡਾ Google ਖਾਤਾ ਹੀ ਤੁਹਾਡਾ Chromebook ਸਾਈਨ-ਇਨ ਹੈ</translation> <translation id="6069671174561668781">ਵਾਲਪੇਪਰ ਸੈੱਟ ਕਰੋ</translation> <translation id="6071181508177083058">ਪਾਸਵਰਡ ਦੀ ਪੁਸ਼ਟੀ ਕਰੋ</translation> <translation id="6071576563962215370">ਸਿਸਟਮ ਡੀਵਾਈਸ ਸਥਾਪਨਾ-ਸਮਾਂ ਵਿਸ਼ੇਸ਼ਤਾਵਾਂ ਲਾਕ ਨੂੰ ਸਥਾਪਤ ਕਰਨ ਵਿੱਚ ਅਸਫਲ ਰਿਹਾ।</translation> @@ -4176,6 +4197,7 @@ <translation id="6104311680260824317">ਡੀਵਾਈਸ ਨੂੰ ਡੋਮੇਨ ਵਿੱਚ ਸ਼ਾਮਲ ਨਹੀਂ ਕੀਤਾ ਜਾ ਸਕਦਾ। ਸਰਵਰ ਨਿਰਧਾਰਤ Kerberos ਇਨਕ੍ਰਿਪਸ਼ਨ ਦੀਆਂ ਕਿਸਮਾਂ ਦਾ ਸਮਰਥਨ ਨਹੀਂ ਕਰਦਾ। ਇਨਕ੍ਰਿਪਸ਼ਨ ਸੈਟਿੰਗਾਂ ਦੇ ਲਈ "ਹੋਰ ਵਿਕਲਪ" ਦੇਖੋ।</translation> <translation id="6104796831253957966">ਪ੍ਰਿੰਟਰ ਦੀ ਕਤਾਰ ਭਰ ਚੁੱਕੀ ਹੈ</translation> <translation id="6105994589138235234">Chrome ਬ੍ਰਾਊਜ਼ਰ ਦਾ ਸਮਕਾਲੀਕਰਨ</translation> +<translation id="6108689792487843350">ਗੇਟਵੇ ਪਹੁੰਚਯੋਗ ਨਹੀਂ ਹੈ</translation> <translation id="6111972606040028426">Google Assistant ਚਾਲੂ ਕਰੋ</translation> <translation id="6112294629795967147">ਆਕਾਰ ਬਦਲਣ ਲਈ ਸਪੱਰਸ਼ ਕਰੋ</translation> <translation id="6112727384379533756">ਟਿਕਟ ਸ਼ਾਮਲ ਕਰੋ</translation> @@ -4236,6 +4258,7 @@ <translation id="6178664161104547336">ਇੱਕ ਪ੍ਰਮਾਣ-ਪੱਤਰ ਚੁਣੋ</translation> <translation id="6181431612547969857">ਡਾਊਨਲੋਡ ਬਲਾਕ ਕੀਤੀ</translation> <translation id="6185132558746749656">ਡੀਵਾਈਸ ਨਿਰਧਾਰਿਤ ਸਥਾਨ</translation> +<translation id="6191293864534840972">ਨੁਕਸਦਾਰ ਨਾਮ ਵਾਲੇ ਸਰਵਰ</translation> <translation id="6195446518998936840">ਮਾਪਿਆਂ ਦੇ ਕੰਟਰੋਲਾਂ ਦਾ ਸੈੱਟਅੱਪ ਕਰਨ ਲਈ, ਤੁਹਾਡੇ ਬੱਚੇ ਕੋਲ Google ਖਾਤਾ ਹੋਣਾ ਲਾਜ਼ਮੀ ਹੈ ਜਿਸਦਾ ਤੁਸੀਂ ਪ੍ਰਬੰਧਨ ਕਰਨ ਵਿੱਚ ਮਦਦ ਕਰੋਗੇ। Family Link ਐਪ ਨਾਲ ਤੁਸੀਂ ਸਕ੍ਰੀਨ ਸਮਾਂ ਸੀਮਾਵਾਂ ਸੈੱਟ ਕਰ ਸਕਦੇ ਹੋ, ਵੈੱਬਸਾਈਟਾਂ ਨੂੰ ਮਨਜ਼ੂਰ ਜਾਂ ਬਲਾਕ ਕਰ ਸਕਦੇ ਹੋ ਅਤੇ ਹੋਰ ਬਹੁਤ ਕੁਝ ਕਰ ਸਕਦੇ ਹੋ।</translation> <translation id="6195693561221576702">ਇਹ ਡੀਵਾਈਸ ਆਫ਼ਲਾਈਨ ਡੈਮੋ ਮੋਡ ਵਿੱਚ ਸੈੱਟਅੱਪ ਨਹੀਂ ਕੀਤਾ ਜਾ ਸਕਦਾ।</translation> <translation id="6196640612572343990">ਤੀਜੀ-ਧਿਰ ਵਾਲੀਆਂ ਕੁੱਕੀਜ਼ ਨੂੰ ਬਲੌਕ ਕਰੋ</translation> @@ -4449,6 +4472,7 @@ <translation id="6451591602925140504">{NUM_PAGES,plural, =0{<ph name="PAGE_TITLE" />}=1{<ph name="PAGE_TITLE" /> ਅਤੇ 1 ਹੋਰ ਟੈਬ}other{<ph name="PAGE_TITLE" /> ਅਤੇ # ਹੋਰ ਟੈਬਾਂ}}</translation> <translation id="6451689256222386810">ਜੇਕਰ ਤੁਸੀਂ ਆਪਣਾ ਪਾਸਫਰੇਜ਼ ਭੁੱਲ ਗਏ ਹੋ ਜਾਂ ਇਸ ਸੈਟਿੰਗ ਨੂੰ ਬਦਲਣਾ ਚਾਹੁੰਦੇ ਹੋ, ਤਾਂ <ph name="BEGIN_LINK" />ਸਮਕਾਲੀਕਰਨ ਰੀਸੈੱਟ ਕਰੋ<ph name="END_LINK" />।</translation> <translation id="6452181791372256707">ਰੱਦ ਕਰੋ</translation> +<translation id="6452251728599530347"><ph name="PERCENT" /> ਪੂਰਾ</translation> <translation id="6452961788130242735">ਨੈੱਟਵਰਕ ਸਮੱਸਿਆ ਜਾਂ ਖਰਾਬ ਖੇਤਰ</translation> <translation id="6455264371803474013">ਕੁਝ ਖਾਸ ਸਾਈਟਾਂ 'ਤੇ</translation> <translation id="6455894534188563617">&ਨਵਾਂ ਫੋਲਡਰ</translation> @@ -4505,6 +4529,7 @@ <ph name="EVENT_NAME" /></translation> <translation id="6520876759015997832"><ph name="LIST_SIZE" /> ਵਿੱਚੋਂ <ph name="LIST_POSITION" /> ਖੋਜ ਨਤੀਜਾ: <ph name="SEARCH_RESULT_TEXT" />। ਸੈਕਸ਼ਨ 'ਤੇ ਨੈਵੀਗੇਟ ਕਰਨ ਲਈ Enter ਦਬਾਓ।</translation> <translation id="652492607360843641">ਤੁਸੀਂ <ph name="NETWORK_TYPE" /> ਨੈੱਟਵਰਕ ਨਾਲ ਕਨੈਕਟ ਹੋ।</translation> +<translation id="6527081081771465939">ਅਗਿਆਤ ਵਾਈ-ਫਾਈ ਦੀ ਸੁਰੱਖਿਆ ਸੰਬੰਧੀ ਪ੍ਰੋਟੋਕੋਲ</translation> <translation id="6527303717912515753">ਸ਼ੇਅਰ ਕਰੋ</translation> <translation id="6528513914570774834">ਇਸ ਡੀਵਾਈਸ ਦੇ ਹੋਰ ਵਰਤੋਂਕਾਰਾਂ ਨੂੰ ਇਸ ਨੈੱਟਵਰਕ ਦੀ ਵਰਤੋਂ ਕਰਨ ਦੀ ਇਜਾਜ਼ਤ ਦਿਓ</translation> <translation id="652948702951888897">Chrome ਇਤਿਹਾਸ</translation> @@ -4621,6 +4646,7 @@ <translation id="6680442031740878064">ਉਪਲਬਧ: <ph name="AVAILABLE_SPACE" /></translation> <translation id="6680650203439190394">ਦਰ</translation> <translation id="6681668084120808868">ਫ਼ੋਟੋ ਲਓ</translation> +<translation id="6684827949542560880">ਨਵੀਨਤਮ ਅੱਪਡੇਟ ਡਾਊਨਲੋਡ ਕੀਤਾ ਜਾ ਰਿਹਾ ਹੈ</translation> <translation id="668599234725812620">Google Play ਖੋਲ੍ਹੋ</translation> <translation id="6686490380836145850">ਟੈਬਸ ਨੂੰ ਸੱਜੇ ਪਾਸੇ ਬੰਦ ਕਰੋ</translation> <translation id="6686817083349815241">ਆਪਣਾ ਪਾਸਵਰਡ ਰੱਖਿਅਤ ਕਰੋ</translation> @@ -4730,6 +4756,7 @@ <translation id="6812841287760418429">ਬਦਲਾਵ ਰੱਖੋ</translation> <translation id="6817174620439930047">ਪੁੱਛੋ ਜਦੋਂ ਕੋਈ ਸਾਈਟ MIDI ਡੀਵਾਈਸਾਂ 'ਤੇ ਪਹੁੰਚ ਕਰਨ ਲਈ ਸਿਸਟਮ ਦੇ ਵਿਸ਼ੇਸ਼ ਸੁਨੇਹੇ ਵਰਤਣਾ ਚਾਹੁੰਦੀ ਹੋਵੇ (ਸਿਫ਼ਾਰਿਸ਼ੀ)</translation> <translation id="6818198425579322765">ਅਨੁਵਾਦ ਕਰਨ ਲਈ ਪੰਨੇ ਦੀ ਭਾਸ਼ਾ</translation> +<translation id="6818802132960437751">ਅੰਦਰ-ਮੌਜੂਦ ਵਾਇਰਸ ਸੁਰੱਖਿਆ</translation> <translation id="682123305478866682">ਡੈਸਕਟਾਪ ਕਾਸਟ ਕਰੋ</translation> <translation id="6823174134746916417">'ਕਲਿੱਕ ਕਰਨ ਲਈ ਟੈਪ ਕਰੋ' ਟੱਚਪੈਡ</translation> <translation id="6823506025919456619">ਤੁਹਾਨੂੰ ਆਪਣੇ ਡੀਵਾਈਸਾਂ ਨੂੰ ਦੇਖਣ ਲਈ Chrome 'ਤੇ ਸਾਈਨ-ਇਨ ਕਰਨ ਦੀ ਲੋੜ ਹੈ</translation> @@ -5376,6 +5403,7 @@ <translation id="7631205654593498032">ਆਪਣੇ ਡੀਵਾਈਸ ਕਨੈਕਟ ਕਰਕੇ, ਤੁਸੀਂ ਇਹ ਸਹਿਮਤੀ ਦਿੰਦੇ ਹੋ ਕਿ ਤੁਹਾਡੀ <ph name="DEVICE_TYPE" /> ਇਹ ਕਰ ਸਕਦੀ ਹੈ:</translation> <translation id="7631887513477658702">&ਹਮੇਸ਼ਾਂ ਇਸ ਪ੍ਰਕਾਰ ਦੀਆਂ ਫਾਈਲਾਂ ਖੋਲ੍ਹੋ</translation> <translation id="7632948528260659758">ਹੇਠਾਂ ਦਿੱਤੇ kiosk ਐਪਸ ਅੱਪਡੇਟ ਕਰਨ ਵਿੱਚ ਅਸਫਲ ਹੋ ਗਏ ਹਨ:</translation> +<translation id="7633724038415831385">ਬੱਸ ਇਸ ਵਾਰ ਹੀ ਤੁਸੀਂ ਕਿਸੇ ਅੱਪਡੇਟ ਲਈ ਉਡੀਕ ਕਰੋਗੇ। Chromebook 'ਤੇ, ਬੈਕਗ੍ਰਾਊਂਡ ਵਿੱਚ ਸਾਫ਼ਟਵੇਅਰ ਅੱਪਡੇਟ ਹੁੰਦੇ ਹਨ।</translation> <translation id="7634566076839829401">ਕੁਝ ਗ਼ਲਤ ਹੋਇਆ ਸੀ। ਕਿਰਪਾ ਕਰਕੇ ਦੁਬਾਰਾ ਕੋਸ਼ਿਸ਼ ਕਰੋ।</translation> <translation id="763632859238619983">ਕਿਸੇ ਵੀ ਸਾਈਟ ਨੂੰ ਭੁਗਤਾਨ ਹੈਂਡਲਰ ਸਥਾਪਤ ਨਾ ਕਰਨ ਦਿਓ</translation> <translation id="7636919061354591437">ਇਸ ਡੀਵਾਈਸ 'ਤੇ ਸਥਾਪਤ ਕਰੋ</translation> @@ -5653,6 +5681,7 @@ <translation id="7933314993013528982">{NUM_TABS,plural, =1{ਸਾਈਟ ਅਣਮਿਊਟ ਕਰੋ}one{ਸਾਈਟ ਅਣਮਿਊਟ ਕਰੋ}other{ਸਾਈਟਾਂ ਅਣਮਿਊਟ ਕਰੋ}}</translation> <translation id="7933634003144813719">ਸਾਂਝੇ ਕੀਤੇ ਫੋਲਡਰਾਂ ਦਾ ਪ੍ਰਬੰਧਨ ਕਰੋ</translation> <translation id="793531125873261495">ਆਭਾਸੀ ਮਸ਼ੀਨ ਨੂੰ ਡਾਊਨਲੋਡ ਕਰਨ ਵਿੱਚ ਗੜਬੜ ਹੋ ਗਈ। ਕਿਰਪਾ ਕਰਕੇ ਦੁਬਾਰਾ ਕੋਸ਼ਿਸ ਕਰੋ।</translation> +<translation id="7936303884198020182">ਨਾਮ ਵਾਲਾ ਕੋਈ ਸਰਵਰ ਨਹੀਂ ਮਿਲਿਆ</translation> <translation id="7938594894617528435">ਇਸ ਵੇਲੇ ਆਫ਼ਲਾਈਨ</translation> <translation id="7939062555109487992">ਉੱਨਤ ਵਿਕਲਪ</translation> <translation id="7939412583708276221">ਫੇਰ ਵੀ ਰੱਖੋ</translation> @@ -5894,6 +5923,7 @@ <translation id="8226742006292257240">ਹੇਠਾਂ ਬੇਤਰਤੀਬੀ ਨਾਲ ਸਿਰਜਿਆ ਗਿਆ TPM ਪਾਸਵਰਡ ਹੈ ਜੋ ਤੁਹਾਡੇ ਕੰਪਿਊਟਰ ਨੂੰ ਦਿੱਤਾ ਗਿਆ ਹੈ:</translation> <translation id="8227119283605456246">ਫ਼ਾਈਲ ਨੱਥੀ ਕਰੋ</translation> <translation id="8230134520748321204">ਕੀ <ph name="ORIGIN" /> ਲਈ ਪਾਸਵਰਡ ਰੱਖਿਅਤ ਕਰਨਾ ਹੈ?</translation> +<translation id="8230672074305416752">ਪੂਰਵ-ਨਿਰਧਾਰਤ ਨੈੱਟਵਰਕ ਗੇਟਵੇ ਨੂੰ ਪਿੰਗ ਕਰਨਾ ਅਸਫਲ ਰਿਹਾ</translation> <translation id="8234795456569844941">ਕਿਰਪਾ ਕਰਕੇ ਸਾਡੇ ਇੰਜੀਨੀਅਰਾਂ ਨੂੰ ਇਸ ਸਮੱਸਿਆ ਦਾ ਹੱਲ ਕਰਨ ਵਿੱਚ ਮਦਦ ਕਰੋ। ਸਾਨੂੰ ਦੱਸੋ ਕਿ ਤੁਹਾਨੂੰ ਪ੍ਰੋਫਾਈਲ ਗੜਬੜ ਸੁਨੇਹਾ ਮਿਲਣ ਤੋਂ ਠੀਕ ਪਹਿਲਾਂ ਕੀ ਹੋਇਆ ਸੀ:</translation> <translation id="8236917170563564587">ਇਸਦੀ ਬਜਾਏ ਇਹ ਟੈਬ ਸਾਂਝੀ ਕਰੋ</translation> <translation id="8237647586961940482">ਗੂੜ੍ਹਾ ਗੁਲਾਬੀ ਅਤੇ ਲਾਲ</translation> @@ -5954,6 +5984,7 @@ <translation id="8288032458496410887"><ph name="APP" /> ਅਣਸਥਾਪਤ ਕਰੋ...</translation> <translation id="8289128870594824098">ਡਿਸਕ ਦਾ ਆਕਾਰ</translation> <translation id="8291967909914612644">ਹੋਮ ਪ੍ਰਦਾਨਕ ਦੇਸ਼</translation> +<translation id="8293206222192510085">ਬੁੱਕਮਾਰਕ ਸ਼ਾਮਿਲ ਕਰੋ</translation> <translation id="8294431847097064396">ਸ੍ਰੋਤ</translation> <translation id="8297006494302853456">ਕਮਜ਼ੋਰ</translation> <translation id="8299319456683969623">ਤੁਸੀਂ ਇਸ ਵੇਲੇ ਆਫ਼ਲਾਈਨ ਹੋ।</translation> @@ -6003,6 +6034,7 @@ <translation id="8363095875018065315">ਸਥਿਰ</translation> <translation id="8363142353806532503">ਮਾਈਕ੍ਰੋਫ਼ੋਨ ਬਲਾਕ ਕੀਤਾ ਗਿਆ</translation> <translation id="8363763184161554204">ਮਨਜ਼ੂਰਸ਼ੁਦਾ <ph name="PERMISSION" /></translation> +<translation id="8364946094152050673">ਖਾਲੀ ਨਾਮ ਵਾਲੇ ਸਰਵਰ</translation> <translation id="8366396658833131068">ਤੁਹਾਡਾ ਨੈੱਟਵਰਕ ਕਨੈਕਸ਼ਨ ਮੁੜ-ਬਹਾਲ ਕੀਤਾ ਗਿਆ ਹੈ। ਕਿਰਪਾ ਕਰਕੇ ਆਪਣਾ ਕਿਓਸਕ ਐਪ ਲਾਂਚ ਕਰਨ ਲਈ ਇੱਕ ਵੱਖਰਾ ਨੈੱਟਵਰਕ ਚੁਣੋ ਜਾਂ 'ਜਾਰੀ ਰੱਖੋ' ਬਟਨ ਦਬਾਓ।</translation> <translation id="8368027906805972958">ਅਗਿਆਤ ਜਾਂ ਅਸਮਰਥਿਤ ਡੀਵਾਈਸ (<ph name="DEVICE_ID" />)</translation> <translation id="8368859634510605990">&ਸਾਰੇ ਬੁੱਕਮਾਰਕ ਖੋਲ੍ਹੋ</translation> @@ -6088,8 +6120,10 @@ <translation id="8472623782143987204">ਹਾਰਡਵੇਅਰ-ਬੈਕਅੱਪ</translation> <translation id="8473863474539038330">ਪਤੇ ਅਤੇ ਹੋਰ</translation> <translation id="8475313423285172237">ਤੁਹਾਡੇ ਕੰਪਿਊਟਰ ਦੇ ਕਿਸੇ ਹੋਰ ਪ੍ਰੋਗਰਾਮ ਨੇ ਇੱਕ ਐਕਸਟੈਂਸ਼ਨ ਜੋੜ ਦਿੱਤੀ ਜੋ Chrome ਦੇ ਕੰਮ ਕਰਨ ਦੇ ਤਰੀਕੇ ਨੂੰ ਬਦਲ ਸਕਦੀ ਹੈ।</translation> +<translation id="8475690821716466388">ਵਾਈ-ਫਾਈ ਨੈੱਟਵਰਕ ਕਮਜ਼ੋਰ ਪ੍ਰੋਟੋਕੋਲ WEP PSK ਨਾਲ ਸੁਰੱਖਿਅਤ ਹੈ</translation> <translation id="8477241577829954800">ਛੱਡ ਦਿੱਤਾ</translation> <translation id="8477384620836102176">&ਸਧਾਰਨ</translation> +<translation id="8477551185774834963">DNS ਵਿਲੰਬਤਾ ਇਜਾਜ਼ਤ ਦਿੱਤੀ ਘੱਟੋ-ਘੱਟ ਸੀਮਾ ਤੋਂ ਥੋੜ੍ਹਾ ਜਿਹੀ ਉੱਪਰ ਹੈ</translation> <translation id="8480082892550707549">ਭਾਵੇਂ ਤੁਸੀਂ ਪਹਿਲਾਂ ਵੀ ਇਸ ਸਾਈਟ ਤੋਂ ਫ਼ਾਈਲਾਂ ਡਾਊਨਲੋਡ ਕੀਤੀਆਂ ਹਨ, ਸਾਈਟ ਅਸਥਾਈ ਤੌਰ 'ਤੇ ਅਸੁਰੱਖਿਅਤ (ਹੈਕ ਕੀਤੀ ਗਈ) ਹੋ ਸਕਦੀ ਹੈ। ਇਸ ਫ਼ਾਈਲ ਨੂੰ ਬਾਅਦ ਵਿੱਚ ਡਾਊਨਲੋਡ ਕਰਨ ਦੀ ਕੋਸ਼ਿਸ਼ ਕਰੋ।</translation> <translation id="8480869669560681089"><ph name="VENDOR_NAME" /> ਤੋਂ ਅਗਿਆਤ ਡੀਵਾਈਸ</translation> <translation id="8481187309597259238">USB ਇਜਾਜ਼ਤ ਦੀ ਪੁਸ਼ਟੀ ਕਰੋ</translation> @@ -6141,6 +6175,7 @@ <translation id="8546930481464505581">ਸਪੱਰਸ਼ ਪੱਟੀ ਨੂੰ ਵਿਉਂਤਬੱਧ ਕਰੋ</translation> <translation id="8547013269961688403">ਪੂਰੀ-ਸਕ੍ਰੀਨ ਵਿਸਤਾਰਕ ਚਾਲੂ ਕਰੋ</translation> <translation id="85486688517848470">ਚੋਟੀ ਦੀ ਕਤਾਰ ਦੀਆਂ ਕੁੰਜੀਆਂ ਦੇ ਵਤੀਰੇ ਦੀ ਅਦਲਾ-ਬਦਲੀ ਕਰਨ ਲਈ ਖੋਜ ਕੁੰਜੀ ਨੂੰ ਦਬਾਈ ਰੱਖੋ</translation> +<translation id="8549316893834449916">ਤੁਸੀਂ ਆਪਣੀ Chromebook ਵਿੱਚ ਸਾਈਨ-ਇਨ ਕਰਨ ਲਈ ਆਪਣੇ Google ਖਾਤੇ ਦੀ ਵਰਤੋਂ ਕਰੋਗੇ - ਓਹੀ ਖਾਤਾ ਜਿਸਦੀ ਵਰਤੋਂ ਤੁਸੀਂ Gmail, Drive, YouTube ਅਤੇ ਹੋਰਾਂ ਲਈ ਕਰਦੇ ਹੋ।</translation> <translation id="8551388862522347954">ਲਸੰਸ</translation> <translation id="8551588720239073785">ਤਾਰੀਖ ਅਤੇ ਸਮਾਂ ਸੈਟਿੰਗਾਂ</translation> <translation id="8553342806078037065">ਹੋਰਾਂ ਲੋਕਾਂ ਦਾ ਪ੍ਰਬੰਧਨ ਕਰੋ</translation> @@ -6279,6 +6314,7 @@ <translation id="8720200012906404956">ਕੋਈ ਮੋਬਾਈਲ ਨੈੱਟਵਰਕ ਲੱਭਿਆ ਜਾ ਰਿਹਾ ਹੈ। <ph name="BEGIN_LINK" />ਹੋਰ ਜਾਣੋ<ph name="END_LINK" /></translation> <translation id="8720816553731218127">ਸਥਾਪਨਾ-ਸਮਾਂ ਵਿਸ਼ੇਸ਼ਤਾਵਾਂ ਦੇ ਸ਼ੁਰੂ ਹੋਣ ਦਾ ਸਮਾਂ ਸਮਾਪਤ ਹੋ ਗਿਆ ਹੈ।</translation> <translation id="8722912030556880711">ਵਰਤੋਂ ਅਤੇ ਤਸ਼ਖੀਸ ਡਾਟਾ ਭੇਜੋ। ਇਹ ਡੀਵਾਈਸ ਇਸ ਵੇਲੇ ਸਵੈਚਲਿਤ ਤੌਰ 'ਤੇ ਤਸ਼ਖੀਸ, ਡੀਵਾਈਸ ਅਤੇ ਐਪ ਵਰਤੋਂ ਡਾਟਾ Google ਨੂੰ ਭੇਜ ਰਿਹਾ ਹੈ। ਇਸ ਨਾਲ ਸਿਸਟਮ ਅਤੇ ਐਪ ਸਥਿਰਤਾ ਅਤੇ ਹੋਰ ਚੀਜ਼ਾਂ ਨੂੰ ਬਿਹਤਰ ਬਣਾਉਣ ਵਿੱਚ ਮਦਦ ਮਿਲੇਗੀ। ਕੁਝ ਏਕੀਕ੍ਰਿਤ ਜਾਣਕਾਰੀ Google ਐਪਾਂ ਅਤੇ ਪਾਰਟਨਰਾਂ, ਜਿਵੇਂ ਕਿ Android ਵਿਕਾਸਕਾਰਾਂ, ਦੀ ਵੀ ਮਦਦ ਕਰੇਗੀ। ਜੇ ਤੁਹਾਡੀ ਵਧੀਕ 'ਵੈੱਬ ਅਤੇ ਐਪ ਸਰਗਰਮੀ' ਸੈਟਿੰਗ ਚਾਲੂ ਹੋਵੇ, ਤਾਂ ਇਹ ਡਾਟਾ ਤੁਹਾਡੇ Google ਖਾਤੇ ਵਿੱਚ ਰੱਖਿਅਤ ਕੀਤਾ ਜਾ ਸਕਦਾ ਹੈ। <ph name="BEGIN_LINK2" />ਹੋਰ ਜਾਣੋ<ph name="END_LINK2" /></translation> +<translation id="8723108084122415655">ਗੈਰ-ਪੂਰਵ-ਨਿਰਧਾਰਤ ਨੈੱਟਵਰਕ ਵਿਲੰਬਤਾ ਘੱਟੋ-ਘੱਟ ਸੀਮਾ ਤੋਂ ਉੱਪਰ ਹੈ</translation> <translation id="8724405322205516354">ਜਦੋਂ ਤੁਹਾਨੂੰ ਇਹ ਪ੍ਰਤੀਕ ਦਿਸੇ, ਤਾਂ ਪਛਾਣ ਕਰਨ ਜਾਂ ਖਰੀਦਾਂ ਨੂੰ ਮਨਜ਼ੂਰ ਕਰਨ ਲਈ ਆਪਣੇ ਫਿੰਗਰਪ੍ਰਿੰਟ ਦੀ ਵਰਤੋਂ ਕਰੋ।</translation> <translation id="8724409975248965964">ਫਿੰਗਰਪ੍ਰਿੰਟ ਸ਼ਾਮਲ ਕੀਤਾ ਗਿਆ</translation> <translation id="8724859055372736596">&ਫੋਲਡਰ ਵਿੱਚ ਦਿਖਾਓ</translation> @@ -6456,6 +6492,7 @@ <translation id="8909833622202089127">ਸਾਈਟ ਤੁਹਾਡੇ ਟਿਕਾਣੇ ਨੂੰ ਟਰੈਕ ਕਰ ਰਹੀ ਹੈ</translation> <translation id="8910146161325739742">ਆਪਣੀ ਸਕ੍ਰੀਨ ਸ਼ੇਅਰ ਕਰੋ</translation> <translation id="8910222113987937043">ਤੁਹਾਡੇ ਬੁੱਕਮਾਰਕਾਂ, ਇਤਿਹਾਸ, ਪਾਸਵਰਡਾਂ, ਅਤੇ ਹੋਰ ਸੈਟਿੰਗਾਂ ਵਿੱਚ ਕੀਤੀਆਂ ਤਬਦੀਲੀਆਂ ਹੁਣ ਤੁਹਾਡੇ Google ਖਾਤੇ 'ਤੇ ਸਮਕਾਲੀਕਰਨ ਨਹੀਂ ਕੀਤੀਆਂ ਜਾਣਗੀਆਂ। ਹਾਲਾਂਕਿ, ਤੁਹਾਡਾ ਪਹਿਲਾਂ ਹੀ ਮੌਜੂਦ ਡਾਟਾ ਤੁਹਾਡੇ Google ਖਾਤੇ ਵਿੱਚ ਸਟੋਰ ਕੀਤਾ ਰਹੇਗਾ ਅਤੇ ਇਸ ਨੂੰ <ph name="BEGIN_LINK" />Google ਡੈਸ਼ਬੋਰਡ<ph name="END_LINK" /> 'ਤੇ ਪ੍ਰਬੰਧਿਤ ਕੀਤਾ ਜਾ ਸਕਦਾ ਹੈ।</translation> +<translation id="8910721771319628100">ਪੂਰਵ-ਨਿਰਧਾਰਤ ਨੈੱਟਵਰਕ ਵਿਲੰਬਤਾ ਘੱਟੋ-ਘੱਟ ਸੀਮਾ ਤੋਂ ਉੱਪਰ ਹੈ</translation> <translation id="8912362522468806198">Google ਖਾਤਾ</translation> <translation id="8912793549644936705">ਸਟ੍ਰੈਚ ਕਰੋ</translation> <translation id="8912810933860534797">ਸਵੈਚਲਿਤ ਸਕੈਨ ਚਾਲੂ ਕਰੋ</translation>
diff --git a/chrome/app/resources/generated_resources_pl.xtb b/chrome/app/resources/generated_resources_pl.xtb index 097a1c0..a86eb118 100644 --- a/chrome/app/resources/generated_resources_pl.xtb +++ b/chrome/app/resources/generated_resources_pl.xtb
@@ -525,7 +525,6 @@ <translation id="1608668830839595724">Więcej czynności dla wybranych elementów</translation> <translation id="161042844686301425">Cyjan</translation> <translation id="1611432201750675208">Urządzenie jest zablokowane</translation> -<translation id="1611584202130317952">Przepływ obsługi administracyjnej został przerwany. Spróbuj ponownie lub skontaktuj się z właścicielem lub administratorem urządzenia.</translation> <translation id="1614511179807650956">Możliwe, że masz już wykorzystany limit mobilnej transmisji danych. Odwiedź portal aktywacji <ph name="NAME" />, by kupić dodatkowy pakiet danych.</translation> <translation id="161460670679785907">Nie można wykryć telefonu</translation> <translation id="1616206807336925449">To rozszerzenie nie wymaga specjalnych uprawnień.</translation> @@ -963,6 +962,7 @@ <translation id="2148219725039824548">Błąd podczas podłączania udziału. Udziału nie znaleziono w sieci.</translation> <translation id="2148756636027685713">Formatowanie zostało zakończone.</translation> <translation id="2148892889047469596">Przesyłaj kartę</translation> +<translation id="2149973817440762519">Edytuj zakładkę</translation> <translation id="2150139952286079145">Szukaj urządzeń docelowych</translation> <translation id="2150661552845026580">Dodać „<ph name="EXTENSION_NAME" />”?</translation> <translation id="2151576029659734873">Wprowadzono nieprawidłowy indeks tabulacji.</translation> @@ -5985,6 +5985,7 @@ <translation id="8288032458496410887">Odinstaluj aplikację <ph name="APP" />…</translation> <translation id="8289128870594824098">Rozmiar dysku</translation> <translation id="8291967909914612644">Kraj operatora macierzystego</translation> +<translation id="8293206222192510085">Dodaj zakładkę</translation> <translation id="8294431847097064396">Źródło</translation> <translation id="8297006494302853456">Słaby</translation> <translation id="8299319456683969623">Jesteś teraz w trybie offline.</translation>
diff --git a/chrome/app/resources/generated_resources_pt-BR.xtb b/chrome/app/resources/generated_resources_pt-BR.xtb index 7c70ec9..9a60aa1 100644 --- a/chrome/app/resources/generated_resources_pt-BR.xtb +++ b/chrome/app/resources/generated_resources_pt-BR.xtb
@@ -525,7 +525,6 @@ <translation id="1608668830839595724">Mais ações para itens selecionados</translation> <translation id="161042844686301425">Ciano</translation> <translation id="1611432201750675208">Seu dispositivo está bloqueado</translation> -<translation id="1611584202130317952">O fluxo de aprovisionamento foi interrompido. Tente novamente ou entre em contato com o proprietário ou administrador do dispositivo.</translation> <translation id="1614511179807650956">Você pode ter esgotado sua cota de dados móveis. Visite o portal de ativação do <ph name="NAME" /> para comprar mais dados</translation> <translation id="161460670679785907">Não foi possível detectar seu smartphone</translation> <translation id="1616206807336925449">Esta extensão não requer permissões especiais.</translation> @@ -967,6 +966,7 @@ <translation id="2148219725039824548">Erro ao ativar o compartilhamento. O compartilhamento especificado não foi encontrado na rede.</translation> <translation id="2148756636027685713">Formatação concluída</translation> <translation id="2148892889047469596">Transmitir guia</translation> +<translation id="2149973817440762519">Editar favoritos</translation> <translation id="2150139952286079145">Pesquisar destinos</translation> <translation id="2150661552845026580">Adicionar "<ph name="EXTENSION_NAME" />"?</translation> <translation id="2151576029659734873">Índice de guias inválido inserido.</translation> @@ -5992,6 +5992,7 @@ <translation id="8288032458496410887">Desinstalar <ph name="APP" />...</translation> <translation id="8289128870594824098">Tamanho do disco</translation> <translation id="8291967909914612644">País do provedor doméstico</translation> +<translation id="8293206222192510085">Adicionar favorito</translation> <translation id="8294431847097064396">Origem</translation> <translation id="8297006494302853456">Fraco</translation> <translation id="8299319456683969623">No momento, você está off-line.</translation>
diff --git a/chrome/app/resources/generated_resources_pt-PT.xtb b/chrome/app/resources/generated_resources_pt-PT.xtb index 7cd65137..fbd78fe6 100644 --- a/chrome/app/resources/generated_resources_pt-PT.xtb +++ b/chrome/app/resources/generated_resources_pt-PT.xtb
@@ -71,6 +71,7 @@ <translation id="1070705170564860382">A abrir num navegador alternativo dentro de <ph name="COUNTDOWN_SECONDS" /> segundos…</translation> <translation id="1071917609930274619">Cifragem de dados</translation> <translation id="1072700771426194907">Dispositivo USB detetado</translation> +<translation id="107278043869924952">Utilizar PIN para além da palavra-passe</translation> <translation id="1076176485976385390">Navegar pelas páginas com um cursor de texto</translation> <translation id="1076698951459398590">Ativar tema</translation> <translation id="1076818208934827215">Microsoft Internet Explorer</translation> @@ -524,7 +525,6 @@ <translation id="1608668830839595724">Mais ações para os itens selecionados</translation> <translation id="161042844686301425">Turquesa</translation> <translation id="1611432201750675208">O seu dispositivo está bloqueado</translation> -<translation id="1611584202130317952">O fluxo do fornecimento de dispositivos foi interrompido. Tente novamente ou contacte o proprietário ou o gestor do dispositivo.</translation> <translation id="1614511179807650956">Poderá ter atingido o limite de utilização dos dados móveis. Visite o portal de ativação de <ph name="NAME" /> para comprar mais dados.</translation> <translation id="161460670679785907">Não é possível detetar o telemóvel.</translation> <translation id="1616206807336925449">Esta extensão não requer autorizações especiais.</translation> @@ -533,6 +533,7 @@ <translation id="1618268899808219593">C&entro de Ajuda</translation> <translation id="1620307519959413822">Palavra-passe incorreta. Tente novamente ou clique em Esqueceu-se da palavra-passe para a repor.</translation> <translation id="1620510694547887537">Câmara</translation> +<translation id="1621831347985899379">Os dados do <ph name="DEVICE_TYPE" /> serão eliminados</translation> <translation id="1622054403950683339">Esquecer rede Wi-Fi</translation> <translation id="1623132449929929218">De momento, as imagens não estão disponíveis. Volte a estabelecer ligação à Internet para ver as coleções de imagens de fundo.</translation> <translation id="1623723619460186680">Redução da luz azul</translation> @@ -760,6 +761,7 @@ <translation id="1877377290348678128">Etiqueta (opcional)</translation> <translation id="1877520246462554164">Falha ao obter o símbolo de autenticação. Termine e inicie sessão novamente para tentar de novo.</translation> <translation id="1877860345998737529">Atribuição de ações do acesso por comutador</translation> +<translation id="1878155070920054810">O seu Chromebook vai ficar sem bateria antes da conclusão da atualização. Para evitar interrupções, certifique-se de que o mesmo está a carregar corretamente.</translation> <translation id="1879000426787380528">Iniciar sessão como</translation> <translation id="1880905663253319515">Eliminar o certificado "<ph name="CERTIFICATE_NAME" />"?</translation> <translation id="1881445033931614352">Esquema de teclado</translation> @@ -964,6 +966,7 @@ <translation id="2148219725039824548">Erro ao montar a partilha. A partilha especificada não foi encontrada na rede.</translation> <translation id="2148756636027685713">Formatação concluída</translation> <translation id="2148892889047469596">Transmitir separador</translation> +<translation id="2149973817440762519">Editar marcador</translation> <translation id="2150139952286079145">Pesquisar destinos</translation> <translation id="2150661552845026580">Adicionar "<ph name="EXTENSION_NAME" />"?</translation> <translation id="2151576029659734873">Introduzido índice de separador inválido.</translation> @@ -1073,6 +1076,7 @@ <translation id="2270627217422354837">Trocar dados com com qualquer dispositivo nos seguintes domínios: <ph name="DOMAINS" /></translation> <translation id="2272570998639520080">Copo de Martini</translation> <translation id="2273119997271134996">Problema na porta de vídeo da estação de ancoragem</translation> +<translation id="2274840746523584236">Carregue o seu Chromebook</translation> <translation id="2276503375879033601">Adicionar mais aplicações</translation> <translation id="2277255602909579701">Todos os cookies e dados do site</translation> <translation id="2277769717710009150">{COUNT,plural, =1{1 item copiado}other{# itens copiados}}</translation> @@ -1915,6 +1919,7 @@ <translation id="3308116878371095290">Esta página foi impedida de definir cookies.</translation> <translation id="3308134619352333507">Ocultar Botão</translation> <translation id="3308852433423051161">A carregar o Assistente Google...</translation> +<translation id="3310640316857623290">Latência de DNS significativamente acima do limite permitido.</translation> <translation id="3311445899360743395">Os dados associados a esta app serão removidos deste dispositivo.</translation> <translation id="3312424061798279731">Idiomas ativados</translation> <translation id="3313622045786997898">Valor de assinatura do certificado</translation> @@ -1927,6 +1932,7 @@ <translation id="3323295311852517824">{NUM_FILES,plural, =0{Estes dados têm conteúdo sensível ou perigoso. Remova este conteúdo e tente novamente.}=1{Este ficheiro tem conteúdo sensível ou perigoso. Remova este conteúdo e tente novamente.}other{Estes ficheiros têm conteúdo sensível ou perigoso. Remova este conteúdo e tente novamente.}}</translation> <translation id="3323521181261657960">Bónus! Tens mais tempo de utilização</translation> <translation id="3325910708063135066">A câmara e o microfone estão desativados nas Preferências do Sistema no Mac</translation> +<translation id="3327050066667856415">Os Chromebooks foram concebidos a pensar na segurança. O seu dispositivo está automaticamente protegido contra software malicioso, sem que seja necessário software adicional.</translation> <translation id="3328489342742826322">Se restaurar a partir de uma cópia de segurança, irá eliminar as aplicações e os dados do Linux existentes na pasta Ficheiros Linux.</translation> <translation id="3331321258768829690">(<ph name="UTCOFFSET" />) <ph name="LONGTZNAME" /> (<ph name="EXEMPLARCITY" />)</translation> <translation id="3331974543021145906">Informações da aplicação</translation> @@ -2116,6 +2122,7 @@ <translation id="3556433843310711081">O seu gestor pode desbloqueá-lo</translation> <translation id="3557101512409028104">Defina restrições de Websites e limites de tempo de utilização com o Family Link</translation> <translation id="3559262020195162408">Falha ao instalar a política no dispositivo.</translation> +<translation id="3559533181353831840">Resta(m) cerca de <ph name="TIME_LEFT" /></translation> <translation id="3560034655160545939">&Verificação ortográfica</translation> <translation id="3562423906127931518">Este processo pode demorar alguns minutos. A configurar o contentor do Linux…</translation> <translation id="3563432852173030730">Não foi possível transferir a app de quiosque.</translation> @@ -2158,6 +2165,7 @@ <translation id="3602290021589620013">Pré-visualizar</translation> <translation id="3603622770190368340">Obter certificado de rede</translation> <translation id="3604713164406837697">Alterar imagem de fundo</translation> +<translation id="360565022852130722">A rede WiFi está protegida com um protocolo pouco seguro WEP 802.1x.</translation> <translation id="3605780360466892872">Empresário</translation> <translation id="3608576286259426129">Pré-visualização da imagem do utilizador</translation> <translation id="3610369246614755442">A ventoinha da estação de ancoragem necessita de manutenção</translation> @@ -2194,6 +2202,7 @@ <translation id="3639220004740062347">Sair do modo de leitor</translation> <translation id="3640214691812501263">Adicionar "<ph name="EXTENSION_NAME" />" para <ph name="USER_NAME" />?</translation> <translation id="3640613767643722554">Ensine o Assistente a reconhecer a sua voz</translation> +<translation id="3643014427358482789">O domínio <ph name="DOMAIN" /> vai desativar a depuração do ADB, o que irá repor o seu dispositivo <ph name="DEVICE_TYPE" />. Faça uma cópia de segurança dos ficheiros antes de reiniciar.</translation> <translation id="3645372836428131288">Mova ligeiramente para capturar uma parte diferente da impressão digital.</translation> <translation id="3647998456578545569">{COUNT,plural, =1{<ph name="ATTACHMENTS" /> recebido de <ph name="DEVICE_NAME" />}other{<ph name="ATTACHMENTS" /> recebidos de <ph name="DEVICE_NAME" />}}</translation> <translation id="3648348069317717750"><ph name="USB_DEVICE_NAME" /> detetado</translation> @@ -2282,6 +2291,7 @@ <translation id="3732857534841813090">Informações relacionadas com o Assistente Google</translation> <translation id="3733127536501031542">Servidor SSL com "Step-up"</translation> <translation id="3735740477244556633">Ordenar por</translation> +<translation id="3738632186060045350">Os dados do dispositivo <ph name="DEVICE_TYPE" /> serão eliminados dentro de 24 horas</translation> <translation id="3738924763801731196"><ph name="OID" />:</translation> <translation id="3739254215541673094">Pretende abrir <ph name="APPLICATION" />?</translation> <translation id="3742055079367172538">Captura de ecrã efetuada</translation> @@ -2469,6 +2479,7 @@ <translation id="3937734102568271121">Traduzir sempre <ph name="LANGUAGE" /></translation> <translation id="3938128855950761626">Dispositivos do fornecedor <ph name="VENDOR_ID" /></translation> <translation id="3940233957883229251">Ativar repetição automática</translation> +<translation id="3941014780699102620">Falha ao resolver anfitrião.</translation> <translation id="3941565636838060942">Para ocultar o acesso a este programa, é necessário ao utilizar <ph name="CONTROL_PANEL_APPLET_NAME" /> no Painel de controlo. @@ -2631,6 +2642,7 @@ <translation id="413121957363593859">Componentes</translation> <translation id="4131410914670010031">Preto e branco</translation> <translation id="413193092008917129">Rotinas de diagnóstico de rede</translation> +<translation id="4132183752438206707">Encontre apps na Google Play Store</translation> <translation id="4133076602192971179">Abrir a app para alterar a sua palavra-passe</translation> <translation id="4136203100490971508">A Luz noturna irá desativar-se automaticamente ao nascer do sol.</translation> <translation id="41365691917097717">Se continuar, vai ativar a depuração do adb para criar e testar aplicações para Android. Tenha em atenção que esta ação permite a instalação de aplicações para Android que não foram validadas pela Google. Além disso, se pretender desativar o adb, terá de efetuar uma reposição de fábrica.</translation> @@ -2880,6 +2892,8 @@ <translation id="4479877282574735775">A configurar a máquina virtual… Esta ação pode demorar alguns minutos.</translation> <translation id="4480590691557335796">O Chrome pode encontrar software prejudicial no seu computador e removê-lo.</translation> <translation id="4481530544597605423">Dispositivos dessincronizados</translation> +<translation id="4483049906298469269">Falha ao enviar ping ao gateway da rede não predefinida.</translation> +<translation id="4487489714832036847">Os Chromebooks utilizam apps em vez de software tradicional. Obtenha apps para produtividade, entretenimento e muito mais.</translation> <translation id="4488502501195719518">Pretende limpar todos os dados?</translation> <translation id="4493468155686877504">Recomendado (<ph name="INSTALL_SIZE" />)</translation> <translation id="4495419450179050807">Não mostrar nesta página</translation> @@ -2930,6 +2944,7 @@ <translation id="4546692474302123343">Entrada de texto por voz do Assistente Google</translation> <translation id="4547659257713117923">Sem separadores de outros dispositivos</translation> <translation id="4547672827276975204">Definir automaticamente</translation> +<translation id="4548483925627140043">Sinal não encontrado.</translation> <translation id="4549791035683739768">A sua chave de segurança não tem impressões digitais armazenadas.</translation> <translation id="4551763574344810652">Prima <ph name="MODIFIER_KEY_DESCRIPTION" /> para anular</translation> <translation id="4552089082226364758">Flash</translation> @@ -2969,6 +2984,7 @@ <translation id="4582563038311694664">Repor todas as definições</translation> <translation id="4585793705637313973">Editar página</translation> <translation id="4586275095964870617">Não foi possível abrir <ph name="URL" /> num navegador alternativo. Contacte o administrador do sistema.</translation> +<translation id="458794348635939462">Falha ao resolver todos os anfitriões.</translation> <translation id="4589713469967853491">Os registos foram escritos com êxito no diretório Transferências.</translation> <translation id="4590324241397107707">Armazenamento de bases de dados</translation> <translation id="4592891116925567110">App de desenho com a caneta stylus</translation> @@ -3352,6 +3368,7 @@ <translation id="5089810972385038852">Estado</translation> <translation id="5094721898978802975">Comunicar com aplicações nativas cooperantes</translation> <translation id="5097002363526479830">Falha ao ligar à rede "<ph name="NAME" />": <ph name="DETAILS" /></translation> +<translation id="5097649414558628673">Ferramenta: <ph name="PRINT_NAME" /></translation> <translation id="5097874180538493929">Clicar automaticamente quando o cursor para</translation> <translation id="5101042277149003567">Abrir todos os marcadores</translation> <translation id="5101839224773798795">Clicar automaticamente quando o cursor parar</translation> @@ -3570,6 +3587,7 @@ <translation id="5370819323174483825">&Recarregar</translation> <translation id="5372529912055771682">O modo de inscrição fornecido não é suportado por esta versão do sistema operativo. Certifique-se de que está a executar a versão mais recente e tente novamente.</translation> <translation id="5372579129492968947">Soltar extensão</translation> +<translation id="5372659122375744710">A rede Wi-Fi não é segura.</translation> <translation id="5376169624176189338">Clique para retroceder, mantenha premido para ver o histórico</translation> <translation id="5376931455988532197">Ficheiro demasiado grande</translation> <translation id="5377721922656071359">{COUNT,plural, =1{<ph name="ATTACHMENTS" /> enviado com êxito para <ph name="DEVICE_NAME" />}other{<ph name="ATTACHMENTS" /> enviados com êxito para <ph name="DEVICE_NAME" />}}</translation> @@ -3599,6 +3617,7 @@ <translation id="5414566801737831689">Ler os ícones dos Sites que visita</translation> <translation id="5417312524372586921">Temas do navegador</translation> <translation id="5419405654816502573">Voice Match</translation> +<translation id="5420274697768050645">Exija uma palavra-passe para desbloquear o dispositivo para maior segurança.</translation> <translation id="5420438158931847627">Determina a nitidez do texto e das imagens.</translation> <translation id="5422221874247253874">Ponto de acesso</translation> <translation id="5422781158178868512">Lamentamos, não foi possível reconhecer o aparelho de armazenamento externo.</translation> @@ -3723,6 +3742,7 @@ <translation id="5548606607480005320">Verificação de segurança</translation> <translation id="5551573675707792127">Teclado e introdução de texto</translation> <translation id="5553089923092577885">Mapeamentos de políticas de certificados</translation> +<translation id="5554403733534868102">Depois desta atualização, não terá de aguardar por outras</translation> <translation id="5554489410841842733">Este ícone estará visível se for possível utilizar a extensão na página actual.</translation> <translation id="5554720593229208774">Autoridade de certificação de e-mails</translation> <translation id="5556459405103347317">Recarregar</translation> @@ -4137,6 +4157,7 @@ <translation id="6061882183774845124">Enviar link para os dispositivos</translation> <translation id="6064217302520318294">Bloqueio de ecrã</translation> <translation id="6065289257230303064">Atributos de directório do requerente do certificado</translation> +<translation id="6069464830445383022">A sua Conta Google é o início de sessão do Chromebook</translation> <translation id="6069671174561668781">Definir Imagem de Fundo</translation> <translation id="6071181508177083058">confirmar palavra-passe</translation> <translation id="6071576563962215370">O sistema não conseguiu estabelecer o bloqueio dos atributos de tempo de instalação do dispositivo.</translation> @@ -4179,6 +4200,7 @@ <translation id="6104311680260824317">Não é possível associar o dispositivo ao domínio. O servidor não suporta os tipos de encriptação Kerberos especificados. Selecione "Mais opções" para aceder às definições de encriptação.</translation> <translation id="6104796831253957966">A fila da impressora está cheia.</translation> <translation id="6105994589138235234">Sincronização do navegador Chrome</translation> +<translation id="6108689792487843350">Não é possível alcançar o gateway.</translation> <translation id="6111972606040028426">Ativar Assistente Google</translation> <translation id="6112294629795967147">Tocar para redimensionar</translation> <translation id="6112727384379533756">Adicionar uma permissão</translation> @@ -4239,6 +4261,7 @@ <translation id="6178664161104547336">Selecionar um certificado</translation> <translation id="6181431612547969857">Transferência bloqueada</translation> <translation id="6185132558746749656">Localização do dispositivo</translation> +<translation id="6191293864534840972">Os servidores de nomes têm um formato incorreto.</translation> <translation id="6195446518998936840">Para configurar o controlo parental, a criança tem de ter uma Conta Google que irá ajudar a gerir. Pode definir limites de tempo de utilização, aprovar ou bloquear Websites e muito mais com a app Family Link.</translation> <translation id="6195693561221576702">Não é possível configurar este dispositivo no modo de demonstração offline.</translation> <translation id="6196640612572343990">Bloquear cookies de terceiros</translation> @@ -4452,6 +4475,7 @@ <translation id="6451591602925140504">{NUM_PAGES,plural, =0{<ph name="PAGE_TITLE" />}=1{<ph name="PAGE_TITLE" /> e mais 1 separador}other{<ph name="PAGE_TITLE" /> e mais # separadores}}</translation> <translation id="6451689256222386810">Se se esqueceu da frase de acesso ou pretender alterar esta definição, <ph name="BEGIN_LINK" />reponha a sincronização<ph name="END_LINK" />.</translation> <translation id="6452181791372256707">Rejeitar</translation> +<translation id="6452251728599530347"><ph name="PERCENT" /> concluído</translation> <translation id="6452961788130242735">Ocorreu um problema de rede ou o domínio é incorreto.</translation> <translation id="6455264371803474013">Em sites específicos</translation> <translation id="6455894534188563617">&Nova pasta</translation> @@ -4508,6 +4532,7 @@ <ph name="EVENT_NAME" /></translation> <translation id="6520876759015997832">Resultado da pesquisa <ph name="LIST_POSITION" /> de <ph name="LIST_SIZE" />: <ph name="SEARCH_RESULT_TEXT" />. Prima Enter para navegar para a secção.</translation> <translation id="652492607360843641">Está ligado a uma rede <ph name="NETWORK_TYPE" />.</translation> +<translation id="6527081081771465939">Protocolo de segurança de Wi-Fi desconhecido.</translation> <translation id="6527303717912515753">Partilhar</translation> <translation id="6528513914570774834">Permitir que outros utilizadores deste dispositivo utilizem esta rede</translation> <translation id="652948702951888897">Histórico do Chrome</translation> @@ -4624,6 +4649,7 @@ <translation id="6680442031740878064">Disponível: <ph name="AVAILABLE_SPACE" /></translation> <translation id="6680650203439190394">Classificar</translation> <translation id="6681668084120808868">Tirar foto</translation> +<translation id="6684827949542560880">A transferir a atualização mais recente</translation> <translation id="668599234725812620">Abrir o Google Play</translation> <translation id="6686490380836145850">Fechar separadores à direita</translation> <translation id="6686817083349815241">Guardar a sua palavra-passe</translation> @@ -4733,6 +4759,7 @@ <translation id="6812841287760418429">Manter alterações</translation> <translation id="6817174620439930047">Perguntar sempre que um site pretender utilizar mensagens exclusivas do sistema para aceder a dispositivos MIDI (recomendado)</translation> <translation id="6818198425579322765">Idioma da página a traduzir</translation> +<translation id="6818802132960437751">Proteção antivírus incorporada</translation> <translation id="682123305478866682">Transmitir ambiente de trabalho</translation> <translation id="6823174134746916417">Tocar para clicar do touchpad</translation> <translation id="6823506025919456619">É necessário iniciar sessão no Chrome para ver os seus dispositivos</translation> @@ -5379,6 +5406,7 @@ <translation id="7631205654593498032">Ao associar os seus dispositivos, concorda que o <ph name="DEVICE_TYPE" /> pode:</translation> <translation id="7631887513477658702">&Abrir Sempre Ficheiros Deste Tipo</translation> <translation id="7632948528260659758">A atualização das seguintes aplicações quiosque falhou:</translation> +<translation id="7633724038415831385">Esta é a única altura em que terá de aguardar por uma atualização. Nos Chromebooks, as atualizações de software ocorrem em segundo plano.</translation> <translation id="7634566076839829401">Algo correu mal. Tente novamente mais tarde.</translation> <translation id="763632859238619983">Não permitir que os sites instalem controladores de pagamentos</translation> <translation id="7636919061354591437">Instalar neste dispositivo</translation> @@ -5657,6 +5685,7 @@ <translation id="7933314993013528982">{NUM_TABS,plural, =1{Reativar o som do site}other{Reativar o som dos sites}}</translation> <translation id="7933634003144813719">Gerir pastas partilhadas</translation> <translation id="793531125873261495">Ocorreu um erro ao transferir a máquina virtual. Tente novamente.</translation> +<translation id="7936303884198020182">Não foram encontrados servidores de nomes.</translation> <translation id="7938594894617528435">Atualmente offline</translation> <translation id="7939062555109487992">Opções avançadas</translation> <translation id="7939412583708276221">Manter na mesma</translation> @@ -5899,6 +5928,7 @@ <translation id="8226742006292257240">A palavra-passe TPM abaixo foi gerada aleatoriamente e atribuída ao seu computador:</translation> <translation id="8227119283605456246">Anexar ficheiro</translation> <translation id="8230134520748321204">Pretende guardar a palavra-passe para <ph name="ORIGIN" />?</translation> +<translation id="8230672074305416752">Falha ao enviar ping ao gateway da rede predefinida.</translation> <translation id="8234795456569844941">Ajude os nossos engenheiros a resolver este problema. Diga-nos o que aconteceu imediatamente antes de ter recebido a mensagem de erro do perfil:</translation> <translation id="8236917170563564587">Em alternativa, partilhar este separador</translation> <translation id="8237647586961940482">Cor-de-rosa escuro e vermelho</translation> @@ -5959,6 +5989,7 @@ <translation id="8288032458496410887">Desinstalar a aplicação <ph name="APP" />…</translation> <translation id="8289128870594824098">Tamanho do disco</translation> <translation id="8291967909914612644">País do fornecedor base</translation> +<translation id="8293206222192510085">Adicionar marcador</translation> <translation id="8294431847097064396">Origem</translation> <translation id="8297006494302853456">Fraca</translation> <translation id="8299319456683969623">De momento, está offline.</translation> @@ -6008,6 +6039,7 @@ <translation id="8363095875018065315">estável</translation> <translation id="8363142353806532503">Microfone bloqueado</translation> <translation id="8363763184161554204">autorizou <ph name="PERMISSION" /></translation> +<translation id="8364946094152050673">Os servidores de nomes estão vazios.</translation> <translation id="8366396658833131068">A conetividade de rede foi restaurada. Selecione uma rede diferente ou prima "Continuar" abaixo para iniciar a app de quiosque.</translation> <translation id="8368027906805972958">Dispositivo desconhecido ou não suportado (<ph name="DEVICE_ID" />)</translation> <translation id="8368859634510605990">&Abrir todos os marcadores</translation> @@ -6093,8 +6125,10 @@ <translation id="8472623782143987204">suporte de hardware</translation> <translation id="8473863474539038330">Endereços e mais</translation> <translation id="8475313423285172237">Outro programa do computador adicionou uma extensão que pode alterar o funcionamento do Chrome.</translation> +<translation id="8475690821716466388">A rede Wi-Fi está protegida com um protocolo pouco seguro WEP PSK.</translation> <translation id="8477241577829954800">Substituído</translation> <translation id="8477384620836102176">&Geral</translation> +<translation id="8477551185774834963">Latência de DNS ligeiramente acima do limite permitido.</translation> <translation id="8480082892550707549">Mesmo que tenha transferido ficheiros deste site antes, este pode ser temporariamente inseguro (pode ter sido pirateado). Experimente transferir este ficheiro mais tarde.</translation> <translation id="8480869669560681089">Dispositivo desconhecido de <ph name="VENDOR_NAME" /></translation> <translation id="8481187309597259238">Confirmar autorização USB</translation> @@ -6146,6 +6180,7 @@ <translation id="8546930481464505581">Personalizar a barra tátil</translation> <translation id="8547013269961688403">Ativar lupa de ecrã inteiro</translation> <translation id="85486688517848470">Mantenha premida a tecla Pesquisar para alterar o comportamento das teclas da linha superior</translation> +<translation id="8549316893834449916">Utilize a sua Conta Google para iniciar sessão no seu Chromebook, isto é, a mesma conta que utiliza para o Gmail, o Drive, o YouTube e muito mais.</translation> <translation id="8551388862522347954">Licenças</translation> <translation id="8551588720239073785">Definições de data e hora</translation> <translation id="8553342806078037065">Gerir outras pessoas</translation> @@ -6284,6 +6319,7 @@ <translation id="8720200012906404956">À procura de uma rede móvel… <ph name="BEGIN_LINK" />Saiba mais<ph name="END_LINK" /></translation> <translation id="8720816553731218127">A inicialização dos atributos de tempo de instalação expirou.</translation> <translation id="8722912030556880711">Envie dados de utilização e diagnósticos. Agora, este dispositivo está a enviar automaticamente dados de diagnóstico, de utilização de aplicações e do dispositivo para a Google. Deste modo, ajudará a melhorar a estabilidade das aplicações e do sistema, entre outras melhorias. Alguns dados agregados também ajudarão as aplicações e os parceiros Google, como os programadores Android. Se a definição Atividade da Web e de apps adicional estiver ativada, estes dados podem ser guardados na sua Conta Google. <ph name="BEGIN_LINK2" />Saiba mais<ph name="END_LINK2" /></translation> +<translation id="8723108084122415655">Rede não predefinida acima do limite de latência.</translation> <translation id="8724405322205516354">Quando vir este ícone, utilize a sua impressão digital para identificação ou para autorizar compras.</translation> <translation id="8724409975248965964">Impressão digital adicionada</translation> <translation id="8724859055372736596">Mo&strar numa Pasta</translation> @@ -6461,6 +6497,7 @@ <translation id="8909833622202089127">O site está a monitorizar a sua localização.</translation> <translation id="8910146161325739742">Partilhar o ecrã</translation> <translation id="8910222113987937043">As alterações aos seus marcadores, histórico, palavras-passe e outras definições já não serão sincronizadas com a sua Conta Google. No entanto, os dados existentes continuarão armazenados na Conta Google e podem ser geridos no <ph name="BEGIN_LINK" />Painel de Controlo Google<ph name="END_LINK" />.</translation> +<translation id="8910721771319628100">Rede predefinida acima do limite de latência.</translation> <translation id="8912362522468806198">Conta Google</translation> <translation id="8912793549644936705">Esticar</translation> <translation id="8912810933860534797">Ativar análise automática</translation>
diff --git a/chrome/app/resources/generated_resources_ro.xtb b/chrome/app/resources/generated_resources_ro.xtb index 0917540..86e6259 100644 --- a/chrome/app/resources/generated_resources_ro.xtb +++ b/chrome/app/resources/generated_resources_ro.xtb
@@ -71,6 +71,7 @@ <translation id="1070705170564860382">Se deschide în browserul secundar în<ph name="COUNTDOWN_SECONDS" /> secunde</translation> <translation id="1071917609930274619">Cifrare de date</translation> <translation id="1072700771426194907">S-a detectat un dispozitiv USB</translation> +<translation id="107278043869924952">Folosește codul PIN pe lângă parolă</translation> <translation id="1076176485976385390">Navighează în pagini folosind cursorul pentru text</translation> <translation id="1076698951459398590">Activează tema</translation> <translation id="1076818208934827215">Microsoft Internet Explorer</translation> @@ -524,7 +525,6 @@ <translation id="1608668830839595724">Mai multe acțiuni pentru elementele selectate</translation> <translation id="161042844686301425">Cyan</translation> <translation id="1611432201750675208">Dispozitivul este blocat</translation> -<translation id="1611584202130317952">Fluxul de provizionare a fost întrerupt. Încearcă din nou sau contactează proprietarul dispozitivului ori administratorul.</translation> <translation id="1614511179807650956">Este posibil să fi epuizat datele mobile puse la dispoziție. Accesează portalul de activare <ph name="NAME" /> pentru a cumpăra mai multe date.</translation> <translation id="161460670679785907">Nu se poate detecta telefonul</translation> <translation id="1616206807336925449">Această extensie nu necesită permisiuni speciale.</translation> @@ -533,6 +533,7 @@ <translation id="1618268899808219593">C&entrul de ajutor</translation> <translation id="1620307519959413822">Parola este greșită. Încearcă din nou sau dă clic pe „Am uitat parola” pentru a o reseta.</translation> <translation id="1620510694547887537">Cameră</translation> +<translation id="1621831347985899379">Datele de pe <ph name="DEVICE_TYPE" /> se vor șterge</translation> <translation id="1622054403950683339">Elimină rețeaua Wi-Fi</translation> <translation id="1623132449929929218">Imaginile sunt momentan indisponibile. Conectează-te din nou la internet ca să vezi colecțiile de imagini de fundal.</translation> <translation id="1623723619460186680">Reducerea luminii albastre</translation> @@ -760,6 +761,7 @@ <translation id="1877377290348678128">Etichetă (opțional)</translation> <translation id="1877520246462554164">Nu s-a putut obține indicativul de autentificare. Pentru a reîncerca, deconectează-te și conectează-te din nou.</translation> <translation id="1877860345998737529">Atribuirea acțiunii de comutare</translation> +<translation id="1878155070920054810">Se pare că Chromebookul tău se va descărca înainte să se încheie actualizarea. Verifică dacă încărcarea e corectă, ca să eviți întreruperile.</translation> <translation id="1879000426787380528">Conectează-te ca</translation> <translation id="1880905663253319515">Șterge certificatul „<ph name="CERTIFICATE_NAME" />”?</translation> <translation id="1881445033931614352">Structura tastaturii</translation> @@ -964,6 +966,7 @@ <translation id="2148219725039824548">Eroare la montarea dispozitivului de stocare în rețea. Dispozitivul indicat nu a fost găsit în rețea.</translation> <translation id="2148756636027685713">Formatarea a fost finalizată</translation> <translation id="2148892889047469596">Proiectează fila</translation> +<translation id="2149973817440762519">Editați marcajul</translation> <translation id="2150139952286079145">Căutați destinații</translation> <translation id="2150661552845026580">Adăugați „<ph name="EXTENSION_NAME" />”?</translation> <translation id="2151576029659734873">A fost introdus un index nevalid al filelor.</translation> @@ -1073,6 +1076,7 @@ <translation id="2270627217422354837">Fă schimb de date cu orice dispozitiv din domeniile: <ph name="DOMAINS" /></translation> <translation id="2272570998639520080">Pahar de martini</translation> <translation id="2273119997271134996">Eroare la portul video al dispozitivului de andocare</translation> +<translation id="2274840746523584236">Încarcă-ți Chromebookul</translation> <translation id="2276503375879033601">Adăugați mai multe aplicații</translation> <translation id="2277255602909579701">Toate cookie-urile și toate datele privind site-urile</translation> <translation id="2277769717710009150">{COUNT,plural, =1{1 element copiat}few{# elemente copiate}other{# de elemente copiate}}</translation> @@ -1915,6 +1919,7 @@ <translation id="3308116878371095290">Această pagină a fost împiedicată să stocheze cookie-uri.</translation> <translation id="3308134619352333507">Butonul Ascundeți</translation> <translation id="3308852433423051161">Se încarcă Asistentul Google...</translation> +<translation id="3310640316857623290">Latența DNS depășește semnificativ pragul permisibil</translation> <translation id="3311445899360743395">Datele asociate acestei aplicații pot fi eliminate de pe dispozitiv.</translation> <translation id="3312424061798279731">Limbi activate</translation> <translation id="3313622045786997898">Valoare a semnăturii certificatului</translation> @@ -1927,6 +1932,7 @@ <translation id="3323295311852517824">{NUM_FILES,plural, =0{Aceste date includ conținut sensibil sau periculos. Elimină conținutul și încearcă din nou.}=1{Acest fișier include conținut sensibil sau periculos. Elimină conținutul și încearcă din nou.}few{Aceste fișiere includ conținut sensibil sau periculos. Elimină conținutul și încearcă din nou.}other{Aceste fișiere includ conținut sensibil sau periculos. Elimină conținutul și încearcă din nou.}}</translation> <translation id="3323521181261657960">Bonus! Ai primit o durată mai mare de folosire a dispozitivului</translation> <translation id="3325910708063135066">Camera foto și microfonul sunt dezactivate în System Preferences (Preferințe de sistem) pentru Mac</translation> +<translation id="3327050066667856415">Chromebookurile sunt proiectate pentru securitate. Dispozitivul tău este protejat automat de programe malware; nu este nevoie de software suplimentar.</translation> <translation id="3328489342742826322">Restabilirea dintr-un backup va duce la ștergerea aplicațiilor și a datelor din dosarul Fișiere Linux.</translation> <translation id="3331321258768829690">(<ph name="UTCOFFSET" />) <ph name="LONGTZNAME" /> (<ph name="EXEMPLARCITY" />)</translation> <translation id="3331974543021145906">Informații despre aplicație</translation> @@ -2116,6 +2122,7 @@ <translation id="3556433843310711081">Administratorul îl poate debloca pentru tine</translation> <translation id="3557101512409028104">Setează restricții pentru site-uri și limite de timp pentru durata de folosire a ecranului cu Family Link</translation> <translation id="3559262020195162408">Nu s-a putut instala politica pe dispozitiv.</translation> +<translation id="3559533181353831840">Timp aproximativ rămas: <ph name="TIME_LEFT" /></translation> <translation id="3560034655160545939">&Verificare ortografică</translation> <translation id="3562423906127931518">Poate dura câteva minute. Se configurează containerul Linux.</translation> <translation id="3563432852173030730">Aplicația de tip chioșc nu a putut fi descărcată.</translation> @@ -2158,6 +2165,7 @@ <translation id="3602290021589620013">Previzualizare</translation> <translation id="3603622770190368340">Obțineți certificatul de rețea</translation> <translation id="3604713164406837697">Schimbă imaginea de fundal</translation> +<translation id="360565022852130722">Rețeaua Wi-Fi este securizată cu protocolul slab WEP 802.1x</translation> <translation id="3605780360466892872">Om de afaceri</translation> <translation id="3608576286259426129">Previzualizare a imaginii utilizatorului</translation> <translation id="3610369246614755442">Ventilatorul dispozitivului de andocare necesită service</translation> @@ -2194,6 +2202,7 @@ <translation id="3639220004740062347">Ieși din modul Cititor</translation> <translation id="3640214691812501263">Adaugi „<ph name="EXTENSION_NAME" />” pentru <ph name="USER_NAME" />?</translation> <translation id="3640613767643722554">Învață Asistentul să îți recunoască vocea</translation> +<translation id="3643014427358482789"><ph name="DOMAIN" /> dezactivează remedierea erorilor prin ADB, resetând astfel <ph name="DEVICE_TYPE" />. Fă backup fișierelor înainte de repornire.</translation> <translation id="3645372836428131288">Mută ușor pentru a înregistra o altă parte a amprentei</translation> <translation id="3647998456578545569">{COUNT,plural, =1{Ai primit <ph name="ATTACHMENTS" /> de la <ph name="DEVICE_NAME" />}few{Ai primit <ph name="ATTACHMENTS" /> de la <ph name="DEVICE_NAME" />}other{Ai primit <ph name="ATTACHMENTS" /> de la <ph name="DEVICE_NAME" />}}</translation> <translation id="3648348069317717750">S-a detectat <ph name="USB_DEVICE_NAME" /></translation> @@ -2282,6 +2291,7 @@ <translation id="3732857534841813090">Informații despre Asistentul Google</translation> <translation id="3733127536501031542">Server SSL cu Step-Up</translation> <translation id="3735740477244556633">Sortează după</translation> +<translation id="3738632186060045350">Datele de pe <ph name="DEVICE_TYPE" /> vor fi șterse în termen de 24 de ore</translation> <translation id="3738924763801731196"><ph name="OID" />:</translation> <translation id="3739254215541673094">Deschizi <ph name="APPLICATION" />?</translation> <translation id="3742055079367172538">Captură de ecran efectuată</translation> @@ -2469,6 +2479,7 @@ <translation id="3937734102568271121">Tradu întotdeauna din <ph name="LANGUAGE" /></translation> <translation id="3938128855950761626">Dispozitivele de la furnizorul <ph name="VENDOR_ID" /></translation> <translation id="3940233957883229251">Activează repetarea automată</translation> +<translation id="3941014780699102620">Nu s-a putut rezolva gazda</translation> <translation id="3941565636838060942">Pentru a ascunde accesul la acest program, trebuie să îl dezinstalați folosind <ph name="CONTROL_PANEL_APPLET_NAME" /> din Panoul de control. @@ -2631,6 +2642,7 @@ <translation id="413121957363593859">Componente</translation> <translation id="4131410914670010031">Alb-negru</translation> <translation id="413193092008917129">Rutine de diagnosticare a rețelei</translation> +<translation id="4132183752438206707">Găsește aplicații în Magazinul Google Play</translation> <translation id="4133076602192971179">Deschide aplicația pentru a schimba parola</translation> <translation id="4136203100490971508">Lumina de noapte se va dezactiva automat la răsărit</translation> <translation id="41365691917097717">Dacă alegi să continui, remedierea erorilor prin ADB se va activa pentru crearea și testarea aplicațiilor Android. Reține că această acțiune permite instalarea aplicațiilor Android care nu au fost verificate de Google. Pentru dezactivare, este necesară revenirea la setările din fabrică.</translation> @@ -2880,6 +2892,8 @@ <translation id="4479877282574735775">Se configurează mașina virtuală. Poate dura câteva minute.</translation> <translation id="4480590691557335796">Chrome poate să găsească software dăunător pe computer și să îl elimine</translation> <translation id="4481530544597605423">Dispozitive neasociate</translation> +<translation id="4483049906298469269">Nu s-a putut da ping către gateway-ul de rețea care nu este prestabilit</translation> +<translation id="4487489714832036847">Chromebookurile folosesc aplicații în loc de software tradițional. Descarcă aplicații pentru productivitate, divertisment și altele.</translation> <translation id="4488502501195719518">Ștergi toate datele?</translation> <translation id="4493468155686877504">Recomandată (<ph name="INSTALL_SIZE" />)</translation> <translation id="4495419450179050807">Nu afișa pe această pagină</translation> @@ -2930,6 +2944,7 @@ <translation id="4546692474302123343">Intrare vocală în Asistentul Google</translation> <translation id="4547659257713117923">Nu există file de pe alte dispozitive</translation> <translation id="4547672827276975204">Setează în mod automat</translation> +<translation id="4548483925627140043">Nu s-a detectat semnal</translation> <translation id="4549791035683739768">Cheia de securitate nu are amprente stocate.</translation> <translation id="4551763574344810652">Apasă pe <ph name="MODIFIER_KEY_DESCRIPTION" /> pentru a anula</translation> <translation id="4552089082226364758">Flash</translation> @@ -2969,6 +2984,7 @@ <translation id="4582563038311694664">Restabilește toate setările</translation> <translation id="4585793705637313973">Editează pagina</translation> <translation id="4586275095964870617"><ph name="URL" /> nu s-a putut deschide în browserul secundar. Contactează administratorul de sistem.</translation> +<translation id="458794348635939462">Nu s-au putut rezolva toate gazdele</translation> <translation id="4589713469967853491">Jurnalele au fost scrise în directorul Descărcări.</translation> <translation id="4590324241397107707">Spațiu de stocare a bazei de date</translation> <translation id="4592891116925567110">Aplicație de desenare cu creionul</translation> @@ -3352,6 +3368,7 @@ <translation id="5089810972385038852">Stat</translation> <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="5097649414558628673">Instrument: <ph name="PRINT_NAME" /></translation> <translation id="5097874180538493929">Dă automat clic la oprirea cursorului</translation> <translation id="5101042277149003567">Deschide toate marcajele</translation> <translation id="5101839224773798795">Se dă clic automat când cursorul se oprește</translation> @@ -3570,6 +3587,7 @@ <translation id="5370819323174483825">&Reîncarcă</translation> <translation id="5372529912055771682">Modul de înscriere furnizat nu este acceptat de această versiune a sistemului de operare. Asigurați-vă că rulați cea mai recentă versiune și încercați din nou.</translation> <translation id="5372579129492968947">Anulează fixarea extensiei</translation> +<translation id="5372659122375744710">Rețeaua Wi-Fi nu este sigură</translation> <translation id="5376169624176189338">Dă clic pentru a naviga înapoi, ține apăsat pentru a vedea istoricul</translation> <translation id="5376931455988532197">Fișierul este prea mare</translation> <translation id="5377721922656071359">{COUNT,plural, =1{S-a trimis <ph name="ATTACHMENTS" /> la <ph name="DEVICE_NAME" />}few{S-au trimis <ph name="ATTACHMENTS" /> la <ph name="DEVICE_NAME" />}other{S-au trimis <ph name="ATTACHMENTS" /> la <ph name="DEVICE_NAME" />}}</translation> @@ -3599,6 +3617,7 @@ <translation id="5414566801737831689">Citește pictogramele site-urilor pe care le accesezi</translation> <translation id="5417312524372586921">Teme pentru browser</translation> <translation id="5419405654816502573">Voice Match</translation> +<translation id="5420274697768050645">Solicită parola ca să deblochezi dispozitivul pentru mai multă securitate</translation> <translation id="5420438158931847627">Stabilește claritatea textului și imaginilor</translation> <translation id="5422221874247253874">Punct de acces</translation> <translation id="5422781158178868512">Ne pare rău, dispozitivul dvs. de stocare externă nu a putut fi recunoscut.</translation> @@ -3723,6 +3742,7 @@ <translation id="5548606607480005320">Verificare de siguranță</translation> <translation id="5551573675707792127">Tastatură și introducerea textului</translation> <translation id="5553089923092577885">Mapări de certificate de politică</translation> +<translation id="5554403733534868102">În viitor nu vei mai aștepta actualizări</translation> <translation id="5554489410841842733">Această pictogramă va deveni vizibilă când extensia va putea acționa pe pagina curentă.</translation> <translation id="5554720593229208774">Autoritate de certificare e-mail</translation> <translation id="5556459405103347317">Reîncarcă</translation> @@ -4136,6 +4156,7 @@ <translation id="6061882183774845124">Trimite linkul pe dispozitivele tale</translation> <translation id="6064217302520318294">Blocarea ecranului</translation> <translation id="6065289257230303064">Atribute director pentru subiectul certificatului</translation> +<translation id="6069464830445383022">Contul tău Google reprezintă informațiile de conectare pentru Chromebook</translation> <translation id="6069671174561668781">Setați o imagine de fundal</translation> <translation id="6071181508177083058">confirmă parola</translation> <translation id="6071576563962215370">Sistemul nu a blocat atributele necesare în momentul instalării dispozitivului.</translation> @@ -4178,6 +4199,7 @@ <translation id="6104311680260824317">Dispozitivul nu a putut fi asociat domeniului. Serverul nu acceptă tipurile de criptare Kerberos specificate. Accesează „Mai multe opțiuni” pentru setările de criptare.</translation> <translation id="6104796831253957966">Coada imprimantei este plină</translation> <translation id="6105994589138235234">Sincronizarea browserului Chrome</translation> +<translation id="6108689792487843350">Gateway-ul nu poate fi accesat</translation> <translation id="6111972606040028426">Activează Asistentul Google</translation> <translation id="6112294629795967147">Atinge pentru a redimensiona</translation> <translation id="6112727384379533756">Adaugă un tichet</translation> @@ -4238,6 +4260,7 @@ <translation id="6178664161104547336">Selectează un certificat</translation> <translation id="6181431612547969857">Descărcarea a fost blocată</translation> <translation id="6185132558746749656">Locația dispozitivului</translation> +<translation id="6191293864534840972">Servere de nume cu formă incorectă</translation> <translation id="6195446518998936840">Ca să configurezi opțiunile de control parental, copilul trebuie să aibă un Cont Google pe care îl vei ajuta să-l gestioneze. Poți să setezi limite pentru durata de folosire a dispozitivului, să aprobi sau să blochezi site-uri și altele cu ajutorul aplicației Family Link.</translation> <translation id="6195693561221576702">Acest dispozitiv nu poate fi configurat în modul demo offline.</translation> <translation id="6196640612572343990">Blochează cookie-urile terță parte</translation> @@ -4451,6 +4474,7 @@ <translation id="6451591602925140504">{NUM_PAGES,plural, =0{<ph name="PAGE_TITLE" />}=1{<ph name="PAGE_TITLE" /> și încă o filă}few{<ph name="PAGE_TITLE" /> și încă # file}other{<ph name="PAGE_TITLE" /> și încă # de file}}</translation> <translation id="6451689256222386810">Dacă ai uitat expresia de acces sau dorești să modifici această setare, <ph name="BEGIN_LINK" />resetează sincronizarea<ph name="END_LINK" />.</translation> <translation id="6452181791372256707">Respingeți</translation> +<translation id="6452251728599530347"><ph name="PERCENT" /> finalizat</translation> <translation id="6452961788130242735">Problemă de rețea sau domeniu greșit</translation> <translation id="6455264371803474013">Pe anumite site-uri</translation> <translation id="6455894534188563617">Dosar &nou</translation> @@ -4507,6 +4531,7 @@ <ph name="EVENT_NAME" /></translation> <translation id="6520876759015997832">Rezultatul căutării <ph name="LIST_POSITION" /> din <ph name="LIST_SIZE" />: <ph name="SEARCH_RESULT_TEXT" />. Apasă pe Enter pentru a naviga la secțiune.</translation> <translation id="652492607360843641">Te-ai conectat la o rețea <ph name="NETWORK_TYPE" />.</translation> +<translation id="6527081081771465939">Protocol de securitate Wi-Fi necunoscut</translation> <translation id="6527303717912515753">Trimite</translation> <translation id="6528513914570774834">Permite altor utilizatori ai dispozitivului să folosească această rețea</translation> <translation id="652948702951888897">Istoricul Chrome</translation> @@ -4623,6 +4648,7 @@ <translation id="6680442031740878064">Spațiu disponibil: <ph name="AVAILABLE_SPACE" /></translation> <translation id="6680650203439190394">Ritmul</translation> <translation id="6681668084120808868">Fotografiază</translation> +<translation id="6684827949542560880">Se descarcă ultima actualizare</translation> <translation id="668599234725812620">Deschide Google Play</translation> <translation id="6686490380836145850">Închide filele de la dreapta</translation> <translation id="6686817083349815241">Salvați parola</translation> @@ -4732,6 +4758,7 @@ <translation id="6812841287760418429">Păstrați modificările</translation> <translation id="6817174620439930047">Întreabă-mă când un site dorește să utilizeze mesajele rezervate sistemului ca să acceseze dispozitivele MIDI (recomandat)</translation> <translation id="6818198425579322765">Limba paginii de tradus</translation> +<translation id="6818802132960437751">Protecție antivirus încorporată</translation> <translation id="682123305478866682">Proiectează desktopul</translation> <translation id="6823174134746916417">Atingerea pentru clic pe touchpad</translation> <translation id="6823506025919456619">Pentru a vedea dispozitivele, este necesar să vă conectați la Chrome</translation> @@ -5378,6 +5405,7 @@ <translation id="7631205654593498032">Când îți conectezi dispozitivele, ești de acord că dispozitivul <ph name="DEVICE_TYPE" /> poate:</translation> <translation id="7631887513477658702">&Deschide întotdeauna fișierele de acest tip</translation> <translation id="7632948528260659758">Următoarele aplicații de tip chioșc nu au fost actualizate:</translation> +<translation id="7633724038415831385">Este singura dată când vei aștepta o actualizare. Pe Chromebookuri, actualizările software au loc în fundal.</translation> <translation id="7634566076839829401">A apărut o eroare. Încearcă din nou.</translation> <translation id="763632859238619983">Nu permite site-urilor să instaleze handlere pentru plăți</translation> <translation id="7636919061354591437">Instalează pe acest dispozitiv</translation> @@ -5656,6 +5684,7 @@ <translation id="7933314993013528982">{NUM_TABS,plural, =1{Activează sunetul pentru site}few{Activează sunetul pentru site-uri}other{Activează sunetul pentru site-uri}}</translation> <translation id="7933634003144813719">Gestionează dosarele comune</translation> <translation id="793531125873261495">A apărut o eroare la descărcarea mașinii virtuale. Încearcă din nou.</translation> +<translation id="7936303884198020182">Nu s-au găsit servere de nume</translation> <translation id="7938594894617528435">Offline în prezent</translation> <translation id="7939062555109487992">Opțiuni avansate</translation> <translation id="7939412583708276221">Păstrați oricum</translation> @@ -5899,6 +5928,7 @@ <translation id="8226742006292257240">Mai jos se află parola TPM generată aleatoriu, care a fost atribuită computerului tău:</translation> <translation id="8227119283605456246">Atașează un fișier</translation> <translation id="8230134520748321204">Salvezi parola pentru <ph name="ORIGIN" />?</translation> +<translation id="8230672074305416752">Nu s-a putut da ping către gateway-ul de rețea prestabilit</translation> <translation id="8234795456569844941">Ajută-i pe inginerii noștri să remedieze această problemă. Spune-ne ce s-a întâmplat chiar înainte să primești mesajul de eroare privind profilul:</translation> <translation id="8236917170563564587">Distribuie această filă</translation> <translation id="8237647586961940482">Roz închis și roșu</translation> @@ -5959,6 +5989,7 @@ <translation id="8288032458496410887">Dezinstalează <ph name="APP" />...</translation> <translation id="8289128870594824098">Dimensiunea discului</translation> <translation id="8291967909914612644">Țara furnizorului local</translation> +<translation id="8293206222192510085">Adăugați marcaj</translation> <translation id="8294431847097064396">Sursă</translation> <translation id="8297006494302853456">Slab</translation> <translation id="8299319456683969623">În prezent, sunteți în modul offline.</translation> @@ -6008,6 +6039,7 @@ <translation id="8363095875018065315">stabil</translation> <translation id="8363142353806532503">Microfonul este blocat</translation> <translation id="8363763184161554204">se permite <ph name="PERMISSION" /></translation> +<translation id="8364946094152050673">Serverele de nume sunt goale</translation> <translation id="8366396658833131068">Conexiunea la rețea a fost restabilită. Selectați altă rețea sau apăsați mai jos pe butonul „Continuați” pentru a lansa aplicația chioșc.</translation> <translation id="8368027906805972958">Dispozitiv necunoscut sau neacceptat (<ph name="DEVICE_ID" />)</translation> <translation id="8368859634510605990">&Deschideți toate marcajele</translation> @@ -6093,8 +6125,10 @@ <translation id="8472623782143987204">susținut de hardware</translation> <translation id="8473863474539038330">Adrese și altele</translation> <translation id="8475313423285172237">Un alt program de pe computerul dvs. a adăugat o extensie care poate schimba modul în care funcționează Chrome.</translation> +<translation id="8475690821716466388">Rețeaua Wi-Fi este securizată cu protocolul slab WEP PSK</translation> <translation id="8477241577829954800">Depășit</translation> <translation id="8477384620836102176">&General</translation> +<translation id="8477551185774834963">Latența DNS depășește ușor pragul permisibil</translation> <translation id="8480082892550707549">Chiar dacă anterior ai descărcat fișiere de pe site, momentan, este posibil ca acesta să fie nesigur (compromis). Încearcă să descarci fișierul mai târziu.</translation> <translation id="8480869669560681089">Dispozitiv necunoscut de la <ph name="VENDOR_NAME" /></translation> <translation id="8481187309597259238">Confirmă permisiunea pentru USB</translation> @@ -6146,6 +6180,7 @@ <translation id="8546930481464505581">Personalizează bara de atingere</translation> <translation id="8547013269961688403">Activează lupa de ecran complet</translation> <translation id="85486688517848470">Apasă lung pe tasta de căutare pentru a schimba comportamentul tastelor de pe rândul de sus</translation> +<translation id="8549316893834449916">Vei folosi Contul Google ca să te conectezi la Chromebook; e același cont pe care îl folosești pentru Gmail, Drive, YouTube și altele.</translation> <translation id="8551388862522347954">Licențe</translation> <translation id="8551588720239073785">Setări de dată și oră</translation> <translation id="8553342806078037065">Gestionează alte persoane</translation> @@ -6284,6 +6319,7 @@ <translation id="8720200012906404956">Se caută o rețea mobilă. <ph name="BEGIN_LINK" />Află mai multe<ph name="END_LINK" /></translation> <translation id="8720816553731218127">Inițializarea atributelor necesare în momentul instalării a expirat.</translation> <translation id="8722912030556880711">Trimite date de utilizare și diagnosticare. Momentan, dispozitivul trimite automat date de diagnosticare și de utilizare a dispozitivului și aplicațiilor la Google. Aceasta va ajuta la stabilitatea sistemului, a aplicației și altele. Unele date cumulate vor ajuta aplicațiile și partenerii Google, cum ar fi dezvoltatorii Android. Dacă setarea Activitatea suplimentară de pe web și din aplicații este activată, aceste date pot fi salvate în Contul tău Google. <ph name="BEGIN_LINK2" />Află mai multe<ph name="END_LINK2" /></translation> +<translation id="8723108084122415655">Rețeaua care nu este prestabilită depășește pragul de latență</translation> <translation id="8724405322205516354">Când vezi această pictogramă, folosește amprenta pentru identificare sau pentru a aproba achizițiile.</translation> <translation id="8724409975248965964">Amprentă adăugată</translation> <translation id="8724859055372736596">&Afișează în dosar</translation> @@ -6461,6 +6497,7 @@ <translation id="8909833622202089127">Site-ul îți urmărește locația</translation> <translation id="8910146161325739742">Permite accesul la ecran</translation> <translation id="8910222113987937043">Modificările marcajelor, istoricului, parolelor sau ale altor setări nu vor mai fi sincronizate cu Contul Google. Totuși, datele existente vor rămâne stocate în Contul Google și pot fi gestionate din <ph name="BEGIN_LINK" />Tabloul de bord Google<ph name="END_LINK" />.</translation> +<translation id="8910721771319628100">Rețeaua prestabilită depășește pragul de latență</translation> <translation id="8912362522468806198">Contul Google</translation> <translation id="8912793549644936705">Extins</translation> <translation id="8912810933860534797">Activează scanarea automată</translation>
diff --git a/chrome/app/resources/generated_resources_ru.xtb b/chrome/app/resources/generated_resources_ru.xtb index db1eda5..1c775316 100644 --- a/chrome/app/resources/generated_resources_ru.xtb +++ b/chrome/app/resources/generated_resources_ru.xtb
@@ -329,6 +329,7 @@ <translation id="1383876407941801731">Поиск</translation> <translation id="1386387014181100145">Привет!</translation> <translation id="1386791642444521222">Активировать обычную SIM-карту</translation> +<translation id="1387519831959169718">Чтобы использовать браузер как <ph name="NEW_USER" />, создайте отдельный профиль.</translation> <translation id="138784436342154190">Восстановить настройки стартовой страницы по умолчанию?</translation> <translation id="1388728792929436380">После установки обновлений <ph name="DEVICE_TYPE" /> перезагрузится.</translation> <translation id="1390548061267426325">Открыть в обычной вкладке</translation> @@ -343,6 +344,7 @@ <translation id="139911022479327130">Разблокируйте телефон и подтвердите, что это вы</translation> <translation id="1399511500114202393">Не использовать сертификат пользователя</translation> <translation id="1401308693935339022">Использование геолокации. Предоставьте приложениям и сервисам с необходимым разрешением доступ к данным о местоположении устройства. Чтобы повышать точность геолокации и улучшать сервисы, использующие данные о местоположении, компания Google может периодически собирать анонимные геоданные пользователей.</translation> +<translation id="1403222014593521787">Не удалось подключиться к прокси-серверу.</translation> <translation id="140520891692800925"><ph name="PROFILE_DISPLAY_NAME" /> (контролируемый профиль)</translation> <translation id="1405779994569073824">Произошел сбой</translation> <translation id="1406500794671479665">Проверка…</translation> @@ -478,6 +480,7 @@ <translation id="1555130319947370107">Синий</translation> <translation id="1556537182262721003">Не удалось переместить каталог расширений в профиль.</translation> <translation id="155865706765934889">Сенсорная панель</translation> +<translation id="1563702743503072935">Если вы войдете в аккаунт Google, сохраненные в нем пароли будут доступны вам на этом устройстве.</translation> <translation id="1566049601598938765">Сайт</translation> <translation id="15662109988763471">Принтер недоступен или установлен неправильно. Проверьте его или выберите другой.</translation> <translation id="1567387640189251553">После ввода пароля была подключена другая клавиатура. Это может быть попыткой узнать, какие клавиши вы нажимаете.</translation> @@ -520,7 +523,6 @@ <translation id="1608668830839595724">Другие действия с выбранными закладками</translation> <translation id="161042844686301425">Голубой</translation> <translation id="1611432201750675208">Ваше устройство заблокировано</translation> -<translation id="1611584202130317952">Синхронизация прервана. Повторите попытку либо свяжитесь с владельцем устройства или администратором.</translation> <translation id="1614511179807650956">Вероятно, вы израсходовали весь доступный мобильный трафик. Приобрести дополнительный объем трафика можно на портале активации <ph name="NAME" />.</translation> <translation id="161460670679785907">Не удалось обнаружить телефон</translation> <translation id="1616206807336925449">Расширению не требуются особые разрешения.</translation> @@ -905,6 +907,7 @@ <translation id="2080070583977670716">Дополнительные настройки</translation> <translation id="2081816110395725788">Режим ожидания при работе от батареи</translation> <translation id="2082187087049518845">Добавить вкладку в группу</translation> +<translation id="2082510809738716738">Выберите цвета темы</translation> <translation id="2087822576218954668">Печать: <ph name="PRINT_NAME" /></translation> <translation id="2088690981887365033">Сеть VPN</translation> <translation id="208928984520943006">Чтобы вернуться на главный экран, проведите вверх от нижнего края экрана.</translation> @@ -959,6 +962,7 @@ <translation id="2148219725039824548">Ошибка. Не удалось найти указанный ресурс в сети.</translation> <translation id="2148756636027685713">Форматирование завершено</translation> <translation id="2148892889047469596">Трансляция содержимого вкладки</translation> +<translation id="2149973817440762519">Закладка</translation> <translation id="2150139952286079145">Поиск мест назначения</translation> <translation id="2150661552845026580">Установить "<ph name="EXTENSION_NAME" />"?</translation> <translation id="2151576029659734873">Указан неверный индекс вкладки.</translation> @@ -1055,6 +1059,7 @@ <translation id="2256115617011615191">Перезапустить</translation> <translation id="225614027745146050">Добро пожаловать!</translation> <translation id="225692081236532131">Статус активации</translation> +<translation id="2257053455312861282">Чтобы упростить доступ к используемым в учебе сайтам, приложениям и расширениям, можно добавить учебный аккаунт. Родительский контроль будет по-прежнему включен.</translation> <translation id="2261323523305321874">Администратор отключил некоторые старые профили.</translation> <translation id="2262332168014443534">В упрощенном режиме все сайты будут загружаться быстрее (в том числе по протоколу HTTPS).</translation> <translation id="2262477216570151239">Задержка перед повторным вводом</translation> @@ -1968,6 +1973,7 @@ <translation id="3396800784455899911">Нажимая кнопку "Принять условия и продолжить", вы соглашаетесь с Условиями использования сервисов Google, описанными выше.</translation> <translation id="3399432415385675819">Уведомления будут отключены</translation> <translation id="3400390787768057815"><ph name="WIDTH" /> x <ph name="HEIGHT" /> (<ph name="REFRESH_RATE" /> Гц) – чересстрочная развертка</translation> +<translation id="3402255108239926910">Выберите аватар</translation> <translation id="3402585168444815892">Регистрация для использования демонстрационного режима</translation> <translation id="340282674066624"><ph name="DOWNLOAD_RECEIVED" />, <ph name="TIME_LEFT" /></translation> <translation id="3404065873681873169">Для этого сайта нет сохраненных паролей</translation> @@ -1995,6 +2001,7 @@ <translation id="3428747202529429621">Защищает вас в браузере Chrome и может использоваться для повышения безопасности в других приложениях Google при входе в аккаунт</translation> <translation id="3428800329481094896">Получение SSH-ключей для контейнера Linux</translation> <translation id="3429275422858276529">Чтобы в будущем эту страницу было проще найти, добавьте ее в закладки</translation> +<translation id="3431370546335300761">Войдите в аккаунт</translation> <translation id="3432227430032737297">Удалить все показанные файлы cookie</translation> <translation id="3432757130254800023">Отправлять аудио и видео на устройства в локальной сети</translation> <translation id="3432762828853624962">Разделяемые объекты worker</translation> @@ -2376,6 +2383,7 @@ <translation id="3841964634449506551">Недействительный пароль.</translation> <translation id="3842552989725514455">Шрифты с засечками</translation> <translation id="3843464315703645664">Разрешение дано браузером Chrome</translation> +<translation id="3844888638014364087">Вставлен символ эмодзи</translation> <translation id="3846116211488856547">Разрабатывайте сайты, приложения для Android и другие программы с помощью удобных инструментов. При установке Linux будут скачаны данные объемом <ph name="DOWNLOAD_SIZE" />.</translation> <translation id="3847319713229060696">Помочь сделать Интернет безопасным для всех</translation> <translation id="385051799172605136">Назад</translation> @@ -2679,6 +2687,7 @@ <translation id="4232375817808480934">Настройка Kerberos</translation> <translation id="4235200303672858594">Полноэкранный режим</translation> <translation id="4235965441080806197">Отменить вход</translation> +<translation id="4237773362828263530">Подстановочный знак * в параметрах больше не поддерживается. Если вам нужно <ph name="BEGIN_LINK" />изменить эти параметры<ph name="END_LINK" />, свяжитесь со своим администратором.</translation> <translation id="4242145785130247982">Использование нескольких сертификатов клиента не поддерживается.</translation> <translation id="4242533952199664413">Открыть настройки</translation> <translation id="4242577469625748426">Не удалось применить к устройству настройки политики: <ph name="VALIDATION_ERROR" />.</translation> @@ -2789,6 +2798,7 @@ <translation id="4384312707950789900">Добавить в предпочитаемые сети</translation> <translation id="4384652540891215547">Активация расширения</translation> <translation id="438503109373656455">Скачки</translation> +<translation id="4385040356362222432">Чтобы использовать браузер как <ph name="NEW_USER" />, а не <ph name="EXISTING_USER" />, создайте отдельный профиль.</translation> <translation id="4387004326333427325">Сертификат аутентификации отклонен удаленно</translation> <translation id="4387890294700445764">Раскрытые пароли</translation> <translation id="4389091756366370506">Пользователь <ph name="VALUE" /></translation> @@ -2896,6 +2906,7 @@ <translation id="4522570452068850558">Подробнее</translation> <translation id="4522600456902129422">Оставить этому сайту доступ к буферу обмена</translation> <translation id="4524832533047962394">Режим регистрации устройства не поддерживается этой версией операционной системы. Убедитесь, что вы используете последнюю версию, и повторите попытку.</translation> +<translation id="4527186207340858212">Создать профиль для работы?</translation> <translation id="452750746583162491">Проверить синхронизированные данные</translation> <translation id="4530494379350999373">Происхождение</translation> <translation id="4532646538815530781">Этот сайт использует датчики движения</translation> @@ -2946,6 +2957,9 @@ <translation id="4573515936045019911">Для обновления Linux необходимо подключение к сети. Подключитесь к Интернету и повторите попытку.</translation> <translation id="457386861538956877">Ещё...</translation> <translation id="4574741712540401491">• <ph name="LIST_ITEM_TEXT" /></translation> +<translation id="457564749856982089">Для удобного доступа к используемым в учебе сайтам, приложениям и расширениям можно добавить в профиль учебный аккаунт. Родительский контроль будет по-прежнему включен. У ребенка не будет доступа к закладкам, паролям и другим данным о работе в браузере, синхронизированным с учебным аккаунтом.<br><br> + Если ваш ребенок пользуется устройством Chromebook в школе и вы хотите, чтобы дома ему также были доступны все необходимые для учебы ресурсы, выйдите из этого аккаунта Family Link и войдите в учебный аккаунт на странице аккаунтов в Chrome OS (обратите внимание, что при этом перестанут действовать настройки родительского контроля Family Link).<br><br> + Если ваш ребенок не пользуется устройством Chromebook в школе или вы предпочитаете контролировать действия ребенка дома с помощью Family Link, нажмите "Далее", чтобы добавить в этот профиль учебный аккаунт.</translation> <translation id="4576541033847873020">Подключение устройства Bluetooth</translation> <translation id="4579453506923101210">Удалить подключенный телефон</translation> <translation id="4579581181964204535">Трансляция с сайта <ph name="HOST_NAME" /> невозможна</translation> @@ -3083,6 +3097,7 @@ <translation id="4763408175235639573">При посещении этой страницы на вашем компьютере были сохранены следующие файлы cookie:</translation> <translation id="4765582662863429759">Позволяет приложению "Android Сообщения" ретранслировать сообщения с вашего телефона на Chromebook</translation> <translation id="4768332406694066911">У вас есть идентифицирующие вас сертификаты этих организаций</translation> +<translation id="477647109558161443">Создать ярлык на рабочем столе</translation> <translation id="4776917500594043016">Пароль для адреса электронной почты <ph name="USER_EMAIL_ADDRESS" /></translation> <translation id="4777825441726637019">Play Маркет</translation> <translation id="4777943778632837590">Настроить серверы доменных имен</translation> @@ -3454,6 +3469,7 @@ <translation id="5249624017678798539">В браузере произошел сбой до завершения скачивания.</translation> <translation id="5250372599208556903"><ph name="SEARCH_ENGINE_NAME" /> предлагает результаты поиска в зависимости от вашего местоположения. Изменить настройки этой функции можно здесь: <ph name="SETTINGS_LINK" />.</translation> <translation id="5252456968953390977">Роуминг</translation> +<translation id="5252496130205799136">Использовать ваш аккаунт Google, чтобы хранить и вставлять пароли?</translation> <translation id="5252653240322147470">PIN-код должен содержать не более <ph name="MAXIMUM" /> знаков</translation> <translation id="5254368820972107711">Показать файлы, которые будут удалены</translation> <translation id="52550593576409946">Не удалось запустить киоск-приложение</translation> @@ -3718,6 +3734,7 @@ <translation id="5565735124758917034">Активен</translation> <translation id="5567989639534621706">Кеш приложений</translation> <translation id="5568069709869097550">Не удается войти</translation> +<translation id="5571832155627049070">Настройте профиль</translation> <translation id="5572851009514199876">Выполните вход, чтобы Chrome определил, разрешен ли вам доступ к этому сайту.</translation> <translation id="5575473780076478375">Расширение в режиме инкогнито: <ph name="EXTENSION_NAME" /></translation> <translation id="5575528586625653441">Возникла проблема с запросом на регистрацию демонстрационного режима.</translation> @@ -4293,6 +4310,7 @@ <translation id="6270770586500173387">Отправлять <ph name="BEGIN_LINK1" />информацию о системе и приложениях<ph name="END_LINK1" /> и различные <ph name="BEGIN_LINK2" />показатели<ph name="END_LINK2" /></translation> <translation id="6272643420381259437">При скачивании плагина произошла ошибка (<ph name="ERROR" />)</translation> <translation id="6273677812470008672">Качество</translation> +<translation id="6276210637549544171">Для подключения к прокси-серверу <ph name="PROXY_SERVER" /> нужно указать имя пользователя и пароль.</translation> <translation id="6277105963844135994">Время ожидания сети истекло</translation> <translation id="6277518330158259200">С&делать снимок экрана</translation> <translation id="6278057325678116358">Использовать GTK+</translation> @@ -4313,6 +4331,7 @@ <translation id="6298962879096096191">Использование Google Play для установки приложений Android</translation> <translation id="630065524203833229">В&ыход</translation> <translation id="6300718114348072351">Не удалось автоматически настроить принтер "<ph name="PRINTER_NAME" />". Задайте дополнительные параметры. <ph name="LINK_BEGIN" />Подробнее…<ph name="LINK_END" /></translation> +<translation id="6301076166764763868">Чтобы использовать браузер в личных целях, а не как <ph name="EXISTING_USER" />, создайте в Chrome профиль для аккаунта <ph name="NEW_USER" />.</translation> <translation id="630292539633944562">Подсказки с личной информацией</translation> <translation id="6305607932814307878">Общая политика:</translation> <translation id="6307990684951724544">Система перегружена</translation> @@ -4516,6 +4535,7 @@ <translation id="6556866813142980365">Повторить</translation> <translation id="6556903358015358733">Тема и обои</translation> <translation id="6557290421156335491">Мои ярлыки</translation> +<translation id="6560151649238390891">Вставлено предложенное</translation> <translation id="6561560012278703671">Не прерывать мою работу при запросе разрешения на показ уведомлений</translation> <translation id="6561726789132298588">Войти</translation> <translation id="6562117348069327379">Системные журналы будут сохраняться в каталоге "Скачанные файлы".</translation> @@ -5165,6 +5185,7 @@ <translation id="7385854874724088939">При печати произошла ошибка. Проверьте состояние принтера и повторите попытку.</translation> <translation id="7385896526023870365">У этого расширения нет дополнительного доступа к сайту.</translation> <translation id="7388044238629873883">Почти готово!</translation> +<translation id="7388209873137778229">Показаны только поддерживаемые устройства.</translation> <translation id="7392118418926456391">Не удалось выполнить проверку на вирусы</translation> <translation id="7392915005464253525">О&ткрыть закрытое окно</translation> <translation id="7396017167185131589">Здесь будут появляться общие папки.</translation> @@ -5188,6 +5209,7 @@ <translation id="7415454883318062233">Настройка завершена</translation> <translation id="7416362041876611053">Неизвестная сетевая ошибка.</translation> <translation id="741906494724992817">Приложению не требуются особые разрешения.</translation> +<translation id="7420817660256886596">Для подключения к прокси-серверу <ph name="PROXY" /> нужно ввести имя пользователя и пароль.</translation> <translation id="742130257665691897">Закладки удалены</translation> <translation id="7421925624202799674">Просмотр кода страницы</translation> <translation id="7422192691352527311">Настройки...</translation> @@ -5447,6 +5469,7 @@ <translation id="7737115349420013392">Подключение к устройству "<ph name="DEVICE_NAME" />"...</translation> <translation id="7737238973539693982">Удаление Linux (бета)</translation> <translation id="7740996059027112821">Стандартный</translation> +<translation id="7741721175294046818">Не удается подключиться, повторите попытку</translation> <translation id="774377079771918250">Выберите, где сохранить пароль</translation> <translation id="7744047395460924128">Просмотр истории печати</translation> <translation id="7744192722284567281">Раскрыт при утечке данных</translation> @@ -5691,6 +5714,7 @@ <translation id="8002670234429879764">Принтер <ph name="PRINTER_NAME" /> больше не доступен.</translation> <translation id="8004582292198964060">Браузер</translation> <translation id="8005600846065423578">Всегда открывать сайту <ph name="HOST" /> доступ к буферу обмена</translation> +<translation id="8006143138282906848">Удалить профиль</translation> <translation id="8008356846765065031">Не удалось установить соединение. Проверьте подключение к Интернету.</translation> <translation id="8009225694047762179">Управление паролями</translation> <translation id="8012647001091218357">Не удалось связаться с вашими родителями. Повторите попытку.</translation> @@ -5757,9 +5781,11 @@ <translation id="8084114998886531721">Сохраненный пароль</translation> <translation id="8086015605808120405">Настройка принтера "<ph name="PRINTER_NAME" />"...</translation> <translation id="8086442853986205778">Настроить принтер "<ph name="PRINTER_NAME" />"</translation> +<translation id="8086550884324762001">Примеры: Рабочий, Личный, Детский или ваше имя</translation> <translation id="80866457114322936">{NUM_FILES,plural, =1{Этот файл зашифрован. Попросите владельца его расшифровать.}one{Некоторые файлы зашифрованы. Попросите владельца их расшифровать.}few{Некоторые файлы зашифрованы. Попросите владельца их расшифровать.}many{Некоторые файлы зашифрованы. Попросите владельца их расшифровать.}other{Некоторые файлы зашифрованы. Попросите владельца их расшифровать.}}</translation> <translation id="808894953321890993">Сменить пароль</translation> <translation id="8090234456044969073">Список самых посещаемых сайтов</translation> +<translation id="8092681102116274204">Подстановочный знак * в параметрах больше не поддерживается. Если вам нужно <ph name="BEGIN_LINK" />изменить эти параметры<ph name="END_LINK" />, свяжитесь с разработчиком расширения или со своим администратором.</translation> <translation id="8093359998839330381">Плагин <ph name="PLUGIN_NAME" /> не отвечает</translation> <translation id="8095105960962832018"><ph name="BEGIN_PARAGRAPH1" />Резервное копирование на Google Диск. Позволяет в любой момент восстановить данные (в том числе данные приложений) или перенести их на новое устройство.<ph name="END_PARAGRAPH1" /> <ph name="BEGIN_PARAGRAPH2" />Резервные копии загружаются в Google и шифруются с помощью пароля вашего аккаунта Google.<ph name="END_PARAGRAPH2" /> @@ -5811,6 +5837,7 @@ <translation id="8146177459103116374">Вы уже зарегистрированы на этом устройстве и можете <ph name="LINK2_START" />войти, используя свои регистрационные данные<ph name="LINK2_END" />.</translation> <translation id="8146793085009540321">Не удалось выполнить вход. Обратитесь к системному администратору или повторите попытку.</translation> <translation id="8148760431881541277">Ограничение на вход</translation> +<translation id="8151579390896831136">Здесь можно указать название профиля и задать другие настройки</translation> <translation id="8151638057146502721">Настроить</translation> <translation id="8152091997436726702">Время ожидания регистрации принтера истекло. Чтобы завершить процедуру, необходимо подтвердить регистрацию на принтере.</translation> <translation id="8154790740888707867">Файлы отсутствуют</translation> @@ -5929,6 +5956,7 @@ <translation id="8288032458496410887">Удалить приложение "<ph name="APP" />"...</translation> <translation id="8289128870594824098">Размер диска</translation> <translation id="8291967909914612644">Страна провайдера</translation> +<translation id="8293206222192510085">Добавление закладки</translation> <translation id="8294431847097064396">Источник</translation> <translation id="8297006494302853456">Слабый</translation> <translation id="8299319456683969623">В данный момент включен автономный режим</translation> @@ -6534,6 +6562,7 @@ <translation id="9031549947500880805">Сохранение резервных копий на Google Диске. Позволяет в любой момент восстанавливать данные (в том числе из приложений) или переносить их с одного устройства на другое.</translation> <translation id="9033765790910064284">Продолжить</translation> <translation id="9033857511263905942">&Вставить</translation> +<translation id="9037818663270399707">Весь ваш сетевой трафик передается через незащищенное подключение.</translation> <translation id="9037965129289936994">Показать оригинал</translation> <translation id="9039014462651733343">{NUM_ATTEMPTS,plural, =1{У вас осталась одна попытка.}one{У вас осталась # попытка.}few{У вас осталось # попытки.}many{У вас осталось # попыток.}other{У вас осталось # попытки.}}</translation> <translation id="9039663905644212491">PEAP</translation>
diff --git a/chrome/app/resources/generated_resources_si.xtb b/chrome/app/resources/generated_resources_si.xtb index 58dc414..b3d34ba 100644 --- a/chrome/app/resources/generated_resources_si.xtb +++ b/chrome/app/resources/generated_resources_si.xtb
@@ -522,7 +522,6 @@ <translation id="1608668830839595724">තේරූ අයිතම සඳහා වැඩිදුර ක්රියා</translation> <translation id="161042844686301425">සියන්</translation> <translation id="1611432201750675208">ඔබේ උපාංගය අගුලු වැටී ඇත</translation> -<translation id="1611584202130317952">ප්රතිපාදන ප්රවාහයට බාධා විය. නැවත උත්සාහ කරන්න හෝ ඔබේ උපාංගයේ හිමිකරු හෝ පරිපාලක සම්බන්ධ කර ගන්න.</translation> <translation id="1614511179807650956">ඔබ ඔබේ ජංගම දත්ත ප්රමාණය භාවිත කර අවසන්ව විය හැක. <ph name="NAME" /> සක්රීයකරණ ද්වාරයට ගොස් දත්ත මිලදී ගන්න.</translation> <translation id="161460670679785907">ඔබේ දුරකථනය හඳුනා ගත නොහැකිය</translation> <translation id="1616206807336925449">මෙම දිගුවට කිසිඳු විශේෂිත බලතලයක් අවශ්ය නොවේ.</translation> @@ -964,6 +963,7 @@ <translation id="2148219725039824548">කොටස නැංවීමේ දෝෂයකි. විශේෂිත කොටස ජාලයෙහි සොයා ගත නොහැකි විය.</translation> <translation id="2148756636027685713">ආකෘතිගත කිරීම නිමයි</translation> <translation id="2148892889047469596">විකාශ පටිත්ත</translation> +<translation id="2149973817440762519">පිටු සලකුණු සංස්කරණය කරන්න</translation> <translation id="2150139952286079145">ගමනාන්ත සොයන්න</translation> <translation id="2150661552845026580">"<ph name="EXTENSION_NAME" />" එක්කරන්නද?</translation> <translation id="2151576029659734873">වැරදි ටැබ් දර්ශකය ඇතුළු කරන ලදි.</translation> @@ -5984,6 +5984,7 @@ <translation id="8288032458496410887"><ph name="APP" /> අස්ථාපනය කරමින්...</translation> <translation id="8289128870594824098">තැටි ප්රමාණය</translation> <translation id="8291967909914612644">නිවෙස් සපයන්නාගේ රට</translation> +<translation id="8293206222192510085">පිටුසන එක් කරන්න</translation> <translation id="8294431847097064396">මූලාශ්රය</translation> <translation id="8297006494302853456">දුර්වලයි</translation> <translation id="8299319456683969623">ඔබ දැනට නොබැඳි</translation>
diff --git a/chrome/app/resources/generated_resources_sk.xtb b/chrome/app/resources/generated_resources_sk.xtb index d75df3e..9e40884 100644 --- a/chrome/app/resources/generated_resources_sk.xtb +++ b/chrome/app/resources/generated_resources_sk.xtb
@@ -71,6 +71,7 @@ <translation id="1070705170564860382">Otvorí sa v alternatívnom prehliadači o <ph name="COUNTDOWN_SECONDS" /> s</translation> <translation id="1071917609930274619">Zašifrovanie údajov</translation> <translation id="1072700771426194907">Zistilo sa zariadenie USB</translation> +<translation id="107278043869924952">Používať s heslom kód PIN</translation> <translation id="1076176485976385390">Prechádzať stránkami pomocou textového kurzora</translation> <translation id="1076698951459398590">Povoliť motív</translation> <translation id="1076818208934827215">Microsoft Internet Explorer</translation> @@ -524,7 +525,6 @@ <translation id="1608668830839595724">Ďalšie akcie pre vybrané položky</translation> <translation id="161042844686301425">Azúrová</translation> <translation id="1611432201750675208">Vaše zariadenie je uzamknuté</translation> -<translation id="1611584202130317952">Tok poskytovania bol prerušený. Skúste to znova alebo kontaktujte vlastníka či správcu zariadenia.</translation> <translation id="1614511179807650956">Možno ste dosiahli povolený limit mobilných dát. Ďalšie dáta si môžete zakúpiť na aktivačnom portáli <ph name="NAME" /></translation> <translation id="161460670679785907">Telefón sa nedarí nájsť</translation> <translation id="1616206807336925449">Toto rozšírenie nevyžaduje žiadne špeciálne povolenia.</translation> @@ -533,6 +533,7 @@ <translation id="1618268899808219593">Centrum pomoci</translation> <translation id="1620307519959413822">Nesprávne heslo. Skúste to znova alebo heslo obnovte kliknutím na možnosť Zabudnuté heslo.</translation> <translation id="1620510694547887537">Kamera</translation> +<translation id="1621831347985899379">Údaje zariadenia <ph name="DEVICE_TYPE" /> budú odstránené</translation> <translation id="1622054403950683339">Zabudnúť sieť Wi‑Fi</translation> <translation id="1623132449929929218">Obrázky sú momentálne nedostupné. Ak chcete zobraziť zbierky tapiet, pripojte sa znova k internetu.</translation> <translation id="1623723619460186680">Zníženie intenzity modrého svetla</translation> @@ -760,6 +761,7 @@ <translation id="1877377290348678128">Štítok (nepovinné)</translation> <translation id="1877520246462554164">Nepodarilo sa získať token na overenie totožnosti. Odhláste sa, potom sa opäť prihláste a skúste to znova.</translation> <translation id="1877860345998737529">Priradenie akcií prepínačov</translation> +<translation id="1878155070920054810">Zdá sa, že batérie Chromebooku sa vybije pred dokončením aktualizácie. Ak chcete predísť prerušeniu, skontrolujte, či sa nabíja správne.</translation> <translation id="1879000426787380528">Prihlásený účet</translation> <translation id="1880905663253319515">Odstrániť certifikát „<ph name="CERTIFICATE_NAME" />“?</translation> <translation id="1881445033931614352">Rozloženie klávesnice</translation> @@ -964,6 +966,7 @@ <translation id="2148219725039824548">Pri pripájaní zdieľaného úložiska sa vyskytla chyba. Uvedené úložisko sa v sieti nenašlo.</translation> <translation id="2148756636027685713">Formátovanie bolo dokončené</translation> <translation id="2148892889047469596">Prenášanie karty</translation> +<translation id="2149973817440762519">Upraviť záložku</translation> <translation id="2150139952286079145">Hľadať ciele</translation> <translation id="2150661552845026580">Pridať rozšírenie <ph name="EXTENSION_NAME" />?</translation> <translation id="2151576029659734873">Zadali ste neplatný index kariet.</translation> @@ -1073,6 +1076,7 @@ <translation id="2270627217422354837">Vymieňať údaje s ktorýmkoľvek zariadením z nasledujúcich domén: <ph name="DOMAINS" /></translation> <translation id="2272570998639520080">Pohár martini</translation> <translation id="2273119997271134996">Problém doku s portom pre video</translation> +<translation id="2274840746523584236">Dobite Chromebook</translation> <translation id="2276503375879033601">Pridať ďalšie aplikácie</translation> <translation id="2277255602909579701">Všetky súbory cookie a údaje webu</translation> <translation id="2277769717710009150">{COUNT,plural, =1{Bola skopírovaná 1 položka}few{Boli skopírované # položky}many{Bolo skopírovanej # položky}other{Bolo skopírovaných # položiek}}</translation> @@ -1914,6 +1918,7 @@ <translation id="3308116878371095290">Tejto stránke bolo zabránené nastaviť súbory cookie.</translation> <translation id="3308134619352333507">Skryť tlačidlo</translation> <translation id="3308852433423051161">Načítava sa Asistent Google…</translation> +<translation id="3310640316857623290">Latencia servera DNS výrazne prekračuje povolenú úroveň</translation> <translation id="3311445899360743395">Dáta spojené s touto aplikáciou budú odstránené zo zariadenia.</translation> <translation id="3312424061798279731">Povolené jazyky</translation> <translation id="3313622045786997898">Hodnota podpisu certifikátu</translation> @@ -1926,6 +1931,7 @@ <translation id="3323295311852517824">{NUM_FILES,plural, =0{Tieto údaje majú citlivý alebo nebezpečný obsah. Tento obsah odstráňte a skúste to znova.}=1{Tento súbor má citlivý alebo nebezpečný obsah. Tento obsah odstráňte a skúste to znova.}few{Tieto súbory majú citlivý alebo nebezpečný obsah. Tento obsah odstráňte a skúste to znova.}many{Tieto súbory majú citlivý alebo nebezpečný obsah. Tento obsah odstráňte a skúste to znova.}other{Tieto súbory majú citlivý alebo nebezpečný obsah. Tento obsah odstráňte a skúste to znova.}}</translation> <translation id="3323521181261657960">Bonus! Získavaš viac času používania.</translation> <translation id="3325910708063135066">Kamera a mikrofón sú vypnuté v predvoľbách systému Mac</translation> +<translation id="3327050066667856415">Účelom Chromebookov je zabezpečenie. Vaše zariadenie je pred malvérom chránené automaticky – nevyžaduje sa žiadny ďalší softvér.</translation> <translation id="3328489342742826322">Obnova zo zálohy odstráni všetky existujúce aplikácie pre Linux, ako aj údaje v priečinku súborov Linux.</translation> <translation id="3331321258768829690">(<ph name="UTCOFFSET" />) <ph name="LONGTZNAME" /> (<ph name="EXEMPLARCITY" />)</translation> <translation id="3331974543021145906">Informácie o aplikácii</translation> @@ -2115,6 +2121,7 @@ <translation id="3556433843310711081">Váš správca ho môže pre vás odblokovať</translation> <translation id="3557101512409028104">Pomocou aplikácie Family Link môžete nastaviť obmedzenia webov a obmedzenia času používania</translation> <translation id="3559262020195162408">Pravidlo sa nepodarilo v zariadení nainštalovať.</translation> +<translation id="3559533181353831840">Zostáva približne <ph name="TIME_LEFT" /></translation> <translation id="3560034655160545939">&Kontrola pravopisu</translation> <translation id="3562423906127931518">Tento proces môže trvať niekoľko minút. Nastavuje sa kontajner systému Linux.</translation> <translation id="3563432852173030730">Aplikáciu Kiosk sa nepodarilo stiahnuť</translation> @@ -2157,6 +2164,7 @@ <translation id="3602290021589620013">Ukážka</translation> <translation id="3603622770190368340">Získanie certifkátu siete</translation> <translation id="3604713164406837697">Zmeniť tapetu</translation> +<translation id="360565022852130722">Sieť Wi‑Fi je zabezpečená slabým protokolom WEP 802.1x</translation> <translation id="3605780360466892872">Manažér</translation> <translation id="3608576286259426129">Ukážka obrázka používateľa</translation> <translation id="3610369246614755442">Ventilátor doku vyžaduje servis</translation> @@ -2193,6 +2201,7 @@ <translation id="3639220004740062347">Ukončiť režim čítačky</translation> <translation id="3640214691812501263">Pridať rozšírenie <ph name="EXTENSION_NAME" /> pre používateľa <ph name="USER_NAME" />?</translation> <translation id="3640613767643722554">Naučte Asistenta rozpoznať váš hlas</translation> +<translation id="3643014427358482789"><ph name="DOMAIN" /> deaktivuje ladenie ADB, čo spôsobí resetovanie vášho zariadenia <ph name="DEVICE_TYPE" />. Pred reštartom si zálohujte súbory.</translation> <translation id="3645372836428131288">Zľahka pohýbte, aby sa nasnímala ďalšia časť odtlačku.</translation> <translation id="3647998456578545569">{COUNT,plural, =1{Zo zariadenia <ph name="DEVICE_NAME" /> boli prijaté prílohy (<ph name="ATTACHMENTS" />)}few{Zo zariadenia <ph name="DEVICE_NAME" /> boli prijaté prílohy (<ph name="ATTACHMENTS" />)}many{Zo zariadenia <ph name="DEVICE_NAME" /> boli prijaté prílohy (<ph name="ATTACHMENTS" />)}other{Zo zariadenia <ph name="DEVICE_NAME" /> boli prijaté prílohy (<ph name="ATTACHMENTS" />)}}</translation> <translation id="3648348069317717750">Rozpoznané zariadenie: <ph name="USB_DEVICE_NAME" /></translation> @@ -2281,6 +2290,7 @@ <translation id="3732857534841813090">Informácie súvisiace s Asistentom Google</translation> <translation id="3733127536501031542">Server SSL s prestupom na vyššiu edíciu</translation> <translation id="3735740477244556633">Zoradiť podľa</translation> +<translation id="3738632186060045350">Údaje zariadenia <ph name="DEVICE_TYPE" /> budú o 24 hodín odstránené</translation> <translation id="3738924763801731196"><ph name="OID" />:</translation> <translation id="3739254215541673094">Otvoriť <ph name="APPLICATION" />?</translation> <translation id="3742055079367172538">Vytvorila sa snímka obrazovky</translation> @@ -2468,6 +2478,7 @@ <translation id="3937734102568271121">Vždy prekladať jazyk <ph name="LANGUAGE" /></translation> <translation id="3938128855950761626">Zariadenia od dodávateľa <ph name="VENDOR_ID" /></translation> <translation id="3940233957883229251">Povoliť automatické opakovanie</translation> +<translation id="3941014780699102620">Hostiteľa sa nepodarilo vybrať</translation> <translation id="3941565636838060942">Ak chcete skryť prístup k tomuto programu, musíte ho odinštalovať pomocou apletu <ph name="CONTROL_PANEL_APPLET_NAME" /> na ovládacom paneli. @@ -2630,6 +2641,7 @@ <translation id="413121957363593859">Komponenty</translation> <translation id="4131410914670010031">Čiernobielo</translation> <translation id="413193092008917129">Postupy diagnostiky siete</translation> +<translation id="4132183752438206707">Nájdite aplikácie v Obchode Google Play</translation> <translation id="4133076602192971179">Otvoriť aplikáciu a zmeniť heslo</translation> <translation id="4136203100490971508">Nočný režim sa automaticky vypne pri východe slnka</translation> <translation id="41365691917097717">Pokračovaním aktivujete ladenie ADB na vytváranie a testovanie aplikácií pre Android. Upozorňujeme, že touto akciou umožníte inštalácie aplikácií pre Android, ktoré Google neoveril, a deaktivácia vyžaduje obnovenie výrobných nastavení.</translation> @@ -2879,6 +2891,8 @@ <translation id="4479877282574735775">Konfiguruje sa virtuálny počítač. Môže to trvať niekoľko minút.</translation> <translation id="4480590691557335796">Chrome dokáže vo vašom počítači nájsť škodlivý softvér a odstrániť ho</translation> <translation id="4481530544597605423">Nespárované zariadenia</translation> +<translation id="4483049906298469269">Nepredvolenú bránu siete sa nepodarilo otestovať</translation> +<translation id="4487489714832036847">Chromebooky používajú namiesto tradičného softvéru aplikácie. Získajte aplikácie na zvýšenie produktivity, zábavu a ďalšie činnosti.</translation> <translation id="4488502501195719518">Chcete vymazať všetky údaje?</translation> <translation id="4493468155686877504">Odporúčané (<ph name="INSTALL_SIZE" />)</translation> <translation id="4495419450179050807">Nezobrazovať na tejto stránke</translation> @@ -2929,6 +2943,7 @@ <translation id="4546692474302123343">Hlasový vstup Asistenta Google</translation> <translation id="4547659257713117923">Žiadne karty z iných zariadení</translation> <translation id="4547672827276975204">Nastaviť automaticky</translation> +<translation id="4548483925627140043">Signál sa nenašiel</translation> <translation id="4549791035683739768">V bezpečnostnom kľúči nie sú uložené žiadne odtlačky prstov</translation> <translation id="4551763574344810652">Stlačením skratky <ph name="MODIFIER_KEY_DESCRIPTION" /> vrátite akciu späť</translation> <translation id="4552089082226364758">Flash</translation> @@ -2968,6 +2983,7 @@ <translation id="4582563038311694664">Resetovať všetky nastavenia</translation> <translation id="4585793705637313973">Úprava stránky</translation> <translation id="4586275095964870617"><ph name="URL" /> sa nepodarilo otvoriť v alternatívnom prehliadači. Obráťte sa na správcu systému.</translation> +<translation id="458794348635939462">Nepodarilo sa vybrať žiadneho hostiteľa</translation> <translation id="4589713469967853491">Denníky boli úspešne zapísané do adresára Stiahnuté.</translation> <translation id="4590324241397107707">Ukladací priestor databázy</translation> <translation id="4592891116925567110">Aplikácia na kreslenie dotykovým perom</translation> @@ -3351,6 +3367,7 @@ <translation id="5089810972385038852">Štát</translation> <translation id="5094721898978802975">Komunikovať so spolupracujúcimi natívnymi aplikáciami</translation> <translation id="5097002363526479830">K sieti „<ph name="NAME" />“ sa nepodarilo pripojiť: <ph name="DETAILS" /></translation> +<translation id="5097649414558628673">Nástroj: <ph name="PRINT_NAME" /></translation> <translation id="5097874180538493929">Automaticky kliknúť po zastavení kurzora</translation> <translation id="5101042277149003567">Otvoriť všetky záložky</translation> <translation id="5101839224773798795">Automaticky kliknúť po zastavení kurzora</translation> @@ -3569,6 +3586,7 @@ <translation id="5370819323174483825">&Obnoviť</translation> <translation id="5372529912055771682">Poskytnutý režim registrácie v tejto verzii operačného systému už nie je podporovaný. Uistite sa, že používate najnovšiu verziu a skúste to znova.</translation> <translation id="5372579129492968947">Odopnúť rozšírenie</translation> +<translation id="5372659122375744710">Sieť Wi‑Fi nie je zabezpečená</translation> <translation id="5376169624176189338">Kliknutím prejdete naspäť. Pri dlhšom stlačení sa zobrazí história.</translation> <translation id="5376931455988532197">Súbor je príliš veľký</translation> <translation id="5377721922656071359">{COUNT,plural, =1{Do zariadenia <ph name="DEVICE_NAME" /> boli úspešne odoslané prílohy (<ph name="ATTACHMENTS" />)}few{Do zariadenia <ph name="DEVICE_NAME" /> boli úspešne odoslané prílohy (<ph name="ATTACHMENTS" />)}many{Do zariadenia <ph name="DEVICE_NAME" /> boli úspešne odoslané prílohy (<ph name="ATTACHMENTS" />)}other{Do zariadenia <ph name="DEVICE_NAME" /> boli úspešne odoslané prílohy (<ph name="ATTACHMENTS" />)}}</translation> @@ -3598,6 +3616,7 @@ <translation id="5414566801737831689">Čítať ikony webov, ktoré navštevujete</translation> <translation id="5417312524372586921">Motívy prehliadača</translation> <translation id="5419405654816502573">Voice Match</translation> +<translation id="5420274697768050645">V záujme vyššej bezpečnosti vyžadovať na odomknutie zariadenia heslo</translation> <translation id="5420438158931847627">Určuje ostrosť textu a snímok</translation> <translation id="5422221874247253874">Prístupový bod</translation> <translation id="5422781158178868512">Je nám ľúto, ale externé pamäťové zariadenie sa nepodarilo rozpoznať.</translation> @@ -3722,6 +3741,7 @@ <translation id="5548606607480005320">Kontrola bezpečnosti</translation> <translation id="5551573675707792127">Klávesnica a textový vstup</translation> <translation id="5553089923092577885">Priraďovanie politiky certifikátu</translation> +<translation id="5554403733534868102">Po tomto už nebudete musieť na aktualizácie čakať</translation> <translation id="5554489410841842733">Táto ikona sa zobrazí, keď bude môcť dané rozšírenie na aktuálnej stránke realizovať akcie.</translation> <translation id="5554720593229208774">E-mailová certifikačná autorita</translation> <translation id="5556459405103347317">Znova načítať</translation> @@ -4135,6 +4155,7 @@ <translation id="6061882183774845124">Odoslať odkaz do vašich zariadení</translation> <translation id="6064217302520318294">Zámka obrazovky</translation> <translation id="6065289257230303064">Atribúty adresára subjektu certifikátu</translation> +<translation id="6069464830445383022">Do Chromebooku sa prihlasujete svojím účtom Google</translation> <translation id="6069671174561668781">Nastavenie tapety</translation> <translation id="6071181508177083058">potvrdenie hesla</translation> <translation id="6071576563962215370">Systému sa nepodarilo nastaviť v zariadení zámku atribútov z inštalácie.</translation> @@ -4177,6 +4198,7 @@ <translation id="6104311680260824317">Zariadenie sa nepodarilo pripojiť k doméne. Server nepodporuje stanovené typy šifrovania Kerberos. Skontrolujte nastavenia šifrovania v časti Ďalšie možnosti.</translation> <translation id="6104796831253957966">Zoznam tlačových úloh je plný</translation> <translation id="6105994589138235234">Synchronizácia prehliadača Chrome</translation> +<translation id="6108689792487843350">Brána je nedostupná</translation> <translation id="6111972606040028426">Aktivovať Asistenta Google</translation> <translation id="6112294629795967147">Klepnutím zmeníte veľkosť</translation> <translation id="6112727384379533756">Pridať ticket</translation> @@ -4237,6 +4259,7 @@ <translation id="6178664161104547336">Vybrať certifikát</translation> <translation id="6181431612547969857">Stiahnutie bolo zablokované</translation> <translation id="6185132558746749656">Poloha zariadenia</translation> +<translation id="6191293864534840972">Nesprávny formát serverov DNS</translation> <translation id="6195446518998936840">Ak chcete nastaviť rodičovskú kontrolu, vaše dieťa musí mať účet Google, s ktorého správou mu budete pomáhať. V aplikácii Family Link môžete nastaviť limity času používania, schvaľovať či blokovať weby a oveľa viac.</translation> <translation id="6195693561221576702">Toto zariadenie nie je možné nastaviť v režime offline ukážky.</translation> <translation id="6196640612572343990">Blokovať súbory cookie tretích strán</translation> @@ -4450,6 +4473,7 @@ <translation id="6451591602925140504">{NUM_PAGES,plural, =0{<ph name="PAGE_TITLE" />}=1{<ph name="PAGE_TITLE" /> a 1 ďalšia karta}few{<ph name="PAGE_TITLE" /> a # ďalšie karty}many{<ph name="PAGE_TITLE" /> and # other tabs}other{<ph name="PAGE_TITLE" /> a # ďalších kariet}}</translation> <translation id="6451689256222386810">Ak ste zabudli prístupovú frázu alebo chcete toto nastavenie zmeniť, <ph name="BEGIN_LINK" />resetujte synchronizáciu<ph name="END_LINK" />.</translation> <translation id="6452181791372256707">Odmietnuť</translation> +<translation id="6452251728599530347">Dokončené na <ph name="PERCENT" /> %</translation> <translation id="6452961788130242735">Problém siete alebo nesprávna oblasť</translation> <translation id="6455264371803474013">Na konkrétnych weboch</translation> <translation id="6455894534188563617">&Nový priečinok</translation> @@ -4506,6 +4530,7 @@ <ph name="EVENT_NAME" /></translation> <translation id="6520876759015997832"><ph name="LIST_POSITION" />. výsledok vyhľadávania z <ph name="LIST_SIZE" />: <ph name="SEARCH_RESULT_TEXT" />. Stlačením klávesa Enter prejdite na príslušnú sekciu.</translation> <translation id="652492607360843641">Máte aktívne pripojenie k sieti <ph name="NETWORK_TYPE" />.</translation> +<translation id="6527081081771465939">Neznámy protokol zabezpečenia siete Wi‑Fi</translation> <translation id="6527303717912515753">Zdieľať</translation> <translation id="6528513914570774834">Povoliť ostatným používateľom zariadenia pripojiť sa k tejto sieti</translation> <translation id="652948702951888897">História Chromu</translation> @@ -4622,6 +4647,7 @@ <translation id="6680442031740878064">K dispozícii: <ph name="AVAILABLE_SPACE" /></translation> <translation id="6680650203439190394">Ohodnotiť</translation> <translation id="6681668084120808868">Zaznamenať fotografiu</translation> +<translation id="6684827949542560880">Sťahuje sa najnovšia aktualizácia</translation> <translation id="668599234725812620">Otvoriť Google Play</translation> <translation id="6686490380836145850">Zatvoriť karty vpravo</translation> <translation id="6686817083349815241">Uloženie hesla</translation> @@ -4731,6 +4757,7 @@ <translation id="6812841287760418429">Zachovať zmeny</translation> <translation id="6817174620439930047">Opýtať sa, keď bude chcieť web použiť na prístup k zariadeniam MIDI správy exkluzívne pre systém (odporúča sa)</translation> <translation id="6818198425579322765">Jazyk stránky, ktorý chcete prekladať</translation> +<translation id="6818802132960437751">Integrovaná antivírusová ochrana</translation> <translation id="682123305478866682">Prenášanie plochy</translation> <translation id="6823174134746916417">Kliknutie klepnutím na touchpade</translation> <translation id="6823506025919456619">Ak si chcete zobraziť svoje zariadenia, musíte sa prihlásiť do prehliadača Chrome</translation> @@ -5377,6 +5404,7 @@ <translation id="7631205654593498032">Keď prepojíte svoje zariadenia, súhlasíte s tým, že <ph name="DEVICE_TYPE" /> bude môcť:</translation> <translation id="7631887513477658702">Súbory tohto typu &vždy otvoriť</translation> <translation id="7632948528260659758">Nepodarilo sa aktualizovať nasledujúce aplikácie Kiosku:</translation> +<translation id="7633724038415831385">Na aktualizáciu budete musieť čakať iba teraz. V Chromebookoch sa softvér aktualizuje na pozadí.</translation> <translation id="7634566076839829401">Niečo sa pokazilo. Skúste to znova.</translation> <translation id="763632859238619983">Zakázať všetkým webom inštalovať obslužné nástroje platieb</translation> <translation id="7636919061354591437">Nainštalovať v tomto zariadení</translation> @@ -5655,6 +5683,7 @@ <translation id="7933314993013528982">{NUM_TABS,plural, =1{Zapnúť zvuk webu}few{Zapnúť zvuk webov}many{Zapnúť zvuk webov}other{Zapnúť zvuk webov}}</translation> <translation id="7933634003144813719">Spravovať zdieľané priečinky</translation> <translation id="793531125873261495">Pri sťahovaní virtuálneho počítača sa vyskytla chyba. Skúste to znova.</translation> +<translation id="7936303884198020182">Nenašli sa žiadne servery DNS</translation> <translation id="7938594894617528435">Momentálne offline</translation> <translation id="7939062555109487992">Rozšírené možnosti</translation> <translation id="7939412583708276221">Aj tak ponechať</translation> @@ -5897,6 +5926,7 @@ <translation id="8226742006292257240">Nižšie je uvedené náhodne vygenerované heslo modulu TPM, ktoré bolo priradené k vášmu počítaču:</translation> <translation id="8227119283605456246">Pripojiť súbor</translation> <translation id="8230134520748321204">Chcete uložiť heslo pre web <ph name="ORIGIN" />?</translation> +<translation id="8230672074305416752">Predvolenú bránu siete sa nepodarilo otestovať</translation> <translation id="8234795456569844941">Pomôžte našim programátorom vyriešiť tento problém. Povedzte nám, čo sa stalo presne predtým, než sa zobrazilo chybové hlásenie profilu:</translation> <translation id="8236917170563564587">Zdieľať radšej túto kartu</translation> <translation id="8237647586961940482">Tmavoružová a červená</translation> @@ -5957,6 +5987,7 @@ <translation id="8288032458496410887">Odinštalovať aplikáciu <ph name="APP" />…</translation> <translation id="8289128870594824098">Veľkosť na disku</translation> <translation id="8291967909914612644">Krajina poskytovateľa domácej siete</translation> +<translation id="8293206222192510085">Pridať záložku</translation> <translation id="8294431847097064396">Zdroj</translation> <translation id="8297006494302853456">Slabé</translation> <translation id="8299319456683969623">Momentálne ste v režime offline.</translation> @@ -6006,6 +6037,7 @@ <translation id="8363095875018065315">stabilné</translation> <translation id="8363142353806532503">Mikrofón je zablokovaný</translation> <translation id="8363763184161554204">povoľujete <ph name="PERMISSION" /></translation> +<translation id="8364946094152050673">Prázdne DNS servery</translation> <translation id="8366396658833131068">Vaše pripojenie k sieti je obnovené. Vyberte inú sieť alebo stlačte tlačidlo Pokračovať nachádzajúce sa nižšie a spustite tak aplikáciu Kiosk.</translation> <translation id="8368027906805972958">Neznáme alebo nepodporované zariadenie (<ph name="DEVICE_ID" />)</translation> <translation id="8368859634510605990">&Otvoriť všetky záložky</translation> @@ -6091,8 +6123,10 @@ <translation id="8472623782143987204">hardvérová záloha</translation> <translation id="8473863474539038330">Adresy a ďalšie údaje</translation> <translation id="8475313423285172237">Iný program v počítači pridal rozšírenie, ktoré môže zmeniť spôsob fungovania prehliadača Chrome.</translation> +<translation id="8475690821716466388">Sieť Wi‑Fi je zabezpečená slabým protokolom WEP PSK</translation> <translation id="8477241577829954800">Nahradené</translation> <translation id="8477384620836102176">&Všeobecné</translation> +<translation id="8477551185774834963">Latencia servera DNS mierne prekračuje povolenú úroveň</translation> <translation id="8480082892550707549">Aj keď ste z tohto webu v minulosti stiahli súbory, môže byť dočasne nebezpečný (napadnutý). Skúste daný súbor stiahnuť neskôr.</translation> <translation id="8480869669560681089">Neznáme zariadenie od spoločnosti <ph name="VENDOR_NAME" /></translation> <translation id="8481187309597259238">Potvrdenie povolenia pre USB</translation> @@ -6144,6 +6178,7 @@ <translation id="8546930481464505581">Prispôsobiť ovládač Touch Bar</translation> <translation id="8547013269961688403">Zapnúť lupu celej obrazovky</translation> <translation id="85486688517848470">Podržaním klávesa vyhľadávania prepnete správanie klávesov v hornom riadku</translation> +<translation id="8549316893834449916">Do Chromebooku sa prihlásite svojím účtom Google. Je to ten istý účet, aký používate s Gmailom, Diskom, službou YouTube a ďalšími.</translation> <translation id="8551388862522347954">Licencie</translation> <translation id="8551588720239073785">Nastavenia dátumu a času</translation> <translation id="8553342806078037065">Spravovať ďalšie osoby</translation> @@ -6282,6 +6317,7 @@ <translation id="8720200012906404956">Hľadá sa mobilná sieť. <ph name="BEGIN_LINK" />Ďalšie informácie<ph name="END_LINK" /></translation> <translation id="8720816553731218127">Časový limit inicializácie atribútov z inštalácie uplynul.</translation> <translation id="8722912030556880711">Odosielať údaje o využití a diagnostiky. Toto zariadenie momentálne automaticky odosiela Googlu diagnostiky a údaje o používaní zariadenia a aplikácií. Pomôžu zvýšiť stabilitu systému a aplikácií a poskytovať ďalšie vylepšenia. Niektoré súhrnné údaje tiež pomôžu aplikáciám Google a partnerom, ako napríklad vývojárom Androidu. Ak aktivujete dodatočnú aktivitu na internete a v aplikáciách, tieto údaje sa môžu uložiť vo vašom účte Google. <ph name="BEGIN_LINK2" />Ďalšie informácie<ph name="END_LINK2" /></translation> +<translation id="8723108084122415655">Nepredvolená sieť prekračuje úroveň latencie</translation> <translation id="8724405322205516354">Keď uvidíte túto ikonu, môžete na identifikáciu alebo schválenie nákupov použiť odtlačok prsta.</translation> <translation id="8724409975248965964">Odtlačok bol pridaný</translation> <translation id="8724859055372736596">&Zobraziť v priečinku</translation> @@ -6459,6 +6495,7 @@ <translation id="8909833622202089127">Web sleduje vašu polohu</translation> <translation id="8910146161325739742">Zdieľanie obrazovky</translation> <translation id="8910222113987937043">Záložky, história, heslá a ďalšie nastavenia sa už nebudú ďalej synchronizovať do vášho účtu Google. Vaše existujúce údaje však zostanú uložené v účte Google a môžete ich spravovať pomocou panela <ph name="BEGIN_LINK" />Google Dashboard<ph name="END_LINK" />.</translation> +<translation id="8910721771319628100">Predvolená sieť prekračuje prah latencie</translation> <translation id="8912362522468806198">účtu Google</translation> <translation id="8912793549644936705">Roztiahnuť</translation> <translation id="8912810933860534797">Aktivovať automatické prehľadávanie</translation>
diff --git a/chrome/app/resources/generated_resources_sl.xtb b/chrome/app/resources/generated_resources_sl.xtb index fcb0166..9990c938 100644 --- a/chrome/app/resources/generated_resources_sl.xtb +++ b/chrome/app/resources/generated_resources_sl.xtb
@@ -525,7 +525,6 @@ <translation id="1608668830839595724">Več dejanj za izbrane elemente</translation> <translation id="161042844686301425">Cianova</translation> <translation id="1611432201750675208">Naprava je zaklenjena</translation> -<translation id="1611584202130317952">Omogočanje uporabe je bilo prekinjeno. Poskusite znova ali se obrnite na lastnika ali skrbnika naprave.</translation> <translation id="1614511179807650956">Morda ste porabili dovoljeno količino prenosa podatkov v mobilnem omrežju. Večjo količino podatkov lahko kupite na portalu za aktiviranje <ph name="NAME" />.</translation> <translation id="161460670679785907">Ni mogoče zaznati vašega telefona</translation> <translation id="1616206807336925449">Za to razširitev so potrebna posebna dovoljenja.</translation> @@ -967,6 +966,7 @@ <translation id="2148219725039824548">Napaka pri vpenjanju datotečnega sredstva v skupni rabi. Določeno datotečno sredstvo v skupni rabi ni bilo najdeno v omrežju.</translation> <translation id="2148756636027685713">Formatiranje je končano</translation> <translation id="2148892889047469596">Predvajanje zavihka</translation> +<translation id="2149973817440762519">Uredi zaznamek</translation> <translation id="2150139952286079145">Iskanje ciljev</translation> <translation id="2150661552845026580">Želite dodati »<ph name="EXTENSION_NAME" />«?</translation> <translation id="2151576029659734873">Vneseni tabulatorski indeks ni veljaven.</translation> @@ -5991,6 +5991,7 @@ <translation id="8288032458496410887">Odmeščanje aplikacije <ph name="APP" /> …</translation> <translation id="8289128870594824098">Velikost diska</translation> <translation id="8291967909914612644">Država domačega ponudnika</translation> +<translation id="8293206222192510085">Dodaj zaznamek</translation> <translation id="8294431847097064396">Vir</translation> <translation id="8297006494302853456">Šibek</translation> <translation id="8299319456683969623">Trenutno ste brez povezave.</translation>
diff --git a/chrome/app/resources/generated_resources_sq.xtb b/chrome/app/resources/generated_resources_sq.xtb index 673a4654..9b81dd4 100644 --- a/chrome/app/resources/generated_resources_sq.xtb +++ b/chrome/app/resources/generated_resources_sq.xtb
@@ -71,6 +71,7 @@ <translation id="1070705170564860382">Po hapet në shfletuesin alternativ në <ph name="COUNTDOWN_SECONDS" /> sekonda</translation> <translation id="1071917609930274619">Shifrimi i të dhënave</translation> <translation id="1072700771426194907">U zbulua një pajisje USB</translation> +<translation id="107278043869924952">Përdor edhe kodin PIN përveç fjalëkalimit</translation> <translation id="1076176485976385390">Navigoji faqet me një kursor teksti</translation> <translation id="1076698951459398590">Aktivizo temën</translation> <translation id="1076818208934827215">Microsoft Internet Explorer</translation> @@ -521,7 +522,6 @@ <translation id="1608668830839595724">Veprime të tjera për artikujt e zgjedhur</translation> <translation id="161042844686301425">E bruztë</translation> <translation id="1611432201750675208">Pajisja jote është e kyçur</translation> -<translation id="1611584202130317952">Fluksi i përgatitjes u ndërpre. Provo sërish ose kontakto me zotëruesin e pajisjes ose administratorin.</translation> <translation id="1614511179807650956">Mund ta kesh shfrytëzuar sasinë e lejuar të të dhënave celulare. Vizito portalin e aktivizimit të <ph name="NAME" /> për të blerë më shumë të dhëna.</translation> <translation id="161460670679785907">Telefoni yt nuk mund të zbulohet</translation> <translation id="1616206807336925449">Kjo shtesë nuk kërkon leje të veçanta.</translation> @@ -530,6 +530,7 @@ <translation id="1618268899808219593">Qendra e n&dihmës</translation> <translation id="1620307519959413822">Fjalëkalim i gabuar. Provo përsëri ose kliko te "Harrova fjalëkalimin" për ta rivendosur.</translation> <translation id="1620510694547887537">Kamera</translation> +<translation id="1621831347985899379">Të dhënat e <ph name="DEVICE_TYPE" /> do të fshihen</translation> <translation id="1622054403950683339">Harroje rrjetin Wi-Fi</translation> <translation id="1623132449929929218">Imazhet nuk ofrohen për momentin. Rilidhu me internetin për të parë koleksionet e imazheve të sfondit.</translation> <translation id="1623723619460186680">Reduktimi i dritës blu</translation> @@ -757,6 +758,7 @@ <translation id="1877377290348678128">Etiketa (opsionale)</translation> <translation id="1877520246462554164">Marrja e kodit të shenjës së vërtetimit dështoi. Dil dhe më pas identifikohu përsëri për të provuar përsëri.</translation> <translation id="1877860345998737529">Caktimi i veprimit të ndërrimit</translation> +<translation id="1878155070920054810">Me sa duket pajisjes sate Chromebook do t'i mbarojë energjia përpara se të përfundojë përditësimi. Sigurohu që të karikohet siç duhet për të shmangur ndërprerjen.</translation> <translation id="1879000426787380528">Identifikohu si</translation> <translation id="1880905663253319515">Të fshihet certifikata "<ph name="CERTIFICATE_NAME" />"?</translation> <translation id="1881445033931614352">Struktura e tastierës</translation> @@ -961,6 +963,7 @@ <translation id="2148219725039824548">Gabim gjatë montimit të ndarjes. Ndarja e specifikuar nuk u gjend në rrjet.</translation> <translation id="2148756636027685713">Formatimi përfundoi</translation> <translation id="2148892889047469596">Transmeto skedën</translation> +<translation id="2149973817440762519">Redakto faqeshënuesin</translation> <translation id="2150139952286079145">Kërko vendmbërritjet</translation> <translation id="2150661552845026580">Të shtohet "<ph name="EXTENSION_NAME" />"?</translation> <translation id="2151576029659734873">U fut indeksi i pavlefshëm i skedës.</translation> @@ -1070,6 +1073,7 @@ <translation id="2270627217422354837">Shkëmbe të dhëna me çdo pajisje në domenet: <ph name="DOMAINS" /></translation> <translation id="2272570998639520080">Gotë Martini</translation> <translation id="2273119997271134996">Problem me portën e videos së stacionit</translation> +<translation id="2274840746523584236">Kariko pajisjen Chromebook</translation> <translation id="2276503375879033601">Shto më shumë aplikacione</translation> <translation id="2277255602909579701">Të gjitha kukit dhe të dhënat e faqes</translation> <translation id="2277769717710009150">{COUNT,plural, =1{1 artikull i kopjuar}other{# artikuj të kopjuar}}</translation> @@ -1912,6 +1916,7 @@ <translation id="3308116878371095290">Kjo faqe u parandalua që të vendosë kuki.</translation> <translation id="3308134619352333507">Fshihe butonin</translation> <translation id="3308852433423051161">Po ngarkon "Asistentin e Google"...</translation> +<translation id="3310640316857623290">Vonesa e DNS-së është shumë më lart se pragu i lejueshëm</translation> <translation id="3311445899360743395">Të dhënat e lidhura me këtë aplikacion mund të hiqen nga kjo pajisje.</translation> <translation id="3312424061798279731">Gjuhët e aktivizuara</translation> <translation id="3313622045786997898">Vlera e nënshkrimit të certifikatës</translation> @@ -1924,6 +1929,7 @@ <translation id="3323295311852517824">{NUM_FILES,plural, =0{Këto të dhëna kanë përmbajtje delikate ose të rrezikshme. Hiqe këtë përmbajtje dhe provo përsëri.}=1{Ky skedar ka përmbajtje delikate ose të rrezikshme. Hiqe këtë përmbajtje dhe provo përsëri.}other{Këta skedarë kanë përmbajtje delikate ose të rrezikshme. Hiqe këtë përmbajtje dhe provo përsëri.}}</translation> <translation id="3323521181261657960">Bonus! Ke më shumë kohë para ekranit</translation> <translation id="3325910708063135066">Kamera dhe mikrofoni janë çaktivizuar te Mac System Preferences</translation> +<translation id="3327050066667856415">Pajisjet Chromebook janë projektuar për siguri. Pajisja jote është e mbrojtur automatikisht nga softuerët keqdashës. Nuk kërkohen softuerë shtesë.</translation> <translation id="3328489342742826322">Restaurimi nga një rezervim do të fshijë aplikacionet ekzistuese të Linux dhe të dhënat në dosjen e skedarëve të tu të Linux.</translation> <translation id="3331321258768829690">(<ph name="UTCOFFSET" />) <ph name="LONGTZNAME" /> (<ph name="EXEMPLARCITY" />)</translation> <translation id="3331974543021145906">Informacion mbi aplikacionin</translation> @@ -2113,6 +2119,7 @@ <translation id="3556433843310711081">Menaxheri yt mund ta zhbllokojë atë për ty</translation> <translation id="3557101512409028104">Cakto kufizimet e sajteve të uebit dhe kufijtë për kohën para ekranit me Family Link</translation> <translation id="3559262020195162408">Dështoi instalimi i politikës në pajisje.</translation> +<translation id="3559533181353831840">Mbeten rreth <ph name="TIME_LEFT" /></translation> <translation id="3560034655160545939">&Kontrolli drejtshkrimor</translation> <translation id="3562423906127931518">Ky proces mund të zgjasë disa minuta. Kontejneri i Linux po konfigurohet.</translation> <translation id="3563432852173030730">Aplikacioni kioskë nuk mund të shkarkohej.</translation> @@ -2155,6 +2162,7 @@ <translation id="3602290021589620013">Pamje paraprake</translation> <translation id="3603622770190368340">Merr certifikatën e rrjetit</translation> <translation id="3604713164406837697">Ndrysho imazhin e sfondit</translation> +<translation id="360565022852130722">Rrjeti Wi-Fi është i siguruar me protokollin e dobët WEP 802.1x</translation> <translation id="3605780360466892872">I kollarisur</translation> <translation id="3608576286259426129">Shikim paraprak i imazhit të përdoruesit</translation> <translation id="3610369246614755442">Ventilatori i stacionit ka nevojë për shërbim</translation> @@ -2191,6 +2199,7 @@ <translation id="3639220004740062347">Dil nga modaliteti i lexuesit</translation> <translation id="3640214691812501263">Shto "<ph name="EXTENSION_NAME" />" për <ph name="USER_NAME" />?</translation> <translation id="3640613767643722554">Mësoje "Asistentin" të njohë zërin tënd</translation> +<translation id="3643014427358482789"><ph name="DOMAIN" /> po çaktivizon korrigjimin e ADB-së, gjë që do ta rivendosë pajisjen tënde <ph name="DEVICE_TYPE" />. Rezervo skedarët përpara se të fillosh.</translation> <translation id="3645372836428131288">Lëvize pak për të kapur një pjesë tjetër të gjurmës së gishtit.</translation> <translation id="3647998456578545569">{COUNT,plural, =1{Marrja nga <ph name="DEVICE_NAME" /> me sukses: <ph name="ATTACHMENTS" />}other{Marrja nga <ph name="DEVICE_NAME" /> me sukses: <ph name="ATTACHMENTS" />}}</translation> <translation id="3648348069317717750">U zbulua <ph name="USB_DEVICE_NAME" /></translation> @@ -2279,6 +2288,7 @@ <translation id="3732857534841813090">Informacioni i lidhur i "Asistentit të Google"</translation> <translation id="3733127536501031542">Server SSL me rritje</translation> <translation id="3735740477244556633">Rendit sipas</translation> +<translation id="3738632186060045350">Të dhënat e pajisjes <ph name="DEVICE_TYPE" /> do të fshihen brenda 24 orësh</translation> <translation id="3738924763801731196"><ph name="OID" />:</translation> <translation id="3739254215541673094">Të hapet <ph name="APPLICATION" />?</translation> <translation id="3742055079367172538">Pamja e ekranit u mor</translation> @@ -2466,6 +2476,7 @@ <translation id="3937734102568271121">Përkthe gjithmonë nga <ph name="LANGUAGE" /></translation> <translation id="3938128855950761626">Pajisjet nga shitësi <ph name="VENDOR_ID" /></translation> <translation id="3940233957883229251">Aktivizo përsëritjen automatike</translation> +<translation id="3941014780699102620">Zgjidhja e pritësit dështoi</translation> <translation id="3941565636838060942">Për të fshehur qasjen te ky program, duhet ta çaktivizosh duke përdorur <ph name="CONTROL_PANEL_APPLET_NAME" /> në Panelin e kontrollit. @@ -2628,6 +2639,7 @@ <translation id="413121957363593859">Përbërësit</translation> <translation id="4131410914670010031">Bardhezi</translation> <translation id="413193092008917129">Rutinat e diagnostikimit të rrjetit</translation> +<translation id="4132183752438206707">Gjej aplikacione në "Dyqanin e Google Play"</translation> <translation id="4133076602192971179">Hap aplikacionin për të ndryshuar fjalëkalimin</translation> <translation id="4136203100490971508">"Drita e natës" do të çaktivizohet automatikisht kur të lindë dielli</translation> <translation id="41365691917097717">Vazhdimi do të aktivizojë korrigjimin e ADB-së për krijimin dhe testimin e aplikacioneve të Android. Ki parasysh se ky veprim lejon instalimin e aplikacioneve të Android që nuk janë verifikuar nga Google dhe për çaktivizimin kërkohet rivendosja e cilësimeve të fabrikës.</translation> @@ -2877,6 +2889,8 @@ <translation id="4479877282574735775">Pajisja virtuale po konfigurohet. Kjo mund të zgjasë disa minuta.</translation> <translation id="4480590691557335796">Chrome mund të gjejë një softuer keqdashës në kompjuterin tënd dhe ta heqë atë</translation> <translation id="4481530544597605423">Pajisjet e paçiftuara</translation> +<translation id="4483049906298469269">Dështoi verifikimi "ping" për portën jo të parazgjedhur të kalimit</translation> +<translation id="4487489714832036847">Pajisjet Chromebook përdorin aplikacione në vend të softuerëve tradicionalë. Merr aplikacione për produktivitet, zbavitje etj.</translation> <translation id="4488502501195719518">Të pastrohen të gjitha të dhënat?</translation> <translation id="4493468155686877504">E rekomanduar (<ph name="INSTALL_SIZE" />)</translation> <translation id="4495419450179050807">Mos e shfaq në këtë faqe</translation> @@ -2927,6 +2941,7 @@ <translation id="4546692474302123343">Hyrja zanore e "Asistentit të Google"</translation> <translation id="4547659257713117923">Asnjë skedë nga pajisjet e tjera</translation> <translation id="4547672827276975204">Cakto automatikisht</translation> +<translation id="4548483925627140043">Sinjali nuk u gjet</translation> <translation id="4549791035683739768">Çelësi yt i sigurisë nuk ka gjurmë gishtash të ruajtura</translation> <translation id="4551763574344810652">Shtyp <ph name="MODIFIER_KEY_DESCRIPTION" /> për ta zhbërë</translation> <translation id="4552089082226364758">Blici</translation> @@ -2966,6 +2981,7 @@ <translation id="4582563038311694664">Rivendos të gjitha cilësimet</translation> <translation id="4585793705637313973">Redakto faqen</translation> <translation id="4586275095964870617"><ph name="URL" /> nuk mund të hapej në një shfletues alternativ. Kontakto me administratorin e sistemit.</translation> +<translation id="458794348635939462">Zgjidhja e të gjithë pritësve dështoi</translation> <translation id="4589713469967853491">Evidencat janë shkruar me sukses te direktoria "Shkarkimet".</translation> <translation id="4590324241397107707">Ruajtja e bazës së të dhënave</translation> <translation id="4592891116925567110">Aplikacioni për vizatimin me stilolaps</translation> @@ -3349,6 +3365,7 @@ <translation id="5089810972385038852">Shteti</translation> <translation id="5094721898978802975">Komuniko me aplikacionet origjinale bashkëpunuese</translation> <translation id="5097002363526479830">Dështoi lidhja me rrjetin "<ph name="NAME" />": <ph name="DETAILS" /></translation> +<translation id="5097649414558628673">Vegla: <ph name="PRINT_NAME" /></translation> <translation id="5097874180538493929">Kliko automatikisht kur të ndalojë kursori</translation> <translation id="5101042277149003567">Hapi të gjithë faqeshënuesit</translation> <translation id="5101839224773798795">Kliko automatikisht kur kursori ndalon</translation> @@ -3567,6 +3584,7 @@ <translation id="5370819323174483825">&Ringarko</translation> <translation id="5372529912055771682">Modaliteti i dhënë i regjistrimit nuk mbështetet nga ky version i sistemit operativ. Sigurohu që po përdor versionin më të fundit dhe provo sërish.</translation> <translation id="5372579129492968947">Zhgozhdo shtesën</translation> +<translation id="5372659122375744710">Rrjeti Wi-Fi nuk është i sigurt</translation> <translation id="5376169624176189338">Kliko për t'u kthyer prapa, mbaje të shtypur për të parë historikun</translation> <translation id="5376931455988532197">Skedari është tepër i madh</translation> <translation id="5377721922656071359">{COUNT,plural, =1{Dërgimi te <ph name="DEVICE_NAME" /> me sukses: <ph name="ATTACHMENTS" />}other{Dërgimi te <ph name="DEVICE_NAME" /> me sukses: <ph name="ATTACHMENTS" />}}</translation> @@ -3596,6 +3614,7 @@ <translation id="5414566801737831689">Lexo ikonat e sajteve të uebit që viziton</translation> <translation id="5417312524372586921">Temat e shfletuesit</translation> <translation id="5419405654816502573">Voice Match</translation> +<translation id="5420274697768050645">Kërko fjalëkalimin për të shkyçur pajisjen për më shumë siguri</translation> <translation id="5420438158931847627">Përcakton mprehtësinë e tekstit dhe imazheve</translation> <translation id="5422221874247253874">Pika e qasjes</translation> <translation id="5422781158178868512">Na vjen keq, por pajisja ruajtëse e jashtme nuk mund të njihej.</translation> @@ -3720,6 +3739,7 @@ <translation id="5548606607480005320">Kontrolli i sigurisë</translation> <translation id="5551573675707792127">Tastiera dhe hyrja e tekstit</translation> <translation id="5553089923092577885">Planifikime të politikës së certifikatës</translation> +<translation id="5554403733534868102">Pas kësaj, nuk ka pritje për përditësimet</translation> <translation id="5554489410841842733">Kjo ikonë do të jetë e dukshme kur shtesa të arrijë të veprojë në faqen aktuale.</translation> <translation id="5554720593229208774">Autoriteti i vërtetimit të mail-eve</translation> <translation id="5556459405103347317">Ringarko</translation> @@ -4133,6 +4153,7 @@ <translation id="6061882183774845124">Dërgo lidhjen te pajisjet e tua</translation> <translation id="6064217302520318294">Kyçja e ekranit</translation> <translation id="6065289257230303064">Atributet e direktorisë së subjektit të certifikatës</translation> +<translation id="6069464830445383022">"Llogaria jote e Google" është identifikimi i pajisjes sate Chromebook</translation> <translation id="6069671174561668781">Cakto imazhin e sfondit</translation> <translation id="6071181508177083058">konfirmo fjalëkalimin</translation> <translation id="6071576563962215370">Sistemi nuk arriti të vendoste kyçjen e atributeve për kohën e instalimit të pajisjes.</translation> @@ -4175,6 +4196,7 @@ <translation id="6104311680260824317">Pajisja nuk mund t'i bashkohet domenit. Serveri nuk i mbështet llojet e përcaktuara të enkpriptimit Kerberos. Kontrollo te "Më shumë opsione" për cilësimet e enkriptimit.</translation> <translation id="6104796831253957966">Radha në printer është plot</translation> <translation id="6105994589138235234">Sinkronizimi i shfletuesit Chrome</translation> +<translation id="6108689792487843350">Porta e kalimit është e paarritshme</translation> <translation id="6111972606040028426">Aktivizo "Asistentin e Google"</translation> <translation id="6112294629795967147">Prek për të ndryshuar madhësinë</translation> <translation id="6112727384379533756">Shto një biletë</translation> @@ -4235,6 +4257,7 @@ <translation id="6178664161104547336">Përzgjidh një certifikatë</translation> <translation id="6181431612547969857">Shkarkimi u bllokua</translation> <translation id="6185132558746749656">Vendndodhja e pajisjes</translation> +<translation id="6191293864534840972">Serverë DNS të keqformuar</translation> <translation id="6195446518998936840">Për të konfiguruar kontrollet prindërore, fëmija yt duhet të ketë një "Llogari të Google" të cilën do të ndihmosh ta menaxhosh. Mund të caktosh kufij për kohën para ekranit, të miratosh ose bllokosh faqe interneti etj. me aplikacionin Family Link.</translation> <translation id="6195693561221576702">Kjo pajisje nuk mund të konfigurohet në modalitetin e demonstrimit jashtë linje.</translation> <translation id="6196640612572343990">Blloko kukit e palëve të treta</translation> @@ -4448,6 +4471,7 @@ <translation id="6451591602925140504">{NUM_PAGES,plural, =0{<ph name="PAGE_TITLE" />}=1{<ph name="PAGE_TITLE" /> dhe 1 skedë tjetër}other{<ph name="PAGE_TITLE" /> dhe # skeda të tjera}}</translation> <translation id="6451689256222386810">Nëse e ke harruar frazën e kalimit apo dëshiron të ndryshosh këtë cilësim, <ph name="BEGIN_LINK" />rivendos sinkronizimin<ph name="END_LINK" />.</translation> <translation id="6452181791372256707">Refuzo</translation> +<translation id="6452251728599530347"><ph name="PERCENT" /> i përfunduar</translation> <translation id="6452961788130242735">Problem rrjeti ose zonë e keqe verifikimi</translation> <translation id="6455264371803474013">Në sajte të caktuara</translation> <translation id="6455894534188563617">&Dosje e re</translation> @@ -4504,6 +4528,7 @@ <ph name="EVENT_NAME" /></translation> <translation id="6520876759015997832">Rezultati i kërkimit <ph name="LIST_POSITION" /> nga <ph name="LIST_SIZE" />: <ph name="SEARCH_RESULT_TEXT" />. Shtyp Enter për të naviguar te seksioni.</translation> <translation id="652492607360843641">Je lidhur me një rrjet <ph name="NETWORK_TYPE" />.</translation> +<translation id="6527081081771465939">Protokoll i panjohur sigurie i Wi-Fi</translation> <translation id="6527303717912515753">Ndaj</translation> <translation id="6528513914570774834">Lejo që përdoruesit e tjerë të kësaj pajisjeje të përdorin këtë rrjet</translation> <translation id="652948702951888897">Historiku i Chrome</translation> @@ -4620,6 +4645,7 @@ <translation id="6680442031740878064">Në dispozicion: <ph name="AVAILABLE_SPACE" /></translation> <translation id="6680650203439190394">Shpejtësia</translation> <translation id="6681668084120808868">Nxirr një fotografi</translation> +<translation id="6684827949542560880">Po shkarkon përditësimin më të fundit</translation> <translation id="668599234725812620">Hap Google Play</translation> <translation id="6686490380836145850">Mbylli skedat në të djathtë</translation> <translation id="6686817083349815241">Ruaje fjalëkalimin</translation> @@ -4729,6 +4755,7 @@ <translation id="6812841287760418429">Mbaji ndryshimet</translation> <translation id="6817174620439930047">Pyet kur një faqe kërkon të përdorë mesazhe ekskluzive të sistemit për t'u qasur në pajisjet MIDI (rekomandohet)</translation> <translation id="6818198425579322765">Faqja "Gjuha në të cilën do të përkthehet"</translation> +<translation id="6818802132960437751">Mbrojtje e integruar kundër viruseve</translation> <translation id="682123305478866682">Transmeto desktopin</translation> <translation id="6823174134746916417">Trokitja për të klikuar në bllokun me prekje</translation> <translation id="6823506025919456619">Duhet të identifikohesh te Chrome për të parë pajisjet e tua</translation> @@ -5375,6 +5402,7 @@ <translation id="7631205654593498032">Kur lidh pajisjet e tua, ti bie dakord që pajisja <ph name="DEVICE_TYPE" /> mundet që:</translation> <translation id="7631887513477658702">&Hapi gjithmonë skedarët e këtij lloji</translation> <translation id="7632948528260659758">Aplikacionet e mëposhtme të kioskës kanë dështuar me përditësimin:</translation> +<translation id="7633724038415831385">Kjo është hera e vetme që do të presësh për përditësime. Në pajisjet Chromebook, përditësimet e softuerëve kryhen në sfond.</translation> <translation id="7634566076839829401">Ndodhi një gabim. Provo përsëri.</translation> <translation id="763632859238619983">Mos lejo asnjë sajt të instalojë përpunues të pagesave</translation> <translation id="7636919061354591437">Instaloje në këtë pajisje</translation> @@ -5652,6 +5680,7 @@ <translation id="7933314993013528982">{NUM_TABS,plural, =1{Aktivizo zërin e sajtit}other{Aktivizo zërin e sajteve}}</translation> <translation id="7933634003144813719">Menaxho dosjet e ndara</translation> <translation id="793531125873261495">Gabim në shkarkimin e pajisjes virtuale. Provo sërish.</translation> +<translation id="7936303884198020182">Nuk u gjetën serverë DNS</translation> <translation id="7938594894617528435">Aktualisht jashtë linje</translation> <translation id="7939062555109487992">Opsionet e përparuara</translation> <translation id="7939412583708276221">Mbaje gjithsesi</translation> @@ -5894,6 +5923,7 @@ <translation id="8226742006292257240">Poshtë është fjalëkalimi TPM i gjeneruar rastësisht që i është caktuar kompjuterit tënd.</translation> <translation id="8227119283605456246">Bashkëngjit skedarin</translation> <translation id="8230134520748321204">Të ruhet fjalëkalimi për <ph name="ORIGIN" />?</translation> +<translation id="8230672074305416752">Dështoi verifikimi "ping" për portën e parazgjedhur të kalimit</translation> <translation id="8234795456569844941">Ndihmoji inxhinierët tanë ta rregullojnë këtë problem. Na trego se çfarë ndodhi përpara se të merrje mesazhin e gabimit të profilit:</translation> <translation id="8236917170563564587">Ndaj këtë skedë më mirë</translation> <translation id="8237647586961940482">Rozë e errët dhe e kuqe</translation> @@ -5954,6 +5984,7 @@ <translation id="8288032458496410887">Çinstalo <ph name="APP" />...</translation> <translation id="8289128870594824098">Madhësia e diskut</translation> <translation id="8291967909914612644">Shteti i ofruesit të rrjetit bazë</translation> +<translation id="8293206222192510085">Shto një faqeshënues</translation> <translation id="8294431847097064396">Burimi</translation> <translation id="8297006494302853456">I dobët</translation> <translation id="8299319456683969623">Aktualisht je jashtë linje.</translation> @@ -6003,6 +6034,7 @@ <translation id="8363095875018065315">i qëndrueshëm</translation> <translation id="8363142353806532503">Mikrofoni është bllokuar</translation> <translation id="8363763184161554204"><ph name="PERMISSION" /> është lejuar</translation> +<translation id="8364946094152050673">Serverët DNS janë bosh</translation> <translation id="8366396658833131068">Lidhja jote e rrjetit është restauruar. Zgjidh një rrjet tjetër ose shtyp butonin "Vazhdo" poshtë për të nisur aplikacionin "kioskë".</translation> <translation id="8368027906805972958">Pajisje e panjohur ose e pambështetur (<ph name="DEVICE_ID" />)</translation> <translation id="8368859634510605990">&Hapi të gjithë faqeshënuesit</translation> @@ -6088,8 +6120,10 @@ <translation id="8472623782143987204">të mbështetur nga hardueri</translation> <translation id="8473863474539038330">Adresat dhe të tjera</translation> <translation id="8475313423285172237">Një program tjetër në kompjuterin tënd shtoi një shtesë që mund të ndryshojë mënyrën e funksionimit të Chrome.</translation> +<translation id="8475690821716466388">Rrjeti Wi-Fi është i siguruar me protokollin e dobët WEP PSK</translation> <translation id="8477241577829954800">E zëvendësuar</translation> <translation id="8477384620836102176">&Të përgjithshme</translation> +<translation id="8477551185774834963">Vonesa e DNS-së është pak më lart se pragu i lejueshëm</translation> <translation id="8480082892550707549">Edhe nëse i ke shkarkuar skedarë nga ky sajt uebi më parë, sajti mund të jetë përkohësisht i pasigurt (i sulmuar). Provo ta shkarkosh këtë skedar më vonë.</translation> <translation id="8480869669560681089">Pajisje e panjohur nga <ph name="VENDOR_NAME" /></translation> <translation id="8481187309597259238">Konfirmo lejen e USB-së</translation> @@ -6141,6 +6175,7 @@ <translation id="8546930481464505581">Personalizo shiritin me prekje</translation> <translation id="8547013269961688403">Aktivizo zmadhuesin e ekranit të plotë</translation> <translation id="85486688517848470">Mbaj të shtypur tastin "Kërko" për të ndërruar sjelljen e tasteve të rreshtit të sipërm</translation> +<translation id="8549316893834449916">Do ta përdorim "Llogarinë tënde të Google" për t'u identifikuar në pajisjen tënde Chromebook - të njëjtën llogari që përdor për Gmail, "Diskun", YouTube etj.</translation> <translation id="8551388862522347954">Licencat</translation> <translation id="8551588720239073785">Cilësimet e datës dhe orës</translation> <translation id="8553342806078037065">Menaxho kontaktet e tjera</translation> @@ -6279,6 +6314,7 @@ <translation id="8720200012906404956">Po kërkon për një rrjet celular. <ph name="BEGIN_LINK" />Mëso më shumë<ph name="END_LINK" /></translation> <translation id="8720816553731218127">Nisjes së atributeve të kohës së instalimit i ka përfunduar afati.</translation> <translation id="8722912030556880711">Dërgo të dhënat e përdorimit dhe të diagnostikimit. Aktualisht kjo pajisje po dërgon automatikisht te Google të dhënat e diagnostikimit dhe të përdorimit të pajisjes dhe të aplikacioneve. Këto do të ndihmojnë për qëndrueshmërinë e sistemit dhe të aplikacioneve dhe për përmirësime të tjera. Disa të dhëna të përmbledhura do të ndihmojnë po ashtu aplikacionet dhe partnerët e Google, si p.sh. zhvilluesit e Android. Nëse cilësimi i "Aktivitetit shtesë të uebit dhe të aplikacioneve" është i aktivizuar, këto të dhëna mund të ruhen në "Llogarinë tënde të Google". <ph name="BEGIN_LINK2" />Mëso më shumë<ph name="END_LINK2" /></translation> +<translation id="8723108084122415655">Rrjeti jo i parazgjedhur është mbi pragun e vonesës</translation> <translation id="8724405322205516354">Kur shikon këtë ikonë, përdor gjurmën e gishtit për identifikim ose për të miratuar blerjet.</translation> <translation id="8724409975248965964">Gjurma e gishtit u shtua</translation> <translation id="8724859055372736596">&Shfaq në dosje</translation> @@ -6456,6 +6492,7 @@ <translation id="8909833622202089127">Sajti po gjurmon vendndodhjen tënde</translation> <translation id="8910146161325739742">Ndaj ekranin tënd</translation> <translation id="8910222113987937043">Ndryshimet te faqeshënuesit, historiku, fjalëkalimet dhe cilësimet e tjera nuk do të sinkronizohen më te llogaria jote e Google. Sidoqoftë, të dhënat e tua ekzistuese do të qëndrojnë të ruajtura te llogaria jote e Google dhe mund të menaxhohen në <ph name="BEGIN_LINK" />Panelin analitik të Google.<ph name="END_LINK" /></translation> +<translation id="8910721771319628100">Rrjeti i parazgjedhur është mbi pragun e vonesës</translation> <translation id="8912362522468806198">Llogaria e Google</translation> <translation id="8912793549644936705">Shtrij</translation> <translation id="8912810933860534797">Aktivizo skanimin automatik</translation>
diff --git a/chrome/app/resources/generated_resources_sr-Latn.xtb b/chrome/app/resources/generated_resources_sr-Latn.xtb index ff63164..68d6ba4 100644 --- a/chrome/app/resources/generated_resources_sr-Latn.xtb +++ b/chrome/app/resources/generated_resources_sr-Latn.xtb
@@ -522,7 +522,6 @@ <translation id="1608668830839595724">Još radnji za izabrane stavke</translation> <translation id="161042844686301425">Plavozelena</translation> <translation id="1611432201750675208">Uređaj je zaključan</translation> -<translation id="1611584202130317952">Tok dodele je prekinut. Probajte ponovo ili kontaktirajte vlasnika ili administratora uređaja.</translation> <translation id="1614511179807650956">Možda ste iskoristili dozvoljenu količinu podataka za mobilne uređaje. Posetite portal za aktivaciju <ph name="NAME" /> da biste kupili još podataka</translation> <translation id="161460670679785907">Nismo uspeli da otkrijemo telefon</translation> <translation id="1616206807336925449">Ovaj dodatak ne zahteva nikakve specijalne dozvole.</translation> @@ -964,6 +963,7 @@ <translation id="2148219725039824548">Greška pri učitavanju deljene datoteke. Navedena deljena datoteka nije pronađena na mreži.</translation> <translation id="2148756636027685713">Formatiranje je završeno</translation> <translation id="2148892889047469596">Prebacite karticu</translation> +<translation id="2149973817440762519">Izmenite obeleživač</translation> <translation id="2150139952286079145">Pretražite odredišta</translation> <translation id="2150661552845026580">Želite li da dodate „<ph name="EXTENSION_NAME" />“?</translation> <translation id="2151576029659734873">Unet je nevažeći indeks kartice.</translation> @@ -5987,6 +5987,7 @@ <translation id="8288032458496410887">Deinstaliraj: <ph name="APP" />...</translation> <translation id="8289128870594824098">Veličina diska</translation> <translation id="8291967909914612644">Zemlja dobavljača za Home</translation> +<translation id="8293206222192510085">Dodavanje obeleživača</translation> <translation id="8294431847097064396">Izvor</translation> <translation id="8297006494302853456">Slab</translation> <translation id="8299319456683969623">Trenutno ste oflajn.</translation>
diff --git a/chrome/app/resources/generated_resources_sr.xtb b/chrome/app/resources/generated_resources_sr.xtb index b335e144..257eebde 100644 --- a/chrome/app/resources/generated_resources_sr.xtb +++ b/chrome/app/resources/generated_resources_sr.xtb
@@ -522,7 +522,6 @@ <translation id="1608668830839595724">Још радњи за изабране ставке</translation> <translation id="161042844686301425">Плавозелена</translation> <translation id="1611432201750675208">Уређај је закључан</translation> -<translation id="1611584202130317952">Ток доделе је прекинут. Пробајте поново или контактирајте власника или администратора уређаја.</translation> <translation id="1614511179807650956">Можда сте искористили дозвољену количину података за мобилне уређаје. Посетите портал за активацију <ph name="NAME" /> да бисте купили још података</translation> <translation id="161460670679785907">Нисмо успели да откријемо телефон</translation> <translation id="1616206807336925449">Овај додатак не захтева никакве специјалне дозволе.</translation> @@ -964,6 +963,7 @@ <translation id="2148219725039824548">Грешка при учитавању дељене датотеке. Наведена дељена датотека није пронађена на мрежи.</translation> <translation id="2148756636027685713">Форматирање је завршено</translation> <translation id="2148892889047469596">Пребаците картицу</translation> +<translation id="2149973817440762519">Измените обележивач</translation> <translation id="2150139952286079145">Претражите одредишта</translation> <translation id="2150661552845026580">Желите ли да додате „<ph name="EXTENSION_NAME" />“?</translation> <translation id="2151576029659734873">Унет је неважећи индекс картице.</translation> @@ -5987,6 +5987,7 @@ <translation id="8288032458496410887">Деинсталирај: <ph name="APP" />...</translation> <translation id="8289128870594824098">Величина диска</translation> <translation id="8291967909914612644">Земља добављача за Home</translation> +<translation id="8293206222192510085">Додавање обележивача</translation> <translation id="8294431847097064396">Извор</translation> <translation id="8297006494302853456">Слаб</translation> <translation id="8299319456683969623">Тренутно сте офлајн.</translation>
diff --git a/chrome/app/resources/generated_resources_sv.xtb b/chrome/app/resources/generated_resources_sv.xtb index b89ceaab..3634e101 100644 --- a/chrome/app/resources/generated_resources_sv.xtb +++ b/chrome/app/resources/generated_resources_sv.xtb
@@ -71,6 +71,7 @@ <translation id="1070705170564860382">Öppnas i en annan webbläsare om <ph name="COUNTDOWN_SECONDS" /> sekunder</translation> <translation id="1071917609930274619">Datachiffrering</translation> <translation id="1072700771426194907">En USB-enhet har upptäckts</translation> +<translation id="107278043869924952">Använd en pinkod utöver lösenordet</translation> <translation id="1076176485976385390">Navigera på sidor med en textmarkör</translation> <translation id="1076698951459398590">Aktivera temat</translation> <translation id="1076818208934827215">Microsoft Internet Explorer</translation> @@ -524,7 +525,6 @@ <translation id="1608668830839595724">Fler åtgärder för valda objekt</translation> <translation id="161042844686301425">Cyanblå</translation> <translation id="1611432201750675208">Enheten är låst</translation> -<translation id="1611584202130317952">Administrationsflödet avbröts. Försök igen eller kontakta enhetens ägare eller administratör.</translation> <translation id="1614511179807650956">Du kan ha använt din tillåtna mängd mobildata. Besök aktiveringsportalen <ph name="NAME" /> om du vill köpa mer data</translation> <translation id="161460670679785907">Mobilen hittades inte</translation> <translation id="1616206807336925449">Det här tillägget kräver inga särskilda behörigheter.</translation> @@ -533,6 +533,7 @@ <translation id="1618268899808219593">Hjälpc&enter</translation> <translation id="1620307519959413822">Fel lösenord. Försök igen eller klicka på Glömt lösenordet? om du vill återställa det.</translation> <translation id="1620510694547887537">Kamera</translation> +<translation id="1621831347985899379">Data på <ph name="DEVICE_TYPE" /> raderas</translation> <translation id="1622054403950683339">Glöm det här Wi-Fi-nätverket</translation> <translation id="1623132449929929218">Bilderna är inte tillgängliga för närvarande. Samlingarna med bakgrunder visas när du har återfått internetanslutningen.</translation> <translation id="1623723619460186680">Reducering av blått ljust</translation> @@ -760,6 +761,7 @@ <translation id="1877377290348678128">Etikett (valfritt)</translation> <translation id="1877520246462554164">Det gick inte att hämta autentiseringstoken. Försök igen genom att logga ut och sedan logga in igen.</translation> <translation id="1877860345998737529">Åtgärdstilldelning för brytare</translation> +<translation id="1878155070920054810">Det verkar som om batteriet i Chromebook kommer att ta slut innan uppdateringen är klar. Kontrollera att det laddas som det ska så att du slipper avbrott.</translation> <translation id="1879000426787380528">Logga in som</translation> <translation id="1880905663253319515">Vill du ta bort certifikatet <ph name="CERTIFICATE_NAME" />?</translation> <translation id="1881445033931614352">Tangentbordslayout</translation> @@ -964,6 +966,7 @@ <translation id="2148219725039824548">Det gick inte att montera den delade resursen. Den angivna resursen hittades inte i nätverket.</translation> <translation id="2148756636027685713">Formateringen är klar</translation> <translation id="2148892889047469596">Casta fliken</translation> +<translation id="2149973817440762519">Redigera bokmärke</translation> <translation id="2150139952286079145">Sök platser</translation> <translation id="2150661552845026580">Vill du lägga till <ph name="EXTENSION_NAME" />?</translation> <translation id="2151576029659734873">Du har angett ett ogiltigt flikindex.</translation> @@ -1073,6 +1076,7 @@ <translation id="2270627217422354837">Utväxla data med enheter i domänerna <ph name="DOMAINS" /></translation> <translation id="2272570998639520080">Martiniglas</translation> <translation id="2273119997271134996">Problem med dockningsstation och videoport</translation> +<translation id="2274840746523584236">Ladda Chromebook</translation> <translation id="2276503375879033601">Lägg till fler appar</translation> <translation id="2277255602909579701">Alla cookies och all webbplatsdata</translation> <translation id="2277769717710009150">{COUNT,plural, =1{1 objekt har kopierats}other{# objekt har kopierats}}</translation> @@ -1915,6 +1919,7 @@ <translation id="3308116878371095290">Den här sidan har förhindrats att ange cookies.</translation> <translation id="3308134619352333507">Dölj knapp</translation> <translation id="3308852433423051161">Google Assistent läses in …</translation> +<translation id="3310640316857623290">DNS-latensen är avsevärt högre än det godtagbara tröskelvärdet</translation> <translation id="3311445899360743395">Data kopplad till den här appen kanske tas bort från enheten.</translation> <translation id="3312424061798279731">Aktiverade språk</translation> <translation id="3313622045786997898">Certifikatets signaturvärde</translation> @@ -1927,6 +1932,7 @@ <translation id="3323295311852517824">{NUM_FILES,plural, =0{Det finns känsligt eller skadligt innehåll i denna data. Ta bort det och försök igen.}=1{Filen har känsligt eller skadligt innehåll. Ta bort det och försök igen.}other{Filerna har känsligt eller skadligt innehåll. Ta bort det och försök igen.}}</translation> <translation id="3323521181261657960">Bonus! Du har fått mer skärmtid</translation> <translation id="3325910708063135066">Kamera och mikrofon har inaktiverats i systeminställningarna för Mac.</translation> +<translation id="3327050066667856415">En Chromebook är gjord för att vara säker. Enheten skyddas från skadlig programvara automatiskt – inga specialprogram behövs.</translation> <translation id="3328489342742826322">Om du återställer från en säkerhetskopia raderas befintliga Linux-program och all data i mappen för Linux-filer.</translation> <translation id="3331321258768829690">(<ph name="UTCOFFSET" />) <ph name="LONGTZNAME" /> (<ph name="EXEMPLARCITY" />)</translation> <translation id="3331974543021145906">Appinformation</translation> @@ -2116,6 +2122,7 @@ <translation id="3556433843310711081">En ansvarig kan ta bort blockeringen</translation> <translation id="3557101512409028104">Begränsa vilka webbplatser som är tillgängliga och ange skärmtid med Family Link</translation> <translation id="3559262020195162408">Det gick inte att installera policyn på enheten.</translation> +<translation id="3559533181353831840">Cirka <ph name="TIME_LEFT" /> kvar</translation> <translation id="3560034655160545939">&Stavningskontroll</translation> <translation id="3562423906127931518">Detta kan ta några minuter. Linux-containern konfigureras.</translation> <translation id="3563432852173030730">Det gick inte att ladda ned kioskappen.</translation> @@ -2158,6 +2165,7 @@ <translation id="3602290021589620013">Förhandsgranskning</translation> <translation id="3603622770190368340">Skaffa nätverkscertifikat</translation> <translation id="3604713164406837697">Ändra bakgrund</translation> +<translation id="360565022852130722">Wi-Fi-nätverket använder det svaga säkerhetsprotokollet WEP 802.1x</translation> <translation id="3605780360466892872">Proper</translation> <translation id="3608576286259426129">Förhandsgranskning av användarens bild</translation> <translation id="3610369246614755442">Dockningsstationens fläkt behöver repareras</translation> @@ -2194,6 +2202,7 @@ <translation id="3639220004740062347">Avsluta läsarläget</translation> <translation id="3640214691812501263">Vill du lägga till <ph name="EXTENSION_NAME" /> för <ph name="USER_NAME" />?</translation> <translation id="3640613767643722554">Lär assistenten att känna igen din röst</translation> +<translation id="3643014427358482789"><ph name="DOMAIN" /> har inaktiverat felsökning med ADB. Din <ph name="DEVICE_TYPE" /> återställs. Säkerhetskopiera dina filer innan du startar om enheten.</translation> <translation id="3645372836428131288">Flytta fingret något så att en annan del av fingeravtrycket registreras.</translation> <translation id="3647998456578545569">{COUNT,plural, =1{<ph name="ATTACHMENTS" /> har tagits emot från <ph name="DEVICE_NAME" />}other{<ph name="ATTACHMENTS" /> har tagits emot från <ph name="DEVICE_NAME" />}}</translation> <translation id="3648348069317717750"><ph name="USB_DEVICE_NAME" /> hittades</translation> @@ -2282,6 +2291,7 @@ <translation id="3732857534841813090">Relaterad information via Google Assistent</translation> <translation id="3733127536501031542">SSL-server med uppgradering</translation> <translation id="3735740477244556633">Sortera efter</translation> +<translation id="3738632186060045350">Data på <ph name="DEVICE_TYPE" /> raderas inom 24 timmar</translation> <translation id="3738924763801731196"><ph name="OID" />:</translation> <translation id="3739254215541673094">Vill du öppna <ph name="APPLICATION" />?</translation> <translation id="3742055079367172538">Skärmdumpen har tagits</translation> @@ -2469,6 +2479,7 @@ <translation id="3937734102568271121">Översätt alltid <ph name="LANGUAGE" /></translation> <translation id="3938128855950761626">Enheter från leverantör <ph name="VENDOR_ID" /></translation> <translation id="3940233957883229251">Aktivera automatisk upprepning</translation> +<translation id="3941014780699102620">DNS-matchningen misslyckades för värden</translation> <translation id="3941565636838060942">Om du vill dölja programmet måste du avinstallera det med <ph name="CONTROL_PANEL_APPLET_NAME" /> i kontrollpanelen. @@ -2631,6 +2642,7 @@ <translation id="413121957363593859">Komponenter</translation> <translation id="4131410914670010031">Svartvitt</translation> <translation id="413193092008917129">Rutiner för nätverksdiagnostik</translation> +<translation id="4132183752438206707">Hitta appar i Google Play Butik</translation> <translation id="4133076602192971179">Öppna appen och ändra lösenordet</translation> <translation id="4136203100490971508">Nattljuset släcks automatiskt vid soluppgången</translation> <translation id="41365691917097717">Om du fortsätter aktiveras felsökning med ADB för Android-appar som du skapar och testar. Observera att den här åtgärden tillåter att Android-appar som inte har verifierats av Google installeras. Du måste återställa enheten till standardinställningarna för att inaktivera detta.</translation> @@ -2880,6 +2892,8 @@ <translation id="4479877282574735775">Den virtuella maskinen konfigureras. Det kan ta några minuter.</translation> <translation id="4480590691557335796">Chrome kan hjälpa dig att upptäcka skadlig programvara på datorn och ta bort den</translation> <translation id="4481530544597605423">Frånkopplade enheter</translation> +<translation id="4483049906298469269">Det gick inte att pinga gateway för nätverket som inte är standard</translation> +<translation id="4487489714832036847">På en Chromebook används appar i stället för vanliga program. Skaffa produktivitetsappar, underhållningsappar och mycket annat.</translation> <translation id="4488502501195719518">Vill du rensa all data?</translation> <translation id="4493468155686877504">Rekommenderas (<ph name="INSTALL_SIZE" />)</translation> <translation id="4495419450179050807">Visa inte den här sidan</translation> @@ -2930,6 +2944,7 @@ <translation id="4546692474302123343">Röstinmatning för Google Assistent</translation> <translation id="4547659257713117923">Inga flikar från andra enheter</translation> <translation id="4547672827276975204">Ange automatiskt</translation> +<translation id="4548483925627140043">Ingen signal hittades</translation> <translation id="4549791035683739768">Det finns inga sparade fingeravtryck på säkerhetsnyckeln.</translation> <translation id="4551763574344810652">Tryck på <ph name="MODIFIER_KEY_DESCRIPTION" /> för att ångra</translation> <translation id="4552089082226364758">Flash</translation> @@ -2969,6 +2984,7 @@ <translation id="4582563038311694664">Återställ alla inställningar</translation> <translation id="4585793705637313973">Redigera sida</translation> <translation id="4586275095964870617">Det gick inte att öppna <ph name="URL" /> i den andra webbläsaren. Kontakta systemadministratören.</translation> +<translation id="458794348635939462">DNS-matchningen av alla värdar misslyckades</translation> <translation id="4589713469967853491">Loggarna har sparats i katalogen Nedladdningar.</translation> <translation id="4590324241397107707">Databaslagring</translation> <translation id="4592891116925567110">App för att rita med e-penna</translation> @@ -3352,6 +3368,7 @@ <translation id="5089810972385038852">Stat</translation> <translation id="5094721898978802975">Kommunicera med samverkande inbyggda appar</translation> <translation id="5097002363526479830">Det gick inte att ansluta till nätverket <ph name="NAME" />: <ph name="DETAILS" /></translation> +<translation id="5097649414558628673">Verktyg: <ph name="PRINT_NAME" /></translation> <translation id="5097874180538493929">Klicka automatiskt när markören stannar</translation> <translation id="5101042277149003567">Öppna alla bokmärken</translation> <translation id="5101839224773798795">Klicka automatiskt när pekaren stannar</translation> @@ -3570,6 +3587,7 @@ <translation id="5370819323174483825">&Läs in igen</translation> <translation id="5372529912055771682">Det angivna registreringsläget stöds inte av den här versionen av operativsystemet. Kontrollera att du har den senaste versionen och försök igen.</translation> <translation id="5372579129492968947">Lossa tillägg</translation> +<translation id="5372659122375744710">Wi-Fi-nätverket är inte säkert</translation> <translation id="5376169624176189338">Klicka för att återvända, håll ned för att se historik</translation> <translation id="5376931455988532197">Filen är för stor</translation> <translation id="5377721922656071359">{COUNT,plural, =1{<ph name="ATTACHMENTS" /> har skickats till <ph name="DEVICE_NAME" />}other{<ph name="ATTACHMENTS" /> har skickats till <ph name="DEVICE_NAME" />}}</translation> @@ -3599,6 +3617,7 @@ <translation id="5414566801737831689">Läsa in ikonerna för de webbplatser du besöker</translation> <translation id="5417312524372586921">Webbläsarteman</translation> <translation id="5419405654816502573">Voice Match</translation> +<translation id="5420274697768050645">Lås upp enheten med lösenord för ökad säkerhet</translation> <translation id="5420438158931847627">Ställer in hur skarp bilden och texten ska vara</translation> <translation id="5422221874247253874">Åtkomstpunkt</translation> <translation id="5422781158178868512">Den externa lagringsenheten kunde tyvärr inte identifieras.</translation> @@ -3723,6 +3742,7 @@ <translation id="5548606607480005320">Säkerhetskontroll</translation> <translation id="5551573675707792127">Tangentbord och textinmatning</translation> <translation id="5553089923092577885">Mappningar för certifikatpolicy </translation> +<translation id="5554403733534868102">Efter det här behöver du inte vänta på fler uppdateringar</translation> <translation id="5554489410841842733">Ikonen visas när tillägget kan agera på den aktuella sidan.</translation> <translation id="5554720593229208774">Utfärdare av e-postcertifikat</translation> <translation id="5556459405103347317">Hämta igen</translation> @@ -4136,6 +4156,7 @@ <translation id="6061882183774845124">Skicka länken till dina enheter</translation> <translation id="6064217302520318294">Skärmlås</translation> <translation id="6065289257230303064">Attribut för certifikatämneskatalog</translation> +<translation id="6069464830445383022">Du loggar in på Chromebook med ditt Google-konto.</translation> <translation id="6069671174561668781">Ange bakgrund</translation> <translation id="6071181508177083058">bekräfta lösenord</translation> <translation id="6071576563962215370">Det gick inte att fastställa enhetens attributlås för installationstid.</translation> @@ -4178,6 +4199,7 @@ <translation id="6104311680260824317">Det gick inte att ansluta enheten till domänen. Servern har inte stöd för de angivna typerna av Kerberos-kryptering. Inställningarna för kryptering finns under Fler alternativ.</translation> <translation id="6104796831253957966">Utskriftskön är full</translation> <translation id="6105994589138235234">Synkronisera webbläsaren Chrome</translation> +<translation id="6108689792487843350">Gateway kan inte nås</translation> <translation id="6111972606040028426">Aktivera Google Assistent</translation> <translation id="6112294629795967147">Ändra storlek genom att trycka</translation> <translation id="6112727384379533756">Lägg till en biljett</translation> @@ -4238,6 +4260,7 @@ <translation id="6178664161104547336">Välj ett certifikat</translation> <translation id="6181431612547969857">Nedladdningen blockerades</translation> <translation id="6185132558746749656">Enhetsplats</translation> +<translation id="6191293864534840972">Namnserveradresserna har fel format</translation> <translation id="6195446518998936840">Om du vill ställa in föräldrakontroller måste ditt barn ha ett Google-konto som du är med och hanterar. Du kan ställa in skärmtid, godkänna eller blockera webbplatser och mycket annat med Family Link-appen.</translation> <translation id="6195693561221576702">Den här enheten kan inte konfigureras i offlinedemoläge.</translation> <translation id="6196640612572343990">Blockera cookies från tredje part</translation> @@ -4451,6 +4474,7 @@ <translation id="6451591602925140504">{NUM_PAGES,plural, =0{<ph name="PAGE_TITLE" />}=1{<ph name="PAGE_TITLE" /> och 1 flik till}other{<ph name="PAGE_TITLE" /> och # flikar till}}</translation> <translation id="6451689256222386810">Om du har glömt lösenfrasen eller vill ändra inställningen <ph name="BEGIN_LINK" />återställer du synkroniseringen<ph name="END_LINK" />.</translation> <translation id="6452181791372256707">Avvisa</translation> +<translation id="6452251728599530347"><ph name="PERCENT" /> slutfört</translation> <translation id="6452961788130242735">Nätverksproblem eller felaktig sfär</translation> <translation id="6455264371803474013">På valda webbplatser</translation> <translation id="6455894534188563617">&Ny mapp</translation> @@ -4507,6 +4531,7 @@ <ph name="EVENT_NAME" /></translation> <translation id="6520876759015997832">Sökresultat <ph name="LIST_POSITION" /> av <ph name="LIST_SIZE" />: <ph name="SEARCH_RESULT_TEXT" />. Tryck på Retur om du vill navigera till avsnittet.</translation> <translation id="652492607360843641">Du är ansluten till ett <ph name="NETWORK_TYPE" />-nätverk.</translation> +<translation id="6527081081771465939">Okänt säkerhetsprotokoll för Wi-Fi</translation> <translation id="6527303717912515753">Dela</translation> <translation id="6528513914570774834">Tillåt att andra användare på den här enheten kan använda det här nätverket</translation> <translation id="652948702951888897">Chrome-historik</translation> @@ -4623,6 +4648,7 @@ <translation id="6680442031740878064">Tillgängligt: <ph name="AVAILABLE_SPACE" /></translation> <translation id="6680650203439190394">Hastighet</translation> <translation id="6681668084120808868">Ta foto</translation> +<translation id="6684827949542560880">Den senaste uppdateringen laddas ned</translation> <translation id="668599234725812620">Öppna Google Play</translation> <translation id="6686490380836145850">Stäng flikar till höger</translation> <translation id="6686817083349815241">Spara lösenordet</translation> @@ -4732,6 +4758,7 @@ <translation id="6812841287760418429">Behåll ändringarna</translation> <translation id="6817174620439930047">Fråga när en webbplats vill använda systemexklusiva meddelanden för att komma åt MIDI-enheter (rekommenderas)</translation> <translation id="6818198425579322765">Språk på sidan som ska översättas</translation> +<translation id="6818802132960437751">Inbyggt virusskydd</translation> <translation id="682123305478866682">Casta skrivbordet</translation> <translation id="6823174134746916417">Lätt klick på styrplattan</translation> <translation id="6823506025919456619">Du måste logga in i Chrome för att kunna visa dina enheter</translation> @@ -5378,6 +5405,7 @@ <translation id="7631205654593498032">När du ansluter enheter godkänner du att <ph name="DEVICE_TYPE" /> kan</translation> <translation id="7631887513477658702">Öppna &alltid filer av denna typ</translation> <translation id="7632948528260659758">Det gick inte att uppdatera följande kioskappar:</translation> +<translation id="7633724038415831385">Det här är enda gången du behöver vänta på en uppdatering. På en Chromebook uppdateras programvaran i bakgrunden.</translation> <translation id="7634566076839829401">Ett fel uppstod. Försök igen.</translation> <translation id="763632859238619983">Tillåt inte att betalningshanterare installeras av någon webbplats</translation> <translation id="7636919061354591437">Installera på den här enheten</translation> @@ -5656,6 +5684,7 @@ <translation id="7933314993013528982">{NUM_TABS,plural, =1{Sätt på webbplatsens ljud}other{Sätt på webbplatsernas ljud}}</translation> <translation id="7933634003144813719">Hantera delade mappar</translation> <translation id="793531125873261495">Det gick inte att ladda ned den virtuella maskinen. Försök igen.</translation> +<translation id="7936303884198020182">Inga namnservrar hittades</translation> <translation id="7938594894617528435">Offline just nu</translation> <translation id="7939062555109487992">Avancerade alternativ</translation> <translation id="7939412583708276221">Behåll ändå</translation> @@ -5899,6 +5928,7 @@ <translation id="8226742006292257240">Nedan visas det slumpmässigt genererade lösenordet för TPM som har tilldelats din dator:</translation> <translation id="8227119283605456246">Bifoga fil</translation> <translation id="8230134520748321204">Vill du spara lösenordet för <ph name="ORIGIN" />?</translation> +<translation id="8230672074305416752">Det gick inte att pinga standardnätverkets gateway</translation> <translation id="8234795456569844941">Hjälp våra programutvecklare att lösa problemet genom att berätta vad som hände precis innan profilmeddelandet visades:</translation> <translation id="8236917170563564587">Dela den här fliken i stället</translation> <translation id="8237647586961940482">Mörkrosa och röd</translation> @@ -5959,6 +5989,7 @@ <translation id="8288032458496410887">Avinstallera <ph name="APP" /> …</translation> <translation id="8289128870594824098">Diskstorlek</translation> <translation id="8291967909914612644">Hemleverantörens land</translation> +<translation id="8293206222192510085">Lägg till bokmärke</translation> <translation id="8294431847097064396">Källa</translation> <translation id="8297006494302853456">Svag</translation> <translation id="8299319456683969623">Du är offline för närvarande.</translation> @@ -6008,6 +6039,7 @@ <translation id="8363095875018065315">stabil</translation> <translation id="8363142353806532503">Mikrofon är blockerad</translation> <translation id="8363763184161554204"><ph name="PERMISSION" /> har tillåtits</translation> +<translation id="8364946094152050673">Inga namnservrar har angetts</translation> <translation id="8366396658833131068">Nätverksanslutningen har återställts. Välj ett annat nätverk eller tryck på knappen Fortsätt om du vill starta kioskappen.</translation> <translation id="8368027906805972958">Enheten är okänd eller stöds inte (<ph name="DEVICE_ID" />)</translation> <translation id="8368859634510605990">&Öppna alla bokmärken</translation> @@ -6093,8 +6125,10 @@ <translation id="8472623782143987204">maskinvarustödd</translation> <translation id="8473863474539038330">Adresser och annat</translation> <translation id="8475313423285172237">Ett annat program i datorn har lagt till ett tillägg som kan ändra hur Chrome fungerar.</translation> +<translation id="8475690821716466388">Wi-Fi-nätverket använder det svaga säkerhetsprotokollet WEP PSK</translation> <translation id="8477241577829954800">Ersatt</translation> <translation id="8477384620836102176">&Allmänt</translation> +<translation id="8477551185774834963">DNS-latensen är något högre än det godtagbara tröskelvärdet</translation> <translation id="8480082892550707549">Även om du har laddat ned filer från den här webbplatsen tidigare kan webbplatsen vara osäker (hackad) just nu. Försök ladda ned filen senare.</translation> <translation id="8480869669560681089">Okänd enhet från <ph name="VENDOR_NAME" /></translation> <translation id="8481187309597259238">Bekräfta USB-behörighet</translation> @@ -6146,6 +6180,7 @@ <translation id="8546930481464505581">Anpassa pekfältet</translation> <translation id="8547013269961688403">Aktivera helskärmsförstorare</translation> <translation id="85486688517848470">Håll ned söktangenten om du vill ändra funktionen för tangenterna på översta raden</translation> +<translation id="8549316893834449916">Du loggar in på Chromebook med ditt Google-konto – samma konto som du använder för Gmail, Drive, YouTube med mera.</translation> <translation id="8551388862522347954">Licenser</translation> <translation id="8551588720239073785">Inställningar för datum och tid</translation> <translation id="8553342806078037065">Hantera andra personer</translation> @@ -6284,6 +6319,7 @@ <translation id="8720200012906404956">Söker efter ett mobilnätverk. <ph name="BEGIN_LINK" />Läs mer<ph name="END_LINK" /></translation> <translation id="8720816553731218127">Tidsgränsen överskreds för initieringen av attribut för installationstid.</translation> <translation id="8722912030556880711">Skicka diagnostik- och användningsdata. Den här enheten skickar för närvarande diagnostikdata, enhetsdata och data om appanvändning till Google automatiskt. Denna data används till att förbättra systemets och apparnas stabilitet med mera. Viss samlad data används även till att förbättra appar från Google och partner, till exempel Android-utvecklare. Om ytterligare webb- och appaktivitet har aktiverats kan denna data sparas i Google-kontot. <ph name="BEGIN_LINK2" />Läs mer<ph name="END_LINK2" /></translation> +<translation id="8723108084122415655">Tröskelvärdet för latens överskreds för nätverket som inte är standard</translation> <translation id="8724405322205516354">När du ser den här ikonen kan du identifiera dig eller godkänna köp med hjälp av ditt fingeravtryck.</translation> <translation id="8724409975248965964">Fingeravtrycket är tillagt</translation> <translation id="8724859055372736596">Visa i &mapp</translation> @@ -6461,6 +6497,7 @@ <translation id="8909833622202089127">Webbplatsen spårar din plats</translation> <translation id="8910146161325739742">Dela skärmen</translation> <translation id="8910222113987937043">När bokmärken, historik, lösenord och andra inställningar ändras kommer dessa ändringar inte längre att synkroniseras med Google-kontot. Uppgifter som redan har sparats i Google-kontot finns däremot kvar och kan hanteras via <ph name="BEGIN_LINK" />Google Översikt<ph name="END_LINK" />.</translation> +<translation id="8910721771319628100">Tröskelvärdet för latens överskreds för standardnätverket</translation> <translation id="8912362522468806198">Google-konto</translation> <translation id="8912793549644936705">Förläng</translation> <translation id="8912810933860534797">Aktivera automatisk genomsökning</translation>
diff --git a/chrome/app/resources/generated_resources_sw.xtb b/chrome/app/resources/generated_resources_sw.xtb index 5c3974c..07ae664 100644 --- a/chrome/app/resources/generated_resources_sw.xtb +++ b/chrome/app/resources/generated_resources_sw.xtb
@@ -522,7 +522,6 @@ <translation id="1608668830839595724">Vitendo zaidi kwenye vipengee vilivyochaguliwa</translation> <translation id="161042844686301425">Samawati-Kijani</translation> <translation id="1611432201750675208">Kifaa chako kimefungwa</translation> -<translation id="1611584202130317952">Utaratibu wa utoaji umekatizwa. Tafadhali jaribu tena au uwasiliane na mmiliki au msimamizi wa kifaa chako.</translation> <translation id="1614511179807650956">Huenda umetumia mgawo wako wote wa data ya mtandao wa simu. Tembelea tovuti ya urejeshaji ya <ph name="NAME" /> ili ununue data zaidi</translation> <translation id="161460670679785907">Imeshindwa kutambua simu yako</translation> <translation id="1616206807336925449">Kiendelezi hiki hakihitaji ruhusa maalum.</translation> @@ -964,6 +963,7 @@ <translation id="2148219725039824548">Hitilafu imetokea wakati wa kupachika faili ya kushiriki. Imeshindwa kupata faili iliyobainishwa ya kushiriki katika mtandao.</translation> <translation id="2148756636027685713">Uumbizaji umekamilika</translation> <translation id="2148892889047469596">Tuma kichupo</translation> +<translation id="2149973817440762519">Badilisha Alamisho</translation> <translation id="2150139952286079145">Mahali pa kutafuta</translation> <translation id="2150661552845026580">Ungependa kuongeza "<ph name="EXTENSION_NAME" />"?</translation> <translation id="2151576029659734873">Uorodheshaji batili wa kichupo umeingizwa.</translation> @@ -5986,6 +5986,7 @@ <translation id="8288032458496410887">Ondoa <ph name="APP" />...</translation> <translation id="8289128870594824098">Ukubwa wa diski</translation> <translation id="8291967909914612644">Nchi ya mtoa huduma</translation> +<translation id="8293206222192510085">Ongeza Alamisho</translation> <translation id="8294431847097064396">Chanzo</translation> <translation id="8297006494302853456">Dhaifu</translation> <translation id="8299319456683969623">Uko nje ya mtandao kwa sasa.</translation>
diff --git a/chrome/app/resources/generated_resources_ta.xtb b/chrome/app/resources/generated_resources_ta.xtb index 95f44a22..6fbbd608 100644 --- a/chrome/app/resources/generated_resources_ta.xtb +++ b/chrome/app/resources/generated_resources_ta.xtb
@@ -329,6 +329,7 @@ <translation id="1383876407941801731">Search</translation> <translation id="1386387014181100145">நலமா.</translation> <translation id="1386791642444521222">SIMமை இயக்குதல்</translation> +<translation id="1387519831959169718">நீங்கள் உலாவுவதைத் தனிப்பட்டதாக வைத்திருக்க <ph name="NEW_USER" />க்கு ஒரு புதிய சுயவிவரத்தை உருவாக்கலாம்</translation> <translation id="138784436342154190">இயல்புத் துவக்கப் பக்கத்தை மீட்டமைக்கவா?</translation> <translation id="1388728792929436380">புதுப்பிப்புகள் முடிந்தவுடன் <ph name="DEVICE_TYPE" /> சாதனம் மீண்டும் தொடங்கும்.</translation> <translation id="1390548061267426325">வழக்கமான தாவலாகத் திற</translation> @@ -343,6 +344,7 @@ <translation id="139911022479327130">உங்கள் மொபைலை அன்லாக் செய்து நீங்கள் தான் என்பதை உறுதிப்படுத்தவும்</translation> <translation id="1399511500114202393">பயனர் சான்றிதழ் இல்லை</translation> <translation id="1401308693935339022">இருப்பிடத்தைப் பயன்படுத்துதல். இந்தச் சாதனத்தின் இருப்பிடத்தைப் பயன்படுத்த இருப்பிட அனுமதியுடன் ஆப்ஸையும் சேவைகளையும் அனுமதிக்கவும். இருப்பிடத் தரவை அவ்வப்போது சேகரித்து இருப்பிடத்தின் துல்லியத்தன்மை மற்றும் இருப்பிடம் சார்ந்த சேவைகளை மேம்படுத்த அடையாளமற்ற வகையில் Google இந்தத் தரவைப் பயன்படுத்தக்கூடும்.</translation> +<translation id="1403222014593521787">ப்ராக்ஸியுடன் இணைக்க முடியவில்லை</translation> <translation id="140520891692800925"><ph name="PROFILE_DISPLAY_NAME" /> (மேற்பார்வையிடப்படும் பயனர்)</translation> <translation id="1405779994569073824">சிதைந்துவிட்டது.</translation> <translation id="1406500794671479665">சரிபார்க்கிறது...</translation> @@ -479,6 +481,7 @@ <translation id="1555130319947370107">நீலம்</translation> <translation id="1556537182262721003">சுயவிவரத்தில் நீட்டிப்புக் கோப்பகத்தை நகர்த்த முடியவில்லை.</translation> <translation id="155865706765934889">டச்பேட்</translation> +<translation id="1563702743503072935">உங்கள் Google கணக்கில் சேமிக்கப்பட்டுள்ள கடவுச்சொற்களை, உள்நுழைந்திருக்கும்போது இந்தச் சாதனத்திலும் பயன்படுத்தலாம்</translation> <translation id="1566049601598938765">இணையதளம்</translation> <translation id="15662109988763471">தேர்ந்தெடுத்த பிரிண்டர் இல்லை அல்லது சரியாக நிறுவப்படவில்லை. சரிபார்க்கவும் அல்லது வேறொன்றைத் தேர்ந்தெடுக்கவும்.</translation> <translation id="1567387640189251553">நீங்கள் கடைசியாகக் கடவுச்சொல்லை உள்ளிட்ட பிறகு வேறொரு விசைப்பலகை இணைக்கப்பட்டுள்ளது. அது உங்கள் விசை அழுத்தங்களைத் திருட முயற்சித்துக் கொண்டிருக்கக்கூடும்.</translation> @@ -521,7 +524,6 @@ <translation id="1608668830839595724">தேர்ந்தெடுக்கப்பட்ட புக்மார்க்குகளில் செய்யக்கூடிய கூடுதல் செயல்கள்</translation> <translation id="161042844686301425">சியான்</translation> <translation id="1611432201750675208">உங்கள் சாதனம் பூட்டப்பட்டது</translation> -<translation id="1611584202130317952">ஒதுக்கீடு செய்வதற்கான செயல்முறையில் குறுக்கீடு ஏற்பட்டது. மீண்டும் முயலவும் அல்லது உங்கள் சாதன உரிமையாளர்/நிர்வாகியைத் தொடர்புகொள்ளவும்.</translation> <translation id="1614511179807650956">உங்களுக்கு அனுமதிக்கப்பட்ட மொபைல் டேட்டா முடிந்திருக்கலாம். கூடுதல் டேட்டாவை வாங்க, <ph name="NAME" /> செயல்பாட்டுப் போர்ட்டலுக்குச் செல்லவும்</translation> <translation id="161460670679785907">உங்கள் மொபைலைக் கண்டறிய முடியவில்லை</translation> <translation id="1616206807336925449">இந்த நீட்டிப்பிற்குச் சிறப்பு அனுமதிகள் தேவையில்லை.</translation> @@ -906,6 +908,7 @@ <translation id="2080070583977670716">மேலும் அமைப்புகள்</translation> <translation id="2081816110395725788">பேட்டரியில் இயங்கும்போது செயலற்ற நிலை</translation> <translation id="2082187087049518845">குழுத் தாவல்</translation> +<translation id="2082510809738716738">தீமின் வண்ணத்தைத் தேர்வுசெய்யுங்கள்</translation> <translation id="2087822576218954668">அச்சிடு: <ph name="PRINT_NAME" /></translation> <translation id="2088690981887365033">VPN நெட்வொர்க்</translation> <translation id="208928984520943006">கீழிருந்து மேல் நோக்கி ஸ்வைப் செய்வதன் மூலம் எந்த நேரத்திலும் முகப்புத் திரைக்குச் செல்லலாம்.</translation> @@ -960,6 +963,7 @@ <translation id="2148219725039824548">பகிர்வை ஏற்றுவதில் பிழை. குறிப்பிட்ட பகிர்வானது நெட்வொர்க்கில் இல்லை.</translation> <translation id="2148756636027685713">வடிவமைத்தல் முடிந்தது</translation> <translation id="2148892889047469596">தாவலை அலைபரப்பு</translation> +<translation id="2149973817440762519">புக்மார்க்கை மாற்றுக</translation> <translation id="2150139952286079145">இலக்குகளைத் தேடு</translation> <translation id="2150661552845026580">"<ph name="EXTENSION_NAME" />" சேர்க்க வேண்டுமா?</translation> <translation id="2151576029659734873">செல்லுபடியாகாத தாவல் அட்டவணை உள்ளிடப்பட்டது.</translation> @@ -1056,6 +1060,7 @@ <translation id="2256115617011615191">இப்போது மீண்டும் தொடங்கு</translation> <translation id="225614027745146050">நல்வரவு</translation> <translation id="225692081236532131">செயலாக்க நிலை</translation> +<translation id="2257053455312861282">பள்ளிக் கணக்கைச் சேர்ப்பதன் மூலம் மாணவர் என்ற முறையில் இணையதளங்களிலும் நீட்டிப்புகளிலும் ஆப்ஸிலும் எளிதாக உள்நுழைய முடியும், ஆனாலும் இவை பெற்றோர் கட்டுப்பாடுகளின் கீழ் இருக்கும்.</translation> <translation id="2261323523305321874">உங்கள் நிர்வாகி, சில பழைய சுயவிவரங்களை முடக்கும்படியான கணினி அளவிலான மாற்றத்தைச் செய்துள்ளார்.</translation> <translation id="2262332168014443534">'லைட்' பயன்முறை மூலம் இப்போது HTTPS உட்பட அனைத்துப் பக்கங்களிலும் வேகமாக உலாவலாம்.</translation> <translation id="2262477216570151239">மீண்டும் இயக்கப்படுவதற்கு முந்தைய தாமதம்</translation> @@ -1970,6 +1975,7 @@ <translation id="3396800784455899911">"ஏற்றுக்கொண்டு, தொடர்க" பட்டனைக் கிளிக் செய்வதன் மூலம், இந்த Google சேவைகளுக்காக மேலே விவரிக்கப்பட்டுள்ள செயலாக்க நடைமுறைகளை ஏற்கிறீர்கள்.</translation> <translation id="3399432415385675819">அறிவிப்புகள் முடக்கப்படும்</translation> <translation id="3400390787768057815"><ph name="WIDTH" /> x <ph name="HEIGHT" /> (<ph name="REFRESH_RATE" /> ஹெர்ட்ஸ்) - பிணைக்கப்பட்டுள்ளது</translation> +<translation id="3402255108239926910">தோற்றத்தைத் தேர்வுசெய்யுங்கள்</translation> <translation id="3402585168444815892">டெமோ பயன்முறையில் பதிவுசெய்கிறது</translation> <translation id="340282674066624"><ph name="DOWNLOAD_RECEIVED" />, <ph name="TIME_LEFT" /></translation> <translation id="3404065873681873169">இந்தத் தளத்திற்குக் கடவுச்சொற்கள் எதுவும் சேமிக்கப்படவில்லை</translation> @@ -1997,6 +2003,7 @@ <translation id="3428747202529429621">Chromeமைப் பயன்படுத்தும்போது இது பாதுகாப்பை வழங்கும், அத்துடன் நீங்கள் பிற Google ஆப்ஸில் உள்நுழைந்திருக்கும்போது உங்கள் பாதுகாப்பை மேம்படுத்துவதற்காக இதைப் பயன்படுத்தலாம்</translation> <translation id="3428800329481094896">Linux கண்டெய்னர் ssh விசைகளைப் பெறுகிறது</translation> <translation id="3429275422858276529">இந்தப் பக்கத்தைப் பிறகு எளிதாகக் கண்டறிய, புத்தகக்குறியிடவும்</translation> +<translation id="3431370546335300761">ப்ராக்ஸியுடன் இணைக்க உள்நுழையவும்</translation> <translation id="3432227430032737297">காட்டப்படும் அனைத்தையும் அகற்று</translation> <translation id="3432757130254800023">அக நெட்வொர்க்கில் உள்ள காட்சிகளுக்கு ஆடியோவையும் வீடியோவையும் அனுப்பு</translation> <translation id="3432762828853624962">ஷேர்டு வொர்க்கர்ஸ்</translation> @@ -2378,6 +2385,7 @@ <translation id="3841964634449506551">தவறான கடவுச்சொல்</translation> <translation id="3842552989725514455">Serif எழுத்துரு</translation> <translation id="3843464315703645664">உலாவியில் பயன்படுத்த அனுமதிக்கப்பட்டது</translation> +<translation id="3844888638014364087">ஈமோஜி சேர்க்கப்பட்டது</translation> <translation id="3846116211488856547">இணையதளங்கள், Android ஆப்ஸ் மற்றும் பலவற்றை உருவாக்கத் தேவையான கருவிகளைப் பெறுக. Linuxஸை நிறுவ, <ph name="DOWNLOAD_SIZE" /> டேட்டா பயன்படுத்தப்படும்.</translation> <translation id="3847319713229060696">வலையைப் பயன்படுத்தும் அனைவருக்கும் பாதுகாப்பை மேம்படுத்த உதவுங்கள்</translation> <translation id="385051799172605136">திரும்பு</translation> @@ -2681,6 +2689,7 @@ <translation id="4232375817808480934">Kerberosஸை உள்ளமைத்தல்</translation> <translation id="4235200303672858594">திரை முழுவதும்</translation> <translation id="4235965441080806197">உள்நுழைவை ரத்துசெய்</translation> +<translation id="4237773362828263530">"*" வைல்டுகார்டுகள் உள்ள அமைப்புகள் இனி ஆதரிக்கப்படாது. <ph name="BEGIN_LINK" />இந்த அமைப்புகளை மாற்ற<ph name="END_LINK" />, உங்கள் நிர்வாகியைத் தொடர்புகொள்ளவும்.</translation> <translation id="4242145785130247982">பல்வேறு கிளையண்ட் சான்றிதழ்களைப் பயன்படுத்த இயலாது</translation> <translation id="4242533952199664413">அமைப்புகளைத் திற</translation> <translation id="4242577469625748426">சாதனத்தில் கொள்கை அமைப்புகளை நிறுவுவதில் தோல்வி: <ph name="VALIDATION_ERROR" />.</translation> @@ -2791,6 +2800,7 @@ <translation id="4384312707950789900">விருப்பப்பட்டியலில் சேர்</translation> <translation id="4384652540891215547">நீட்டிப்பைச் செயல்படுத்து</translation> <translation id="438503109373656455">சரடோகா</translation> +<translation id="4385040356362222432"><ph name="NEW_USER" /> இன் உலாவலையும் <ph name="EXISTING_USER" /> இன் உலாவலையும் தனித்தனியாகப் பிரிக்க, ஒரு புதிய சுயவிவரத்தை உருவாக்கவும்</translation> <translation id="4387004326333427325">அங்கீகரிப்புச் சான்றிதழ் தொலைநிலையில் நிராகரிக்கப்பட்டது</translation> <translation id="4387890294700445764">களவாடப்பட்ட கடவுச்சொற்கள்</translation> <translation id="4389091756366370506">பயனர் <ph name="VALUE" /></translation> @@ -2898,6 +2908,7 @@ <translation id="4522570452068850558">விவரங்கள்</translation> <translation id="4522600456902129422">இந்தத் தளம், கிளிப்போர்டைப் பார்ப்பதைத் தொடர்ந்து அனுமதி</translation> <translation id="4524832533047962394">வழங்கப்பட்ட பதிவுப் பயன்முறையை இந்த ஆப்ரேட்டிங் சிஸ்டத்தின் பதிப்பு ஆதரிக்கவில்லை. புதிய பதிப்பில் இயக்குவதை உறுதிசெய்யவும்.</translation> +<translation id="4527186207340858212">பணிக்கென்று ஒரு புதிய சுயவிவரத்தை உருவாக்கவா?</translation> <translation id="452750746583162491">ஒத்திசைத்த தரவை மதிப்பாய்வு செய்க</translation> <translation id="4530494379350999373">அசல்</translation> <translation id="4532646538815530781">இந்தத் தளம் மோஷன் சென்சார்களைப் பயன்படுத்துகிறது.</translation> @@ -2948,6 +2959,9 @@ <translation id="4573515936045019911">Linuxஸை மேம்படுத்த இணைய இணைப்பு தேவை. இணையத்துடன் இணைத்து, மீண்டும் முயலவும்.</translation> <translation id="457386861538956877">மேலும்...</translation> <translation id="4574741712540401491">• <ph name="LIST_ITEM_TEXT" /></translation> +<translation id="457564749856982089">பள்ளிக் கணக்கைச் சேர்ப்பதன் மூலம் மாணவர் என்ற முறையில் இணையதளங்களிலும் நீட்டிப்புகளிலும் ஆப்ஸிலும் எளிதாக உள்நுழைய முடியும், ஆனாலும் இவை பெற்றோர் கட்டுப்பாடுகளின் கீழ் இருக்கும். இது பள்ளிக் கணக்குடன் ஒத்திசைக்கப்பட்ட புக்மார்க்குகள், கடவுச்சொற்கள், பிற உலாவித் தரவு போன்றவற்றுக்கான அணுகலை பிள்ளைக்கு வழங்குவதில்லை.<br><br> + பள்ளியில் உங்கள் பிள்ளை Chromebookகைப் பயன்படுத்தினாலும், தேவையான அனைத்துப் பள்ளிப் பாடங்களையும் பிள்ளை அணுகுவதை உறுதிசெய்யும் வகையில் நீங்கள் வீட்டிலேயே பள்ளி அனுபவத்தை வழங்க விரும்பினாலும் இந்த Family Link கணக்கிலிருந்து வெளியேறி, Chrome OS கணக்குகள் பக்கத்தில் உள்ள பள்ளிக் கணக்கில் உள்நுழையவும் (கவனத்திற்கு: Family Linkகின் பெற்றோர் கட்டுப்பாடுகள் பொருந்தாது).<br><br> + பள்ளியில் உங்கள் பிள்ளை Chromebookகைப் பயன்படுத்தவில்லை என்றாலோ Family Linkகைப் பயன்படுத்தி வீட்டிலேயே பிள்ளையின் பள்ளி அனுபவத்தை நிர்வகிக்க விரும்பினாலோ இந்தச் சுயவிவரத்தில் பள்ளிக் கணக்கைச் சேர்க்க, கீழேயுள்ள அடுத்து என்ற பட்டனைக் கிளிக் செய்யவும்.</translation> <translation id="4576541033847873020">புளூடூத் சாதனத்தை இணை</translation> <translation id="4579453506923101210">இணைக்கப்பட்டுள்ள மொபைலை மறந்திடு</translation> <translation id="4579581181964204535"><ph name="HOST_NAME" />ஐ அலைபரப்ப முடியவில்லை.</translation> @@ -3085,6 +3099,7 @@ <translation id="4763408175235639573">இந்தப் பக்கத்தை நீங்கள் பார்த்தபோது பின்வரும் குக்கீகள் அமைக்கப்பட்டன:</translation> <translation id="4765582662863429759">உங்கள் மொபைலில் இருந்து Chromebookகுக்கு மெசேஜ்களை ரிலே செய்ய Android மெசேஜஸை அனுமதிக்கும்</translation> <translation id="4768332406694066911">உங்களை அடையாளங்காணும் இந்த நிறுவனங்களின் சான்றிதழ்கள் உள்ளன</translation> +<translation id="477647109558161443">டெஸ்க்டாப் ஷார்ட்கட்டை உருவாக்கு</translation> <translation id="4776917500594043016"><ph name="USER_EMAIL_ADDRESS" /> க்கான கடவுச்சொல்</translation> <translation id="4777825441726637019">Play ஸ்டோர்</translation> <translation id="4777943778632837590">நெட்வொர்க் பெயர் சேவையகங்களை உள்ளமை</translation> @@ -3456,6 +3471,7 @@ <translation id="5249624017678798539">பதிவிறக்கம் நிறைவுபெறுவதற்கு முன்பாகவே உலாவி சிதைவுற்றது.</translation> <translation id="5250372599208556903">உள்ளூர் உள்ளடக்கத்தை வழங்க, <ph name="SEARCH_ENGINE_NAME" /> உங்கள் இருப்பிடத்தைப் பயன்படுத்தும். இதை <ph name="SETTINGS_LINK" /> என்பதில் மாற்றலாம்.</translation> <translation id="5252456968953390977">ரோமிங்</translation> +<translation id="5252496130205799136">கடவுச்சொற்களைச் சேமிக்கவும் நிரப்பவும் உங்கள் Google கணக்கைப் பயன்படுத்தவா?</translation> <translation id="5252653240322147470">பின்னில் அதிகபட்சமாக <ph name="MAXIMUM" /> இலக்கங்கள் மட்டுமே இருக்க வேண்டும்</translation> <translation id="5254368820972107711">அகற்ற வேண்டிய கோப்புகளைக் காட்டு</translation> <translation id="52550593576409946">கியோஸ்க் பயன்பாட்டைத் தொடங்க முடியவில்லை.</translation> @@ -3720,6 +3736,7 @@ <translation id="5565735124758917034">செயலில் உள்ளது</translation> <translation id="5567989639534621706">ஆப்ஸ் தற்காலிக சேமிப்புகள்</translation> <translation id="5568069709869097550">உள்நுழைய முடியவில்லை</translation> +<translation id="5571832155627049070">உங்கள் சுயவிவரத்தைப் பிரத்தியேகமாக்குங்கள்</translation> <translation id="5572851009514199876">Chromeமைத் தொடங்கி உள்நுழையவும். அப்போதுதான் இந்தத் தளத்தை அணுகுவதற்கு உங்களுக்கு அனுமதி உள்ளதா என்பதை Chrome சரிபார்க்க முடியும்.</translation> <translation id="5575473780076478375">மறைநிலை நீட்டிப்பு: <ph name="EXTENSION_NAME" /></translation> <translation id="5575528586625653441">டெமோவுக்குப் பதிவு செய்யும் கோரிக்கையில் ஒரு சிக்கல் ஏற்பட்டது.</translation> @@ -4296,6 +4313,7 @@ <translation id="6270770586500173387"><ph name="BEGIN_LINK1" />சாதனம் மற்றும் ஆப்ஸ் தகவல்<ph name="END_LINK1" />, <ph name="BEGIN_LINK2" />அளவீடுகள்<ph name="END_LINK2" /> ஆகியவற்றை அனுப்பு</translation> <translation id="6272643420381259437">செருகுநிரலைப் பதிவிறக்கும் போது, பிழை (<ph name="ERROR" />) ஏற்பட்டது</translation> <translation id="6273677812470008672">தரம்</translation> +<translation id="6276210637549544171"><ph name="PROXY_SERVER" /> என்ற ப்ராக்ஸியைப் பயன்படுத்த பயனர்பெயரும் கடவுச்சொல்லும் அவசியம்.</translation> <translation id="6277105963844135994">நெட்வொர்க் டைம்அவுட்</translation> <translation id="6277518330158259200">ஸ்கிரீன் ஷாட்டை எடு</translation> <translation id="6278057325678116358">GTK+ஐப் பயன்படுத்து</translation> @@ -4316,6 +4334,7 @@ <translation id="6298962879096096191">Android ஆப்ஸை நிறுவ, Google Playவைப் பயன்படுத்தவும்</translation> <translation id="630065524203833229">வெளி&யேறு</translation> <translation id="6300718114348072351"><ph name="PRINTER_NAME" /> ஐத் தானாக உள்ளமைக்க இயலவில்லை. மேம்பட்ட பிரிண்டர் விவரங்களைக் குறிப்பிடுங்கள். <ph name="LINK_BEGIN" />மேலும் அறிக<ph name="LINK_END" /></translation> +<translation id="6301076166764763868">தனிப்பட்ட உலாவலையும் <ph name="EXISTING_USER" /> இன் உலாவலையும் தனித்தனியாகப் பிரிக்க, <ph name="NEW_USER" />க்கு ஒரு புதிய சுயவிவரத்தை உருவாக்கவும்</translation> <translation id="630292539633944562">தனிப்பட்ட தகவல் பரிந்துரைகள்</translation> <translation id="6305607932814307878">ஒட்டுமொத்தக் கொள்கை:</translation> <translation id="6307990684951724544">கணினி பணிமிகுதியில் உள்ளது</translation> @@ -4519,6 +4538,7 @@ <translation id="6556866813142980365">மீண்டும் செய்</translation> <translation id="6556903358015358733">தீம் & வால்பேப்பர்</translation> <translation id="6557290421156335491">எனது ஷார்ட்கட்கள்</translation> +<translation id="6560151649238390891">பரிந்துரை சேர்க்கப்பட்டது</translation> <translation id="6561560012278703671">சத்தமில்லா மெசேஜாகக் காட்டு (குறுக்கீடுகளைத் தவிர்க்க அறிவிப்புகளைத் தடுக்கும்)</translation> <translation id="6561726789132298588">எண்டர்</translation> <translation id="6562117348069327379">சிஸ்டம் தொடர்பான பதிவுகளை ‘பதிவிறக்கங்கள்’ கோப்பகத்தில் சேமிக்கும்.</translation> @@ -5168,6 +5188,7 @@ <translation id="7385854874724088939">அச்சிட முயற்சித்தபோது, ஏதோ தவறு ஏற்பட்டது. உங்கள் பிரிண்டரைச் சரிபார்த்து மீண்டும் முயற்சி செய்க.</translation> <translation id="7385896526023870365">இந்த நீட்டிப்புக்குக் கூடுதல் தள அணுகல் இல்லை.</translation> <translation id="7388044238629873883">கிட்டத்தட்ட முடித்துவிட்டீர்கள்!</translation> +<translation id="7388209873137778229">ஆதரிக்கப்படும் சாதனங்கள் மட்டும் காட்டப்படுகின்றன.</translation> <translation id="7392118418926456391">வைரஸ் ஸ்கேன் தோல்வி</translation> <translation id="7392915005464253525">மூடப்பட்ட சாளரத்தை மீ&ண்டும் திற</translation> <translation id="7396017167185131589">பகிரப்பட்ட கோப்புறைகள் இங்கே தோன்றும்</translation> @@ -5191,6 +5212,7 @@ <translation id="7415454883318062233">அமைவு முடிந்தது</translation> <translation id="7416362041876611053">அறியப்படாத நெட்வொர்க் பிழை.</translation> <translation id="741906494724992817">இந்தப் பயன்பாட்டிற்கு சிறப்பு அனுமதிகள் தேவையில்லை.</translation> +<translation id="7420817660256886596"><ph name="PROXY" /> என்ற ப்ராக்ஸியைப் பயன்படுத்த பயனர்பெயர், கடவுச்சொல் ஆகியவற்றை வழங்கி நீங்கள் அங்கீகரிக்க வேண்டும்</translation> <translation id="742130257665691897">புக்மார்க்குகள் அகற்றப்பட்டன</translation> <translation id="7421925624202799674">&பக்கத்தின் ஆதாரத்தைக் காண்க</translation> <translation id="7422192691352527311">விருப்பத்தேர்வுகள்...</translation> @@ -5450,6 +5472,7 @@ <translation id="7737115349420013392">"<ph name="DEVICE_NAME" />" உடன் இணைக்கிறது ...</translation> <translation id="7737238973539693982">Linuxஸை (பீட்டா) நீக்கு</translation> <translation id="7740996059027112821">நிலையானது</translation> +<translation id="7741721175294046818">ப்ராக்ஸியுடன் இணைக்க முடியவில்லை, மீண்டும் முயலவும்</translation> <translation id="774377079771918250">எங்கு சேமிப்பது என்பதைத் தேர்வுசெய்யவும்</translation> <translation id="7744047395460924128">பிரிண்ட்டிங் வரலாற்றைக் காட்டு</translation> <translation id="7744192722284567281">தரவு மீறலில் உள்ளது</translation> @@ -5694,6 +5717,7 @@ <translation id="8002670234429879764"><ph name="PRINTER_NAME" /> இனி கிடைக்காது</translation> <translation id="8004582292198964060">உலாவி</translation> <translation id="8005600846065423578"><ph name="HOST" /> கிளிப்போர்டைப் பார்ப்பதை, எப்போதும் அனுமதி</translation> +<translation id="8006143138282906848">இந்தச் சுயவிவரத்தை அகற்று</translation> <translation id="8008356846765065031">இணையம் துண்டிக்கப்பட்டது. உங்கள் இணைய இணைப்பைச் சரிபார்க்கவும்.</translation> <translation id="8009225694047762179">கடவுச்சொற்களை நிர்வகி</translation> <translation id="8012647001091218357">தற்போது எங்களால் உங்கள் பெற்றோர்களைத் தொடர்புகொள்ள முடியவில்லை. மீண்டும் முயற்சிக்கவும்.</translation> @@ -5760,9 +5784,11 @@ <translation id="8084114998886531721">சேமித்த கடவுச்சொல்</translation> <translation id="8086015605808120405"><ph name="PRINTER_NAME" />ஐ உள்ளமைக்கிறது ...</translation> <translation id="8086442853986205778"><ph name="PRINTER_NAME" /> ஐ அமை</translation> +<translation id="8086550884324762001">எடுத்துக்காட்டு: பணி, தனிப்பட்டது, பிள்ளைகள் அல்லது ஒரு பெயர்</translation> <translation id="80866457114322936">{NUM_FILES,plural, =1{இந்தக் கோப்பு என்க்ரிப்ஷன் செய்யப்பட்டுள்ளது. டீக்ரிப்ட் செய்யுமாறு அதன் உரிமையாளரிடம் கேட்கவும்.}other{இந்தக் கோப்புகளில் சில என்க்ரிப்ஷன் செய்யப்பட்டுள்ளன. டீக்ரிப்ட் செய்யுமாறு அவற்றின் உரிமையாளரிடம் கேட்கவும்.}}</translation> <translation id="808894953321890993">கடவுச்சொல்லை மாற்று</translation> <translation id="8090234456044969073">அடிக்கடி பார்வையிட்ட இணையதளங்களின் பட்டியலைப் படிக்கலாம்</translation> +<translation id="8092681102116274204">"*" வைல்டுகார்டுகள் உள்ள அமைப்புகள் இனி ஆதரிக்கப்படாது. <ph name="BEGIN_LINK" />இந்த அமைப்புகளை மாற்ற<ph name="END_LINK" />, நீட்டிப்பு டெவெலப்பரையோ உங்கள் நிர்வாகியையோ தொடர்புகொள்ளவும்.</translation> <translation id="8093359998839330381"><ph name="PLUGIN_NAME" /> பதிலளிக்கவில்லை</translation> <translation id="8095105960962832018"><ph name="BEGIN_PARAGRAPH1" />Google இயக்ககத்திற்குக் காப்புப் பிரதி எடுக்கும். இதனால் உங்கள் தரவை எளிதாக மீட்டெடுக்கலாம் அல்லது எப்போது வேண்டுமானாலும் சாதனத்தை மாற்றலாம். காப்புப் பிரதியில் ஆப்ஸ் தரவும் உள்ளடங்கும்.<ph name="END_PARAGRAPH1" /> <ph name="BEGIN_PARAGRAPH2" />உங்கள் காப்புப் பிரதிகள் Googleளுக்குப் பதிவேற்றப்பட்டு, உங்கள் Google கணக்கின் கடவுச்சொல்லைப் பயன்படுத்தி என்க்ரிப்ட் செய்யப்படும்.<ph name="END_PARAGRAPH2" /> @@ -5815,6 +5841,7 @@ <translation id="8146177459103116374">இந்த சாதனத்தில் ஏற்கனவே பதிவுசெய்திருந்தால், <ph name="LINK2_START" />நடப்புப் பயனராக உள்நுழையலாம்<ph name="LINK2_END" />.</translation> <translation id="8146793085009540321">உள்நுழைய முடியவில்லை. உங்கள் நிர்வாகியைத் தொடர்புகொள்ளவும் அல்லது மீண்டும் முயலவும்.</translation> <translation id="8148760431881541277">உள்நுழைவைக் கட்டுப்படுத்துதல்</translation> +<translation id="8151579390896831136">உங்கள் சுயவிவரத்துடன் அதன் பெயரையும் பிரத்தியேகமாக்கலாம்</translation> <translation id="8151638057146502721">உள்ளமை</translation> <translation id="8152091997436726702">அச்சுப்பொறியைப் பதிவுசெய்தலுக்கான நேரம் கடந்துவிட்டது. பிரிண்டரைப் பதிவுசெய்ய, நீங்கள் அச்சுப்பொறியில் பதிவுசெய்ததை உறுதிப்படுத்த வேண்டும்.</translation> <translation id="8154790740888707867">கோப்பு இல்லை</translation> @@ -5933,6 +5960,7 @@ <translation id="8288032458496410887"><ph name="APP" />ஐ நிறுவல்நீக்கு...</translation> <translation id="8289128870594824098">டிஸ்க்கின் அளவு</translation> <translation id="8291967909914612644">உள்நாட்டு மொபைல் சேவை வழங்குநரின் நாடு</translation> +<translation id="8293206222192510085">புக்மார்க்கைச் சேர்</translation> <translation id="8294431847097064396">மூலம்</translation> <translation id="8297006494302853456">வலுவாக இல்லை</translation> <translation id="8299319456683969623">தற்போது ஆஃப்லைனில் உள்ளீர்கள்.</translation> @@ -6538,6 +6566,7 @@ <translation id="9031549947500880805">Google Driveவிற்குக் காப்புப் பிரதி எடுக்கவும். எப்போது வேண்டுமானாலும் உங்கள் தரவை எளிதாக மீட்டெடுக்கலாம் அல்லது சாதனத்தை மாற்றலாம். ஆப்ஸ் தரவும் உங்கள் காப்புப் பிரதியில் அடங்கும்.</translation> <translation id="9033765790910064284">பரவாயில்லை, தொடரவும்</translation> <translation id="9033857511263905942">&ஒட்டு</translation> +<translation id="9037818663270399707">சில நெட்வொர்க் டிராஃபிக்கிற்கு மட்டுமே உங்கள் இணைப்பு தனிப்பட்டது</translation> <translation id="9037965129289936994">அசல் மொழியில் காட்டு</translation> <translation id="9039014462651733343">{NUM_ATTEMPTS,plural, =1{இன்னும் ஒருமுறை முயலலாம்.}other{இன்னும் # முறை முயலலாம்.}}</translation> <translation id="9039663905644212491">PEAP</translation>
diff --git a/chrome/app/resources/generated_resources_te.xtb b/chrome/app/resources/generated_resources_te.xtb index 75e7d3b..cf5cd308 100644 --- a/chrome/app/resources/generated_resources_te.xtb +++ b/chrome/app/resources/generated_resources_te.xtb
@@ -71,6 +71,7 @@ <translation id="1070705170564860382"><ph name="COUNTDOWN_SECONDS" /> సెకన్లలో ప్రత్యామ్నాయ బ్రౌజర్లో తెరుస్తుంది</translation> <translation id="1071917609930274619">డేటా గుప్తీకరణ</translation> <translation id="1072700771426194907">USB పరికరం కనుగొనబడింది</translation> +<translation id="107278043869924952">పాస్వర్డ్తో పాటు పిన్ను ఉపయోగించండి</translation> <translation id="1076176485976385390">టెక్స్ట్ కర్సర్తో పేజీలను నావిగేట్ చేయండి</translation> <translation id="1076698951459398590">థీమ్ను ప్రారంభించు</translation> <translation id="1076818208934827215">Microsoft Internet Explorer</translation> @@ -524,7 +525,6 @@ <translation id="1608668830839595724">ఎంపిక చేసిన అంశాల కోసం మరిన్ని చర్యలు</translation> <translation id="161042844686301425">నీలి ఆకుపచ్చ</translation> <translation id="1611432201750675208">మీ పరికరం లాక్ చేయబడింది</translation> -<translation id="1611584202130317952">కేటాయింపు విధానానికి అంతరాయం ఏర్పడింది. దయచేసి మళ్లీ ప్రయత్నించండి లేదా మీ పరికర యజమాని లేదా నిర్వాహకులను సంప్రదించండి.</translation> <translation id="1614511179807650956">మీరు మీకు అనుమతించిన మొబైల్ డేటాను పూర్తిగా ఉపయోగించి ఉండవచ్చు. మరింత డేటాను కొనుగోలు చేయడానికి <ph name="NAME" /> యాక్టివేషన్ పోర్టల్ను సందర్శించండి</translation> <translation id="161460670679785907">మీ ఫోన్ను గుర్తించడం సాధ్యపడలేదు</translation> <translation id="1616206807336925449">ఈ పొడిగింపుకు ప్రత్యేక అనుమతులు ఏవీ అవసరం లేదు.</translation> @@ -533,6 +533,7 @@ <translation id="1618268899808219593">స&హాయ కేంద్రం</translation> <translation id="1620307519959413822">పాస్వర్డ్ తప్పు. మళ్లీ ప్రయత్నించండి లేదా రీసెట్ చేయడానికి 'పాస్వర్డ్ను మర్చిపోయాను' క్లిక్ చేయండి.</translation> <translation id="1620510694547887537">కెమెరా</translation> +<translation id="1621831347985899379"><ph name="DEVICE_TYPE" /> డేటా తొలగించబడుతుంది</translation> <translation id="1622054403950683339">Wi-Fi నెట్వర్క్ను విస్మరించు</translation> <translation id="1623132449929929218">చిత్రాలు ప్రస్తుతం అందుబాటులో లేవు. వాల్పేపర్ సేకరణలను చూడటానికి, దయచేసి ఇంటర్నెట్కు మళ్లీ కనెక్ట్ చేయండి.</translation> <translation id="1623723619460186680">నీలి రంగును తగ్గించడం</translation> @@ -760,6 +761,7 @@ <translation id="1877377290348678128">లేబుల్ (ఆప్షనల్)</translation> <translation id="1877520246462554164">ప్రమాణీకరణ టోకెన్ను పొందడం విఫలమైంది. దయచేసి సైన్ అవుట్ చేసి, సైన్ ఇన్ చేసిన తర్వాత మళ్లీ ప్రయత్నించండి.</translation> <translation id="1877860345998737529">స్విచ్ చర్య కేటాయింపు</translation> +<translation id="1878155070920054810">అప్డేట్ పూర్తయ్యే లోపు మీ Chromebook పవర్ అయిపోయినట్లు కనిపిస్తోంది. అంతరాయాన్ని నివారించడానికి ఇది సరిగ్గా ఛార్జింగ్ అవుతోందని నిర్ధారించుకోండి.</translation> <translation id="1879000426787380528">ఇలా సైన్ ఇన్ చేయండి</translation> <translation id="1880905663253319515">ప్రమాణపత్రం "<ph name="CERTIFICATE_NAME" />"ను తొలగించాలా?</translation> <translation id="1881445033931614352">కీబోర్డ్ లేఅవుట్</translation> @@ -964,6 +966,7 @@ <translation id="2148219725039824548">షేర్ను మౌంట్ చేయడంలో ఎర్రర్ ఏర్పడింది. పేర్కొన్న షేర్ నెట్వర్క్లో కనుగొనబడలేదు.</translation> <translation id="2148756636027685713">ఆకృతీకరణ పూర్తి అయ్యింది</translation> <translation id="2148892889047469596">ట్యాబ్ను ప్రసారం చేయండి</translation> +<translation id="2149973817440762519">బుక్మార్క్ను సవరించు</translation> <translation id="2150139952286079145">గమ్యస్థానాలను వెతకండి</translation> <translation id="2150661552845026580">"<ph name="EXTENSION_NAME" />"ను జోడించాలా?</translation> <translation id="2151576029659734873">చెల్లని టాబ్ సూచిక ఎంటర్ చేయబడింది.</translation> @@ -1073,6 +1076,7 @@ <translation id="2270627217422354837">ఈ డొమైన్ల్లో ఏ పరికరంతోనైనా డేటాను ఇచ్చిపుచ్చుకోవడానికి అనుమతి: <ph name="DOMAINS" /></translation> <translation id="2272570998639520080">కాక్టెయిల్ గ్లాస్</translation> <translation id="2273119997271134996">డాక్ వీడియో పోర్ట్ సమస్య</translation> +<translation id="2274840746523584236">మీ Chromebookను ఛార్జ్ చేయండి</translation> <translation id="2276503375879033601">మరిన్ని యాప్లను జోడించండి</translation> <translation id="2277255602909579701">అన్ని కుక్కీలు మరియు సైట్ డేటా</translation> <translation id="2277769717710009150">{COUNT,plural, =1{1 అంశం కాపీ చేయబడింది}other{# అంశాలు కాపీ చేయబడ్డాయి}}</translation> @@ -1915,6 +1919,7 @@ <translation id="3308116878371095290">కుక్కీలను సెట్ చేయడం నుండి ఈ పేజీ నిరోధించబడింది.</translation> <translation id="3308134619352333507">బటన్ను దాచు</translation> <translation id="3308852433423051161">Google సహాయకం లోడ్ అవుతోంది...</translation> +<translation id="3310640316857623290">DNS ప్రతిస్పందన సమయం అనుమతించదగిన పరిమితికి మించి ఉంది</translation> <translation id="3311445899360743395">ఈ యాప్తో అనుబంధించబడిన డేటా ఈ పరికరం నుండి తీసివేయబడవచ్చు.</translation> <translation id="3312424061798279731">ప్రారంభించబడిన భాషలు</translation> <translation id="3313622045786997898">సర్టిఫికెట్ సంతకం విలువ</translation> @@ -1927,6 +1932,7 @@ <translation id="3323295311852517824">{NUM_FILES,plural, =0{ఈ డేటా, గోప్యమైన లేదా హానికరమైన కంటెంట్ను కలిగి ఉంది. ఈ కంటెంట్ను తీసివేసి, మళ్లీ ట్రై చేయండి.}=1{ఈ ఫైల్, గోప్యమైన లేదా హానికరమైన కంటెంట్ను కలిగి ఉంది. ఈ కంటెంట్ను తీసివేసి, మళ్లీ ట్రై చేయండి.}other{ఈ ఫైల్స్, గోప్యమైన లేదా హానికరమైన కంటెంట్ను కలిగి ఉన్నాయి. ఈ కంటెంట్ను తీసివేసి, మళ్లీ ట్రై చేయండి.}}</translation> <translation id="3323521181261657960">బోనస్! మీరు మరింత స్క్రీన్ వినియోగ సమయం పొందారు</translation> <translation id="3325910708063135066">Mac సిస్టమ్ ప్రాధాన్యతలలో కెమెరా మరియు మైక్రోఫోన్ ఆపివేయబడతాయి</translation> +<translation id="3327050066667856415">Chromebooks భద్రత కోసం రూపొందించబడ్డాయి. మీ పరికరం ఆటోమేటిక్గా మాల్వేర్ నుండి రక్షించబడుతుంది - అదనపు సాఫ్ట్వేర్ అవసరం లేదు.</translation> <translation id="3328489342742826322">బ్యాకప్ నుండి పునరుద్ధరించడం వలన మీ Linux ఫైల్ల ఫోల్డర్లో ప్రస్తుతం ఉన్న Linux అప్లికేషన్లు, డేటా తొలగించబడతాయి.</translation> <translation id="3331321258768829690">(<ph name="UTCOFFSET" />) <ph name="LONGTZNAME" /> (<ph name="EXEMPLARCITY" />)</translation> <translation id="3331974543021145906">యాప్ సమాచారం</translation> @@ -2116,6 +2122,7 @@ <translation id="3556433843310711081">మీ నిర్వాహకుడు మీ కోసం దీన్ని అన్బ్లాక్ చేయగలరు</translation> <translation id="3557101512409028104">Family Linkతో వెబ్సైట్ పరిమితులు & పరికర వినియోగ వ్యవధిని సెట్ చేయండి</translation> <translation id="3559262020195162408">పరికరంలో విధానాన్ని ఇన్స్టాల్ చేయడంలో విఫలమైంది.</translation> +<translation id="3559533181353831840">సుమారు <ph name="TIME_LEFT" /> మిగిలి ఉంది</translation> <translation id="3560034655160545939">&స్పెల్ చెక్</translation> <translation id="3562423906127931518">ఈ ప్రక్రియకు కొద్ది నిమిషాలు పట్టవచ్చు. Linux కంటెయినర్ని సెటప్ చేస్తోంది.</translation> <translation id="3563432852173030730">కియోస్క్ అప్లికేషన్ను డౌన్లోడ్ చేయడం సాధ్యపడలేదు.</translation> @@ -2158,6 +2165,7 @@ <translation id="3602290021589620013">ప్రివ్యూ</translation> <translation id="3603622770190368340">నెట్వర్క్ ప్రమాణపత్రాన్ని పొందండి</translation> <translation id="3604713164406837697">వాల్పేపర్ను మార్చండి</translation> +<translation id="360565022852130722">బలహీనమైన ప్రోటోకాల్ WEP 802.1xతో Wi-Fi నెట్వర్క్ సురక్షితం చేయబడింది</translation> <translation id="3605780360466892872">బటన్డౌన్</translation> <translation id="3608576286259426129">వినియోగదారు చిత్ర ప్రివ్యూ</translation> <translation id="3610369246614755442">డాక్ ఫ్యాన్కు సర్వీస్ అవసరం</translation> @@ -2194,6 +2202,7 @@ <translation id="3639220004740062347">రీడర్ మోడ్ నుండి నిష్క్రమించండి</translation> <translation id="3640214691812501263"><ph name="USER_NAME" /> కోసం "<ph name="EXTENSION_NAME" />"ని జోడించాలా?</translation> <translation id="3640613767643722554">మీ వాయిస్ను గుర్తించేలా అసిస్టెంట్కు తగిన శిక్షణ ఇవ్వండి</translation> +<translation id="3643014427358482789">ADB డీబగ్గింగ్ను <ph name="DOMAIN" /> డిజేబుల్ చేస్తోంది, ఇది <ph name="DEVICE_TYPE" />ను రీసెట్ చేస్తుంది. రీస్టార్ట్ చేయడానికి ముందు మీ ఫైల్లను బ్యాకప్ చేయండి.</translation> <translation id="3645372836428131288">వేలిముద్రలోని వేరే భాగాన్ని క్యాప్చర్ చేయడం కోసం కొద్దిగా కదిలించండి.</translation> <translation id="3647998456578545569">{COUNT,plural, =1{<ph name="DEVICE_NAME" /> నుండి <ph name="ATTACHMENTS" /> అందుకున్నారు}other{<ph name="DEVICE_NAME" /> నుండి <ph name="ATTACHMENTS" /> అందుకున్నారు}}</translation> <translation id="3648348069317717750"><ph name="USB_DEVICE_NAME" /> గుర్తించబడింది</translation> @@ -2282,6 +2291,7 @@ <translation id="3732857534841813090">Google Assistant సంబంధిత సమాచారం</translation> <translation id="3733127536501031542">దశ-పైకితో SSL సర్వర్</translation> <translation id="3735740477244556633">దీని ద్వారా క్రమీకరించు</translation> +<translation id="3738632186060045350"><ph name="DEVICE_TYPE" /> డేటా 24 గంటలలో తొలగించబడుతుంది</translation> <translation id="3738924763801731196"><ph name="OID" />:</translation> <translation id="3739254215541673094"><ph name="APPLICATION" />ని తెరవాలా?</translation> <translation id="3742055079367172538">స్క్రీన్షాట్ తీసినప్పుడు</translation> @@ -2469,6 +2479,7 @@ <translation id="3937734102568271121">ఎల్లప్పుడూ <ph name="LANGUAGE" /> భాషలోది అనువదించు</translation> <translation id="3938128855950761626"><ph name="VENDOR_ID" /> విక్రేత నుండి అందించే పరికరాలు</translation> <translation id="3940233957883229251">ఆటోమేటిక్గా పునరావృతం చేయడాన్ని ప్రారంభించు</translation> +<translation id="3941014780699102620">హోస్ట్ను పరిష్కరించడంలో విఫలమైంది</translation> <translation id="3941565636838060942">ఈ ప్రోగ్రామ్కు యాక్సెస్ను దాచడానికి, మీరు దీన్ని నియంత్రణ ప్యానెల్లోని <ph name="CONTROL_PANEL_APPLET_NAME" />ను ఉపయోగించి అన్ఇన్స్టాల్ చేయాలి. @@ -2631,6 +2642,7 @@ <translation id="413121957363593859">భాగాలు</translation> <translation id="4131410914670010031">నలుపు మరియు తెలుపు</translation> <translation id="413193092008917129">నెట్వర్క్ సమస్య విశ్లేషణకు సంబంధించిన కమాండ్ రొటీన్లు</translation> +<translation id="4132183752438206707">Google Play స్టోర్లో యాప్లను కనుగొనండి</translation> <translation id="4133076602192971179">మీ పాస్వర్డ్ను మార్చడానికి యాప్ను తెరవండి</translation> <translation id="4136203100490971508">సూర్యోదయ సమయానికి రాత్రి కాంతి స్వయంచాలకంగా ఆఫ్ అవుతుంది</translation> <translation id="41365691917097717">దీనిని కొనసాగించడం వలన Android యాప్లను రూపొందించడానికి, పరీక్షించడానికి ADB డీబగ్గింగ్ ఎనేబుల్ అవుతుంది. ఈ చర్య వలన Google ద్వారా ధృవీకరించబడని Android యాప్ల ఇన్స్టాలేషన్ అనుమతించబడుతుందని, దీనిని డిజేబుల్ చేయడానికి ఫ్యాక్టరీ రీసెట్ చేయాల్సి ఉంటుందని గుర్తుంచుకోండి.</translation> @@ -2880,6 +2892,8 @@ <translation id="4479877282574735775">వర్చువల్ మెషీన్ను కాన్ఫిగర్ చేస్తోంది. దీనికి కొద్ది నిమిషాలు పట్టవచ్చు.</translation> <translation id="4480590691557335796">Chrome మీ కంప్యూటర్లో హానికరమైన సాఫ్ట్వేర్ని కనుగొని, తీసివేయగలదు</translation> <translation id="4481530544597605423">జతను తీసివేసిన పరికరాలు</translation> +<translation id="4483049906298469269">డిఫాల్ట్-యేతర నెట్వర్క్ గేట్వేను పింగ్ చేయడంలో విఫలమైంది</translation> +<translation id="4487489714832036847">సాంప్రదాయ సాఫ్ట్వేర్కు బదులుగా Chromebooks యాప్లను ఉపయోగిస్తాయి. పని సామర్థ్యాన్ని పెంచడం, వినోదం ఇంకా మరిన్నిటి కోసం యాప్లను పొందండి.</translation> <translation id="4488502501195719518">మొత్తం డేటాను క్లియర్ చేయాలా?</translation> <translation id="4493468155686877504">సిఫార్సు చేయబడినది (<ph name="INSTALL_SIZE" />)</translation> <translation id="4495419450179050807">ఈ పేజీని చూపవద్దు</translation> @@ -2930,6 +2944,7 @@ <translation id="4546692474302123343">Google Assistant వాయిస్ ఇన్పుట్</translation> <translation id="4547659257713117923">ఇతర పరికరాల నుండి ట్యాబ్లు లేవు</translation> <translation id="4547672827276975204">స్వయంచాలకంగా సెట్ చేయి</translation> +<translation id="4548483925627140043">సిగ్నల్ కనుగొనబడలేదు</translation> <translation id="4549791035683739768">మీ సెక్యూరిటీ కీలో వేలిముద్రలు సేవ్ చేయబడలేదు</translation> <translation id="4551763574344810652">చర్యరద్దు చేయడానికి <ph name="MODIFIER_KEY_DESCRIPTION" />ను నొక్కండి</translation> <translation id="4552089082226364758">ఫ్లాష్</translation> @@ -2969,6 +2984,7 @@ <translation id="4582563038311694664">అన్ని సెట్టింగ్లను రీసెట్ చేయి</translation> <translation id="4585793705637313973">పేజీని సవరించండి</translation> <translation id="4586275095964870617"><ph name="URL" />ని ప్రత్యామ్నాయ బ్రౌజర్లో తెరవడం సాధ్యపడదు. దయచేసి మీ సిస్టమ్ నిర్వాహకుడిని సంప్రదించండి.</translation> +<translation id="458794348635939462">హోస్ట్లను పరిష్కరించడంలో విఫలమైంది</translation> <translation id="4589713469967853491">లాగ్స్, విజయవంతంగా 'డౌన్లోడ్స్' డైరెక్టరీలోకి చేర్చబడ్డాయి.</translation> <translation id="4590324241397107707">డేటాబేస్ నిల్వ</translation> <translation id="4592891116925567110">స్టైలస్ డ్రాయింగ్ యాప్</translation> @@ -3352,6 +3368,7 @@ <translation id="5089810972385038852">రాష్ట్రం</translation> <translation id="5094721898978802975">సహకరిస్తున్న స్థానిక అనువర్తనాలతో కమ్యూనికేట్ చేయండి</translation> <translation id="5097002363526479830">'<ph name="NAME" />' నెట్వర్క్కు కనెక్ట్ చేయడంలో విఫలమైంది: <ph name="DETAILS" /></translation> +<translation id="5097649414558628673">టూల్: <ph name="PRINT_NAME" /></translation> <translation id="5097874180538493929">కర్సర్ ఆగినప్పుడు ఆటోమేటిక్గా క్లిక్ చేయండి</translation> <translation id="5101042277149003567">అన్ని బుక్మార్క్లను తెరువు</translation> <translation id="5101839224773798795">కర్సర్ ఆపినప్పుడు ఆటోమేటిక్గా క్లిక్ అవుతుంది</translation> @@ -3570,6 +3587,7 @@ <translation id="5370819323174483825">&మళ్లీ లోడ్ చేయి</translation> <translation id="5372529912055771682">సరఫరా చేయబడిన నమోదు మోడ్ను, ఆపరేటింగ్ సిస్టమ్ యొక్క ఈ వెర్షన్ మద్దతివ్వదు. మీరు తాజా వెర్షన్ను అమలు చేస్తున్నారని దయచేసి నిర్ధారించుకుని, మళ్లీ ప్రయత్నించండి.</translation> <translation id="5372579129492968947">ఎక్స్టెన్షన్ పిన్ను తీసివేయండి</translation> +<translation id="5372659122375744710">WiFi నెట్వర్క్ సురక్షితంగా లేదు</translation> <translation id="5376169624176189338">వెనుకకు వెళ్లడానికి క్లిక్ చేయండి. చరిత్రను చూడటానికి నొక్కి ఉంచండి</translation> <translation id="5376931455988532197">ఫైల్ చాలా పెద్దదిగా ఉంది</translation> <translation id="5377721922656071359">{COUNT,plural, =1{<ph name="ATTACHMENTS" /> విజయవంతంగా <ph name="DEVICE_NAME" />కి పంపబడింది}other{<ph name="ATTACHMENTS" /> విజయవంతంగా <ph name="DEVICE_NAME" />కి పంపబడ్డాయి}}</translation> @@ -3599,6 +3617,7 @@ <translation id="5414566801737831689">మీరు సందర్శించే వెబ్సైట్ల చిహ్నాలను చదవడం</translation> <translation id="5417312524372586921">బ్రౌజర్ థీమ్లు</translation> <translation id="5419405654816502573">Voice Match</translation> +<translation id="5420274697768050645">అదనపు భద్రత కోసం పరికరాన్ని అన్లాక్ చేయడానికి పాస్వర్డ్ అవసరం</translation> <translation id="5420438158931847627">వచన సందేశం మరియు చిత్రాల స్పష్టతను నిర్ణయిస్తుంది</translation> <translation id="5422221874247253874">యాక్సెస్ స్థానం</translation> <translation id="5422781158178868512">క్షమించండి, మీ బాహ్య నిల్వ పరికరం గుర్తించబడలేదు.</translation> @@ -3723,6 +3742,7 @@ <translation id="5548606607480005320">భద్రతా తనిఖీ</translation> <translation id="5551573675707792127">కీబోర్డ్ మరియు వచన ఇన్పుట్</translation> <translation id="5553089923092577885">సర్టిఫికెట్ విధాన మ్యాపింగ్లు</translation> +<translation id="5554403733534868102">దీని తరువాత, అప్డేట్ల కోసం వేచి ఉండాల్సిన అవసరం లేదు</translation> <translation id="5554489410841842733">ప్రస్తుత పేజీలో ఎక్స్టెన్షన్ ఉండే వరకు ఈ చిహ్నం కనిపిస్తుంది.</translation> <translation id="5554720593229208774">ఇమెయిల్ అధికారి సర్టిఫికేషన్ అధికారిక సంస్థ</translation> <translation id="5556459405103347317">మళ్లీ లోడ్ చేయి</translation> @@ -4136,6 +4156,7 @@ <translation id="6061882183774845124">లింక్ను మీ పరికరాలకు పంపండి</translation> <translation id="6064217302520318294">స్క్రీన్ లాక్</translation> <translation id="6065289257230303064">సర్టిఫికెట్ విషయ డైరెక్టరీ ఫీచర్లు</translation> +<translation id="6069464830445383022">మీ Google ఖాతాయే మీ Chromebook సైన్-ఇన్</translation> <translation id="6069671174561668781">వాల్పేపర్ని సెట్ చేయండి</translation> <translation id="6071181508177083058">పాస్వర్డ్ను నిర్ధారించండి</translation> <translation id="6071576563962215370">పరికరం ఇన్స్టాలేషన్-సమయ లక్షణాల లాక్ను ఏర్పాటు చేయడంలో సిస్టమ్ విఫలమైంది.</translation> @@ -4178,6 +4199,7 @@ <translation id="6104311680260824317">పరికరాన్ని డొమైన్కు చేర్చడం సాధ్యపడలేదు. పేర్కొనబడిన Kerberos ఎన్క్రిప్షన్ రకాలకు ఈ సర్వర్ మద్దతు ఇవ్వదు. ఎన్క్రిప్షన్ సెట్టింగ్ల కోసం "మరిన్ని ఎంపికలు" చూడండి.</translation> <translation id="6104796831253957966">ప్రింటర్ క్రమ వరుస నిండిపోయింది</translation> <translation id="6105994589138235234">Chrome బ్రౌజర్ సింక్</translation> +<translation id="6108689792487843350">గేట్వే అందుబాటులో లేదు</translation> <translation id="6111972606040028426">Google Assistantను ఎనేబుల్ చేయండి</translation> <translation id="6112294629795967147">పరిమాణం మార్చడం కోసం తాకండి</translation> <translation id="6112727384379533756">టిక్కెట్ను జోడించు</translation> @@ -4238,6 +4260,7 @@ <translation id="6178664161104547336">ఒక సర్టిఫికెట్ను ఎంచుకోండి</translation> <translation id="6181431612547969857">డౌన్లోడ్ బ్లాక్ చేయబడింది</translation> <translation id="6185132558746749656">పరికర స్థానం</translation> +<translation id="6191293864534840972">పేరు తప్పుగా ఉన్న సర్వర్లు</translation> <translation id="6195446518998936840">తల్లిదండ్రుల నియంత్రణలను సెట్ అప్ చేయడానికి, మీ చిన్నారి ఖచ్చితంగా Google ఖాతాను కలిగి ఉండాాలి, ఆ ఖాతాను మేనేజ్ చేయడానికి మీరు సహాయం చేయవచ్చు. Family Link యాప్తో మీరు పరికర వినియోగ వ్యవధిని పరిమితం చేయడం, వెబ్సైట్లను ఆమోదించడం లేదా బ్లాక్ చేయడం, ఇంకా మరిన్ని చేయవచ్చు.</translation> <translation id="6195693561221576702">ఈ పరికరాన్ని ఆఫ్లైన్ డెమో మోడ్లో సెటప్ చేయలేరు.</translation> <translation id="6196640612572343990">మూడవ పక్షం కుక్కీలను బ్లాక్ చేయి</translation> @@ -4451,6 +4474,7 @@ <translation id="6451591602925140504">{NUM_PAGES,plural, =0{<ph name="PAGE_TITLE" />}=1{<ph name="PAGE_TITLE" />, 1 ఇతర ట్యాబ్}other{<ph name="PAGE_TITLE" />, # ఇతర ట్యాబ్లు}}</translation> <translation id="6451689256222386810">మీరు మీ రహస్య పదబంధాన్ని మర్చిపోతే లేదా ఈ సెట్టింగ్ను మార్చాలనుకుంటే, <ph name="BEGIN_LINK" />సింక్ను రీసెట్ చేయండి<ph name="END_LINK" />.</translation> <translation id="6452181791372256707">తిరస్కరించు</translation> +<translation id="6452251728599530347"><ph name="PERCENT" /> పూర్తయింది</translation> <translation id="6452961788130242735">నెట్వర్క్ సమస్య ఉంది లేదా నెట్వర్క్ పరిధిలో లేదు</translation> <translation id="6455264371803474013">కొన్ని నిర్దిష్ట సైట్లలో మాత్రమే</translation> <translation id="6455894534188563617">&కొత్త ఫోల్డర్</translation> @@ -4507,6 +4531,7 @@ <ph name="EVENT_NAME" /></translation> <translation id="6520876759015997832"><ph name="LIST_SIZE" /> శోధన ఫలితం <ph name="LIST_POSITION" />: <ph name="SEARCH_RESULT_TEXT" />. విభాగానికి నావిగేట్ చేయడానికి ఎంటర్ నొక్కండి.</translation> <translation id="652492607360843641">మీరు <ph name="NETWORK_TYPE" /> నెట్వర్క్కు కనెక్ట్ చేయబడ్డారు.</translation> +<translation id="6527081081771465939">తెలియని WiFi భద్రతా ప్రోటోకాల్</translation> <translation id="6527303717912515753">భాగస్వామ్యం చేయి</translation> <translation id="6528513914570774834">ఈ నెట్వర్క్ను ఉపయోగించడానికి ఈ పరికరం యొక్క ఇతర వినియోగదారులను అనుమతించండి</translation> <translation id="652948702951888897">Chrome చరిత్ర</translation> @@ -4623,6 +4648,7 @@ <translation id="6680442031740878064">అందుబాటులో ఉంది: <ph name="AVAILABLE_SPACE" /></translation> <translation id="6680650203439190394">రేట్</translation> <translation id="6681668084120808868">ఫోటోను తీయి</translation> +<translation id="6684827949542560880">తాజా అప్డేట్ను డౌన్లోడ్ చేస్తోంది</translation> <translation id="668599234725812620">Google Playని తెరువు</translation> <translation id="6686490380836145850">కుడివైపు ట్యాబ్లను మూసివేయి</translation> <translation id="6686817083349815241">మీ పాస్వర్డ్ను సేవ్ చేయండి</translation> @@ -4732,6 +4758,7 @@ <translation id="6812841287760418429">మార్పులను ఉంచు</translation> <translation id="6817174620439930047">MIDI పరికరాలను యాక్సెస్ చేయడానికి సిస్టమ్ విశిష్ట సందేశాలను సైట్ ఉపయోగించాలనుకున్నప్పుడు అడుగు (సిఫార్సు చేయబడింది)</translation> <translation id="6818198425579322765">పేజీని అనువదించాల్సిన భాష</translation> +<translation id="6818802132960437751">అంతర్నిర్మిత వైరస్ రక్షణ</translation> <translation id="682123305478866682">డెస్క్టాప్ను ప్రసారం చేయండి</translation> <translation id="6823174134746916417">టచ్ప్యాడ్ క్లిక్-కోసం-ట్యాప్ చేయండి</translation> <translation id="6823506025919456619">మీరు మీ పరికరాలను చూడటానికి Chromeకు సైన్ ఇన్ చేయాలి</translation> @@ -5378,6 +5405,7 @@ <translation id="7631205654593498032">మీరు మీ పరికరాలను కనెక్ట్ చేసినప్పుడు, మీ <ph name="DEVICE_TYPE" /> ఈ కింది వాటిని చేయవచ్చని అంగీకరిస్తున్నారు:</translation> <translation id="7631887513477658702">&ఎల్లప్పుడూ ఈ రకం ఫైళ్ళను తెరువు</translation> <translation id="7632948528260659758">క్రింది కియోస్క్ అనువర్తనాల నవీకరణ విఫలమైంది:</translation> +<translation id="7633724038415831385">ఈ ఒక్క సమయంలో మాత్రమే మీరు అప్డేట్ కోసం వేచి ఉండాల్సి వస్తుంది. Chromebookలో, సాఫ్ట్వేర్ అప్డేట్లు బ్యాక్గ్రౌండ్లోనే జరుగుతాయి.</translation> <translation id="7634566076839829401">ఏదో తప్పు జరిగింది. దయచేసి మళ్లీ ప్రయత్నించండి.</translation> <translation id="763632859238619983">చెల్లింపు హ్యాండ్లర్లను ఇన్స్టాల్ చేయడానికి ఏ సైట్నూ అనుమతించవద్దు</translation> <translation id="7636919061354591437">ఈ పరికరంలో ఇన్స్టాల్ చేయి</translation> @@ -5655,6 +5683,7 @@ <translation id="7933314993013528982">{NUM_TABS,plural, =1{సైట్ను అన్మ్యూట్ చేయి}other{సైట్లను అన్మ్యూట్ చేయి}}</translation> <translation id="7933634003144813719">షేర్ చేసిన ఫోల్డర్లను నిర్వహించండి</translation> <translation id="793531125873261495">వర్చువల్ మెషిన్ను డౌన్లోడ్ చేయడంలో ఎర్రర్ ఏర్పడింది. దయచేసి మళ్లీ ప్రయత్నించండి.</translation> +<translation id="7936303884198020182">పేరుతో సర్వర్లు కనుగొనబడలేదు</translation> <translation id="7938594894617528435">ప్రస్తుతం ఆఫ్లైన్లో ఉంది</translation> <translation id="7939062555109487992">అధునాతన ఎంపికలు</translation> <translation id="7939412583708276221">ఏదేమైనా ఉంచు</translation> @@ -5895,6 +5924,7 @@ <translation id="8226742006292257240">మీ కంప్యూటర్కు కేటాయించబడిన యాదృచ్ఛికంగా రూపొందించబడిన TPM పాస్వర్డ్ దిగువన అందించబడింది:</translation> <translation id="8227119283605456246">ఫైల్ను జోడించు</translation> <translation id="8230134520748321204"><ph name="ORIGIN" /> కోసం పాస్వర్డ్ని సేవ్ చేయాలా?</translation> +<translation id="8230672074305416752">డిఫాల్ట్ నెట్వర్క్ గేట్వేను పింగ్ చేయడంలో విఫలమైంది</translation> <translation id="8234795456569844941">దయచేసి ఈ సమస్యను పరిష్కరించడంలో మా ఇంజినీర్లకు సహాయపడండి. ప్రొఫైల్ ఎర్రర్ సందేశం ఎదురయ్యే ముందు ఏమి జరిగిందో మాకు తెలియజేయండి:</translation> <translation id="8236917170563564587">బదులుగా, ఈ ట్యాబ్ను షేర్ చేయి</translation> <translation id="8237647586961940482">ముదురు గులాబీ రంగు మరియు ఎరుపు</translation> @@ -5955,6 +5985,7 @@ <translation id="8288032458496410887"><ph name="APP" />ని అన్ఇన్స్టాల్ చేయి...</translation> <translation id="8289128870594824098">డిస్క్ పరిమాణం</translation> <translation id="8291967909914612644">స్వస్థల నెట్వర్క్ ప్రదాత దేశం</translation> +<translation id="8293206222192510085">బుక్మార్క్లను జోడించు</translation> <translation id="8294431847097064396">మూలం</translation> <translation id="8297006494302853456">బలహీనం</translation> <translation id="8299319456683969623">మీరు ప్రస్తుతం ఆఫ్లైన్లో ఉన్నారు.</translation> @@ -6004,6 +6035,7 @@ <translation id="8363095875018065315">స్థిరం</translation> <translation id="8363142353806532503">మైక్రోఫోన్ బ్లాక్ చేయబడింది</translation> <translation id="8363763184161554204"><ph name="PERMISSION" />ను అనుమతించారు</translation> +<translation id="8364946094152050673">ఖాళీ పేరు సర్వర్లు</translation> <translation id="8366396658833131068">మీ నెట్వర్క్ కనెక్టివిటీ పునరుద్ధరించబడింది. దయచేసి వేరే నెట్వర్క్ను ఎంచుకోండి లేదా మీ కియోస్క్ యాప్ను ప్రారంభించడానికి కింది 'కొనసాగించు' బటన్ నొక్కండి.</translation> <translation id="8368027906805972958">తెలియని లేదా మద్దతు లేని పరికరం (<ph name="DEVICE_ID" />)</translation> <translation id="8368859634510605990">&అన్ని బుక్మార్క్లను తెరువు</translation> @@ -6089,8 +6121,10 @@ <translation id="8472623782143987204">హార్డ్వేర్ మద్దతు గలది</translation> <translation id="8473863474539038330">అడ్రస్లు, మరికొన్ని వివరాలు</translation> <translation id="8475313423285172237">మీ కంప్యూటర్లోని మరో ప్రోగ్రామ్ జోడించిన ఎక్స్టెన్షన్ కారణంగా Chrome పని చేసే విధానం మారవచ్చు.</translation> +<translation id="8475690821716466388">బలహీనమైన ప్రోటోకాల్ WEP PSKతో Wi-Fi నెట్వర్క్ సురక్షితం చేయబడింది</translation> <translation id="8477241577829954800">బదులు పెట్టు</translation> <translation id="8477384620836102176">&సాధారణ</translation> +<translation id="8477551185774834963">DNS ప్రతిస్పందన సమయం అనుమతించదగిన పరిమితికి కొద్దిగా మించి ఉంది</translation> <translation id="8480082892550707549">మీరు ఇంతకుముందు ఈ సైట్ నుండి ఫైల్లను డౌన్లోడ్ చేసినప్పటికీ, సైట్ తాత్కాలికంగా అసురక్షితం కావచ్చు (హ్యాకింగ్కు గురై ఉండవచ్చు). ఈ ఫైల్ను తర్వాత డౌన్లోడ్ చేయడానికి ప్రయత్నించండి.</translation> <translation id="8480869669560681089"><ph name="VENDOR_NAME" /> నుండి తెలియని పరికరం</translation> <translation id="8481187309597259238">USB అనుమతిని నిర్ధారించండి</translation> @@ -6142,6 +6176,7 @@ <translation id="8546930481464505581">టచ్ బార్ని అనుకూలీకరించండి</translation> <translation id="8547013269961688403">పూర్తి స్క్రీన్ మాగ్నిఫయర్ను ప్రారంభించండి</translation> <translation id="85486688517848470">ఎగువ-అడ్డు వరుసలోని కీల ప్రవర్తనను మార్చడానికి శోధన కీని నొక్కి ఉంచండి</translation> +<translation id="8549316893834449916">మీ Chromebookకు సైన్ ఇన్ చేయడానికి మీరు మీ Google ఖాతాను ఉపయోగిస్తారు – Gmail, Drive, YouTube మరిన్నింటి కోసం మీరు ఉపయోగించే అదే ఖాతా.</translation> <translation id="8551388862522347954">లైసెన్స్లు</translation> <translation id="8551588720239073785">తేదీ, సమయం సెట్టింగ్లు</translation> <translation id="8553342806078037065">ఇతర వ్యక్తులను నిర్వహించు</translation> @@ -6280,6 +6315,7 @@ <translation id="8720200012906404956">మొబైల్ నెట్వర్క్ కోసం చూస్తోంది. <ph name="BEGIN_LINK" />మరింత తెలుసుకోండి<ph name="END_LINK" /></translation> <translation id="8720816553731218127">ఇన్స్టాలేషన్-సమయాల లక్షణాలు ప్రారంభిస్తుండగా సమయం మించిపోయింది.</translation> <translation id="8722912030556880711">వినియోగం & విశ్లేషణల డేటాను పంపండి. ఈ పరికరం ప్రస్తుతం సమస్య విశ్లేషణ, అలాగే పరికర, యాప్ వినియోగ డేటాను ఆటోమేటిక్గా Googleకి పంపుతుంది. ఇది సిస్టమ్, యాప్ స్థిరత్వానికి, అలాగే ఇతర మెరుగుదలలకు సహాయపడుతుంది. కొంత సముదాయ డేటా కూడా Google యాప్లకు, అలాగే Android డెవలపర్ల లాంటి భాగస్వాములకు సహాయపడుతుంది. మీ అదనపు వెబ్ & యాప్ కార్యకలాపం సెట్టింగ్ను ఆన్ చేసినట్లయితే, ఈ డేటా మీ Google ఖాతాలో సేవ్ చేయబడవచ్చు. <ph name="BEGIN_LINK2" />మరింత తెలుసుకోండి<ph name="END_LINK2" /></translation> +<translation id="8723108084122415655">పరిమితిని మించి ప్రతిస్పందన సమయం ఉన్న డిఫాల్ట్-యేతర నెట్వర్క్</translation> <translation id="8724405322205516354">మీకు ఈ చిహ్నం కనిపించినప్పుడు, గుర్తింపు లేదా కొనుగోళ్ల ఆమోదం కోసం మీ వేలిముద్రను ఉపయోగించండి.</translation> <translation id="8724409975248965964">వేలిముద్ర జోడించబడింది</translation> <translation id="8724859055372736596">ఫోల్డర్లో &చూపించు</translation> @@ -6457,6 +6493,7 @@ <translation id="8909833622202089127">సైట్ మీ స్థానాన్ని ట్రాక్ చేస్తోంది</translation> <translation id="8910146161325739742">మీ స్క్రీన్ను భాగస్వామ్యం చేయండి</translation> <translation id="8910222113987937043">మీ బుక్మార్క్లు, చరిత్ర, పాస్వర్డ్లు, ఇతర సెట్టింగ్లలో మార్పులు మీ Google ఖాతాకు ఇకపై సింక్ చేయబడవు. అయినప్పటికీ, ఇప్పటికే ఉన్న మీ డేటా Google ఖాతాలో నిల్వ చేయబడుతుంది. <ph name="BEGIN_LINK" />Google డాష్బోర్డ్<ph name="END_LINK" />లో నిర్వహించబడుతుంది.</translation> +<translation id="8910721771319628100">పరిమితిని మించి ప్రతిస్పందన సమయం ఉన్న డిఫాల్ట్ నెట్వర్క్</translation> <translation id="8912362522468806198">Google ఖాతా</translation> <translation id="8912793549644936705">విస్తరించు</translation> <translation id="8912810933860534797">ఆటోమేటిక్ స్కాన్ను ప్రారంభించు</translation>
diff --git a/chrome/app/resources/generated_resources_th.xtb b/chrome/app/resources/generated_resources_th.xtb index 6c37c364..d352f0f 100644 --- a/chrome/app/resources/generated_resources_th.xtb +++ b/chrome/app/resources/generated_resources_th.xtb
@@ -71,6 +71,7 @@ <translation id="1070705170564860382">จะเปิดในเบราว์เซอร์สำรองใน <ph name="COUNTDOWN_SECONDS" /> วินาที</translation> <translation id="1071917609930274619">การเข้ารหัสข้อมูล</translation> <translation id="1072700771426194907">ตรวจพบอุปกรณ์ USB</translation> +<translation id="107278043869924952">เพิ่ม PIN และรหัสผ่าน</translation> <translation id="1076176485976385390">ไปยังส่วนต่างๆ ของหน้าได้ด้วยเคอร์เซอร์ข้อความ</translation> <translation id="1076698951459398590">เปิดใช้ธีม</translation> <translation id="1076818208934827215">Microsoft Internet Explorer</translation> @@ -524,7 +525,6 @@ <translation id="1608668830839595724">การดำเนินการอื่นๆ สำหรับรายการที่เลือก</translation> <translation id="161042844686301425">สีฟ้า</translation> <translation id="1611432201750675208">อุปกรณ์ล็อกอยู่</translation> -<translation id="1611584202130317952">กระบวนการการจัดสรรขัดข้อง โปรดลองอีกครั้ง หรือติดต่อเจ้าของอุปกรณ์หรือผู้ดูแลระบบ</translation> <translation id="1614511179807650956">คุณอาจใช้เน็ตมือถือตามปริมาณที่อนุญาตหมดแล้ว ไปที่พอร์ทัลการเปิดใช้งาน <ph name="NAME" /> เพื่อซื้อเน็ตมือถือเพิ่มเติม</translation> <translation id="161460670679785907">ไม่พบโทรศัพท์ของคุณ</translation> <translation id="1616206807336925449">ส่วนขยายนี้ไม่จำเป็นต้องมีสิทธิ์พิเศษ</translation> @@ -533,6 +533,7 @@ <translation id="1618268899808219593">ศู&นย์ช่วยเหลือ</translation> <translation id="1620307519959413822">รหัสผ่านไม่ถูกต้อง ลองอีกครั้งหรือคลิก "ลืมรหัสผ่าน" เพื่อรีเซ็ตรหัสผ่าน</translation> <translation id="1620510694547887537">กล้องถ่ายรูป</translation> +<translation id="1621831347985899379">ระบบจะลบข้อมูลของ <ph name="DEVICE_TYPE" /></translation> <translation id="1622054403950683339">ไม่ต้องจำเครือข่าย Wi-Fi</translation> <translation id="1623132449929929218">ขณะนี้รูปภาพยังไม่พร้อมให้ใช้งาน โปรดเชื่อมต่ออินเทอร์เน็ตอีกครั้งเพื่อดูคอลเล็กชันวอลเปเปอร์</translation> <translation id="1623723619460186680">การลดแสงสีฟ้า</translation> @@ -760,6 +761,7 @@ <translation id="1877377290348678128">ป้ายกำกับ (ไม่บังคับ)</translation> <translation id="1877520246462554164">ไม่ได้รับโทเค็นการตรวจสอบสิทธิ์ โปรดออกจากระบบแล้วลงชื่อเข้าใช้อีกครั้งเพื่อลองอีกครั้ง</translation> <translation id="1877860345998737529">การกำหนดการดำเนินการด้วยสวิตช์</translation> +<translation id="1878155070920054810">ดูเหมือนว่าพลังงานของ Chromebook จะหมดก่อนการอัปเดตเสร็จสิ้น ตรวจสอบว่าได้ชาร์จอุปกรณ์ดังกล่าวอย่างถูกต้อง เพื่อไม่ให้การอัปเดตหยุดชะงัก</translation> <translation id="1879000426787380528">ลงชื่อเข้าใช้ด้วย</translation> <translation id="1880905663253319515">ลบใบรับรอง "<ph name="CERTIFICATE_NAME" />" หรือไม่</translation> <translation id="1881445033931614352">รูปแบบแป้นพิมพ์</translation> @@ -964,6 +966,7 @@ <translation id="2148219725039824548">เกิดข้อผิดพลาดขณะต่อเชื่อมพื้นที่แชร์ ไม่พบพื้นที่แชร์ที่ระบุในเครือข่าย</translation> <translation id="2148756636027685713">ฟอร์แมตเสร็จแล้ว</translation> <translation id="2148892889047469596">แคสต์แท็บ</translation> +<translation id="2149973817440762519">แก้ไขบุ๊กมาร์ก</translation> <translation id="2150139952286079145">ค้นหาปลายทาง</translation> <translation id="2150661552845026580">เพิ่ม "<ph name="EXTENSION_NAME" />" หรือไม่</translation> <translation id="2151576029659734873">ดัชนีแท็บที่ป้อนไม่ถูกต้อง</translation> @@ -1073,6 +1076,7 @@ <translation id="2270627217422354837">แลกเปลี่ยนข้อมูลกับอุปกรณ์ในโดเมน <ph name="DOMAINS" /></translation> <translation id="2272570998639520080">แก้วมาร์ตินี่</translation> <translation id="2273119997271134996">พอร์ตวิดีโอบนแท่นชาร์จมีปัญหา</translation> +<translation id="2274840746523584236">ชาร์จ Chromebook ของคุณ</translation> <translation id="2276503375879033601">เพิ่มแอปพลิเคชันอื่นๆ</translation> <translation id="2277255602909579701">คุกกี้และข้อมูลเว็บไซต์ทั้งหมด</translation> <translation id="2277769717710009150">{COUNT,plural, =1{คัดลอกแล้ว 1 รายการ}other{คัดลอกแล้ว # รายการ}}</translation> @@ -1915,6 +1919,7 @@ <translation id="3308116878371095290">หน้าเว็บนี้ไม่อนุญาตให้มีการตั้งค่าคุกกี้</translation> <translation id="3308134619352333507">ซ่อนปุ่ม</translation> <translation id="3308852433423051161">กำลังโหลด Google Assistant...</translation> +<translation id="3310640316857623290">เวลาในการตอบสนอง DNS สูงกว่าเกณฑ์ที่ยอมรับได้มาก</translation> <translation id="3311445899360743395">ระบบอาจนำข้อมูลที่เชื่อมโยงกับแอปนี้ออกจากอุปกรณ์เครื่องนี้</translation> <translation id="3312424061798279731">ภาษาที่เปิดใช้</translation> <translation id="3313622045786997898">ค่าลายเซ็นใบรับรอง</translation> @@ -1927,6 +1932,7 @@ <translation id="3323295311852517824">{NUM_FILES,plural, =0{ข้อมูลนี้มีเนื้อหาที่ละเอียดอ่อนหรือเป็นอันตราย นำเนื้อหานี้ออกแล้วลองอีกครั้ง}=1{ไฟล์นี้มีเนื้อหาที่ละเอียดอ่อนหรือเป็นอันตราย นำเนื้อหานี้ออกแล้วลองอีกครั้ง}other{ไฟล์เหล่านี้มีเนื้อหาที่ละเอียดอ่อนหรือเป็นอันตราย นำเนื้อหานี้ออกแล้วลองอีกครั้ง}}</translation> <translation id="3323521181261657960">พิเศษสุด คุณได้เวลาอยู่หน้าจอเพิ่มขึ้น</translation> <translation id="3325910708063135066">กล้องและไมโครโฟนปิดอยู่ในค่ากำหนดของระบบ Mac</translation> +<translation id="3327050066667856415">Chromebooks ถูกออกแบบมาเพื่อความปลอดภัย อุปกรณ์ของคุณได้รับการปกป้องจากมัลแวร์โดยอัตโนมัติ โดยไม่ต้องใช้ซอฟต์แวร์เพิ่มเติม</translation> <translation id="3328489342742826322">การคืนค่าข้อมูลสำรองจะลบแอปพลิเคชันและข้อมูลของ Linux ที่มีอยู่ในโฟลเดอร์ไฟล์ Linux</translation> <translation id="3331321258768829690">(<ph name="UTCOFFSET" />) <ph name="LONGTZNAME" /> (<ph name="EXEMPLARCITY" />)</translation> <translation id="3331974543021145906">ข้อมูลแอป</translation> @@ -2116,6 +2122,7 @@ <translation id="3556433843310711081">ผู้จัดการสามารถเลิกบล็อกเว็บไซต์ให้คุณ</translation> <translation id="3557101512409028104">ตั้งค่าการจำกัดเว็บไซต์และจำกัดเวลาอยู่หน้าจอด้วย Family Link</translation> <translation id="3559262020195162408">ติดตั้งนโยบายในอุปกรณ์นี้ไม่สำเร็จ</translation> +<translation id="3559533181353831840">ใช้เวลาอีก <ph name="TIME_LEFT" /></translation> <translation id="3560034655160545939">&ตรวจตัวสะกด</translation> <translation id="3562423906127931518">ขั้นตอนนี้อาจใช้เวลาสักครู่ กำลังตั้งค่าคอนเทนเนอร์ Linux</translation> <translation id="3563432852173030730">ไม่สามารถดาวน์โหลดแอปพลิเคชันคีออสก์</translation> @@ -2158,6 +2165,7 @@ <translation id="3602290021589620013">ดูตัวอย่าง</translation> <translation id="3603622770190368340">รับใบรับรองเครือข่าย</translation> <translation id="3604713164406837697">เปลี่ยนวอลเปเปอร์</translation> +<translation id="360565022852130722">เครือข่าย WiFi มีการรักษาความปลอดภัยด้วยโปรโตคอล WEP 802.1x ที่ไม่รัดกุม</translation> <translation id="3605780360466892872">บัตเทิ่นดาวน์</translation> <translation id="3608576286259426129">ตัวอย่างภาพผู้ใช้</translation> <translation id="3610369246614755442">ต้องซ่อมพัดลมของแท่นชาร์จ</translation> @@ -2194,6 +2202,7 @@ <translation id="3639220004740062347">ออกจากโหมดผู้อ่าน</translation> <translation id="3640214691812501263">เพิ่ม "<ph name="EXTENSION_NAME" />" สำหรับ <ph name="USER_NAME" /> ไหม</translation> <translation id="3640613767643722554">สอนให้ Assistant รู้จักเสียงของคุณ</translation> +<translation id="3643014427358482789"><ph name="DOMAIN" /> กำลังปิดใช้การแก้ไขข้อบกพร่อง ADB ซึ่งจะเป็นการรีเซ็ต <ph name="DEVICE_TYPE" /> ของคุณ สำรองข้อมูลไฟล์ก่อนที่จะรีสตาร์ท</translation> <translation id="3645372836428131288">เลื่อนนิ้วเล็กน้อยเพื่อจับภาพส่วนต่างๆ ของลายนิ้วมือ</translation> <translation id="3647998456578545569">{COUNT,plural, =1{ได้รับ <ph name="ATTACHMENTS" />จาก <ph name="DEVICE_NAME" />}other{ได้รับ <ph name="ATTACHMENTS" />จาก <ph name="DEVICE_NAME" />}}</translation> <translation id="3648348069317717750">ตรวจพบ <ph name="USB_DEVICE_NAME" /></translation> @@ -2282,6 +2291,7 @@ <translation id="3732857534841813090">ข้อมูลที่เกี่ยวข้องของ Google Assistant</translation> <translation id="3733127536501031542">เซิร์ฟเวอร์ SSL ที่มีการยกระดับความปลอดภัย</translation> <translation id="3735740477244556633">จัดเรียงตาม</translation> +<translation id="3738632186060045350">ระบบจะลบข้อมูลอุปกรณ์ของ <ph name="DEVICE_TYPE" /> ใน 24 ชั่วโมง</translation> <translation id="3738924763801731196"><ph name="OID" />:</translation> <translation id="3739254215541673094">เปิด <ph name="APPLICATION" /> ไหม</translation> <translation id="3742055079367172538">ภาพหน้าจอที่บันทึก</translation> @@ -2469,6 +2479,7 @@ <translation id="3937734102568271121">แปลภาษา<ph name="LANGUAGE" />ทุกครั้ง</translation> <translation id="3938128855950761626">อุปกรณ์จากผู้ให้บริการ <ph name="VENDOR_ID" /></translation> <translation id="3940233957883229251">เปิดใช้การทำซ้ำอัตโนมัติ</translation> +<translation id="3941014780699102620">แก้ไขโฮสต์ไม่สำเร็จ</translation> <translation id="3941565636838060942">หากต้องการซ่อนการเข้าถึงโปรแกรมนี้ คุณต้องถอนการติดตั้งโปรแกรมโดยใช้ <ph name="CONTROL_PANEL_APPLET_NAME" /> ในแผงควบคุม @@ -2631,6 +2642,7 @@ <translation id="413121957363593859">คอมโพเนนต์</translation> <translation id="4131410914670010031">ขาวดำ</translation> <translation id="413193092008917129">กิจวัตรการวินิจฉัยเครือข่าย</translation> +<translation id="4132183752438206707">ค้นหาแอปบน Google Play Store</translation> <translation id="4133076602192971179">เปิดแอปเพื่อเปลี่ยนรหัสผ่าน</translation> <translation id="4136203100490971508">แสงตอนกลางคืนจะปิดโดยอัตโนมัติเมื่อพระอาทิตย์ขึ้น</translation> <translation id="41365691917097717">การดำเนินการต่อจะเป็นการเปิดใช้การแก้ไขข้อบกพร่อง ADB ของการสร้างและทดสอบแอป Android โปรดทราบว่าการดำเนินการนี้จะอนุญาตให้ติดตั้งแอป Android ที่ยังไม่ได้รับการยืนยันจาก Google และต้องรีเซ็ตเป็นค่าเริ่มต้นเพื่อปิดใช้</translation> @@ -2880,6 +2892,8 @@ <translation id="4479877282574735775">กำลังกำหนดค่าเครื่องเสมือน อาจใช้เวลาสักครู่</translation> <translation id="4480590691557335796">Chrome ค้นหาซอฟต์แวร์ที่เป็นอันตรายในคอมพิวเตอร์และนำซอฟต์แวร์นั้นออกได้</translation> <translation id="4481530544597605423">อุปกรณ์ที่ไม่ได้จับคู่</translation> +<translation id="4483049906298469269">ใช้คำสั่ง ping กับเกตเวย์เครือข่ายที่ไม่ใช่ค่าเริ่มต้นไม่สำเร็จ</translation> +<translation id="4487489714832036847">Chromebooks จะใช้งานแอปแทนซอฟต์แวร์ดั้งเดิม รับแอปเพื่อประสิทธิภาพการทำงาน ความบันเทิง และอื่นๆ</translation> <translation id="4488502501195719518">ล้างข้อมูลทั้งหมดไหม</translation> <translation id="4493468155686877504">แนะนำ (<ph name="INSTALL_SIZE" />)</translation> <translation id="4495419450179050807">ไม่แสดงในหน้านี้อีก</translation> @@ -2930,6 +2944,7 @@ <translation id="4546692474302123343">การป้อนข้อมูลด้วยเสียงของ Google Assistant</translation> <translation id="4547659257713117923">ไม่มีแท็บจากอุปกรณ์อื่น</translation> <translation id="4547672827276975204">ตั้งค่าโดยอัตโนมัติ</translation> +<translation id="4548483925627140043">ไม่พบสัญญาณ</translation> <translation id="4549791035683739768">คีย์ความปลอดภัยไม่มีลายนิ้วมือบันทึกไว้</translation> <translation id="4551763574344810652">กด <ph name="MODIFIER_KEY_DESCRIPTION" /> เพื่อเลิกทำ</translation> <translation id="4552089082226364758">Flash</translation> @@ -2969,6 +2984,7 @@ <translation id="4582563038311694664">รีเซ็ตการตั้งค่าทั้งหมด</translation> <translation id="4585793705637313973">แก้ไขหน้า</translation> <translation id="4586275095964870617"><ph name="URL" /> เปิดในเบราว์เซอร์สำรองไม่ได้ โปรดติดต่อผู้ดูแลระบบของคุณ</translation> +<translation id="458794348635939462">แก้ไขทุกโฮสต์ไม่สำเร็จ</translation> <translation id="4589713469967853491">เขียนบันทึกไปยังไดเรกทอรี "การดาวน์โหลด" เรียบร้อยแล้ว</translation> <translation id="4590324241397107707">พื้นที่จัดเก็บฐานข้อมูล</translation> <translation id="4592891116925567110">แอปการวาดด้วยสไตลัส</translation> @@ -3352,6 +3368,7 @@ <translation id="5089810972385038852">รัฐ</translation> <translation id="5094721898978802975">สื่อสารกับแอปพลิเคชันการประสานงานที่มาพร้อมเครื่อง</translation> <translation id="5097002363526479830">ไม่สามารถเชื่อมต่อเครือข่าย "<ph name="NAME" />": <ph name="DETAILS" /></translation> +<translation id="5097649414558628673">เครื่องมือ: <ph name="PRINT_NAME" /></translation> <translation id="5097874180538493929">คลิกอัตโนมัติเมื่อเคอร์เซอร์หยุด</translation> <translation id="5101042277149003567">เปิดบุ๊กมาร์กทั้งหมด</translation> <translation id="5101839224773798795">คลิกอัตโนมัติเมื่อเคอร์เซอร์หยุด</translation> @@ -3570,6 +3587,7 @@ <translation id="5370819323174483825">&โหลดซ้ำ</translation> <translation id="5372529912055771682">รุ่นของระบบปฏิบัติการนี้ไม่สนับสนุนโหมดการลงทะเบียนที่กำหนด โปรดตรวจสอบให้แน่ใจว่าคุณกำลังใช้งานรุ่นใหม่ล่าสุดและลองอีกครั้ง</translation> <translation id="5372579129492968947">เลิกตรึงส่วนขยาย</translation> +<translation id="5372659122375744710">เครือข่าย WiFi ไม่ปลอดภัย</translation> <translation id="5376169624176189338">คลิกเพื่อย้อนกลับ กดค้างเพื่อดูประวัติการเข้าชม</translation> <translation id="5376931455988532197">ไฟล์ใหญ่เกินไป</translation> <translation id="5377721922656071359">{COUNT,plural, =1{ส่ง <ph name="ATTACHMENTS" />ไปยัง <ph name="DEVICE_NAME" /> เรียบร้อยแล้ว}other{ส่ง <ph name="ATTACHMENTS" />ไปยัง <ph name="DEVICE_NAME" /> เรียบร้อยแล้ว}}</translation> @@ -3599,6 +3617,7 @@ <translation id="5414566801737831689">อ่านไอคอนของเว็บไซต์ที่คุณเข้าชม</translation> <translation id="5417312524372586921">ธีมของเบราว์เซอร์</translation> <translation id="5419405654816502573">Voice Match</translation> +<translation id="5420274697768050645">ต้องการรหัสผ่านในการปลดล็อกอุปกรณ์เพื่อเพิ่มความปลอดภัย</translation> <translation id="5420438158931847627">กำหนดความคมชัดของข้อความและรูปภาพ</translation> <translation id="5422221874247253874">จุดเข้าใช้งาน</translation> <translation id="5422781158178868512">ขออภัย ระบบไม่รู้จักอุปกรณ์จัดเก็บข้อมูลภายนอกของคุณ</translation> @@ -3723,6 +3742,7 @@ <translation id="5548606607480005320">การตรวจสอบความปลอดภัย</translation> <translation id="5551573675707792127">แป้นพิมพ์และการป้อนข้อความ</translation> <translation id="5553089923092577885">การจับคู่นโยบายใบรับรอง</translation> +<translation id="5554403733534868102">หลังจากนี้จะไม่ต้องรอการอัปเดตอีก</translation> <translation id="5554489410841842733">ไอคอนนี้จะมองเห็นได้เมื่อส่วนขยายสามารถทำงานบนหน้าปัจจุบันได้</translation> <translation id="5554720593229208774">ผู้ออกใบรับรองอีเมล</translation> <translation id="5556459405103347317">โหลดใหม่</translation> @@ -4136,6 +4156,7 @@ <translation id="6061882183774845124">ส่งลิงก์ไปที่อุปกรณ์ของคุณ</translation> <translation id="6064217302520318294">ล็อกหน้าจอ</translation> <translation id="6065289257230303064">แอตทริบิวต์ไดเรกทอรีหัวเรื่องของใบรับรอง</translation> +<translation id="6069464830445383022">ใช้บัญชี Google ของคุณในการลงชื่อเข้าใช้ Chromebook</translation> <translation id="6069671174561668781">ตั้งค่าวอลเปเปอร์</translation> <translation id="6071181508177083058">ยืนยันรหัสผ่าน</translation> <translation id="6071576563962215370">ระบบสร้างการล็อกแอตทริบิวต์เวลาการติดตั้งของอุปกรณ์ไม่สำเร็จ</translation> @@ -4178,6 +4199,7 @@ <translation id="6104311680260824317">นำอุปกรณ์เข้าร่วมโดเมนไม่ได้ เซิร์ฟเวอร์ไม่รองรับประเภทการเข้ารหัส Kerberos ที่ระบุ ดูการตั้งค่าการเข้ารหัสได้จาก "ตัวเลือกเพิ่มเติม"</translation> <translation id="6104796831253957966">คิวเครื่องพิมพ์เต็ม</translation> <translation id="6105994589138235234">การซิงค์ของเบราว์เซอร์ Chrome</translation> +<translation id="6108689792487843350">เข้าถึงเกตเวย์ไม่ได้</translation> <translation id="6111972606040028426">เปิดใช้ Google Assistant</translation> <translation id="6112294629795967147">แตะเพื่อปรับขนาด</translation> <translation id="6112727384379533756">เพิ่มตั๋ว</translation> @@ -4238,6 +4260,7 @@ <translation id="6178664161104547336">เลือกใบรับรอง</translation> <translation id="6181431612547969857">การดาวน์โหลดถูกบล็อก</translation> <translation id="6185132558746749656">ตำแหน่งของอุปกรณ์</translation> +<translation id="6191293864534840972">เนมเซิร์ฟเวอร์ผิดรูปแบบ</translation> <translation id="6195446518998936840">หากต้องการตั้งค่าการควบคุมโดยผู้ปกครอง บุตรหลานจะต้องมีบัญชี Google ที่คุณจะช่วยจัดการให้ คุณตั้งค่าขีดจำกัดเวลาอยู่หน้าจอ อนุมัติหรือบล็อกเว็บไซต์ และอื่นๆ อีกมากมายได้ด้วยแอป Family Link</translation> <translation id="6195693561221576702">ตั้งค่าอุปกรณ์นี้ในโหมดสาธิตออฟไลน์ไม่ได้</translation> <translation id="6196640612572343990">บล็อกคุกกี้ของบุคคลที่สาม</translation> @@ -4451,6 +4474,7 @@ <translation id="6451591602925140504">{NUM_PAGES,plural, =0{<ph name="PAGE_TITLE" />}=1{<ph name="PAGE_TITLE" /> และอีก 1 แท็บ}other{<ph name="PAGE_TITLE" /> และอีก # แท็บ}}</translation> <translation id="6451689256222386810">หากคุณลืมรหัสผ่านหรือต้องการเปลี่ยนการตั้งค่านี้ ให้<ph name="BEGIN_LINK" />รีเซ็ตการซิงค์<ph name="END_LINK" /></translation> <translation id="6452181791372256707">ปฏิเสธ</translation> +<translation id="6452251728599530347">สมบูรณ์แล้ว <ph name="PERCENT" /></translation> <translation id="6452961788130242735">พบปัญหาเกี่ยวกับเครือข่ายหรือขอบเขตไม่ดี</translation> <translation id="6455264371803474013">ในบางเว็บไซต์</translation> <translation id="6455894534188563617">และโฟลเดอร์ใหม่</translation> @@ -4507,6 +4531,7 @@ <ph name="EVENT_NAME" /></translation> <translation id="6520876759015997832">ผลการค้นหา <ph name="LIST_POSITION" /> จาก <ph name="LIST_SIZE" /> รายการ: <ph name="SEARCH_RESULT_TEXT" /> กด Enter เพื่อไปยังส่วนนี้</translation> <translation id="652492607360843641">คุณเชื่อมต่ออยู่กับเครือข่าย <ph name="NETWORK_TYPE" /></translation> +<translation id="6527081081771465939">โปรโตคอลรักษาความปลอดภัย WiFi ที่ไม่รู้จัก</translation> <translation id="6527303717912515753">แชร์</translation> <translation id="6528513914570774834">อนุญาตให้ผู้ใช้อุปกรณ์นี้คนอื่นๆ ใช้เครือข่ายนี้ได้</translation> <translation id="652948702951888897">ประวัติการเข้าชมใน Chrome</translation> @@ -4623,6 +4648,7 @@ <translation id="6680442031740878064">พร้อมใช้งาน: <ph name="AVAILABLE_SPACE" /></translation> <translation id="6680650203439190394">ความเร็ว</translation> <translation id="6681668084120808868">ถ่ายภาพ</translation> +<translation id="6684827949542560880">กำลังดาวน์โหลดอัปเดตล่าสุด</translation> <translation id="668599234725812620">เปิด Google Play</translation> <translation id="6686490380836145850">ปิดแท็บทางด้านขวา</translation> <translation id="6686817083349815241">บันทึกรหัสผ่าน</translation> @@ -4732,6 +4758,7 @@ <translation id="6812841287760418429">เก็บการเปลี่ยนแปลงไว้</translation> <translation id="6817174620439930047">ถามเมื่อเว็บไซต์ต้องการใช้ข้อความเฉพาะของระบบในการเข้าถึงอุปกรณ์ MIDI (แนะนำ)</translation> <translation id="6818198425579322765">ภาษาปลายทางของหน้า</translation> +<translation id="6818802132960437751">ระบบป้องกันไวรัสในตัว</translation> <translation id="682123305478866682">แคสต์เดสก์ท็อป</translation> <translation id="6823174134746916417">การแตะเพื่อคลิกทัชแพด</translation> <translation id="6823506025919456619">คุณต้องลงชื่อเข้าใช้ Chrome เพื่อดูอุปกรณ์ของคุณ</translation> @@ -5378,6 +5405,7 @@ <translation id="7631205654593498032">เมื่อเชื่อมต่ออุปกรณ์ คุณยินยอมให้ <ph name="DEVICE_TYPE" /> ดำเนินการดังนี้</translation> <translation id="7631887513477658702">&เปิดไฟล์ประเภทนี้เสมอ</translation> <translation id="7632948528260659758">แอปคีออสก์ต่อไปนี้ไม่สามารถอัปเดตได้:</translation> +<translation id="7633724038415831385">คุณจะรอการอัปเดตเพียงแค่ครั้งนี้เท่านั้น การอัปเดตซอฟต์แวร์บน Chromebooks จะเกิดขึ้นในเบื้องหลัง</translation> <translation id="7634566076839829401">เกิดข้อผิดพลาดบางอย่าง โปรดลองอีกครั้ง</translation> <translation id="763632859238619983">ไม่อนุญาตให้เว็บไซต์ใดก็ตามติดตั้งเครื่องจัดการการชำระเงิน</translation> <translation id="7636919061354591437">ติดตั้งในอุปกรณ์นี้</translation> @@ -5656,6 +5684,7 @@ <translation id="7933314993013528982">{NUM_TABS,plural, =1{เลิกซ่อนเว็บไซต์}other{เลิกซ่อนเว็บไซต์}}</translation> <translation id="7933634003144813719">จัดการโฟลเดอร์ที่แชร์</translation> <translation id="793531125873261495">เกิดข้อผิดพลาดขณะดาวน์โหลดเครื่องเสมือน โปรดลองอีกครั้ง</translation> +<translation id="7936303884198020182">ไม่พบเนมเซิร์ฟเวอร์</translation> <translation id="7938594894617528435">ออฟไลน์อยู่ในปัจจุบัน</translation> <translation id="7939062555109487992">ตัวเลือกขั้นสูง</translation> <translation id="7939412583708276221">เก็บเอาไว้ ไม่ว่าอย่างไรก็ตาม</translation> @@ -5899,6 +5928,7 @@ <translation id="8226742006292257240">ด้านล่างนี้คือรหัสผ่าน TPM ที่สร้างขึ้นโดยการสุ่มและได้รับการกำหนดให้กับคอมพิวเตอร์ของคุณ:</translation> <translation id="8227119283605456246">แนบไฟล์</translation> <translation id="8230134520748321204">บันทึกรหัสผ่านสำหรับ <ph name="ORIGIN" /> ไหม</translation> +<translation id="8230672074305416752">ใช้คำสั่ง ping กับเกตเวย์เครือข่ายเริ่มต้นไม่สำเร็จ</translation> <translation id="8234795456569844941">โปรดช่วยวิศวกรของเราแก้ปัญหานี้ แจ้งให้เราทราบถึงสิ่งที่เกิดขึ้นก่อนที่คุณจะได้รับข้อความแสดงข้อผิดพลาดของโปรไฟล์</translation> <translation id="8236917170563564587">แชร์แท็บนี้แทน</translation> <translation id="8237647586961940482">สีชมพูเข้มและสีแดง</translation> @@ -5959,6 +5989,7 @@ <translation id="8288032458496410887">ถอนการติดตั้ง <ph name="APP" />...</translation> <translation id="8289128870594824098">ขนาดดิสก์</translation> <translation id="8291967909914612644">ประเทศผู้ให้บริการหน้าแรก</translation> +<translation id="8293206222192510085">เพิ่มบุ๊กมาร์ก</translation> <translation id="8294431847097064396">แหล่งที่มา</translation> <translation id="8297006494302853456">อ่อน</translation> <translation id="8299319456683969623">ขณะนี้คุณอยู่ในสถานะออฟไลน์</translation> @@ -6008,6 +6039,7 @@ <translation id="8363095875018065315">เสถียร</translation> <translation id="8363142353806532503">บล็อกไมโครโฟน</translation> <translation id="8363763184161554204">อนุญาตการเข้าถึง<ph name="PERMISSION" /></translation> +<translation id="8364946094152050673">เนมเซิร์ฟเวอร์ว่างเปล่า</translation> <translation id="8366396658833131068">กู้คืนการเชื่อมต่อเครือข่ายของคุณแล้ว โปรดเลือกเครือข่ายอื่นหรือกดปุ่ม "ดำเนินการต่อ" ที่ด้านล่างเพื่อเปิดแอปคีออสก์</translation> <translation id="8368027906805972958">อุปกรณ์ที่ไม่รู้จักหรือไม่รองรับ (<ph name="DEVICE_ID" />)</translation> <translation id="8368859634510605990">&เปิดบุ๊กมาร์กทั้งหมด</translation> @@ -6093,8 +6125,10 @@ <translation id="8472623782143987204">การสนับสนุนฮาร์ดแวร์</translation> <translation id="8473863474539038330">ที่อยู่และอื่นๆ</translation> <translation id="8475313423285172237">โปรแกรมอื่นในคอมพิวเตอร์ของคุณเพิ่มส่วนขยายที่อาจเปลี่ยนวิธีการทำงานของ Chrome</translation> +<translation id="8475690821716466388">เครือข่าย WiFi มีการรักษาความปลอดภัยด้วยโปรโตคอล WEP PSK ที่ไม่รัดกุม</translation> <translation id="8477241577829954800">ถูกแทนที่</translation> <translation id="8477384620836102176">&ทั่วไป</translation> +<translation id="8477551185774834963">เวลาในการตอบสนอง DNS สูงกว่าเกณฑ์ที่ยอมรับได้เล็กน้อย</translation> <translation id="8480082892550707549">แม้ว่าคุณจะเคยดาวน์โหลดไฟล์จากเว็บไซต์นี้มาก่อน เว็บไซต์อาจไม่ปลอดภัยชั่วคราว (ถูกแฮ็ก) ลองดาวน์โหลดไฟล์นี้ในภายหลัง</translation> <translation id="8480869669560681089">อุปกรณ์ที่ไม่รู้จักจาก <ph name="VENDOR_NAME" /></translation> <translation id="8481187309597259238">ยืนยันสิทธิ์ USB</translation> @@ -6146,6 +6180,7 @@ <translation id="8546930481464505581">ปรับแต่ง Touch Bar</translation> <translation id="8547013269961688403">เปิดใช้แว่นขยายทั้งหน้าจอ</translation> <translation id="85486688517848470">กดแป้น "ค้นหา" ค้างไว้เพื่อเปลี่ยนการทำงานของแป้นแถวบนสุด</translation> +<translation id="8549316893834449916">คุณจะใช้บัญชี Google เพื่อลงชื่อเข้าใช้ Chromebook ซึ่งเป็นบัญชีเดียวกันกับ Gmail ไดรฟ์ YouTube และอื่นๆ</translation> <translation id="8551388862522347954">ใบอนุญาต</translation> <translation id="8551588720239073785">การตั้งค่าวันที่และเวลา</translation> <translation id="8553342806078037065">จัดการบุคคลอื่นๆ</translation> @@ -6284,6 +6319,7 @@ <translation id="8720200012906404956">กำลังมองหาเครือข่ายมือถือ <ph name="BEGIN_LINK" />ดูข้อมูลเพิ่มเติม<ph name="END_LINK" /></translation> <translation id="8720816553731218127">การเริ่มต้นแอตทริบิวต์เวลาการติดตั้งหมดเวลาแล้ว</translation> <translation id="8722912030556880711">ส่งข้อมูลการใช้งานและการวินิจฉัย ปัจจุบันอุปกรณ์นี้ส่งข้อมูลการวินิจฉัย อุปกรณ์ และการใช้งานแอปไปยัง Google โดยอัตโนมัติ ซึ่งจะช่วยปรับปรุงความเสถียรของแอปและระบบ และอื่นๆ ข้อมูลที่รวบรวมมาบางส่วนจะมีประโยชน์ต่อแอปและพาร์ทเนอร์ของ Google ด้วย เช่น นักพัฒนาซอฟต์แวร์ Android หากเปิดการตั้งค่ากิจกรรมเพิ่มเติมบนเว็บและแอปไว้ ระบบอาจบันทึกข้อมูลนี้ไว้ในบัญชี Google ของคุณ <ph name="BEGIN_LINK2" />ดูข้อมูลเพิ่มเติม<ph name="END_LINK2" /></translation> +<translation id="8723108084122415655">เครือข่ายที่ไม่ใช่ค่าเริ่มต้นสูงกว่าเกณฑ์เวลาในการตอบสนอง</translation> <translation id="8724405322205516354">เมื่อเห็นไอคอนนี้ ให้ใช้ลายนิ้วมือเพื่อระบุตัวตนหรือเพื่ออนุมัติการซื้อ</translation> <translation id="8724409975248965964">เพิ่มลายนิ้วมือแล้ว</translation> <translation id="8724859055372736596">&แสดงในโฟลเดอร์</translation> @@ -6461,6 +6497,7 @@ <translation id="8909833622202089127">เว็บไซต์กำลังติดตามตำแหน่งของคุณ</translation> <translation id="8910146161325739742">แชร์หน้าจอของคุณ</translation> <translation id="8910222113987937043">การเปลี่ยนแปลงในบุ๊กมาร์ก ประวัติการเข้าชม รหัสผ่าน และการตั้งค่าอื่นๆ จะไม่ซิงค์กับบัญชี Google อีกต่อไป แต่ข้อมูลที่มีอยู่จะยังจัดเก็บไว้ในบัญชี Google และสามารถจัดการได้ใน<ph name="BEGIN_LINK" />แดชบอร์ด Google<ph name="END_LINK" /></translation> +<translation id="8910721771319628100">เครือข่ายเริ่มต้นสูงกว่าเกณฑ์เวลาในการตอบสนอง</translation> <translation id="8912362522468806198">บัญชี Google</translation> <translation id="8912793549644936705">ยืด</translation> <translation id="8912810933860534797">เปิดใช้การสแกนอัตโนมัติ</translation>
diff --git a/chrome/app/resources/generated_resources_tr.xtb b/chrome/app/resources/generated_resources_tr.xtb index 844c4c9be..8cfc02d1 100644 --- a/chrome/app/resources/generated_resources_tr.xtb +++ b/chrome/app/resources/generated_resources_tr.xtb
@@ -524,7 +524,6 @@ <translation id="1608668830839595724">Seçilen öğeler için daha fazla işlem</translation> <translation id="161042844686301425">Camgöbeği</translation> <translation id="1611432201750675208">Cihazınız kilitlendi</translation> -<translation id="1611584202130317952">Temel hazırlık akışı kesildi. Lütfen tekrar deneyin veya cihaz sahibiyle ya da yöneticisiyle iletişime geçin.</translation> <translation id="1614511179807650956">Mobil veri kullanım hakkınızı doldurmuş olabilirsiniz. Daha fazla veri satın almak için <ph name="NAME" /> etkinleştirme portalını ziyaret edin.</translation> <translation id="161460670679785907">Telefonunuz algılanamadı</translation> <translation id="1616206807336925449">Bu uzantı herhangi bir özel izin gerektirmiyor.</translation> @@ -964,6 +963,7 @@ <translation id="2148219725039824548">Paylaşım eklenirken hata oluştu. Belirtilen paylaşım ağda bulunamadı.</translation> <translation id="2148756636027685713">Biçimlendirme tamamlandı</translation> <translation id="2148892889047469596">Sekmeyi yayınla</translation> +<translation id="2149973817440762519">Yer İşaretini Düzenle</translation> <translation id="2150139952286079145">Arama hedefleri</translation> <translation id="2150661552845026580">"<ph name="EXTENSION_NAME" />" eklensin mi?</translation> <translation id="2151576029659734873">Geçersiz sekme dizini girildi.</translation> @@ -5959,6 +5959,7 @@ <translation id="8288032458496410887"><ph name="APP" /> Uygulamasının Yüklemesini Kaldır...</translation> <translation id="8289128870594824098">Disk boyutu</translation> <translation id="8291967909914612644">Ev sağlayıcısının ülkesi</translation> +<translation id="8293206222192510085">Yer İşareti Ekle</translation> <translation id="8294431847097064396">Kaynak</translation> <translation id="8297006494302853456">Zayıf</translation> <translation id="8299319456683969623">Şu anda çevrimdışısınız.</translation>
diff --git a/chrome/app/resources/generated_resources_uk.xtb b/chrome/app/resources/generated_resources_uk.xtb index ab38790..74f6d65 100644 --- a/chrome/app/resources/generated_resources_uk.xtb +++ b/chrome/app/resources/generated_resources_uk.xtb
@@ -71,6 +71,7 @@ <translation id="1070705170564860382">Альтернативний веб-переглядач відкриється через секунд <ph name="COUNTDOWN_SECONDS" /> с</translation> <translation id="1071917609930274619">Шифрування даних</translation> <translation id="1072700771426194907">Виявлено пристрій USB</translation> +<translation id="107278043869924952">Використовувати PIN-код і пароль</translation> <translation id="1076176485976385390">Оглядати сторінки за допомогою текстового курсора</translation> <translation id="1076698951459398590">Увімкнути тему</translation> <translation id="1076818208934827215">Microsoft Internet Explorer</translation> @@ -524,7 +525,6 @@ <translation id="1608668830839595724">Додаткові дії для вибраних елементів</translation> <translation id="161042844686301425">Бірюзовий</translation> <translation id="1611432201750675208">Пристрій заблоковано</translation> -<translation id="1611584202130317952">Перевірку перервано. Повторіть спробу або зв’яжіться з власником пристрою чи адміністратором.</translation> <translation id="1614511179807650956">Можливо, ви використали ліміт мобільного передавання даних. Перейдіть на портал активації служби "<ph name="NAME" />", щоб придбати більший обсяг даних</translation> <translation id="161460670679785907">Не вдалося виявити телефон</translation> <translation id="1616206807336925449">Для цього розширення не потрібні спеціальні дозволи.</translation> @@ -533,6 +533,7 @@ <translation id="1618268899808219593">Довідковий центр</translation> <translation id="1620307519959413822">Неправильний пароль. Повторіть спробу або натисніть "Забули пароль?", щоб скинути його.</translation> <translation id="1620510694547887537">Камера</translation> +<translation id="1621831347985899379">Дані пристрою <ph name="DEVICE_TYPE" /> буде видалено</translation> <translation id="1622054403950683339">Забути мережу Wi-Fi</translation> <translation id="1623132449929929218">Зображення наразі недоступні. Щоб переглянути колекції фонових малюнків, підключіться до Інтернету знову.</translation> <translation id="1623723619460186680">Зменшення блакитного світла</translation> @@ -760,6 +761,7 @@ <translation id="1877377290348678128">Мітка (необов'язково)</translation> <translation id="1877520246462554164">Не вдалось отримати маркер автентифікації. Щоб повторити спробу, вийдіть і знову ввійдіть в обліковий запис.</translation> <translation id="1877860345998737529">Призначення перемикача для дії</translation> +<translation id="1878155070920054810">Пристрій Chromebook може розрядитись до того, як завершиться оновлення. Підключіть його до живлення, щоб уникнути переривання процесу.</translation> <translation id="1879000426787380528">Увійдіть як</translation> <translation id="1880905663253319515">Видалити сертифікат "<ph name="CERTIFICATE_NAME" />"?</translation> <translation id="1881445033931614352">Розкладка клавіатури</translation> @@ -964,6 +966,7 @@ <translation id="2148219725039824548">Помилка підключення спільного доступу. Указаний пристрій не знайдено в мережі.</translation> <translation id="2148756636027685713">Форматування закінчено</translation> <translation id="2148892889047469596">Транслювати вкладку</translation> +<translation id="2149973817440762519">Редагувати закладку</translation> <translation id="2150139952286079145">Пошук місць призначення</translation> <translation id="2150661552845026580">Додати "<ph name="EXTENSION_NAME" />"?</translation> <translation id="2151576029659734873">Введено недійсний індекс вкладки.</translation> @@ -1073,6 +1076,7 @@ <translation id="2270627217422354837">Обмінюватися даними з будь-яким пристроєм у доменах: <ph name="DOMAINS" /></translation> <translation id="2272570998639520080">Келих мартіні</translation> <translation id="2273119997271134996">Проблема з відеопортом док-станції</translation> +<translation id="2274840746523584236">Зарядіть Chromebook</translation> <translation id="2276503375879033601">Додати інші програми</translation> <translation id="2277255602909579701">Усі файли сookie та дані із сайтів</translation> <translation id="2277769717710009150">{COUNT,plural, =1{1 елемент скопійовано}one{# елемент скопійовано}few{# елементи скопійовано}many{# елементів скопійовано}other{# елемента скопійовано}}</translation> @@ -1915,6 +1919,7 @@ <translation id="3308116878371095290">Цій сторінці було відмовлено в збереженні файлів cookie.</translation> <translation id="3308134619352333507">Кнопка "Сховати"</translation> <translation id="3308852433423051161">Завантажується Google Асистент…</translation> +<translation id="3310640316857623290">Затримка DNS значно довша, ніж дозволено</translation> <translation id="3311445899360743395">Дані, пов'язані з цим додатком, може бути видалено з пристрою.</translation> <translation id="3312424061798279731">Активні мови</translation> <translation id="3313622045786997898">Значення підпису сертифіката</translation> @@ -1927,6 +1932,7 @@ <translation id="3323295311852517824">{NUM_FILES,plural, =0{Ці дані містять конфіденційний або небезпечний контент. Видаліть його та повторіть спробу.}=1{Цей файл містить конфіденційний або небезпечний контент. Видаліть такий контент і повторіть спробу.}one{Ці файли містять конфіденційний або небезпечний контент. Видаліть його та повторіть спробу.}few{Ці файли містять конфіденційний або небезпечний контент. Видаліть його та повторіть спробу.}many{Ці файли містять конфіденційний або небезпечний контент. Видаліть його та повторіть спробу.}other{Ці файли містять конфіденційний або небезпечний контент. Видаліть його та повторіть спробу.}}</translation> <translation id="3323521181261657960">Бонус! Подовжено час використання пристрою</translation> <translation id="3325910708063135066">Камеру та мікрофон вимкнено в параметрах системи Mac</translation> +<translation id="3327050066667856415">Безпека комп'ютерів Chromebook – наша основна мета. Ваш пристрій має автоматичний захист від зловмисного програмного забезпечення, тому вам не потрібно встановлювати інші додатки.</translation> <translation id="3328489342742826322">Якщо відновити резервну копію, буде видалено наявні додатки й дані Linux у папці з файлами Linux.</translation> <translation id="3331321258768829690">(<ph name="UTCOFFSET" />) <ph name="LONGTZNAME" /> (<ph name="EXEMPLARCITY" />)</translation> <translation id="3331974543021145906">Про додаток</translation> @@ -2116,6 +2122,7 @@ <translation id="3556433843310711081">Адміністратор може розблокувати його</translation> <translation id="3557101512409028104">Установіть обмеження для веб-сайтів і часу використання пристрою в додатку Family Link</translation> <translation id="3559262020195162408">Не вдалося встановити політику на пристрій.</translation> +<translation id="3559533181353831840">Залишилося приблизно <ph name="TIME_LEFT" /></translation> <translation id="3560034655160545939">&Перевірка орфографії</translation> <translation id="3562423906127931518">Це може тривати кілька хвилин. Налаштовується контейнер Linux.</translation> <translation id="3563432852173030730">Не вдалося завантажити додаток для терміналів.</translation> @@ -2158,6 +2165,7 @@ <translation id="3602290021589620013">Попередній перегляд</translation> <translation id="3603622770190368340">Отримати сертифікат мережі</translation> <translation id="3604713164406837697">Змінити фоновий малюнок</translation> +<translation id="360565022852130722">Мережа Wi-Fi захищена ненадійним протоколом WEP 802.1x</translation> <translation id="3605780360466892872">Консерватор</translation> <translation id="3608576286259426129">Попередній перегляд зображення користувача</translation> <translation id="3610369246614755442">Вентилятор док-станції несправний</translation> @@ -2194,6 +2202,7 @@ <translation id="3639220004740062347">Вийти з режиму читання</translation> <translation id="3640214691812501263">Додати розширення <ph name="EXTENSION_NAME" /> для користувача <ph name="USER_NAME" />?</translation> <translation id="3640613767643722554">Навчіть Асистент розпізнавати ваш голос</translation> +<translation id="3643014427358482789"><ph name="DOMAIN" /> вимикає налагодження ADB, усі налаштування пристрою <ph name="DEVICE_TYPE" /> буде скинуто. Створіть резервні копії файлів, перш ніж перезапустити пристрій.</translation> <translation id="3645372836428131288">Трохи перемістіть палець, щоб зісканувати іншу частину відбитка.</translation> <translation id="3647998456578545569">{COUNT,plural, =1{<ph name="ATTACHMENTS" /> отримано з пристрою <ph name="DEVICE_NAME" />}one{<ph name="ATTACHMENTS" /> отримано з пристрою <ph name="DEVICE_NAME" />}few{<ph name="ATTACHMENTS" /> отримано з пристрою <ph name="DEVICE_NAME" />}many{<ph name="ATTACHMENTS" /> отримано з пристрою <ph name="DEVICE_NAME" />}other{<ph name="ATTACHMENTS" /> отримано з пристрою <ph name="DEVICE_NAME" />}}</translation> <translation id="3648348069317717750">Виявлено пристрій <ph name="USB_DEVICE_NAME" /></translation> @@ -2282,6 +2291,7 @@ <translation id="3732857534841813090">Інформація, пов'язана з Google Асистентом</translation> <translation id="3733127536501031542">SSL-сервер із підвищенням</translation> <translation id="3735740477244556633">Параметри сортування</translation> +<translation id="3738632186060045350">Дані пристрою <ph name="DEVICE_TYPE" /> буде видалено через 24 години</translation> <translation id="3738924763801731196"><ph name="OID" />:</translation> <translation id="3739254215541673094">Відкрити додаток <ph name="APPLICATION" />?</translation> <translation id="3742055079367172538">Знімок екрана зроблено</translation> @@ -2469,6 +2479,7 @@ <translation id="3937734102568271121">Завжди перекладати з такої мови: <ph name="LANGUAGE" /></translation> <translation id="3938128855950761626">Пристрої від постачальника <ph name="VENDOR_ID" /></translation> <translation id="3940233957883229251">Увімкнути автоповтор</translation> +<translation id="3941014780699102620">Не вдалося розпізнати хост</translation> <translation id="3941565636838060942">Щоб сховати доступ до цієї програми, потрібно видалити її за допомогою міні-додатка <ph name="CONTROL_PANEL_APPLET_NAME" /> на панелі керування. @@ -2631,6 +2642,7 @@ <translation id="413121957363593859">Компоненти</translation> <translation id="4131410914670010031">Чорно-білий</translation> <translation id="413193092008917129">Послідовності дій для діагностики мережі</translation> +<translation id="4132183752438206707">Шукайте додатки в Google Play</translation> <translation id="4133076602192971179">Щоб змінити пароль, відкрийте додаток</translation> <translation id="4136203100490971508">Нічний екран вимкнеться автоматично на світанку</translation> <translation id="41365691917097717">Якщо продовжити, буде ввімкнено налагодження ADB для створення й тестування додатків для Android. Зауважте, що цією дією ви дозволяєте встановлювати додатки для Android, які не були перевірені Google. Щоб вимкнути цю функцію, доведеться скинути налаштування.</translation> @@ -2880,6 +2892,8 @@ <translation id="4479877282574735775">Налаштовується віртуальна машина. Це може тривати кілька хвилин.</translation> <translation id="4480590691557335796">Chrome може знайти на вашому комп’ютері шкідливе програмне забезпечення й видалити його</translation> <translation id="4481530544597605423">Відключені пристрої</translation> +<translation id="4483049906298469269">Не вдалося надіслати запит ping шлюзу мережі не за умовчанням</translation> +<translation id="4487489714832036847">Замість традиційного програмного забезпечення на пристроях Chromebook потрібно встановлювати додатки, зокрема для роботи, розваг тощо.</translation> <translation id="4488502501195719518">Видалити всі дані?</translation> <translation id="4493468155686877504">Рекомендовано (<ph name="INSTALL_SIZE" />)</translation> <translation id="4495419450179050807">Не показувати на цій сторінці</translation> @@ -2930,6 +2944,7 @@ <translation id="4546692474302123343">Голосовий ввід через Google Асистента</translation> <translation id="4547659257713117923">Немає вкладок з інших пристроїв</translation> <translation id="4547672827276975204">Налаштовувати автоматично</translation> +<translation id="4548483925627140043">Сигнал не знайдено</translation> <translation id="4549791035683739768">На ключі безпеки немає збережених відбитків</translation> <translation id="4551763574344810652">Щоб відмінити, натисніть <ph name="MODIFIER_KEY_DESCRIPTION" /></translation> <translation id="4552089082226364758">Flash</translation> @@ -2969,6 +2984,7 @@ <translation id="4582563038311694664">Скинути всі налаштування</translation> <translation id="4585793705637313973">Редагувати сторінку</translation> <translation id="4586275095964870617">Не вдалося відкрити <ph name="URL" /> в альтернативному веб-переглядачі. Зв’яжіться із системним адміністратором.</translation> +<translation id="458794348635939462">Не вдалося розпізнати всі хости</translation> <translation id="4589713469967853491">Журнали записано в каталог "Завантаження".</translation> <translation id="4590324241397107707">Сховище бази даних</translation> <translation id="4592891116925567110">Додаток для малювання за допомогою стилуса</translation> @@ -3352,6 +3368,7 @@ <translation id="5089810972385038852">Штат/провінція</translation> <translation id="5094721898978802975">Підтримувати зв’язок із взаємодійними рідними програмами</translation> <translation id="5097002363526479830">Не вдалося під’єднатися до мережі "<ph name="NAME" />": <ph name="DETAILS" /></translation> +<translation id="5097649414558628673">Інструмент: "<ph name="PRINT_NAME" />"</translation> <translation id="5097874180538493929">Автоматично натискати, коли курсор перестає рухатися</translation> <translation id="5101042277149003567">Відкрити всі закладки</translation> <translation id="5101839224773798795">Автоматично натискати, коли курсор зупиняється</translation> @@ -3570,6 +3587,7 @@ <translation id="5370819323174483825">&Оновити</translation> <translation id="5372529912055771682">Наданий режим реєстрації не підтримується цією версією операційної системи. Переконайтеся, що ви використовуєте останню версію, і повторіть спробу.</translation> <translation id="5372579129492968947">Відкріпити розширення</translation> +<translation id="5372659122375744710">Мережа Wi-Fi ненадійна</translation> <translation id="5376169624176189338">Натисніть, щоб повернутися назад; утримуйте, щоб переглянути історію</translation> <translation id="5376931455988532197">Файл завеликий</translation> <translation id="5377721922656071359">{COUNT,plural, =1{<ph name="ATTACHMENTS" /> надіслано на пристрій <ph name="DEVICE_NAME" />}one{<ph name="ATTACHMENTS" /> надіслано на пристрій <ph name="DEVICE_NAME" />}few{<ph name="ATTACHMENTS" /> надіслано на пристрій <ph name="DEVICE_NAME" />}many{<ph name="ATTACHMENTS" /> надіслано на пристрій <ph name="DEVICE_NAME" />}other{<ph name="ATTACHMENTS" /> надіслано на пристрій <ph name="DEVICE_NAME" />}}</translation> @@ -3599,6 +3617,7 @@ <translation id="5414566801737831689">Читати значки веб-сайтів, які ви відвідуєте</translation> <translation id="5417312524372586921">Теми веб-переглядача</translation> <translation id="5419405654816502573">Voice Match</translation> +<translation id="5420274697768050645">З міркувань безпеки вимагати ввести пароль, щоб розблокувати пристрій</translation> <translation id="5420438158931847627">Визначає різкість тексту та зображень</translation> <translation id="5422221874247253874">Точка доступу</translation> <translation id="5422781158178868512">На жаль, пристрій зовнішньої пам’яті неможливо розпізнати.</translation> @@ -3723,6 +3742,7 @@ <translation id="5548606607480005320">Перевірка безпеки</translation> <translation id="5551573675707792127">Клавіатура та введення тексту</translation> <translation id="5553089923092577885">Зіставлення політик сертифікатів</translation> +<translation id="5554403733534868102">Ви востаннє чекаєте, поки пристрій оновиться</translation> <translation id="5554489410841842733">Ця піктограма відображатиметься, коли розширення зможе працювати на поточній сторінці.</translation> <translation id="5554720593229208774">Центр сертифікації електронної пошти</translation> <translation id="5556459405103347317">Перезавантажити</translation> @@ -4136,6 +4156,7 @@ <translation id="6061882183774845124">Надіслати посилання на пристрої</translation> <translation id="6064217302520318294">Блокування екрана</translation> <translation id="6065289257230303064">Атрибути каталогу суб'єкта сертифіката</translation> +<translation id="6069464830445383022">Ваш обліковий запис Google використовується для входу на Chromebook</translation> <translation id="6069671174561668781">Установити фоновий малюнок</translation> <translation id="6071181508177083058">підтвердьте пароль</translation> <translation id="6071576563962215370">Системі не вдалося заблокувати атрибути часу встановлення на пристрої.</translation> @@ -4178,6 +4199,7 @@ <translation id="6104311680260824317">Не вдається приєднати пристрій до домену. Сервер не підтримує вказані типи шифрування Kerberos. Перегляньте розділ "Більше опцій", щоб налаштувати шифрування.</translation> <translation id="6104796831253957966">Черга принтера заповнена</translation> <translation id="6105994589138235234">Синхронізація веб-переглядача Chrome</translation> +<translation id="6108689792487843350">Шлюз недоступний</translation> <translation id="6111972606040028426">Увімкнути Google Асистента</translation> <translation id="6112294629795967147">Торкніться, щоб змінити розмір</translation> <translation id="6112727384379533756">Додати квиток</translation> @@ -4238,6 +4260,7 @@ <translation id="6178664161104547336">Вибір сертифіката</translation> <translation id="6181431612547969857">Завантаження заблоковано</translation> <translation id="6185132558746749656">Місцезнаходження пристрою</translation> +<translation id="6191293864534840972">Неправильні сервери імен</translation> <translation id="6195446518998936840">Щоб налаштувати батьківський контроль, дитина повинна мати обліковий запис Google, яким ви керуватимете. У додатку Family Link ви можете обмежувати час використання пристрою, схвалювати чи блокувати веб-сайти тощо.</translation> <translation id="6195693561221576702">Не вдається налаштувати пристрій у демо-режимі офлайн.</translation> <translation id="6196640612572343990">Блокувати сторонні файли cookie</translation> @@ -4451,6 +4474,7 @@ <translation id="6451591602925140504">{NUM_PAGES,plural, =0{<ph name="PAGE_TITLE" />}=1{<ph name="PAGE_TITLE" /> і ще одна вкладка}one{<ph name="PAGE_TITLE" /> і ще # вкладка}few{<ph name="PAGE_TITLE" /> і ще # вкладки}many{<ph name="PAGE_TITLE" /> і ще # вкладок}other{<ph name="PAGE_TITLE" /> і ще # вкладки}}</translation> <translation id="6451689256222386810">Якщо ви забули парольну фразу або хочете змінити це налаштування, <ph name="BEGIN_LINK" />скиньте синхронізацію<ph name="END_LINK" />.</translation> <translation id="6452181791372256707">Відхилити</translation> +<translation id="6452251728599530347">Виконано <ph name="PERCENT" /></translation> <translation id="6452961788130242735">Проблема з мережею чи областю</translation> <translation id="6455264371803474013">На певних сайтах</translation> <translation id="6455894534188563617">&Нова папка</translation> @@ -4507,6 +4531,7 @@ <ph name="EVENT_NAME" /></translation> <translation id="6520876759015997832">Результат пошуку <ph name="LIST_POSITION" /> з <ph name="LIST_SIZE" />: <ph name="SEARCH_RESULT_TEXT" />. Натисніть Enter, щоб перейти до розділу.</translation> <translation id="652492607360843641">Пристрій під'єднано до такої мережі: <ph name="NETWORK_TYPE" />.</translation> +<translation id="6527081081771465939">Невідомий протокол безпеки Wi-Fi</translation> <translation id="6527303717912515753">Надіслати</translation> <translation id="6528513914570774834">Надіти іншим користувачам цього пристрою доступ до цієї мережі</translation> <translation id="652948702951888897">Історія Chrome</translation> @@ -4623,6 +4648,7 @@ <translation id="6680442031740878064">Доступно: <ph name="AVAILABLE_SPACE" /></translation> <translation id="6680650203439190394">Оцінити</translation> <translation id="6681668084120808868">Зробити фото</translation> +<translation id="6684827949542560880">Завантажуються останні оновлення</translation> <translation id="668599234725812620">Відкрити Google Play</translation> <translation id="6686490380836145850">Закрити вкладки праворуч</translation> <translation id="6686817083349815241">Зберегти пароль</translation> @@ -4732,6 +4758,7 @@ <translation id="6812841287760418429">Залишити зміни</translation> <translation id="6817174620439930047">Запитувати, коли сайт хоче використовувати виключні повідомлення системи, щоб отримувати доступ до пристроїв MIDI (рекомендується)</translation> <translation id="6818198425579322765">Мова сторінки для перекладу</translation> +<translation id="6818802132960437751">Вбудований захист від вірусів</translation> <translation id="682123305478866682">Транслювати робочий стіл</translation> <translation id="6823174134746916417">Функція "Торкнутися, щоб натиснути" на сенсорній панелі</translation> <translation id="6823506025919456619">Щоб переглянути свої пристрої, потрібно ввійти в Chrome</translation> @@ -5378,6 +5405,7 @@ <translation id="7631205654593498032">Підключаючи пристрої, ви дозволяєте пристрою <ph name="DEVICE_TYPE" />:</translation> <translation id="7631887513477658702">&Завжди відкривати файли цього типу</translation> <translation id="7632948528260659758">Не вдалось оновити такі додатки-термінали:</translation> +<translation id="7633724038415831385">Це перший і останній раз, коли вам доводиться чекати, поки програмне забезпечення Chromebook оновиться. Надалі це відбуватиметься у фоновому режимі.</translation> <translation id="7634566076839829401">Сталася помилка. Повторіть спробу.</translation> <translation id="763632859238619983">Заборонити всім сайтам встановлювати обробники платежів</translation> <translation id="7636919061354591437">Установити на цьому пристрої</translation> @@ -5656,6 +5684,7 @@ <translation id="7933314993013528982">{NUM_TABS,plural, =1{Увімкнути звук на сайті}one{Увімкнути звук на сайтах}few{Увімкнути звук на сайтах}many{Увімкнути звук на сайтах}other{Увімкнути звук на сайтах}}</translation> <translation id="7933634003144813719">Керувати спільними папками</translation> <translation id="793531125873261495">Не вдалося завантажити віртуальну машину. Повторіть спробу.</translation> +<translation id="7936303884198020182">Не знайдено серверів імен</translation> <translation id="7938594894617528435">Зараз офлайн</translation> <translation id="7939062555109487992">Розширені параметри</translation> <translation id="7939412583708276221">Усе ж зберегти</translation> @@ -5899,6 +5928,7 @@ <translation id="8226742006292257240">Нижче наведено навмання створений пароль для модуля TPM, присвоєний вашому комп'ютеру:</translation> <translation id="8227119283605456246">Вкласти файл</translation> <translation id="8230134520748321204">Зберегти пароль для <ph name="ORIGIN" />?</translation> +<translation id="8230672074305416752">Не вдалося надіслати запит ping шлюзу мережі за умовчанням</translation> <translation id="8234795456569844941">Допоможіть нашим розробникам вирішити цю проблему. Опишіть, що сталося перед тим, як з’явилося повідомлення про помилку профілю.</translation> <translation id="8236917170563564587">Натомість поділитися цією вкладкою</translation> <translation id="8237647586961940482">Темно-рожевий і червоний</translation> @@ -5959,6 +5989,7 @@ <translation id="8288032458496410887">Видалити додаток <ph name="APP" />…</translation> <translation id="8289128870594824098">Розмір диска</translation> <translation id="8291967909914612644">Країна локального постачальника</translation> +<translation id="8293206222192510085">Додати закладку</translation> <translation id="8294431847097064396">Джерело</translation> <translation id="8297006494302853456">Слабкий</translation> <translation id="8299319456683969623">Зараз ви не в мережі.</translation> @@ -6008,6 +6039,7 @@ <translation id="8363095875018065315">стабільна</translation> <translation id="8363142353806532503">Заборонено використовувати мікрофон</translation> <translation id="8363763184161554204">дозволено: <ph name="PERMISSION" /></translation> +<translation id="8364946094152050673">Сервери імен порожні</translation> <translation id="8366396658833131068">З’єднання з мережею відновлено. Виберіть іншу мережу або натисніть кнопку "Продовжити" нижче, щоб запустити додаток для терміналів.</translation> <translation id="8368027906805972958">Невідомий чи непідтримуваний пристрій (<ph name="DEVICE_ID" />)</translation> <translation id="8368859634510605990">&Відкрити всі закладки</translation> @@ -6093,8 +6125,10 @@ <translation id="8472623782143987204">з апаратною підтримкою</translation> <translation id="8473863474539038330">Адреси й інше</translation> <translation id="8475313423285172237">Інша програма на вашому комп’ютері додала розширення, яке може змінити роботу Chrome.</translation> +<translation id="8475690821716466388">Мережа Wi-Fi захищена ненадійним протоколом WEP PSK</translation> <translation id="8477241577829954800">Заміщено</translation> <translation id="8477384620836102176">&Загальне</translation> +<translation id="8477551185774834963">Затримка DNS трохи довша, ніж дозволено</translation> <translation id="8480082892550707549">Навіть якщо ви раніше завантажували файли з цього сайту, він може бути тимчасово ненадійним (зламаним). Спробуйте завантажити цей файл пізніше.</translation> <translation id="8480869669560681089">Невідомий пристрій від постачальника <ph name="VENDOR_NAME" /></translation> <translation id="8481187309597259238">Підтвердьте дозвіл USB</translation> @@ -6146,6 +6180,7 @@ <translation id="8546930481464505581">Налаштувати Touch Bar</translation> <translation id="8547013269961688403">Увімкнути лупу для всього екрана</translation> <translation id="85486688517848470">Утримуйте клавішу пошуку, щоб змінити функції клавіш угорі клавіатури</translation> +<translation id="8549316893834449916">Входьте на Chromebook через обліковий запис Google, який ви також використовуєте для інших сервісів, зокрема Gmail, Диск, YouTube тощо.</translation> <translation id="8551388862522347954">Ліцензії</translation> <translation id="8551588720239073785">Налаштування дати й часу</translation> <translation id="8553342806078037065">Керувати іншими користувачами</translation> @@ -6284,6 +6319,7 @@ <translation id="8720200012906404956">Пошук мобільної мережі. <ph name="BEGIN_LINK" />Докладніше<ph name="END_LINK" /></translation> <translation id="8720816553731218127">Час очікування ініціалізації атрибутів часу встановлення минув.</translation> <translation id="8722912030556880711">Надсилати дані про використання й діагностику. Цей пристрій наразі автоматично надсилає в Google дані про діагностику та використання пристрою і додатків. Ця інформація допоможе покращити стабільність системи, додатків тощо. Деякі зведені дані також корисні для додатків і партнерів Google, як-от розробників Android. Якщо ввімкнено додаткову Історію додатків і веб-пошуку, ці дані зберігаються в обліковому записі Google. <ph name="BEGIN_LINK2" />Докладніше<ph name="END_LINK2" /></translation> +<translation id="8723108084122415655">Затримка мережі не за умовчанням задовга</translation> <translation id="8724405322205516354">Коли з’явиться цей значок, підтвердьте свою особу або покупку за допомогою відбитка пальця.</translation> <translation id="8724409975248965964">Відбиток додано</translation> <translation id="8724859055372736596">&Показати в папці</translation> @@ -6461,6 +6497,7 @@ <translation id="8909833622202089127">Сайт відстежує місцезнаходження</translation> <translation id="8910146161325739742">Як показувати екран</translation> <translation id="8910222113987937043">Зміни в закладках, історії, паролях та інших налаштуваннях більше не синхронізуватимуться з вашим обліковим записом Google. Дані, які зберігаються в обліковому записі Google, не буде видалено. Ними можна керувати на <ph name="BEGIN_LINK" />Інформаційній панелі Google<ph name="END_LINK" />.</translation> +<translation id="8910721771319628100">Затримка мережі за умовчанням задовга</translation> <translation id="8912362522468806198">Обліковий запис Google</translation> <translation id="8912793549644936705">Розтягнути</translation> <translation id="8912810933860534797">Увімкнути автоматичне сканування</translation>
diff --git a/chrome/app/resources/generated_resources_ur.xtb b/chrome/app/resources/generated_resources_ur.xtb index 770ab42..074f161d 100644 --- a/chrome/app/resources/generated_resources_ur.xtb +++ b/chrome/app/resources/generated_resources_ur.xtb
@@ -71,6 +71,7 @@ <translation id="1070705170564860382"><ph name="COUNTDOWN_SECONDS" /> سیکنڈ میں متبادل براؤزر میں کھل رہا ہے</translation> <translation id="1071917609930274619">ڈیٹا کی خفیہ نگاری</translation> <translation id="1072700771426194907">USB آلہ کا پتا چلا</translation> +<translation id="107278043869924952">پاس ورڈ کے علاوہ PIN کا استعمال کریں</translation> <translation id="1076176485976385390">صفحات کو ٹیکسٹ کرسر سے نیویگیٹ کریں</translation> <translation id="1076698951459398590">تھیم کو فعال کریں</translation> <translation id="1076818208934827215">Microsoft Internet Explorer</translation> @@ -525,7 +526,6 @@ <translation id="1608668830839595724">منتخب کردہ آئٹمز کیلئے مزید کارروائیاں</translation> <translation id="161042844686301425">سیان</translation> <translation id="1611432201750675208">آپ کا آلہ مقفل ہے</translation> -<translation id="1611584202130317952">فراہمی فلو میں مداخلت پائی گئی۔ براہ کرم دوبارہ کوشش کریں یا اپنے آلہ کے مالک یا منتظم سے رابطہ کریں۔</translation> <translation id="1614511179807650956">ممکن ہے آپ نے اپنا موبائل ڈیٹا الاؤنس استعمال کر لیا ہو۔ مزید ڈیٹا خریدنے کیلئے <ph name="NAME" /> کی فعالیت کا پورٹل ملاحظہ کریں</translation> <translation id="161460670679785907">آپ کے فون کا پتہ لگانے سے قاصر</translation> <translation id="1616206807336925449">اس ایکسٹینشن کو کوئی خاص اجازتیں درکار نہیں ہیں۔</translation> @@ -534,6 +534,7 @@ <translation id="1618268899808219593">امدادی &مرکز</translation> <translation id="1620307519959413822">پاس ورڈ غلط ہے۔ دوبارہ کوشش کریں یا اسے ری سیٹ کرنے کیلئے 'پاس ورڈ بھول گئے' پر کلک کریں۔</translation> <translation id="1620510694547887537">کیمرا</translation> +<translation id="1621831347985899379"><ph name="DEVICE_TYPE" /> ڈیٹا حذف کر دیا جائے گا</translation> <translation id="1622054403950683339">Wi-Fi نیٹ ورک کو بھول جائیں</translation> <translation id="1623132449929929218">تصاویر فی الحال دستیاب نہیں ہے۔ وال پیپر کے مجموعوں کو دیکھنے کے لیے براہ کرم انٹرنیٹ سے دوبارہ منسلک ہوں۔</translation> <translation id="1623723619460186680">نیلی روشنی میں تخفیف</translation> @@ -761,6 +762,7 @@ <translation id="1877377290348678128">لیبل (اختیاری)</translation> <translation id="1877520246462554164">تصدیقی ٹوکن حاصل نہیں ہو سکا۔ براہ کرم سائن آؤٹ کر کے دوبارہ کوشش کرنے کیلئے پھر سے سائن ان کریں۔</translation> <translation id="1877860345998737529">سوئچ کی کارروائی کی تفویض</translation> +<translation id="1878155070920054810">ایسا لگتا ہے کہ اپ ڈیٹ مکمل ہونے سے پہلے آپ کے Chromebook کی پاور ختم ہو جائے گی۔ یقینی بنائیں کہ مداخلت سے بچنے کے لئے یہ درست طریقے سے چارج کر رہا ہے۔</translation> <translation id="1879000426787380528">سائن ان کریں بطور</translation> <translation id="1880905663253319515">سرٹیفکیٹ "<ph name="CERTIFICATE_NAME" />" حذف کریں؟</translation> <translation id="1881445033931614352">کی بورڈ لے آؤٹ</translation> @@ -965,6 +967,7 @@ <translation id="2148219725039824548">اشتراک کو ماؤنٹ کرنے میں خرابی آگئی۔ نیٹ ورک پر متعین کردہ اشتراک نہیں ملا۔</translation> <translation id="2148756636027685713">فارمیٹنگ مکمل ہوگئی</translation> <translation id="2148892889047469596">ٹیب کاسٹ کریں</translation> +<translation id="2149973817440762519">بک مارک میں ترمیم کریں</translation> <translation id="2150139952286079145">منازل مقصود تلاش کریں</translation> <translation id="2150661552845026580">"<ph name="EXTENSION_NAME" />" شامل کریں؟</translation> <translation id="2151576029659734873">غلط ٹیب کا انڈیکس درج کیا گیا۔</translation> @@ -1074,6 +1077,7 @@ <translation id="2270627217422354837">ڈومینز میں موجود کسی بھی آلے کے ساتھ ڈیٹا کا تبادلہ کریں: <ph name="DOMAINS" /></translation> <translation id="2272570998639520080">مارٹنی گلاس</translation> <translation id="2273119997271134996">ڈاک ویڈیو پورٹ کا مسئلہ</translation> +<translation id="2274840746523584236">اپنے Chromebook کو چارج کریں</translation> <translation id="2276503375879033601">مزید ایپس شامل کریں</translation> <translation id="2277255602909579701">سبھی کوکیز اور سائٹ ڈیٹا</translation> <translation id="2277769717710009150">{COUNT,plural, =1{1 آئٹم کاپی ہو گیا}other{# آئٹمز کاپی ہو گئے}}</translation> @@ -1916,6 +1920,7 @@ <translation id="3308116878371095290">اس صفحہ کو کوکیز سیٹ کرنے سے روک دیا گیا تھا۔</translation> <translation id="3308134619352333507">چھپائیں بٹن</translation> <translation id="3308852433423051161">Google اسسٹنٹ لوڈ ہو رہا ہے...</translation> +<translation id="3310640316857623290">DNS تاخیر قابل اجازت حد سے نمایاں طور پر اوپر ہے</translation> <translation id="3311445899360743395">اس ایپ سے وابستہ ڈیٹا کو اس آلہ سے ہٹایا جا سکتا ہے۔</translation> <translation id="3312424061798279731">فعال کردہ زبانیں</translation> <translation id="3313622045786997898">سرٹیفکیٹ دستخط قدر</translation> @@ -1928,6 +1933,7 @@ <translation id="3323295311852517824">{NUM_FILES,plural, =0{اس ڈیٹا میں حساس یا خطرناک مواد ہے۔ اس مواد کو ہٹائیں اور دوبارہ کوشش کریں۔}=1{اس فائل میں حساس یا خطرناک مواد ہے۔ اس مواد کو ہٹائیں اور دوبارہ کوشش کریں۔}other{ان فائلز میں حساس یا خطرناک مواد ہے۔ اس مواد کو ہٹائیں اور دوبارہ کوشش کریں۔}}</translation> <translation id="3323521181261657960">بونس! آپ کو اسکرین کا مزید وقت ملا</translation> <translation id="3325910708063135066">Mac سسٹم کی ترجیحات میں کیمرا اور مائیکروفون آف ہیں</translation> +<translation id="3327050066667856415">Chromebooks سیکیورٹی کے لئے ڈیزائن کیے گئے ہیں۔ آپ کا آلہ میلوئیر سے خود کار طور پر محفوظ ہے - کسی اضافی سافٹ ویئر کی ضرورت نہیں ہے۔</translation> <translation id="3328489342742826322">بیک اپ سے بحال کرنے سے آپ کے Linux فائلز کے فولڈر موجود ڈیٹا اور موجود Linux ایپلیکیشنز حذف ہو جائیں گی۔</translation> <translation id="3331321258768829690">(<ph name="UTCOFFSET" />) <ph name="LONGTZNAME" /> (<ph name="EXEMPLARCITY" />)</translation> <translation id="3331974543021145906">ایپ کی معلومات</translation> @@ -2117,6 +2123,7 @@ <translation id="3556433843310711081">آپ کا مینیجر اسے آپ کیلئے غیر مسدود کر سکتا ہے</translation> <translation id="3557101512409028104">Family Link کی مدد سے ویب سائٹ کی پابندیاں اور اسکرین کے وقت کی حدود سیٹ کریں</translation> <translation id="3559262020195162408">آلہ پر پالیسی انسٹال نہیں ہو سکی۔</translation> +<translation id="3559533181353831840">تقریباً <ph name="TIME_LEFT" /> باقی ہے</translation> <translation id="3560034655160545939">اور املا کی جانچ</translation> <translation id="3562423906127931518">اس کارروائی میں چند منٹس لگ سکتے ہيں۔ Linux کنٹینر سیٹ کیا جا رہا ہے۔</translation> <translation id="3563432852173030730">کیوسک ایپلیکیشن کو ڈاؤن لوڈ نہیں کیا جا سکا۔</translation> @@ -2159,6 +2166,7 @@ <translation id="3602290021589620013">پیش منظر</translation> <translation id="3603622770190368340">نیٹ ورک سرٹیفیکیٹ حاصل کریں</translation> <translation id="3604713164406837697">وال پیپر تبدیل کریں</translation> +<translation id="360565022852130722">WiFi نیٹ ورک کمزور پروٹوکول WEP 802.1x کے ساتھ محفوظ ہے</translation> <translation id="3605780360466892872">بٹن ڈاؤن</translation> <translation id="3608576286259426129">صارف کی تصویر کا پیش منظر</translation> <translation id="3610369246614755442">ڈاک کے پنکھے کو سروس کی ضرورت ہے</translation> @@ -2195,6 +2203,7 @@ <translation id="3639220004740062347">ریڈر وضع سے باہر نکلیں</translation> <translation id="3640214691812501263"><ph name="USER_NAME" /> کیلئے "<ph name="EXTENSION_NAME" />" شامل کریں؟</translation> <translation id="3640613767643722554">اپنی اسسٹنٹ کو اپنی آواز کی شناخت کرنا سکھائیں</translation> +<translation id="3643014427358482789"><ph name="DOMAIN" /> ADB ڈیبگنگ کو غیر فعال کر رہا ہے جو آپ کے <ph name="DEVICE_TYPE" /> کو ری سیٹ کر دے گا۔ ری سٹارٹ کرنے سے پہلے اپنی فائلز کا بیک اپ لیں۔</translation> <translation id="3645372836428131288">فنگر پرنٹ کے مختلف حصے کو کیپچر کرنے کیلئے تھوڑی سی حرکت دیں</translation> <translation id="3647998456578545569">{COUNT,plural, =1{<ph name="DEVICE_NAME" /> سے <ph name="ATTACHMENTS" /> موصول ہوئیں}other{<ph name="DEVICE_NAME" /> سے <ph name="ATTACHMENTS" /> موصول ہوئیں}}</translation> <translation id="3648348069317717750"><ph name="USB_DEVICE_NAME" /> کا پتا چلا</translation> @@ -2283,6 +2292,7 @@ <translation id="3732857534841813090">Google اسسٹنٹ سے متعلق معلومات</translation> <translation id="3733127536501031542">Step-up والا SSL سرور</translation> <translation id="3735740477244556633">ترتیب دیں بلحاظ</translation> +<translation id="3738632186060045350"><ph name="DEVICE_TYPE" /> آلہ کا ڈیٹا 24 گھنٹے کے اندر حذف کر دیا جائے گا</translation> <translation id="3738924763801731196"><ph name="OID" />:</translation> <translation id="3739254215541673094"><ph name="APPLICATION" /> کھولیں؟</translation> <translation id="3742055079367172538">اسکرین شاٹ لی گئی</translation> @@ -2470,6 +2480,7 @@ <translation id="3937734102568271121"><ph name="LANGUAGE" /> کا ہمیشہ ترجمہ کریں</translation> <translation id="3938128855950761626">وینڈر <ph name="VENDOR_ID" /> کے آلات</translation> <translation id="3940233957883229251">خود کار اعادہ کو فعال کریں</translation> +<translation id="3941014780699102620">میزبان کو حل کرنے میں ناکام</translation> <translation id="3941565636838060942">اس پروگرام تک رسائی کو چھپانے کیلئے، کنٹرول پینل میں آپ کو <ph name="CONTROL_PANEL_APPLET_NAME" /> استعمال کر کے اسے ان انسٹال کرنے کی ضرورت ہے۔ @@ -2632,6 +2643,7 @@ <translation id="413121957363593859">اجزاء</translation> <translation id="4131410914670010031">سیاہ اور سفید</translation> <translation id="413193092008917129">نیٹ ورک کی تشخیصی روٹینز</translation> +<translation id="4132183752438206707">Google Play اسٹور پر ایپس حاصل کریں</translation> <translation id="4133076602192971179">پاس ورڈ تبدیل کرنے کیلئے ایپ کو کھولیں</translation> <translation id="4136203100490971508">طلوع آفتاب کے وقت نائٹ لائٹ خودکار طور پر آف ہو جائے گی</translation> <translation id="41365691917097717">جاری رکھنے سے Android ایپس تخلیق کرنے اور ٹیسٹ کرنے کے لیے ADB ڈیبگنگ فعال ہو جائے گی۔ نوٹ کریں کہ یہ کارروائی ان Android ایپس کو انسٹال کرنے کی اجازت دیتی ہے جن کی تصدیق Google کے ذریعے نہیں کی گئی ہے، اور غیر فعال کرنے کے لیے فیکٹری ری سیٹ کی ضرورت ہوتی ہے۔</translation> @@ -2881,6 +2893,8 @@ <translation id="4479877282574735775">ورچوئل مشین ترتیب دی جا رہی ہے۔ اس میں چند منٹ لگ سکتے ہیں۔</translation> <translation id="4480590691557335796">Chrome آپ کے کمپیوٹر میں نقصان دہ سافٹ ویئر تلاش کر سکتا ہے اور اسے ہٹا سکتا ہے</translation> <translation id="4481530544597605423">جوڑا ختم کیے ہوئے آلات</translation> +<translation id="4483049906298469269">غیر ڈیفالٹ نیٹ ورک گیٹ وے کو پنگ کرنے میں ناکام</translation> +<translation id="4487489714832036847">Chromebooks روایتی سافٹ ویئر کی بجائے ایپس کا استعمال کرتا ہے۔ پروڈکٹیوٹی، تفریح اور بہت کچھ کیلئے ایپس حاصل کریں۔</translation> <translation id="4488502501195719518">سبھی ڈیٹا صاف کریں؟</translation> <translation id="4493468155686877504">تجویز کردہ (<ph name="INSTALL_SIZE" />)</translation> <translation id="4495419450179050807">اس صفحہ پر نہ دکھائیں</translation> @@ -2931,6 +2945,7 @@ <translation id="4546692474302123343">Google اسسٹنٹ صوتی ان پٹ</translation> <translation id="4547659257713117923">دوسرے آلات سے کوئی ٹیبز نہیں ہیں</translation> <translation id="4547672827276975204">خودکار طور پر سیٹ کریں</translation> +<translation id="4548483925627140043">سگنل نہیں ملا</translation> <translation id="4549791035683739768">آپ کی سیکیورٹی کلید میں کوئی فنگر پرنٹ اسٹور نہیں ہے</translation> <translation id="4551763574344810652">کالعدم کرنے کے لیے <ph name="MODIFIER_KEY_DESCRIPTION" /> دبائيں</translation> <translation id="4552089082226364758">فلیش</translation> @@ -2970,6 +2985,7 @@ <translation id="4582563038311694664">سبھی ترتیبات کو دوبارہ سیٹ کریں</translation> <translation id="4585793705637313973">صفحہ میں ترمیم کریں</translation> <translation id="4586275095964870617"><ph name="URL" /> کو متبادل براؤزر میں نہیں کھولا جا سکا۔ براہ کرم اپنے سسٹم کے منتظم سے رابطہ کریں۔</translation> +<translation id="458794348635939462">تمام میزبانوں کو حل کرنے میں ناکام</translation> <translation id="4589713469967853491">ڈاؤن لوڈ ڈائریکٹری میں کامیابی کے ساتھ لکھے گئے لاگز۔</translation> <translation id="4590324241397107707">ڈیٹابیس اسٹوریج</translation> <translation id="4592891116925567110">اسٹائلس ڈرائنگ ایپ</translation> @@ -3353,6 +3369,7 @@ <translation id="5089810972385038852">ریاست</translation> <translation id="5094721898978802975">تعاون کرنے والی اصل ایپلیکیشنز کے ساتھ مواصلت کریں</translation> <translation id="5097002363526479830">نیٹ ورک '<ph name="NAME" />' سے منسلک ہونے میں ناکام ہوگیا: <ph name="DETAILS" /></translation> +<translation id="5097649414558628673">ٹول: <ph name="PRINT_NAME" /></translation> <translation id="5097874180538493929">جب کرسر رک جاتا ہے تو خودکار طور پر کلک کریں</translation> <translation id="5101042277149003567">سبھی بُک مارکس کھولیں</translation> <translation id="5101839224773798795">کرسر رُک جانے پر خودکار طور پر کلک کریں</translation> @@ -3571,6 +3588,7 @@ <translation id="5370819323174483825">&دوبارہ لوڈ کریں</translation> <translation id="5372529912055771682">فراہم کردہ اندراج وضع آپریٹنگ سسٹم کے اس ورژن کی طرف سے تعاون یافتہ نہیں ہے۔ براہ کرم یقینی بنائیں کہ آپ جدید ترین ورژن چلا رہے ہیں اور دوبارہ کوشش کریں۔</translation> <translation id="5372579129492968947">ایکسٹینشن سے پن ہٹائیں</translation> +<translation id="5372659122375744710">WiFi نیٹ ورک محفوظ نہیں ہے</translation> <translation id="5376169624176189338">پیچھے جانے کیلئے کلک کریں، سرگزشت دیکھنے کیلئے پکڑے رہیں</translation> <translation id="5376931455988532197">فائل بہت بڑی ہے</translation> <translation id="5377721922656071359">{COUNT,plural, =1{<ph name="DEVICE_NAME" /> کو کامیابی کے ساتھ <ph name="ATTACHMENTS" /> بھیجی گئیں}other{<ph name="DEVICE_NAME" /> کو کامیابی کے ساتھ <ph name="ATTACHMENTS" /> بھیجی گئیں}}</translation> @@ -3600,6 +3618,7 @@ <translation id="5414566801737831689">اپنی ملاحظہ کردہ سائٹس کے آئیکنز کو پڑھیں</translation> <translation id="5417312524372586921">براؤزر تھیمز</translation> <translation id="5419405654816502573">Voice Match</translation> +<translation id="5420274697768050645">اضافی سیکیورٹی کیلئے آلہ کو غیر مقفل کرنے کیلئے پاس ورڈ کی ضرورت ہوتی ہے</translation> <translation id="5420438158931847627">متن اور تصاویر کی نفاست کا تعین کرتی ہے</translation> <translation id="5422221874247253874">رسائی کی جگہ</translation> <translation id="5422781158178868512">معذرت، آپ کے خارجی اسٹوریج آلہ کی شناخت نہیں ہو سکی۔</translation> @@ -3724,6 +3743,7 @@ <translation id="5548606607480005320">سیفٹی چیک</translation> <translation id="5551573675707792127">کی بورڈ اور ٹیکسٹ اِن پٹ</translation> <translation id="5553089923092577885">سرٹیفیکیٹ پالیسی کی نقشہ سازیاں</translation> +<translation id="5554403733534868102">اس کے بعد، اپ ڈیٹس کا انتظار نہیں کریں گے</translation> <translation id="5554489410841842733">جب ایکسٹینشن موجودہ صفحہ پر کارروائی کر سکے گا تو یہ آئیکن دیکھا جا سکے گا۔</translation> <translation id="5554720593229208774">ای میل سرٹیفکیشن اتھارٹی</translation> <translation id="5556459405103347317">دوبارہ لوڈ کریں</translation> @@ -4137,6 +4157,7 @@ <translation id="6061882183774845124">لنک اپنے آلات پر بھیجیں</translation> <translation id="6064217302520318294">اسکرین لاک</translation> <translation id="6065289257230303064">سرٹیفیکیٹ موضوع ڈائریکٹری انتسابات</translation> +<translation id="6069464830445383022">آپ کا Google اکاؤنٹ آپ کا Chromebook سائن ان ہے</translation> <translation id="6069671174561668781">وال پیپر سیٹ کریں</translation> <translation id="6071181508177083058">پاس ورڈ کی توثیق کریں</translation> <translation id="6071576563962215370">سسٹم آلہ کے انسٹالیشن کے وقت کے انتسابات کا لاک تشکیل دینے میں ناکام ہوگیا۔</translation> @@ -4179,6 +4200,7 @@ <translation id="6104311680260824317">ڈومین میں آلہ کو شامل نہیں کیا جا سکا۔ سرور متعین Kerberos مرموز کاری کی اقسام کو سپورٹ نہیں کرتا ہے۔ مرموز کاری کی ترتیبات کے لیے "مزید احتیارات" چیک کریں۔</translation> <translation id="6104796831253957966">پرنٹر کی قطار فُل ہے</translation> <translation id="6105994589138235234">Chrome براؤزر کی مطابقت پذیری</translation> +<translation id="6108689792487843350">گیٹ وے ناقابل رسائی ہے</translation> <translation id="6111972606040028426">Google اسسٹنٹ کو فعال کریں</translation> <translation id="6112294629795967147">سائز تبدیل کرنے کے لیے ٹچ کریں</translation> <translation id="6112727384379533756">ٹکٹ شامل کریں</translation> @@ -4239,6 +4261,7 @@ <translation id="6178664161104547336">ایک سرٹیفکیٹ منتخب کریں</translation> <translation id="6181431612547969857">ڈاؤن لوڈ مسدود ہوگیا</translation> <translation id="6185132558746749656">آلہ کا مقام</translation> +<translation id="6191293864534840972">نام سرورز غلط ہے</translation> <translation id="6195446518998936840">پیرنٹل کنٹرولز کو سیٹ اپ کرنے کے لیے، آپ کے بچے کے پاس Google اکاؤنٹ ہونا ضروری ہے جس کا نظم کرنے میں آپ مدد کریں گے۔ Family Link ایپ کے ذریعے آپ اسکرین ٹائم کی حدود مقرر کر سکتے ہیں، ویب سائٹس کو منظوری دے یا بلاک کر سکتے ہیں اور بھی بہت کچھ کر سکتے ہیں۔</translation> <translation id="6195693561221576702">اس آلہ کو آف لائن ڈیمو موڈ میں سیٹ نہیں کیا جا سکتا ہے۔</translation> <translation id="6196640612572343990">فریق ثالث کوکیز کو مسدود کریں</translation> @@ -4452,6 +4475,7 @@ <translation id="6451591602925140504">{NUM_PAGES,plural, =0{<ph name="PAGE_TITLE" />}=1{<ph name="PAGE_TITLE" /> اور 1 دیگر ٹیب}other{<ph name="PAGE_TITLE" /> اور # دیگر ٹیبز}}</translation> <translation id="6451689256222386810">اگر آپ اپنا پاس فریز بھول گئے ہیں یا اس ترتیب کو تبدیل کرنا چاہتے ہیں تو <ph name="BEGIN_LINK" />مطابقت پذیری کو دوبارہ ترتیب دیں<ph name="END_LINK" />۔</translation> <translation id="6452181791372256707">مسترد کریں</translation> +<translation id="6452251728599530347"><ph name="PERCENT" /> مکمل</translation> <translation id="6452961788130242735">نیٹ ورک کا مسئلہ یا خراب دائرہ کار</translation> <translation id="6455264371803474013">مخصوص سائٹس پر</translation> <translation id="6455894534188563617">&نیا فولڈر</translation> @@ -4508,6 +4532,7 @@ <ph name="EVENT_NAME" /></translation> <translation id="6520876759015997832"><ph name="LIST_SIZE" /> میں سے <ph name="LIST_POSITION" /> تلاش کا نتیجہ: <ph name="SEARCH_RESULT_TEXT" />۔ سیکشن پر نیویگیٹ کرنے کے لیے Enter دبائیں۔</translation> <translation id="652492607360843641">آپ ایک <ph name="NETWORK_TYPE" /> نیٹ ورک سے منسلک ہیں۔</translation> +<translation id="6527081081771465939">نامعلوم WiFi سیکیورٹی پروٹوکول</translation> <translation id="6527303717912515753">اشتراک کریں</translation> <translation id="6528513914570774834">اس آلہ کے دیگر صارفین کو یہ نیٹ ورک استعمال کرنے کی اجازت دیں</translation> <translation id="652948702951888897">Chrome کی سرگزشت</translation> @@ -4624,6 +4649,7 @@ <translation id="6680442031740878064">دستیاب ہے: <ph name="AVAILABLE_SPACE" /></translation> <translation id="6680650203439190394">درجہ بندی کریں</translation> <translation id="6681668084120808868">تصویر لیں</translation> +<translation id="6684827949542560880">تازہ ترین اپ ڈیٹ ڈاؤن لوڈ کیا جارہا ہے</translation> <translation id="668599234725812620">Google Play کھولیں</translation> <translation id="6686490380836145850">دائیں جانب والے ٹیبز بند کریں</translation> <translation id="6686817083349815241">اپنا پاس ورڈ محفوظ کریں</translation> @@ -4733,6 +4759,7 @@ <translation id="6812841287760418429">تبدیلیاں برقرار رکھیں</translation> <translation id="6817174620439930047">جب کوئی سائٹ MIDI آلات تک رسائی کیلئے سسٹم کے جامع پیغامات استعمال کرنا چاہے تو پوچھیں (تجویز کردہ)</translation> <translation id="6818198425579322765">ترجمہ کرنے کے لیے صفحے کی زبان</translation> +<translation id="6818802132960437751">پہلے سے شامل وائرس سے تحفظ</translation> <translation id="682123305478866682">ڈیسک ٹاپ کاسٹ کریں</translation> <translation id="6823174134746916417">ٹچ پیڈ کلک کرنے کیلئے تھپتھپائیں</translation> <translation id="6823506025919456619">اپنے آلات دیکھنے کیلئے آپ کو Chrome میں سائن ان کرنے کی ضرورت ہے</translation> @@ -5379,6 +5406,7 @@ <translation id="7631205654593498032">جب آپ اپنے آلات کو منسلک کرتے ہیں تو آپ اس بات سے اتفاق کرتے ہیں کہ آپ کا <ph name="DEVICE_TYPE" /> درج ذيل چیزیں کر سکتا ہے:</translation> <translation id="7631887513477658702">اس قسم کی فائلیں &ہمیشہ کھولیں</translation> <translation id="7632948528260659758">درج ذیل کیوسک ایپس اپ ڈیٹنگ کیلئے ناکام ہو گئی ہیں:</translation> +<translation id="7633724038415831385">صرف یہ ہی وہ وقت ہے جب آپ کسی اپ ڈیٹ کا انتظار کریں گے۔ Chromebooks پر سافٹ ویئر اپ ڈیٹ پس منظر میں ہوتے ہیں۔</translation> <translation id="7634566076839829401">کچھ غلط ہو گیا۔ براہ کرم دوبارہ کوشش کریں۔</translation> <translation id="763632859238619983">کسی سائٹ کو ادائیگی کے ہینڈلرز انسٹال کرنے کی اجازت نہ دیں</translation> <translation id="7636919061354591437">اس آلہ پر انسٹال کریں</translation> @@ -5658,6 +5686,7 @@ <translation id="7933314993013528982">{NUM_TABS,plural, =1{سائٹ کی آواز چالو کریں}other{سائٹس کی آواز چالو کریں}}</translation> <translation id="7933634003144813719">اشتراک کردہ فولڈرز کا نظم کریں</translation> <translation id="793531125873261495">ورچوئل مشین ڈاؤن لوڈ کرنے میں خرابی آ گئی ہے۔ براہ کرم دوبارہ کوشش کریں۔</translation> +<translation id="7936303884198020182">کوئی سرورز نام نہیں ملا</translation> <translation id="7938594894617528435">فی الحال آف لائن ہے</translation> <translation id="7939062555109487992">اعلی درجے کے اختیارات</translation> <translation id="7939412583708276221">بہر صورت برقرار رکھیں</translation> @@ -5900,6 +5929,7 @@ <translation id="8226742006292257240">ذیل میں اتفاقی طور پر تیار کردہ وہ TPM پاس ورڈ ہے جو آپ کے کمپیوٹر کو تفویض کیا گیا ہے:</translation> <translation id="8227119283605456246">فائل منسلک کریں</translation> <translation id="8230134520748321204"><ph name="ORIGIN" /> کے لیے پاس ورڈ کو محفوظ کریں؟</translation> +<translation id="8230672074305416752">ڈیفالٹ نیٹ ورک گیٹ وے کو پنگ کرنے میں ناکام</translation> <translation id="8234795456569844941">براہ مہربانی مسئلہ حل کرنے میں ہمارے انجینئروں کی مدد کریں۔ ہمیں بتائیں کہ پروفائل کی خرابی کا پیغام موصول ہونے سے پہلے کیا ہوا تھا:</translation> <translation id="8236917170563564587">اس کے بجائے اس ٹیب کا اشتراک کریں</translation> <translation id="8237647586961940482">گہرا گلابی اور سرخ</translation> @@ -5960,6 +5990,7 @@ <translation id="8288032458496410887"><ph name="APP" /> کو اَن انسٹال کریں…</translation> <translation id="8289128870594824098">ڈسک کا سائز</translation> <translation id="8291967909914612644">گھر فراہم کرنے والے کا ملک</translation> +<translation id="8293206222192510085">بُک مارک شامل کریں</translation> <translation id="8294431847097064396">ماخذ</translation> <translation id="8297006494302853456">کمزور</translation> <translation id="8299319456683969623">آپ فی الحال آف لائن ہیں۔</translation> @@ -6009,6 +6040,7 @@ <translation id="8363095875018065315">مستحکم</translation> <translation id="8363142353806532503">مائیکروفون مسدود ہے</translation> <translation id="8363763184161554204"><ph name="PERMISSION" /> کی اجازت ہے</translation> +<translation id="8364946094152050673">نام سرورز خالی ہیں</translation> <translation id="8366396658833131068">آپ کے نیٹ ورک کی کنیکٹوٹی بحال ہوگئی ہے۔ براہ کرم اپنی کیوسک ایپ شروع کرنے کیلئے ایک مختلف نیٹ ورک منتخب کریں یا ذیل میں 'جاری رکھیں' بٹن دبائیں۔</translation> <translation id="8368027906805972958">نا معلوم یا غیر تعاون یافتہ آلہ (<ph name="DEVICE_ID" />)</translation> <translation id="8368859634510605990">سبھی بُک مارکس &کھولیں</translation> @@ -6094,8 +6126,10 @@ <translation id="8472623782143987204">ہارڈ ویئر کے ذریعے تعاون یافتہ</translation> <translation id="8473863474539038330">پتے وغیرہ</translation> <translation id="8475313423285172237">آپ کے کمپیوٹر پر موجود ایک دوسرے پروگرام نے ایک ایکسٹینشن شامل کیا جو Chrome کے کام کرنے کا طریقہ تبدیل کر سکتی ہے۔</translation> +<translation id="8475690821716466388">WiFi نیٹ ورک کمزور پروٹوکول WEP PSK کے ساتھ محفوظ ہے</translation> <translation id="8477241577829954800">جگہ لی ہوئی</translation> <translation id="8477384620836102176">&عمومی</translation> +<translation id="8477551185774834963">DNS تاخیر قابل اجازت حد سے تھوڑا سا اوپر ہے</translation> <translation id="8480082892550707549">اگرچہ آپ نے اس سے قبل اس سائٹ سے فائلیں ڈاؤن لوڈ کی ہیں، سائٹ عارضی طور پر غیر محفوظ (ہیک کردہ) ہو سکتی ہے۔ اس فائل کو بعد میں ڈاؤن لوڈ کرنے کی کوشش کریں۔</translation> <translation id="8480869669560681089"><ph name="VENDOR_NAME" /> کا نامعلوم آلہ</translation> <translation id="8481187309597259238">USB کی اجازت کی تصدیق کریں</translation> @@ -6147,6 +6181,7 @@ <translation id="8546930481464505581">ٹچ بار کو حسب ضرورت بنائيں</translation> <translation id="8547013269961688403">پوری اسکرین مکبّر کو فعال کریں</translation> <translation id="85486688517848470">سر فہرست قطار کی کلیدوں کے برتاؤ کو سوئچ کرنے کیلئے تلاش کی کلید کو دبائے رہیں</translation> +<translation id="8549316893834449916">آپ اپنے Google اکاؤنٹ کو اپنے Chromebook میں سائن ان کرنے کیلئے استعمال کریں گے - وہی اکاؤنٹ جسے آپ Gmail, Drive, YouTube, اور بہت کچھ کے لئے استعمال کرتے ہیں۔</translation> <translation id="8551388862522347954">لائسنسز</translation> <translation id="8551588720239073785">تاریخ اور وقت کی ترتیبات</translation> <translation id="8553342806078037065">دوسرے لوگوں کا نظم کریں</translation> @@ -6285,6 +6320,7 @@ <translation id="8720200012906404956">موبائل نیٹ ورک تلاش کیا جا رہا ہے۔ <ph name="BEGIN_LINK" />مزید جانیں<ph name="END_LINK" /></translation> <translation id="8720816553731218127">انسٹالیشن کے وقت کے انتسابات کے آغاز کا وقت ختم ہو گیا۔</translation> <translation id="8722912030556880711">استعمال اور ڈائیگناسٹک کا ڈیٹا بھیجیں۔ فی الوقت یہ آلہ خود کار طور پر ڈائیگناسٹک، آلے اور ایپ کے استعمال کا ڈیٹا Google کو بھیج رہا ہے۔ اس سے سسٹم اور ایپ کے استحکام اور دیگر بہتریوں میں مدد ملے گی۔ کچھ مجموعی ڈیٹا Google ایپس اور پارٹنرز، جیسے Android ڈیولپرز، کی مدد بھی کرے گا۔ اگر آپ کی ویب اور ایپ کی اضافی سرگرمی کی ترتیب آن ہے تو اس ڈیٹا کو آپ کے Google اکاؤنٹ میں محفوظ کیا جا سکتا ہے۔ <ph name="BEGIN_LINK2" />مزید جانیں<ph name="END_LINK2" /></translation> +<translation id="8723108084122415655">تاخیر کی حد کے اوپر غیر ڈیفالٹ نیٹ ورک</translation> <translation id="8724405322205516354">جب آپ کو یہ آئیکن دکھائی دے تو آپ شناخت کرنے یا خریداریوں کی منظوری کے لیے اپنے فنگر پرنٹ کا استعمال کریں۔</translation> <translation id="8724409975248965964">فنگر پرنٹ شامل ہو گیا</translation> <translation id="8724859055372736596">فولڈر میں &دکھائیں</translation> @@ -6462,6 +6498,7 @@ <translation id="8909833622202089127">سائٹ آپ کا مقام ٹریک کر رہی ہے</translation> <translation id="8910146161325739742">اپنی اسکرین کا اشتراک کریں</translation> <translation id="8910222113987937043">آپ کے بُک مارکس، سرگزشت، پاس ورڈز اور دیگر ترتیبات کی تبدیلیوں کی مزید آپ کے Google اکاؤنٹ کے ساتھ مطابقت پذیری نہیں کی جائے گی۔ البتہ آپ کا موجودہ ڈیٹا آپ کے Google اکاؤنٹ میں اسٹور رہے گا اور اس کا <ph name="BEGIN_LINK" />Google ڈیش بورڈ<ph name="END_LINK" /> پر نظم کیا جا سکتا ہے۔</translation> +<translation id="8910721771319628100">تاخیر کی حد کے اوپر ڈیفالٹ نیٹ ورک</translation> <translation id="8912362522468806198">Google اکاؤنٹ</translation> <translation id="8912793549644936705">پهیلائیں</translation> <translation id="8912810933860534797">خودکار اسکین فعال کریں</translation>
diff --git a/chrome/app/resources/generated_resources_uz.xtb b/chrome/app/resources/generated_resources_uz.xtb index d40dfea..b9657006 100644 --- a/chrome/app/resources/generated_resources_uz.xtb +++ b/chrome/app/resources/generated_resources_uz.xtb
@@ -523,7 +523,6 @@ <translation id="1608668830839595724">Tanlangan elementlar uchun yana boshqa amallar</translation> <translation id="161042844686301425">Havorang</translation> <translation id="1611432201750675208">Qurilmangiz qulflangan</translation> -<translation id="1611584202130317952">Tekshiruv vaqtida xatolik yuz berdi. Qayta urinib ko‘ring yoki administrator bilan bog‘laning.</translation> <translation id="1614511179807650956">Siz belgilangan trafik miqdorini tugatdingiz shekilli. Yana trafik sotib olish uchun <ph name="NAME" /> portaliga tashrif buyuring.</translation> <translation id="161460670679785907">Telefoningiz topilmadi</translation> <translation id="1616206807336925449">Bu kengaytmaga maxsus ruxsatlarni talab qilmaydi.</translation> @@ -965,6 +964,7 @@ <translation id="2148219725039824548">Umumiy ruxsat berishda xatolik yuz berdi. Ko‘rsatilgan qurilma tarmoqda emas.</translation> <translation id="2148756636027685713">Formatlash yakunlandi</translation> <translation id="2148892889047469596">Tab translatsiyasi</translation> +<translation id="2149973817440762519">Xatcho‘p tahriri</translation> <translation id="2150139952286079145">Belgilangan manzillarni qidirish</translation> <translation id="2150661552845026580">“<ph name="EXTENSION_NAME" />” o‘rnatilsinmi?</translation> <translation id="2151576029659734873">Ichki oyna indeksi noto‘g‘ri kiritildi.</translation> @@ -5985,6 +5985,7 @@ <translation id="8288032458496410887"><ph name="APP" /> o‘chirilmoqda...</translation> <translation id="8289128870594824098">Disk hajmi</translation> <translation id="8291967909914612644">Mahalliy ta’minotchi mamlakati</translation> +<translation id="8293206222192510085">Xatcho‘p qo‘shish</translation> <translation id="8294431847097064396">Manba</translation> <translation id="8297006494302853456">Zaif</translation> <translation id="8299319456683969623">Ayni vaqtda siz internetsiz rejimda ishlayapsiz.</translation>
diff --git a/chrome/app/resources/generated_resources_vi.xtb b/chrome/app/resources/generated_resources_vi.xtb index b630f48..f8fae8c 100644 --- a/chrome/app/resources/generated_resources_vi.xtb +++ b/chrome/app/resources/generated_resources_vi.xtb
@@ -71,6 +71,7 @@ <translation id="1070705170564860382">Sẽ mở trong trình duyệt thay thế sau <ph name="COUNTDOWN_SECONDS" /> giây</translation> <translation id="1071917609930274619">Mã hóa Dữ liệu</translation> <translation id="1072700771426194907">Đã phát hiện thiết bị USB</translation> +<translation id="107278043869924952">Sử dụng mã PIN cùng với mật khẩu</translation> <translation id="1076176485976385390">Di chuyển giữa các trang bằng con trỏ văn bản</translation> <translation id="1076698951459398590">Bật chủ đề</translation> <translation id="1076818208934827215">Microsoft Internet Explorer</translation> @@ -524,7 +525,6 @@ <translation id="1608668830839595724">Thao tác khác cho những mục đã chọn</translation> <translation id="161042844686301425">Lục lam</translation> <translation id="1611432201750675208">Thiết bị của bạn đã bị khóa</translation> -<translation id="1611584202130317952">Quy trình cấp phép đã bị gián đoạn. Vui lòng thử lại hoặc liên hệ với chủ sở hữu hoặc quản trị viên thiết bị của bạn.</translation> <translation id="1614511179807650956">Bạn có thể đã dùng hết dữ liệu di động cho phép. Hãy truy cập vào cổng kích hoạt <ph name="NAME" /> để mua thêm dữ liệu</translation> <translation id="161460670679785907">Không phát hiện được điện thoại của bạn</translation> <translation id="1616206807336925449">Tiện ích này không yêu cầu quyền đặc biệt.</translation> @@ -533,6 +533,7 @@ <translation id="1618268899808219593">Trung tâm trợ g&iúp</translation> <translation id="1620307519959413822">Mật khẩu không chính xác. Hãy thử lại hoặc nhấp vào "Bạn quên mật khẩu" để đặt lại.</translation> <translation id="1620510694547887537">Máy ảnh</translation> +<translation id="1621831347985899379">Dữ liệu trên <ph name="DEVICE_TYPE" /> sẽ bị xóa</translation> <translation id="1622054403950683339">Bỏ qua mạng Wi-Fi</translation> <translation id="1623132449929929218">Hiện không sử dụng được hình ảnh. Vui lòng kết nối lại với Internet để xem các bộ sưu tập hình nền.</translation> <translation id="1623723619460186680">Giảm ánh sáng xanh</translation> @@ -760,6 +761,7 @@ <translation id="1877377290348678128">Nhãn (không bắt buộc)</translation> <translation id="1877520246462554164">Không nhận được mã thông báo xác thực. Vui lòng đăng xuất rồi đăng nhập lại để thử lại.</translation> <translation id="1877860345998737529">Gán công tắc cho hành động</translation> +<translation id="1878155070920054810">Có vẻ như Chromebook sẽ hết pin trước khi quá trình cập nhật hoàn tất. Hãy đảm bảo Chromebook đang sạc đúng cách để tránh bị gián đoạn.</translation> <translation id="1879000426787380528">Đăng nhập bằng</translation> <translation id="1880905663253319515">Xóa chứng chỉ "<ph name="CERTIFICATE_NAME" />"?</translation> <translation id="1881445033931614352">Bố cục bàn phím</translation> @@ -964,6 +966,7 @@ <translation id="2148219725039824548">Lỗi khi kết nối với thư mục chia sẻ. Không tìm thấy thư mục chia sẻ đã chỉ định trên mạng.</translation> <translation id="2148756636027685713">Định dạng hoàn tất</translation> <translation id="2148892889047469596">Truyền thẻ</translation> +<translation id="2149973817440762519">Chỉnh sửa dấu trang</translation> <translation id="2150139952286079145">Tìm kiếm máy in đích</translation> <translation id="2150661552845026580">Và "<ph name="EXTENSION_NAME" />"?</translation> <translation id="2151576029659734873">Chỉ mục thẻ không hợp lệ được nhập.</translation> @@ -1073,6 +1076,7 @@ <translation id="2270627217422354837">Trao đổi dữ liệu với bất kỳ thiết bị nào trong miền: <ph name="DOMAINS" /></translation> <translation id="2272570998639520080">Ly rượu Martini</translation> <translation id="2273119997271134996">Vấn đề với cổng video khi gắn đế sạc</translation> +<translation id="2274840746523584236">Sạc pin cho Chromebook</translation> <translation id="2276503375879033601">Thêm ứng dụng khác</translation> <translation id="2277255602909579701">Tất cả cookie và dữ liệu trang web</translation> <translation id="2277769717710009150">{COUNT,plural, =1{Đã sao chép 1 mục}other{Đã sao chép # mục}}</translation> @@ -1915,6 +1919,7 @@ <translation id="3308116878371095290">Trang này đã bị chặn cài đặt cookie.</translation> <translation id="3308134619352333507">Nút ẩn</translation> <translation id="3308852433423051161">Đang tải Trợ lý Google...</translation> +<translation id="3310640316857623290">Độ trễ của Hệ thống tên miền (DNS) vượt ngưỡng cho phép đáng kể</translation> <translation id="3311445899360743395">Dữ liệu liên quan đến ứng dụng này có thể bị xóa khỏi thiết bị.</translation> <translation id="3312424061798279731">Ngôn ngữ đã bật</translation> <translation id="3313622045786997898">Giá trị Chữ ký Chứng chỉ</translation> @@ -1927,6 +1932,7 @@ <translation id="3323295311852517824">{NUM_FILES,plural, =0{Dữ liệu này có chứa nội dung nhạy cảm hoặc nguy hiểm. Hãy xóa nội dung này rồi thử lại.}=1{Tệp này có chứa nội dung nhạy cảm hoặc nguy hiểm. Hãy xóa nội dung này rồi thử lại.}other{Các tệp này có chứa nội dung nhạy cảm hoặc nguy hiểm. Hãy xóa nội dung này rồi thử lại.}}</translation> <translation id="3323521181261657960">Phần thưởng! Bạn có thêm thời gian sử dụng thiết bị</translation> <translation id="3325910708063135066">Máy ảnh và micrô đã bị tắt trong System Preferences (Tùy chọn hệ thống) trên máy Mac</translation> +<translation id="3327050066667856415">Chromebook có thiết kế giúp tăng cường tính bảo mật. Thiết bị của bạn tự động được bảo vệ khỏi phần mềm độc hại mà không cần phải cài đặt phần mềm bổ sung.</translation> <translation id="3328489342742826322">Nếu bạn khôi phục từ một bản sao lưu, các dữ liệu và ứng dụng Linux hiện có trong thư mục tệp Linux của bạn sẽ bị xóa.</translation> <translation id="3331321258768829690">(<ph name="UTCOFFSET" />) <ph name="LONGTZNAME" /> (<ph name="EXEMPLARCITY" />)</translation> <translation id="3331974543021145906">Thông tin ứng dụng</translation> @@ -2116,6 +2122,7 @@ <translation id="3556433843310711081">Người quản lý của bạn có thể bỏ chặn trang web cho bạn</translation> <translation id="3557101512409028104">Đặt các hạn chế về trang web và giới hạn thời gian sử dụng thiết bị bằng Family Link</translation> <translation id="3559262020195162408">Không cài đặt được chính sách trên thiết bị.</translation> +<translation id="3559533181353831840">Còn khoảng <ph name="TIME_LEFT" /></translation> <translation id="3560034655160545939">&Kiểm tra chính tả</translation> <translation id="3562423906127931518">Quá trình này có thể mất vài phút. Đang thiết lập vùng chứa Linux.</translation> <translation id="3563432852173030730">Không thể tải xuống ứng dụng Kiosk.</translation> @@ -2158,6 +2165,7 @@ <translation id="3602290021589620013">Xem trước</translation> <translation id="3603622770190368340">Nhận chứng chỉ mạng</translation> <translation id="3604713164406837697">Thay đổi hình nền</translation> +<translation id="360565022852130722">Mạng Wi-Fi được bảo mật bằng giao thức yếu WEP 802.1x</translation> <translation id="3605780360466892872">Doanh nhân</translation> <translation id="3608576286259426129">Bản xem trước hình ảnh dành cho người dùng</translation> <translation id="3610369246614755442">Quạt của đế sạc cần được bảo dưỡng</translation> @@ -2194,6 +2202,7 @@ <translation id="3639220004740062347">Thoát khỏi Chế độ đọc</translation> <translation id="3640214691812501263">Thêm "<ph name="EXTENSION_NAME" />" cho <ph name="USER_NAME" />?</translation> <translation id="3640613767643722554">Hướng dẫn Trợ lý nhận dạng giọng nói của bạn</translation> +<translation id="3643014427358482789"><ph name="DOMAIN" /> đang tắt tùy chọn gỡ lỗi ADB (Cầu gỡ lỗi Android). Thao tác này sẽ đặt lại <ph name="DEVICE_TYPE" />. Hãy sao lưu các tệp của bạn trước khi khởi động lại.</translation> <translation id="3645372836428131288">Nhẹ nhàng di chuyển ngón tay để hệ thống quét các phần của vân tay.</translation> <translation id="3647998456578545569">{COUNT,plural, =1{Đã nhận <ph name="ATTACHMENTS" /> từ thiết bị <ph name="DEVICE_NAME" />}other{Đã nhận <ph name="ATTACHMENTS" /> từ thiết bị <ph name="DEVICE_NAME" />}}</translation> <translation id="3648348069317717750">Đã phát hiện thấy <ph name="USB_DEVICE_NAME" /></translation> @@ -2282,6 +2291,7 @@ <translation id="3732857534841813090">Thông tin liên quan đến Trợ lý Google</translation> <translation id="3733127536501031542">Máy chủ SSL với Step-up</translation> <translation id="3735740477244556633">Sắp xếp theo</translation> +<translation id="3738632186060045350">Dữ liệu trên <ph name="DEVICE_TYPE" /> sẽ bị xóa sau 24 giờ</translation> <translation id="3738924763801731196"><ph name="OID" />:</translation> <translation id="3739254215541673094">Mở <ph name="APPLICATION" />?</translation> <translation id="3742055079367172538">Ảnh màn hình đã chụp</translation> @@ -2469,6 +2479,7 @@ <translation id="3937734102568271121">Luôn dịch <ph name="LANGUAGE" /></translation> <translation id="3938128855950761626">Thiết bị của nhà cung cấp <ph name="VENDOR_ID" /></translation> <translation id="3940233957883229251">Bật tính năng tự động lặp lại</translation> +<translation id="3941014780699102620">Không phân giải được máy chủ</translation> <translation id="3941565636838060942">Để ẩn khả năng truy cập chương trình này, bạn cần gỡ cài đặt bằng cách sử dụng <ph name="CONTROL_PANEL_APPLET_NAME" /> trong Bảng điều khiển. @@ -2631,6 +2642,7 @@ <translation id="413121957363593859">Thành phần</translation> <translation id="4131410914670010031">Đen và trắng</translation> <translation id="413193092008917129">Quy trình chẩn đoán mạng</translation> +<translation id="4132183752438206707">Tìm ứng dụng trên Cửa hàng Google Play</translation> <translation id="4133076602192971179">Hãy mở ứng dụng này để đổi mật khẩu</translation> <translation id="4136203100490971508">Chế độ Ánh sáng đêm sẽ tự động tắt khi trời sáng</translation> <translation id="41365691917097717">Nếu bạn tiếp tục, tùy chọn gỡ lỗi ADB sẽ bật để tạo và thử nghiệm các ứng dụng Android. Xin lưu ý rằng thao tác này sẽ cho phép cài đặt các ứng dụng Android mà Google chưa xác minh. Để tắt ADB, bạn cần phải đặt lại thiết bị về trạng thái ban đầu.</translation> @@ -2880,6 +2892,8 @@ <translation id="4479877282574735775">Đang định cấu hình máy ảo. Quá trình này có thể mất vài phút.</translation> <translation id="4480590691557335796">Chrome có thể tìm và xóa phần mềm gây hại trên máy tính của bạn</translation> <translation id="4481530544597605423">Thiết bị được hủy ghép nối</translation> +<translation id="4483049906298469269">Không ping được cổng của mạng không phải mạng mặc định</translation> +<translation id="4487489714832036847">Chromebook dùng ứng dụng thay vì phần mềm truyền thống. Hãy tải các ứng dụng giúp giải trí, tăng năng suất và phục vụ nhiều mục đích khác.</translation> <translation id="4488502501195719518">Xóa tất cả dữ liệu?</translation> <translation id="4493468155686877504">Đề xuất (<ph name="INSTALL_SIZE" />)</translation> <translation id="4495419450179050807">Không hiển thị trên trang này</translation> @@ -2930,6 +2944,7 @@ <translation id="4546692474302123343">Tính năng nhập bằng giọng nói của Trợ lý Google</translation> <translation id="4547659257713117923">Không có thẻ nào từ thiết bị khác</translation> <translation id="4547672827276975204">Tự động đặt</translation> +<translation id="4548483925627140043">Không tìm thấy tín hiệu</translation> <translation id="4549791035683739768">Khóa bảo mật của bạn chưa lưu trữ vân tay nào</translation> <translation id="4551763574344810652">Nhấn <ph name="MODIFIER_KEY_DESCRIPTION" /> để hủy thao tác</translation> <translation id="4552089082226364758">Flash</translation> @@ -2969,6 +2984,7 @@ <translation id="4582563038311694664">Đặt lại tất cả cài đặt</translation> <translation id="4585793705637313973">Chỉnh sửa trang</translation> <translation id="4586275095964870617">Không thể mở <ph name="URL" /> trong trình duyệt thay thế. Vui lòng liên hệ với quản trị viên hệ thống của bạn.</translation> +<translation id="458794348635939462">Không phân giải được một số máy chủ</translation> <translation id="4589713469967853491">Đã ghi thành công nhật ký vào thư mục Tệp đã tải xuống.</translation> <translation id="4590324241397107707">Bộ nhớ cơ sở dữ liệu</translation> <translation id="4592891116925567110">Ứng dụng vẽ bằng bút cảm ứng</translation> @@ -3352,6 +3368,7 @@ <translation id="5089810972385038852">Tỉnh</translation> <translation id="5094721898978802975">Kết nối với ứng dụng gốc hợp tác</translation> <translation id="5097002363526479830">Không thể kết nối với mạng '<ph name="NAME" />': <ph name="DETAILS" /></translation> +<translation id="5097649414558628673">Công cụ: <ph name="PRINT_NAME" /></translation> <translation id="5097874180538493929">Tự động nhấp khi con trỏ dừng lại</translation> <translation id="5101042277149003567">Mở tất cả dấu trang</translation> <translation id="5101839224773798795">Tự động nhấp chuột khi con trỏ dừng lại</translation> @@ -3570,6 +3587,7 @@ <translation id="5370819323174483825">&Tải lại</translation> <translation id="5372529912055771682">Chế độ đăng ký đã cung cấp không được phiên bản hệ điều hành này hỗ trợ. Hãy đảm bảo bạn đang chạy phiên bản mới nhất và thử lại.</translation> <translation id="5372579129492968947">Bỏ ghim tiện ích</translation> +<translation id="5372659122375744710">Mạng Wi-Fi không bảo mật</translation> <translation id="5376169624176189338">Nhấp vào để quay lại, giữ để xem lịch sử</translation> <translation id="5376931455988532197">Tệp quá lớn</translation> <translation id="5377721922656071359">{COUNT,plural, =1{Đã gửi thành công <ph name="ATTACHMENTS" /> tới thiết bị <ph name="DEVICE_NAME" />}other{Đã gửi thành công <ph name="ATTACHMENTS" /> tới thiết bị <ph name="DEVICE_NAME" />}}</translation> @@ -3599,6 +3617,7 @@ <translation id="5414566801737831689">Đọc biểu tượng của các trang web bạn truy cập</translation> <translation id="5417312524372586921">Chủ đề của trình duyệt</translation> <translation id="5419405654816502573">Voice Match</translation> +<translation id="5420274697768050645">Yêu cầu có mật khẩu để mở khóa thiết bị nhằm tăng cường tính bảo mật</translation> <translation id="5420438158931847627">Xác định độ sắc nét của văn bản và hình ảnh</translation> <translation id="5422221874247253874">Điểm truy cập</translation> <translation id="5422781158178868512">Rất tiếc, thiết bị lưu trữ bên ngoài của bạn không thể nhận dạng được.</translation> @@ -3723,6 +3742,7 @@ <translation id="5548606607480005320">Kiểm tra an toàn</translation> <translation id="5551573675707792127">Bàn phím và phương thức nhập văn bản</translation> <translation id="5553089923092577885">Ánh xạ Chính sách của Chứng chỉ</translation> +<translation id="5554403733534868102">Sau lần này, bạn sẽ không phải đợi bản cập nhật nữa</translation> <translation id="5554489410841842733">Biểu tượng này sẽ hiển thị khi tiện ích có thể hoạt động trên trang hiện tại.</translation> <translation id="5554720593229208774">Tổ chức phát hành chứng chỉ email</translation> <translation id="5556459405103347317">Tải lại</translation> @@ -4136,6 +4156,7 @@ <translation id="6061882183774845124">Gửi đường liên kết tới thiết bị của bạn</translation> <translation id="6064217302520318294">Phương thức khóa màn hình</translation> <translation id="6065289257230303064">Các Thuộc tính Thư mục Đối tượng Chứng chỉ</translation> +<translation id="6069464830445383022">Tài khoản Google của bạn chính là tài khoản dùng để đăng nhập vào Chromebook</translation> <translation id="6069671174561668781">Đặt hình nền</translation> <translation id="6071181508177083058">xác nhận mật khẩu</translation> <translation id="6071576563962215370">Hệ thống không thiết lập được khóa thuộc tính thời gian cài đặt thiết bị.</translation> @@ -4178,6 +4199,7 @@ <translation id="6104311680260824317">Không thể kết hợp thiết bị với miền. Máy chủ không hỗ trợ các loại mã hóa Kerbero được chỉ định. Hãy xem phần "Tùy chọn khác" để biết các tùy chọn cài đặt mã hóa.</translation> <translation id="6104796831253957966">Hàng đợi của máy in đã đầy</translation> <translation id="6105994589138235234">Đồng bộ hóa trình duyệt Chrome</translation> +<translation id="6108689792487843350">Không thể kết nối với cổng</translation> <translation id="6111972606040028426">Bật Trợ lý Google</translation> <translation id="6112294629795967147">Chạm để đổi kích thước</translation> <translation id="6112727384379533756">Thêm phiếu</translation> @@ -4238,6 +4260,7 @@ <translation id="6178664161104547336">Chọn một chứng chỉ</translation> <translation id="6181431612547969857">Tải xuống bị chặn</translation> <translation id="6185132558746749656">Vị trí thiết bị</translation> +<translation id="6191293864534840972">Máy chủ định danh không hợp lệ</translation> <translation id="6195446518998936840">Để thiết lập tính năng quyền kiểm soát của cha mẹ, con bạn phải có Tài khoản Google do bạn quản lý. Bạn có thể đặt giới hạn thời gian sử dụng thiết bị, phê duyệt hoặc chặn trang web và làm nhiều việc khác nữa thông qua ứng dụng Family Link.</translation> <translation id="6195693561221576702">Không thể thiết lập thiết bị này ở chế độ minh họa ngoại tuyến.</translation> <translation id="6196640612572343990">Chặn cookie của bên thứ ba</translation> @@ -4451,6 +4474,7 @@ <translation id="6451591602925140504">{NUM_PAGES,plural, =0{<ph name="PAGE_TITLE" />}=1{<ph name="PAGE_TITLE" /> và 1 thẻ khác}other{<ph name="PAGE_TITLE" /> và # thẻ khác}}</translation> <translation id="6451689256222386810">Nếu bạn quên cụm mật khẩu hoặc muốn thay đổi cài đặt này, hãy <ph name="BEGIN_LINK" />đặt lại đồng bộ hóa<ph name="END_LINK" />.</translation> <translation id="6452181791372256707">Từ chối</translation> +<translation id="6452251728599530347">Đã hoàn tất <ph name="PERCENT" /></translation> <translation id="6452961788130242735">Vấn đề về mạng hoặc vùng không hợp lệ</translation> <translation id="6455264371803474013">Trên các trang web cụ thể</translation> <translation id="6455894534188563617">&Thư mục mới</translation> @@ -4507,6 +4531,7 @@ <ph name="EVENT_NAME" /></translation> <translation id="6520876759015997832">Kết quả tìm kiếm <ph name="LIST_POSITION" />/<ph name="LIST_SIZE" />: <ph name="SEARCH_RESULT_TEXT" />. Hãy nhấn phím Enter để chuyển tới phần đó.</translation> <translation id="652492607360843641">Bạn đang kết nối mạng <ph name="NETWORK_TYPE" />.</translation> +<translation id="6527081081771465939">Giao thức bảo mật Wi-Fi không xác định</translation> <translation id="6527303717912515753">Chia sẻ</translation> <translation id="6528513914570774834">Cho phép người dùng khác của thiết bị sử dụng mạng này</translation> <translation id="652948702951888897">Lịch sử Chrome</translation> @@ -4623,6 +4648,7 @@ <translation id="6680442031740878064">Còn trống: <ph name="AVAILABLE_SPACE" /></translation> <translation id="6680650203439190394">Tốc độ</translation> <translation id="6681668084120808868">Chụp ảnh</translation> +<translation id="6684827949542560880">Đang tải bản cập nhật mới nhất xuống</translation> <translation id="668599234725812620">Mở Google Play</translation> <translation id="6686490380836145850">Đóng thẻ phía bên phải</translation> <translation id="6686817083349815241">Lưu mật khẩu của bạn</translation> @@ -4732,6 +4758,7 @@ <translation id="6812841287760418429">Lưu thay đổi</translation> <translation id="6817174620439930047">Hỏi tôi khi có trang web muốn sử dụng thông báo dành riêng cho hệ thống để truy cập thiết bị MIDI (được đề xuất)</translation> <translation id="6818198425579322765">Ngôn ngữ trang cần dịch</translation> +<translation id="6818802132960437751">Tính năng chống vi-rút tích hợp sẵn</translation> <translation id="682123305478866682">Truyền màn hình</translation> <translation id="6823174134746916417">Gõ để nhấp trên bàn di chuột</translation> <translation id="6823506025919456619">Bạn cần đăng nhập vào Chrome để thấy thiết bị của mình</translation> @@ -5378,6 +5405,7 @@ <translation id="7631205654593498032">Khi kết nối các thiết bị, bạn đồng ý rằng <ph name="DEVICE_TYPE" /> có thể:</translation> <translation id="7631887513477658702">&Luôn Mở Loại Tệp Này</translation> <translation id="7632948528260659758">Không cập nhật được các ứng dụng kiosk sau:</translation> +<translation id="7633724038415831385">Đây là lần duy nhất bạn cần đợi bản cập nhật. Trên Chromebook, quá trình cập nhật phần mềm diễn ra trong nền.</translation> <translation id="7634566076839829401">Đã xảy ra sự cố. Vui lòng thử lại.</translation> <translation id="763632859238619983">Không cho phép bất kỳ trang web nào cài đặt trình xử lý thanh toán</translation> <translation id="7636919061354591437">Cài đặt trên thiết bị này</translation> @@ -5656,6 +5684,7 @@ <translation id="7933314993013528982">{NUM_TABS,plural, =1{Bật âm thanh trang web}other{Bật âm thanh các trang web}}</translation> <translation id="7933634003144813719">Quản lý các thư mục dùng chung</translation> <translation id="793531125873261495">Lỗi khi tải máy ảo xuống. Vui lòng thử lại.</translation> +<translation id="7936303884198020182">Không tìm thấy máy chủ định danh</translation> <translation id="7938594894617528435">Hiện đang ngoại tuyến</translation> <translation id="7939062555109487992">Tùy chọn nâng cao</translation> <translation id="7939412583708276221">Vẫn tiếp tục</translation> @@ -5899,6 +5928,7 @@ <translation id="8226742006292257240">Dưới đây là mật khẩu TPM được tạo ngẫu nhiên đã được gán cho máy tính của bạn:</translation> <translation id="8227119283605456246">Đính kèm tệp</translation> <translation id="8230134520748321204">Bạn có muốn lưu mật khẩu cho <ph name="ORIGIN" /> không?</translation> +<translation id="8230672074305416752">Không ping được cổng của mạng mặc định</translation> <translation id="8234795456569844941">Hãy giúp các kỹ sư của chúng tôi khắc phục sự cố này. Hãy cho chúng tôi biết điều gì đã xảy ra ngay trước khi bạn nhận được thông báo lỗi hồ sơ:</translation> <translation id="8236917170563564587">Chia sẻ thẻ này</translation> <translation id="8237647586961940482">Đỏ và hồng đậm</translation> @@ -5959,6 +5989,7 @@ <translation id="8288032458496410887">Gỡ cài đặt <ph name="APP" />...</translation> <translation id="8289128870594824098">Dung lượng ổ đĩa</translation> <translation id="8291967909914612644">Quốc gia của nhà cung cấp Home</translation> +<translation id="8293206222192510085">Thêm Dấu trang</translation> <translation id="8294431847097064396">Nguồn</translation> <translation id="8297006494302853456">Yếu</translation> <translation id="8299319456683969623">Bạn hiện đang ngoại tuyến.</translation> @@ -6008,6 +6039,7 @@ <translation id="8363095875018065315">chính thức</translation> <translation id="8363142353806532503">Micrô bị chặn</translation> <translation id="8363763184161554204">đã cho phép <ph name="PERMISSION" /></translation> +<translation id="8364946094152050673">Máy chủ định danh trống</translation> <translation id="8366396658833131068">Kết nối mạng của bạn đã được khôi phục. Hãy chọn mạng khác hoặc nhấn nút 'Tiếp tục' bên dưới để khởi chạy ứng dụng kiosk của bạn.</translation> <translation id="8368027906805972958">Thiết bị không xác định hoặc không được hỗ trợ (<ph name="DEVICE_ID" />)</translation> <translation id="8368859634510605990">&Mở tất cả dấu trang</translation> @@ -6093,8 +6125,10 @@ <translation id="8472623782143987204">được hỗ trợ bằng phần cứng</translation> <translation id="8473863474539038330">Địa chỉ và các tùy chọn khác</translation> <translation id="8475313423285172237">Một chương trình khác trên máy tính của bạn đã thêm một tiện ích có thể thay đổi cách Chrome hoạt động.</translation> +<translation id="8475690821716466388">Mạng Wi-Fi được bảo mật bằng giao thức yếu WEP PSK</translation> <translation id="8477241577829954800">Đã thay thế</translation> <translation id="8477384620836102176">&Chung</translation> +<translation id="8477551185774834963">Độ trễ của Hệ thống tên miền (DNS) vượt ngưỡng cho phép đôi chút</translation> <translation id="8480082892550707549">Ngay cả khi bạn đã tải xuống các tệp từ trang web này trước đó, trang web này có thể tạm thời không an toàn (bị tấn công). Hãy thử tải xuống tệp này sau.</translation> <translation id="8480869669560681089">Thiết bị không xác định từ <ph name="VENDOR_NAME" /></translation> <translation id="8481187309597259238">Xác nhận quyền đối với USB</translation> @@ -6146,6 +6180,7 @@ <translation id="8546930481464505581">Tùy chỉnh Thanh cảm ứng</translation> <translation id="8547013269961688403">Bật tính năng phóng to toàn bộ màn hình</translation> <translation id="85486688517848470">Giữ phím Tìm kiếm để chuyển đổi chức năng của các phím hàng trên cùng</translation> +<translation id="8549316893834449916">Bạn sẽ dùng Tài khoản Google để đăng nhập vào Chromebook. Đây cũng chính là tài khoản bạn dùng cho Gmail, Drive, YouTube và nhiều sản phẩm khác.</translation> <translation id="8551388862522347954">Giấy phép</translation> <translation id="8551588720239073785">Cài đặt ngày và giờ</translation> <translation id="8553342806078037065">Quản lý những người khác</translation> @@ -6284,6 +6319,7 @@ <translation id="8720200012906404956">Đang tìm mạng di động. <ph name="BEGIN_LINK" />Tìm hiểu thêm<ph name="END_LINK" /></translation> <translation id="8720816553731218127">Đã hết thời gian khởi động thuộc tính thời gian cài đặt.</translation> <translation id="8722912030556880711">Gửi dữ liệu chẩn đoán và dữ liệu về mức sử dụng. Thiết bị này hiện tự động gửi dữ liệu chẩn đoán, dữ liệu về mức sử dụng ứng dụng và thiết bị cho Google. Những thông tin này sẽ giúp tăng độ ổn định của hệ thống và ứng dụng cũng như cải thiện các mặt khác. Một số dữ liệu tổng hợp cũng sẽ hữu ích cho các ứng dụng và đối tác của Google, chẳng hạn như những nhà phát triển Android. Nếu bạn bật mục cài đặt bổ sung Hoạt động trên web và ứng dụng thì dữ liệu này có thể được lưu vào Tài khoản Google của bạn. <ph name="BEGIN_LINK2" />Tìm hiểu thêm<ph name="END_LINK2" /></translation> +<translation id="8723108084122415655">Mạng không phải mạng mặc định vượt ngưỡng độ trễ</translation> <translation id="8724405322205516354">Khi nhìn thấy biểu tượng này, hãy sử dụng vân tay của bạn để nhận dạng hoặc phê duyệt giao dịch mua hàng.</translation> <translation id="8724409975248965964">Đã thêm vân tay</translation> <translation id="8724859055372736596">&Hiển thị trong Thư mục</translation> @@ -6461,6 +6497,7 @@ <translation id="8909833622202089127">Trang web đang theo dõi vị trí của bạn</translation> <translation id="8910146161325739742">Chia sẻ màn hình của bạn</translation> <translation id="8910222113987937043">Các thay đổi đối với dấu trang, lịch sử, mật khẩu và các cài đặt khác sẽ không được đồng bộ hóa với Tài khoản Google của bạn nữa. Tuy nhiên, dữ liệu hiện có của bạn sẽ vẫn được lưu trữ trong Tài khoản Google và có thể được quản lý trên <ph name="BEGIN_LINK" />Trang tổng quan Google<ph name="END_LINK" />.</translation> +<translation id="8910721771319628100">Mạng mặc định vượt ngưỡng độ trễ</translation> <translation id="8912362522468806198">Tài khoản Google</translation> <translation id="8912793549644936705">Kéo dãn</translation> <translation id="8912810933860534797">Bật tính năng tự động quét</translation>
diff --git a/chrome/app/resources/generated_resources_zh-CN.xtb b/chrome/app/resources/generated_resources_zh-CN.xtb index e1c15840..b9a26f1 100644 --- a/chrome/app/resources/generated_resources_zh-CN.xtb +++ b/chrome/app/resources/generated_resources_zh-CN.xtb
@@ -329,6 +329,7 @@ <translation id="1383876407941801731">搜索</translation> <translation id="1386387014181100145">您好!</translation> <translation id="1386791642444521222">激活实体 SIM 卡</translation> +<translation id="1387519831959169718">若要将您的浏览数据与 <ph name="NEW_USER" /> 的浏览数据分隔开来,您可为该用户创建一份新的个人资料</translation> <translation id="138784436342154190">要恢复默认启动页吗?</translation> <translation id="1388728792929436380">待更新完毕后,<ph name="DEVICE_TYPE" /> 将会重启。</translation> <translation id="1390548061267426325">在常规标签页中打开</translation> @@ -343,6 +344,7 @@ <translation id="139911022479327130">解锁您的手机并证实您的身份</translation> <translation id="1399511500114202393">不使用任何用户证书</translation> <translation id="1401308693935339022">使用位置信息。允许具有位置权限的应用和服务使用此设备的位置信息。Google 可能会定期收集位置数据,并以匿名方式使用这类数据,从而提高位置信息精确度并改善基于地理位置的服务。</translation> +<translation id="1403222014593521787">无法连接到代理</translation> <translation id="140520891692800925"><ph name="PROFILE_DISPLAY_NAME" />(受监管用户)</translation> <translation id="1405779994569073824">已崩溃。</translation> <translation id="1406500794671479665">正在验证...</translation> @@ -476,6 +478,7 @@ <translation id="1555130319947370107">蓝色</translation> <translation id="1556537182262721003">无法将扩展程序目录移动到个人资料中。</translation> <translation id="155865706765934889">触控板</translation> +<translation id="1563702743503072935">登录后,您在此设备上也能获取您 Google 帐号中保存的密码</translation> <translation id="1566049601598938765">网站</translation> <translation id="15662109988763471">所选打印机无法使用或未正确安装。请检查打印机,或尝试选择其他打印机。</translation> <translation id="1567387640189251553">自从您上次输入密码后,所连接的键盘已被更换。当前连接的键盘可能会试图窃取您的击键操作。</translation> @@ -518,7 +521,6 @@ <translation id="1608668830839595724">可对所选项执行的更多操作</translation> <translation id="161042844686301425">青色</translation> <translation id="1611432201750675208">您的设备已锁定</translation> -<translation id="1611584202130317952">配置流程中断了。请重试,或与您的设备所有者/管理员联系。</translation> <translation id="1614511179807650956">您的移动数据流量配额可能已经用完。若想购买更多流量,请前往“<ph name="NAME" />”激活门户网站</translation> <translation id="161460670679785907">检测不到您的手机</translation> <translation id="1616206807336925449">此扩展程序无需任何特殊权限。</translation> @@ -903,6 +905,7 @@ <translation id="2080070583977670716">更多设置</translation> <translation id="2081816110395725788">使用电池时让电源闲置</translation> <translation id="2082187087049518845">为标签页建组</translation> +<translation id="2082510809738716738">选择一种主题背景颜色</translation> <translation id="2087822576218954668">打印:<ph name="PRINT_NAME" /></translation> <translation id="2088690981887365033">VPN 网络</translation> <translation id="208928984520943006">从屏幕底部向上滑动即可随时回到主屏幕。</translation> @@ -957,6 +960,7 @@ <translation id="2148219725039824548">装载共享资源时出错。在网络上找不到所指定的共享资源。</translation> <translation id="2148756636027685713">格式化已完成</translation> <translation id="2148892889047469596">投射标签页</translation> +<translation id="2149973817440762519">修改书签</translation> <translation id="2150139952286079145">搜索目标打印机</translation> <translation id="2150661552845026580">要添加“<ph name="EXTENSION_NAME" />”吗?</translation> <translation id="2151576029659734873">输入的标签页索引无效。</translation> @@ -1053,6 +1057,7 @@ <translation id="2256115617011615191">立即重新启动</translation> <translation id="225614027745146050">欢迎</translation> <translation id="225692081236532131">激活状态</translation> +<translation id="2257053455312861282">您只需添加一个学校帐号,便能以学生身份轻松登录网站、扩展程序和应用,同时仍在家长控制下执行操作。</translation> <translation id="2261323523305321874">您的管理员做出了一项系统级更改,致使一些旧个人资料遭到停用。</translation> <translation id="2262332168014443534">现在,精简模式可使所有网页(包括 HTTPS 网页)以更快的速度加载。</translation> <translation id="2262477216570151239">重复前的延迟时间</translation> @@ -1966,6 +1971,7 @@ <translation id="3396800784455899911">点击“接受并继续”按钮,即表示您同意上述针对这些 Google 服务的处理方式。</translation> <translation id="3399432415385675819">通知将被停用</translation> <translation id="3400390787768057815"><ph name="WIDTH" /> x <ph name="HEIGHT" />(<ph name="REFRESH_RATE" /> 赫兹) - 交错</translation> +<translation id="3402255108239926910">选择头像</translation> <translation id="3402585168444815892">正在注册演示模式</translation> <translation id="340282674066624">已下载 <ph name="DOWNLOAD_RECEIVED" />,还需 <ph name="TIME_LEFT" /></translation> <translation id="3404065873681873169">未保存任何用于登录此网站的密码</translation> @@ -1993,6 +1999,7 @@ <translation id="3428747202529429621">保护您在 Chrome 中免受安全威胁,登录状态下还可让您更安全地使用其他 Google 应用</translation> <translation id="3428800329481094896">正在提取 Linux 容器 SSH 密钥</translation> <translation id="3429275422858276529">为此网页添加书签,以便日后查找</translation> +<translation id="3431370546335300761">登录即可连接到代理</translation> <translation id="3432227430032737297">移除显示的所有 Cookie</translation> <translation id="3432757130254800023">向本地网络上的显示屏发送音频和视频</translation> <translation id="3432762828853624962">Shared Workers</translation> @@ -2374,6 +2381,7 @@ <translation id="3841964634449506551">密码无效</translation> <translation id="3842552989725514455">Serif 字体</translation> <translation id="3843464315703645664">已列入内部许可名单</translation> +<translation id="3844888638014364087">已插入表情符号</translation> <translation id="3846116211488856547">获取用于开发网站、Android 应用等内容的工具。安装 Linux 会使系统下载 <ph name="DOWNLOAD_SIZE" /> 的数据。</translation> <translation id="3847319713229060696">帮助我们为所有人改善网络安全环境</translation> <translation id="385051799172605136">返回</translation> @@ -2676,6 +2684,7 @@ <translation id="4232375817808480934">配置 Kerberos</translation> <translation id="4235200303672858594">整个屏幕</translation> <translation id="4235965441080806197">取消登录</translation> +<translation id="4237773362828263530">带有“*”通配符的设置已不再受支持。如需<ph name="BEGIN_LINK" />更改这些设置<ph name="END_LINK" />,请与您的管理员联系。</translation> <translation id="4242145785130247982">有多个客户端证书不受支持</translation> <translation id="4242533952199664413">打开“设置”</translation> <translation id="4242577469625748426">无法在设备上安装策略设置:<ph name="VALIDATION_ERROR" />。</translation> @@ -2786,6 +2795,7 @@ <translation id="4384312707950789900">添加到首选网络列表</translation> <translation id="4384652540891215547">激活该扩展程序</translation> <translation id="438503109373656455">小马</translation> +<translation id="4385040356362222432">若要将 <ph name="NEW_USER" /> 的浏览数据与 <ph name="EXISTING_USER" /> 的浏览数据分隔开来,请创建一份新的个人资料</translation> <translation id="4387004326333427325">身份验证证书遭到远程拒绝</translation> <translation id="4387890294700445764">已泄露的密码</translation> <translation id="4389091756366370506">用户 <ph name="VALUE" /></translation> @@ -2893,6 +2903,7 @@ <translation id="4522570452068850558">详细信息</translation> <translation id="4522600456902129422">继续允许此网站查看剪贴板</translation> <translation id="4524832533047962394">此版本的操作系统不支持所提供的注册模式。请确保您运行的是最新版本。</translation> +<translation id="4527186207340858212">创建一份新的工作资料?</translation> <translation id="452750746583162491">查看您已同步的数据</translation> <translation id="4530494379350999373">来源</translation> <translation id="4532646538815530781">此网站正在使用动态传感器。</translation> @@ -2943,6 +2954,9 @@ <translation id="4573515936045019911">必须建立网络连接,才能升级 Linux。请连接到互联网,然后重试。</translation> <translation id="457386861538956877">更多...</translation> <translation id="4574741712540401491">• <ph name="LIST_ITEM_TEXT" /></translation> +<translation id="457564749856982089">只要您向个人资料添加一个学校帐号,孩子便能以学生身份轻松登录网站、扩展程序和应用,同时仍在家长控制下执行操作。此操作不会授权孩子访问与学校帐号同步的书签、密码或其他浏览器数据。<br><br> + 如果您的孩子在校时使用 Chromebook,并且您希望在家中复制同样的在校使用体验,确保孩子能够获取所有必要的学校作业,请退出此 Family Link 帐号,然后从 Chrome 操作系统帐号页面登录学校帐号(注意:Family Link 家长控制将不适用)。<br><br> + 如果您的孩子在校时不使用 Chromebook,或者您更愿意借助 Family Link 管理孩子的在家使用体验,请点击下方的“下一步”按钮向这份个人资料添加学校帐号。</translation> <translation id="4576541033847873020">配对蓝牙设备</translation> <translation id="4579453506923101210">移除已连接的手机</translation> <translation id="4579581181964204535">无法投射 <ph name="HOST_NAME" />。</translation> @@ -3080,6 +3094,7 @@ <translation id="4763408175235639573">以下 Cookie 是系统在您查看此网页时设置的</translation> <translation id="4765582662863429759">允许 Android 信息将短信从手机转送到 Chromebook</translation> <translation id="4768332406694066911">您有以下组织发给您的身份证书</translation> +<translation id="477647109558161443">创建桌面快捷方式</translation> <translation id="4776917500594043016"><ph name="USER_EMAIL_ADDRESS" /> 的密码</translation> <translation id="4777825441726637019">Play 商店</translation> <translation id="4777943778632837590">配置网络域名服务器</translation> @@ -3451,6 +3466,7 @@ <translation id="5249624017678798539">浏览器崩溃了,下载还未完成。</translation> <translation id="5250372599208556903"><ph name="SEARCH_ENGINE_NAME" /> 会使用您的位置信息为您提供本地内容。您可以在<ph name="SETTINGS_LINK" />中更改此设置。</translation> <translation id="5252456968953390977">漫游</translation> +<translation id="5252496130205799136">使用您的 Google 帐号保存和填充密码?</translation> <translation id="5252653240322147470">PIN 码必须少于 <ph name="MAXIMUM" /> 位数</translation> <translation id="5254368820972107711">显示将被移除的文件</translation> <translation id="52550593576409946">无法启动自助服务终端应用。</translation> @@ -3715,6 +3731,7 @@ <translation id="5565735124758917034">主动</translation> <translation id="5567989639534621706">应用缓存</translation> <translation id="5568069709869097550">无法登录</translation> +<translation id="5571832155627049070">自定义您的个人资料</translation> <translation id="5572851009514199876">请启动并登录 Chrome,以便 Chrome 能够检查您是否可以访问此网站。</translation> <translation id="5575473780076478375">隐身模式下使用的应用...<ph name="EXTENSION_NAME" /></translation> <translation id="5575528586625653441">请求注册演示模式时出问题了。</translation> @@ -4290,6 +4307,7 @@ <translation id="6270770586500173387">发送<ph name="BEGIN_LINK1" />系统和应用信息<ph name="END_LINK1" />以及<ph name="BEGIN_LINK2" />指标<ph name="END_LINK2" /></translation> <translation id="6272643420381259437">下载该插件时出现错误 (<ph name="ERROR" />)</translation> <translation id="6273677812470008672">打印质量</translation> +<translation id="6276210637549544171">代理 <ph name="PROXY_SERVER" /> 要求提供用户名和密码。</translation> <translation id="6277105963844135994">网络超时</translation> <translation id="6277518330158259200">屏幕截图(&A)</translation> <translation id="6278057325678116358">使用 GTK+</translation> @@ -4310,6 +4328,7 @@ <translation id="6298962879096096191">使用 Google Play 安装 Android 应用</translation> <translation id="630065524203833229">退出(&X)</translation> <translation id="6300718114348072351">无法自动配置<ph name="PRINTER_NAME" />。请指定高级打印机详细信息。<ph name="LINK_BEGIN" />了解详情<ph name="LINK_END" /></translation> +<translation id="6301076166764763868">若要将个人的浏览数据与 <ph name="EXISTING_USER" /> 的浏览数据分隔开来,请为 <ph name="NEW_USER" /> 创建一份新的个人资料</translation> <translation id="630292539633944562">个人信息建议</translation> <translation id="6305607932814307878">全局政策:</translation> <translation id="6307990684951724544">系统繁忙</translation> @@ -4513,6 +4532,7 @@ <translation id="6556866813142980365">重做</translation> <translation id="6556903358015358733">主题背景和壁纸</translation> <translation id="6557290421156335491">我的快捷方式</translation> +<translation id="6560151649238390891">已插入建议</translation> <translation id="6561560012278703671">改用静态指示方式(禁止网站发送通知,以免干扰)</translation> <translation id="6561726789132298588">Enter</translation> <translation id="6562117348069327379">将系统日志存储到“下载内容”目录中。</translation> @@ -5162,6 +5182,7 @@ <translation id="7385854874724088939">尝试打印时出现错误。请检查您的打印机,然后重试。</translation> <translation id="7385896526023870365">此扩展程序无权访问其他网站。</translation> <translation id="7388044238629873883">即将终结!</translation> +<translation id="7388209873137778229">系统仅会显示受支持的设备。</translation> <translation id="7392118418926456391">病毒扫描失败</translation> <translation id="7392915005464253525">重新打开关闭的窗口(&E)</translation> <translation id="7396017167185131589">共享文件夹将会显示在此处</translation> @@ -5185,6 +5206,7 @@ <translation id="7415454883318062233">设置已完成</translation> <translation id="7416362041876611053">未知网络错误。</translation> <translation id="741906494724992817">此应用不需要任何特殊权限。</translation> +<translation id="7420817660256886596">代理 <ph name="PROXY" /> 要求您使用用户名和密码验证身份</translation> <translation id="742130257665691897">书签已移除</translation> <translation id="7421925624202799674">显示网页源代码(&V)</translation> <translation id="7422192691352527311">偏好设置...</translation> @@ -5444,6 +5466,7 @@ <translation id="7737115349420013392">正在与“<ph name="DEVICE_NAME" />”配对…</translation> <translation id="7737238973539693982">删除 Linux(测试版)</translation> <translation id="7740996059027112821">标准</translation> +<translation id="7741721175294046818">无法连接到代理,请重试</translation> <translation id="774377079771918250">选择所需的保存位置</translation> <translation id="7744047395460924128">查看您的打印记录</translation> <translation id="7744192722284567281">遭遇了数据泄露</translation> @@ -5688,6 +5711,7 @@ <translation id="8002670234429879764">“<ph name="PRINTER_NAME" />”已断开连接</translation> <translation id="8004582292198964060">浏览器</translation> <translation id="8005600846065423578">始终允许 <ph name="HOST" /> 查看剪贴板</translation> +<translation id="8006143138282906848">移除这份个人资料</translation> <translation id="8008356846765065031">网络已断开,请检查您的互联网连接是否正常。</translation> <translation id="8009225694047762179">管理密码</translation> <translation id="8012647001091218357">我们暂时无法与您父母取得联系,请重试。</translation> @@ -5754,9 +5778,11 @@ <translation id="8084114998886531721">保存的密码</translation> <translation id="8086015605808120405">正在配置<ph name="PRINTER_NAME" />…</translation> <translation id="8086442853986205778">设置<ph name="PRINTER_NAME" /></translation> +<translation id="8086550884324762001">示例:“工作”、“个人”、“孩子”或某个名字</translation> <translation id="80866457114322936">{NUM_FILES,plural, =1{这个文件已加密。请让它的所有者进行解密。}other{这些文件中的部分文件已加密。请让它们的所有者进行解密。}}</translation> <translation id="808894953321890993">更改密码</translation> <translation id="8090234456044969073">读取您最常访问的网站列表</translation> +<translation id="8092681102116274204">带有“*”通配符的设置已不再受支持。如需<ph name="BEGIN_LINK" />更改这些设置<ph name="END_LINK" />,请与扩展程序开发者或您的管理员联系。</translation> <translation id="8093359998839330381">“<ph name="PLUGIN_NAME" />”没有响应</translation> <translation id="8095105960962832018"><ph name="BEGIN_PARAGRAPH1" />备份到 Google 云端硬盘。您随时都能轻松地恢复数据或更换设备。您的备份内容会包含应用数据。<ph name="END_PARAGRAPH1" /> <ph name="BEGIN_PARAGRAPH2" />您的备份内容会上传到 Google 并会使用您的 Google 帐号密码进行加密。<ph name="END_PARAGRAPH2" /> @@ -5808,6 +5834,7 @@ <translation id="8146177459103116374">如果您已在此设备上注册,就能<ph name="LINK2_START" />以现有用户的身份登录<ph name="LINK2_END" />。</translation> <translation id="8146793085009540321">登录失败,请与管理员联系或重试。</translation> <translation id="8148760431881541277">限制登录</translation> +<translation id="8151579390896831136">自定义您的个人资料,包括其名称</translation> <translation id="8151638057146502721">配置</translation> <translation id="8152091997436726702">打印机注册已超时。要注册打印机,您必须在该打印机上确认注册。</translation> <translation id="8154790740888707867">未发现文件</translation> @@ -5926,6 +5953,7 @@ <translation id="8288032458496410887">卸载<ph name="APP" />…</translation> <translation id="8289128870594824098">磁盘大小</translation> <translation id="8291967909914612644">家用移动网络提供商所属国家/地区</translation> +<translation id="8293206222192510085">添加书签</translation> <translation id="8294431847097064396">来源</translation> <translation id="8297006494302853456">弱</translation> <translation id="8299319456683969623">您目前处于离线状态。</translation> @@ -6531,6 +6559,7 @@ <translation id="9031549947500880805">备份到 Google 云端硬盘。您随时可以轻松地恢复数据或更换设备。您的备份内容包含应用数据。</translation> <translation id="9033765790910064284">仍然继续</translation> <translation id="9033857511263905942">粘贴(&P)</translation> +<translation id="9037818663270399707">您的连接无法确保所有网络流量的私密性</translation> <translation id="9037965129289936994">显示原始网页</translation> <translation id="9039014462651733343">{NUM_ATTEMPTS,plural, =1{您还剩 1 次尝试机会。}other{您还剩 # 次尝试机会。}}</translation> <translation id="9039663905644212491">PEAP</translation>
diff --git a/chrome/app/resources/generated_resources_zh-HK.xtb b/chrome/app/resources/generated_resources_zh-HK.xtb index de2c4a3..a953895 100644 --- a/chrome/app/resources/generated_resources_zh-HK.xtb +++ b/chrome/app/resources/generated_resources_zh-HK.xtb
@@ -71,6 +71,7 @@ <translation id="1070705170564860382">於 <ph name="COUNTDOWN_SECONDS" /> 秒後在替代瀏覽器中開啟</translation> <translation id="1071917609930274619">數據編密</translation> <translation id="1072700771426194907">偵測到 USB 裝置</translation> +<translation id="107278043869924952">使用 PIN 和密碼</translation> <translation id="1076176485976385390">使用文字游標導覽網頁</translation> <translation id="1076698951459398590">啟用主題背景</translation> <translation id="1076818208934827215">Microsoft Internet Explorer</translation> @@ -524,7 +525,6 @@ <translation id="1608668830839595724">更多可對所選項目執行的動作</translation> <translation id="161042844686301425">青色</translation> <translation id="1611432201750675208">您的裝置已鎖定</translation> -<translation id="1611584202130317952">佈建流程已中斷。請再試一次,或與裝置擁有者或管理員聯絡。</translation> <translation id="1614511179807650956">您可能已用盡流動數據配額。前往 <ph name="NAME" /> 啟用入口網站即可購買更多數據用量。</translation> <translation id="161460670679785907">無法偵測您的手機</translation> <translation id="1616206807336925449">這個擴充功能不需任何特殊權限。</translation> @@ -533,6 +533,7 @@ <translation id="1618268899808219593">說明中心(&E)</translation> <translation id="1620307519959413822">密碼錯誤,請再試一次,或按一下 [忘記密碼] 以重設密碼。</translation> <translation id="1620510694547887537">相機</translation> +<translation id="1621831347985899379"><ph name="DEVICE_TYPE" /> 資料會被刪除</translation> <translation id="1622054403950683339">移除 Wi-Fi 網絡</translation> <translation id="1623132449929929218">目前無法提供相片,請重新連線至互聯網以查看桌布相片集。</translation> <translation id="1623723619460186680">減少藍光</translation> @@ -760,6 +761,7 @@ <translation id="1877377290348678128">標籤 (選填)</translation> <translation id="1877520246462554164">無法獲取驗證憑證。請先登出並重新登入,然後再試一次。</translation> <translation id="1877860345998737529">開關動作指派</translation> +<translation id="1878155070920054810">Chromebook 似乎會在更新完成前沒電。請確認 Chromebook 已正確充電,避免更新中斷。</translation> <translation id="1879000426787380528">登入身分</translation> <translation id="1880905663253319515">要刪除憑證「<ph name="CERTIFICATE_NAME" />」嗎?</translation> <translation id="1881445033931614352">鍵盤版面配置</translation> @@ -964,6 +966,7 @@ <translation id="2148219725039824548">連接共用裝置時發生錯誤。在網絡上找不到指定的共用裝置。</translation> <translation id="2148756636027685713">格式化完成</translation> <translation id="2148892889047469596">投放分頁</translation> +<translation id="2149973817440762519">編輯書籤</translation> <translation id="2150139952286079145">搜尋目的地</translation> <translation id="2150661552845026580">要新增「<ph name="EXTENSION_NAME" />」嗎?</translation> <translation id="2151576029659734873">輸入的分頁索引無效。</translation> @@ -1060,7 +1063,7 @@ <translation id="2256115617011615191">立即重新啟動</translation> <translation id="225614027745146050">歡迎使用</translation> <translation id="225692081236532131">啟用狀態</translation> -<translation id="2257053455312861282">只需新增學校帳戶,即可讓您在家長監控設定下,以學生身份輕鬆登入網站、擴充程式和應用程式。</translation> +<translation id="2257053455312861282">只需新增學校帳戶,即可讓您在家長監控設定下以學生身份輕鬆登入網站、擴充程式和應用程式。</translation> <translation id="2261323523305321874">管理員實行的全系統變更停用了部分舊設定檔。</translation> <translation id="2262332168014443534">精簡模式讓您瀏覽任何網頁更快捷,包括 HTTPS。</translation> <translation id="2262477216570151239">重複前的延遲時間</translation> @@ -1073,6 +1076,7 @@ <translation id="2270627217422354837">與網域 <ph name="DOMAINS" /> 中的任何裝置交換數據</translation> <translation id="2272570998639520080">馬天尼酒杯</translation> <translation id="2273119997271134996">插座的影片連接埠發生問題</translation> +<translation id="2274840746523584236">請為 Chromebook 充電</translation> <translation id="2276503375879033601">新增更多應用程式</translation> <translation id="2277255602909579701">所有 Cookie 和網站資料</translation> <translation id="2277769717710009150">{COUNT,plural, =1{已複製 1 個項目}other{已複製 # 個項目}}</translation> @@ -1914,6 +1918,7 @@ <translation id="3308116878371095290">無法為這個網頁設定 Cookie。</translation> <translation id="3308134619352333507">隱藏按鈕</translation> <translation id="3308852433423051161">正在載入「Google 助理」…</translation> +<translation id="3310640316857623290">DNS 延遲時間大幅超過允許的門檻</translation> <translation id="3311445899360743395">系統可能會從裝置中移除與此應用程式相關的資料。</translation> <translation id="3312424061798279731">已啟用的語言</translation> <translation id="3313622045786997898">憑證簽署值</translation> @@ -1926,6 +1931,7 @@ <translation id="3323295311852517824">{NUM_FILES,plural, =0{此資料含有敏感或危險的內容。請移除這類內容,然後再試一次。}=1{此檔案含有敏感或危險的內容。請移除這類內容,然後再試一次。}other{這些檔案含有敏感或危險的內容。請移除這類內容,然後再試一次。}}</translation> <translation id="3323521181261657960">恭喜!您的裝置使用時間增加了</translation> <translation id="3325910708063135066">已關閉 Mac 系統偏好設定中的相機和麥克風</translation> +<translation id="3327050066667856415">Chromebook 專為提升安全性而設。您的裝置會自動防範惡意軟件,無需安裝額外軟件。</translation> <translation id="3328489342742826322">還原備份內容時,系統將刪除 Linux 檔案資料夾中的現有 Linux 應用程式和資料。</translation> <translation id="3331321258768829690">(<ph name="UTCOFFSET" />) <ph name="LONGTZNAME" /> (<ph name="EXEMPLARCITY" />)</translation> <translation id="3331974543021145906">應用程式資料</translation> @@ -2115,6 +2121,7 @@ <translation id="3556433843310711081">您的管理員可以為您解除封鎖此網站</translation> <translation id="3557101512409028104">透過 Family Link 設定網站限制和裝置使用時間限制</translation> <translation id="3559262020195162408">無法在裝置上安裝政策。</translation> +<translation id="3559533181353831840">大約剩餘 <ph name="TIME_LEFT" /></translation> <translation id="3560034655160545939">拼字檢查(&S)</translation> <translation id="3562423906127931518">此程序可能需時幾分鐘。正在設定 Linux 容器。</translation> <translation id="3563432852173030730">無法下載 Kiosk 應用程式。</translation> @@ -2157,6 +2164,7 @@ <translation id="3602290021589620013">預覽</translation> <translation id="3603622770190368340">取得網絡憑證</translation> <translation id="3604713164406837697">變更桌布</translation> +<translation id="360565022852130722">已使用防護力較弱的通訊協定 WEP 802.1x 保護 Wi-Fi 網絡</translation> <translation id="3605780360466892872">小員工</translation> <translation id="3608576286259426129">使用者圖片預覽</translation> <translation id="3610369246614755442">插座風扇需要維修</translation> @@ -2193,6 +2201,7 @@ <translation id="3639220004740062347">離開閱讀器模式</translation> <translation id="3640214691812501263">要為<ph name="USER_NAME" />新增「<ph name="EXTENSION_NAME" />」嗎?</translation> <translation id="3640613767643722554">教導「Google 助理」識別您的聲音</translation> +<translation id="3643014427358482789"><ph name="DOMAIN" /> 正在停用 ADB 偵錯,此操作會重設 <ph name="DEVICE_TYPE" />。請在重新開機前備份檔案。</translation> <translation id="3645372836428131288">請輕輕移動您的手指,以便系統讀取指紋的不同部分</translation> <translation id="3647998456578545569">{COUNT,plural, =1{已收到來自「<ph name="DEVICE_NAME" />」的 <ph name="ATTACHMENTS" />}other{已收到來自「<ph name="DEVICE_NAME" />」的 <ph name="ATTACHMENTS" />}}</translation> <translation id="3648348069317717750">偵測到 <ph name="USB_DEVICE_NAME" /></translation> @@ -2281,6 +2290,7 @@ <translation id="3732857534841813090">「Google 助理」相關資料</translation> <translation id="3733127536501031542">具有 Step-Up 功能的 SSL 伺服器</translation> <translation id="3735740477244556633">排序方式</translation> +<translation id="3738632186060045350"><ph name="DEVICE_TYPE" /> 資料將在 24 小時後被刪除</translation> <translation id="3738924763801731196"><ph name="OID" />:</translation> <translation id="3739254215541673094">要開啟「<ph name="APPLICATION" />」嗎?</translation> <translation id="3742055079367172538">已拍攝螢幕擷圖</translation> @@ -2468,6 +2478,7 @@ <translation id="3937734102568271121">一律翻譯<ph name="LANGUAGE" /></translation> <translation id="3938128855950761626">來自供應商 <ph name="VENDOR_ID" /> 的裝置</translation> <translation id="3940233957883229251">啟用自動重複</translation> +<translation id="3941014780699102620">無法解析主機</translation> <translation id="3941565636838060942">如要隱藏這個程式的存取權,您必須使用控制台中的 「<ph name="CONTROL_PANEL_APPLET_NAME" />」解除安裝此程式。 @@ -2630,6 +2641,7 @@ <translation id="413121957363593859">組件</translation> <translation id="4131410914670010031">黑白</translation> <translation id="413193092008917129">網絡診斷日常安排</translation> +<translation id="4132183752438206707">在「Google Play 商店」中尋找應用程式</translation> <translation id="4133076602192971179">開啟應用程式以變更密碼</translation> <translation id="4136203100490971508">「夜燈模式」將會在日出時自動關閉</translation> <translation id="41365691917097717">如繼續操作,系統將允許 ADB 偵錯功能建立及測試 Android 應用程式。請注意,此操作允許安裝未經 Google 驗證的 Android 應用程式,並且需要恢復原廠設定才能停用。</translation> @@ -2879,6 +2891,8 @@ <translation id="4479877282574735775">正在設定虛擬機器。這項操作可能需時數分鐘。</translation> <translation id="4480590691557335796">Chrome 能夠在您的電腦上尋找並移除有害軟件</translation> <translation id="4481530544597605423">未配對的裝置</translation> +<translation id="4483049906298469269">無法連線偵測非預設的網絡閘道</translation> +<translation id="4487489714832036847">Chromebook 使用應用程式代替傳統軟件。取得應用程式以提升生產力、享受娛樂體驗等等。</translation> <translation id="4488502501195719518">要清除所有資料嗎?</translation> <translation id="4493468155686877504">建議大小 (<ph name="INSTALL_SIZE" />)</translation> <translation id="4495419450179050807">不要在這個網頁上顯示</translation> @@ -2929,6 +2943,7 @@ <translation id="4546692474302123343">「Google 助理」語音輸入</translation> <translation id="4547659257713117923">沒有其他裝置的分頁</translation> <translation id="4547672827276975204">自動設定</translation> +<translation id="4548483925627140043">偵測不到訊號</translation> <translation id="4549791035683739768">您的安全密鑰並未儲存任何指紋</translation> <translation id="4551763574344810652">按下 <ph name="MODIFIER_KEY_DESCRIPTION" /> 即可復原</translation> <translation id="4552089082226364758">Flash</translation> @@ -2958,7 +2973,7 @@ <translation id="4573515936045019911">必須連接互聯網才能升級 Linux。請連線至互聯網,然後再試一次。</translation> <translation id="457386861538956877">更多語言…</translation> <translation id="4574741712540401491">• <ph name="LIST_ITEM_TEXT" /></translation> -<translation id="457564749856982089">只需新增學校帳戶到設定檔,即可讓您在家長監控設定下,以學生身份輕鬆登入網站、擴充程式和應用程式。此操作不會向子女授予與學校帳戶同步的書籤、密碼或其他瀏覽資料的存取權。<br><br> +<translation id="457564749856982089">只需新增學校帳戶到設定檔,即可讓您在家長監控設定下以學生身份輕鬆登入網站、擴充程式和應用程式。此操作不會向子女授予與學校帳戶同步的書籤、密碼或其他瀏覽資料的存取權。<br><br> 如果您的子女在學校使用 Chromebook,而您想將學校體驗完整複製至家中,以確保子女女可存取所有與學校作業相關的必要內容,請登出此 Family Link 帳戶,並從 Chrome 作業系統帳戶頁面登入學校帳戶 (注意:系統不會套用 Family Link 家長監控設定)。<br><br> 如果您的子女在學校不使用 Chromebook,或您想透過 Family Link 管理子女的在家體驗,請按下方的 [下一步] 按鈕,將學校帳戶新增至此設定檔。</translation> <translation id="4576541033847873020">配對藍牙裝置</translation> @@ -2968,6 +2983,7 @@ <translation id="4582563038311694664">重設所有設定</translation> <translation id="4585793705637313973">編輯頁面</translation> <translation id="4586275095964870617"><ph name="URL" /> 無法在替代瀏覽器中開啟。請聯絡您的系統管理員。</translation> +<translation id="458794348635939462">無法解析所有主機</translation> <translation id="4589713469967853491">記錄已成功寫入「下載」目錄。</translation> <translation id="4590324241397107707">數據庫儲存空間</translation> <translation id="4592891116925567110">觸控筆繪圖應用程式</translation> @@ -3351,6 +3367,7 @@ <translation id="5089810972385038852">州</translation> <translation id="5094721898978802975">與合作內置應用程式通訊</translation> <translation id="5097002363526479830">無法連線至「<ph name="NAME" />」:<ph name="DETAILS" /></translation> +<translation id="5097649414558628673">工具:<ph name="PRINT_NAME" /></translation> <translation id="5097874180538493929">游標停止時自動點擊</translation> <translation id="5101042277149003567">開啟所有書籤</translation> <translation id="5101839224773798795">遊標停止時自動點擊</translation> @@ -3569,6 +3586,7 @@ <translation id="5370819323174483825">重新載入(&R)</translation> <translation id="5372529912055771682">這個版本的作業系統不支援提供註冊模式。請確保您使用的是最新版本,然後再試一次。</translation> <translation id="5372579129492968947">取消固定擴充程式</translation> +<translation id="5372659122375744710">Wi-Fi 網絡不安全</translation> <translation id="5376169624176189338">輕按即可返回上一頁,按住可查看記錄</translation> <translation id="5376931455988532197">檔案太大</translation> <translation id="5377721922656071359">{COUNT,plural, =1{已成功將 <ph name="ATTACHMENTS" />傳送至「<ph name="DEVICE_NAME" />」}other{已成功將 <ph name="ATTACHMENTS" />傳送至「<ph name="DEVICE_NAME" />」}}</translation> @@ -3598,6 +3616,7 @@ <translation id="5414566801737831689">讀取您所瀏覽網站的圖示</translation> <translation id="5417312524372586921">瀏覽器主題背景</translation> <translation id="5419405654816502573">Voice Match</translation> +<translation id="5420274697768050645">需要使用密碼解鎖裝置以提升安全性</translation> <translation id="5420438158931847627">決定文字和圖片的銳利度</translation> <translation id="5422221874247253874">接入點</translation> <translation id="5422781158178868512">很抱歉,系統無法識別您的外部儲存裝置。</translation> @@ -3722,6 +3741,7 @@ <translation id="5548606607480005320">安全檢查</translation> <translation id="5551573675707792127">鍵盤和文字輸入</translation> <translation id="5553089923092577885">憑證政策對應關聯</translation> +<translation id="5554403733534868102">以後不需要等待更新</translation> <translation id="5554489410841842733">當擴充功能適用於目前網頁時,即會顯示此圖示。</translation> <translation id="5554720593229208774">電郵憑證授權單位</translation> <translation id="5556459405103347317">重新載入</translation> @@ -4135,6 +4155,7 @@ <translation id="6061882183774845124">將連結傳送至裝置</translation> <translation id="6064217302520318294">螢幕鎖定</translation> <translation id="6065289257230303064">憑證主體目錄屬性</translation> +<translation id="6069464830445383022">您的 Google 帳戶就是用來登入 Chromebook 的帳戶</translation> <translation id="6069671174561668781">設定桌布</translation> <translation id="6071181508177083058">確認密碼</translation> <translation id="6071576563962215370">系統無法確定裝置安裝時間的屬性。</translation> @@ -4177,6 +4198,7 @@ <translation id="6104311680260824317">無法將裝置加入網域。伺服器不支援特定的 Kerberos 加密類型。請前往「更多選項」檢查加密設定。</translation> <translation id="6104796831253957966">打印機序列已滿</translation> <translation id="6105994589138235234">Chrome 瀏覽器同步功能</translation> +<translation id="6108689792487843350">無法連接閘道</translation> <translation id="6111972606040028426">啟用「Google 助理」</translation> <translation id="6112294629795967147">輕觸即可調整大小</translation> <translation id="6112727384379533756">新增票證</translation> @@ -4237,6 +4259,7 @@ <translation id="6178664161104547336">選取憑證</translation> <translation id="6181431612547969857">下載被封鎖</translation> <translation id="6185132558746749656">裝置位置</translation> +<translation id="6191293864534840972">域名伺服器格式錯誤</translation> <translation id="6195446518998936840">如要設定家長監控設定,子女必須有您可協助管理的 Google 帳戶。您可透過 Family Link 應用程式設定裝置使用時間限制、核准或封鎖網站等功能。</translation> <translation id="6195693561221576702">無法在此裝置上設定離線示範模式。</translation> <translation id="6196640612572343990">封鎖第三方 Cookie</translation> @@ -4450,6 +4473,7 @@ <translation id="6451591602925140504">{NUM_PAGES,plural, =0{<ph name="PAGE_TITLE" />}=1{<ph name="PAGE_TITLE" /> 和另外 1 個分頁}other{<ph name="PAGE_TITLE" /> 和另外 # 個分頁}}</translation> <translation id="6451689256222386810">如果您忘記密碼短語,或要變更這項設定,請<ph name="BEGIN_LINK" />重設同步處理功能<ph name="END_LINK" />。</translation> <translation id="6452181791372256707">拒絕</translation> +<translation id="6452251728599530347">已完成 <ph name="PERCENT" /></translation> <translation id="6452961788130242735">網絡發生問題或領域錯誤</translation> <translation id="6455264371803474013">在特定網站上</translation> <translation id="6455894534188563617">新增資料夾(&N)</translation> @@ -4506,6 +4530,7 @@ <ph name="EVENT_NAME" /></translation> <translation id="6520876759015997832"><ph name="LIST_SIZE" /> 項搜尋結果的第 <ph name="LIST_POSITION" /> 項:<ph name="SEARCH_RESULT_TEXT" />。按下 Enter 鍵即可前往該部分。</translation> <translation id="652492607360843641">您已連接<ph name="NETWORK_TYPE" />網絡。</translation> +<translation id="6527081081771465939">未知的 Wi-Fi 安全通訊協定</translation> <translation id="6527303717912515753">分享</translation> <translation id="6528513914570774834">允許此裝置的其他使用者使用此網絡</translation> <translation id="652948702951888897">Chrome 記錄</translation> @@ -4622,6 +4647,7 @@ <translation id="6680442031740878064">可用空間:<ph name="AVAILABLE_SPACE" /></translation> <translation id="6680650203439190394">語速</translation> <translation id="6681668084120808868">拍攝相片</translation> +<translation id="6684827949542560880">正在下載最新的更新</translation> <translation id="668599234725812620">開啟 Google Play</translation> <translation id="6686490380836145850">關閉右側分頁</translation> <translation id="6686817083349815241">儲存您的密碼</translation> @@ -4731,6 +4757,7 @@ <translation id="6812841287760418429">保留變更</translation> <translation id="6817174620439930047">在網站要使用系統專有訊息存取 MIDI 裝置時詢問您 (建議)</translation> <translation id="6818198425579322765">要翻譯的網頁語言</translation> +<translation id="6818802132960437751">內置防毒功能</translation> <translation id="682123305478866682">投放桌面</translation> <translation id="6823174134746916417">觸控板輕按點撃功能</translation> <translation id="6823506025919456619">您必須登入 Chrome 才能查看自己的裝置</translation> @@ -5377,6 +5404,7 @@ <translation id="7631205654593498032">連接裝置即表示您同意 <ph name="DEVICE_TYPE" /> 有權:</translation> <translation id="7631887513477658702">保持開啟這類檔案(&A)</translation> <translation id="7632948528260659758">下列 Kiosk 應用程式更新失敗:</translation> +<translation id="7633724038415831385">只有這一次需要等待更新。Chromebook 上的軟件更新會在背景中執行。</translation> <translation id="7634566076839829401">發生錯誤,請再試一次。</translation> <translation id="763632859238619983">不允許任何網站安裝付款處理常式</translation> <translation id="7636919061354591437">在此裝置上安裝</translation> @@ -5655,6 +5683,7 @@ <translation id="7933314993013528982">{NUM_TABS,plural, =1{將單一網站取消靜音}other{將多個網站取消靜音}}</translation> <translation id="7933634003144813719">管理共用資料夾</translation> <translation id="793531125873261495">下載虛擬機器時發生錯誤,請再試一次。</translation> +<translation id="7936303884198020182">找不到域名伺服器</translation> <translation id="7938594894617528435">目前離線</translation> <translation id="7939062555109487992">進階選項</translation> <translation id="7939412583708276221">保留</translation> @@ -5897,6 +5926,7 @@ <translation id="8226742006292257240">以下是您的電腦專用的 TPM 密碼 (由系統隨機產生):</translation> <translation id="8227119283605456246">附加檔案</translation> <translation id="8230134520748321204">要儲存 <ph name="ORIGIN" /> 的密碼嗎?</translation> +<translation id="8230672074305416752">無法連線偵測預設的網絡閘道</translation> <translation id="8234795456569844941">為協助我們的軟件工程師修正此問題,請說明您在收到設定檔錯誤訊息前發生的狀況:</translation> <translation id="8236917170563564587">改為分享此分頁</translation> <translation id="8237647586961940482">深粉紅色和紅色</translation> @@ -5957,6 +5987,7 @@ <translation id="8288032458496410887">解除安裝 <ph name="APP" />…</translation> <translation id="8289128870594824098">磁碟大小</translation> <translation id="8291967909914612644">家庭網絡供應商的國家/地區</translation> +<translation id="8293206222192510085">新增書籤</translation> <translation id="8294431847097064396">來源</translation> <translation id="8297006494302853456">弱</translation> <translation id="8299319456683969623">您目前處於離線狀態。</translation> @@ -6006,6 +6037,7 @@ <translation id="8363095875018065315">穩定</translation> <translation id="8363142353806532503">已禁止使用麥克風</translation> <translation id="8363763184161554204">已允許使用<ph name="PERMISSION" /></translation> +<translation id="8364946094152050673">域名伺服器空白</translation> <translation id="8366396658833131068">您的網絡連線已恢復。請選取其他網絡,或按下方的 [繼續] 按鈕啟動 Kiosk 應用程式。</translation> <translation id="8368027906805972958">不明或不支援的裝置 (<ph name="DEVICE_ID" />)</translation> <translation id="8368859634510605990">開啟所有書籤(&O)</translation> @@ -6091,8 +6123,10 @@ <translation id="8472623782143987204">硬件支援</translation> <translation id="8473863474539038330">地址及其他資料</translation> <translation id="8475313423285172237">電腦中其他程式所新增的擴充功能可能會變更 Chrome 的運作方式。</translation> +<translation id="8475690821716466388">已使用防護力較弱的通訊協定 WEP PSK 保護 Wi-Fi 網絡</translation> <translation id="8477241577829954800">已取代</translation> <translation id="8477384620836102176">一般(&G)</translation> +<translation id="8477551185774834963">DNS 延遲時間稍微超過允許的門檻</translation> <translation id="8480082892550707549">即使您曾經從這個網站下載檔案,但這個網站目前並不安全 (可能已被入侵)。請稍後嘗試重新下載這個檔案。</translation> <translation id="8480869669560681089">來自 <ph name="VENDOR_NAME" /> 的不明裝置</translation> <translation id="8481187309597259238">確認 USB 權限</translation> @@ -6144,6 +6178,7 @@ <translation id="8546930481464505581">自訂 Touch Bar</translation> <translation id="8547013269961688403">啟用全螢幕放大鏡</translation> <translation id="85486688517848470">按住搜尋鍵即可切換最上排按鍵的執行動作</translation> +<translation id="8549316893834449916">您將使用 Google 帳戶登入 Chromebook,Google 帳戶是您用於 Gmail、雲端硬碟、YouTube 和其他服務的帳戶。</translation> <translation id="8551388862522347954">授權</translation> <translation id="8551588720239073785">日期和時間設定</translation> <translation id="8553342806078037065">管理其他使用者</translation> @@ -6282,6 +6317,7 @@ <translation id="8720200012906404956">正在尋找流動網絡。<ph name="BEGIN_LINK" />瞭解詳情<ph name="END_LINK" /></translation> <translation id="8720816553731218127">安裝時間屬性的初始化已逾時。</translation> <translation id="8722912030556880711">傳送使用情況和診斷資料。此裝置目前會自動將診斷、裝置及應用程式的使用情況資料傳送至 Google。這些資料將有助改善系統和應用程式的穩定性和其他效能。部分彙整資料也會用於協助 Google 應用程式與合作夥伴 (例如 Android 開發人員)。如果已開啟其他「網絡及應用程式活動記錄」設定,系統可能會將此資料儲存至您的 Google 帳戶。<ph name="BEGIN_LINK2" />瞭解詳情<ph name="END_LINK2" /></translation> +<translation id="8723108084122415655">非預設網絡超過延遲門檻</translation> <translation id="8724405322205516354">看到此圖示時,請使用您的指紋識別身份或核准購物交易。</translation> <translation id="8724409975248965964">已新增指紋</translation> <translation id="8724859055372736596">在資料夾中顯示(&S)</translation> @@ -6459,6 +6495,7 @@ <translation id="8909833622202089127">網站正在追蹤您的位置</translation> <translation id="8910146161325739742">請分享您的螢幕</translation> <translation id="8910222113987937043">您的書籤、記錄、密碼和其他設定的變更將不會繼續同步至您的 Google 帳戶。不過,Google 帳戶內仍會儲存您現有的資料,而您亦可透過「<ph name="BEGIN_LINK" />Google 資訊主頁<ph name="END_LINK" />」管理這些資料。</translation> +<translation id="8910721771319628100">預設網絡超過延遲門檻</translation> <translation id="8912362522468806198">Google 帳戶</translation> <translation id="8912793549644936705">延伸</translation> <translation id="8912810933860534797">啟用自動掃瞄</translation>
diff --git a/chrome/app/resources/generated_resources_zh-TW.xtb b/chrome/app/resources/generated_resources_zh-TW.xtb index 6b41738..ab4e9b7 100644 --- a/chrome/app/resources/generated_resources_zh-TW.xtb +++ b/chrome/app/resources/generated_resources_zh-TW.xtb
@@ -71,6 +71,7 @@ <translation id="1070705170564860382">於 <ph name="COUNTDOWN_SECONDS" /> 秒後在替代瀏覽器中開啟</translation> <translation id="1071917609930274619">資料編密</translation> <translation id="1072700771426194907">偵測到 USB 裝置</translation> +<translation id="107278043869924952">使用 PIN 碼和密碼</translation> <translation id="1076176485976385390">使用文字游標瀏覽頁面</translation> <translation id="1076698951459398590">啟用主題</translation> <translation id="1076818208934827215">Microsoft Internet Explorer</translation> @@ -481,7 +482,7 @@ <translation id="1555130319947370107">藍色</translation> <translation id="1556537182262721003">無法將擴充功能目錄移至設定檔。</translation> <translation id="155865706765934889">觸控板</translation> -<translation id="1563702743503072935">當你登入帳戶時,也可以在這部裝置上查看 Google 帳戶中的密碼</translation> +<translation id="1563702743503072935">當你登入帳戶時,也可以在這部裝置上使用 Google 帳戶中的密碼</translation> <translation id="1566049601598938765">網站</translation> <translation id="15662109988763471">選取的印表機無法使用或未正確安裝。請檢查你的印表機,或改選其他印表機。</translation> <translation id="1567387640189251553">自你上次輸入密碼後,裝置已連接其他鍵盤。你的按鍵行為可能會遭到側錄。</translation> @@ -524,7 +525,6 @@ <translation id="1608668830839595724">更多可對所選項目執行的動作</translation> <translation id="161042844686301425">青色</translation> <translation id="1611432201750675208">你的裝置已遭到鎖定</translation> -<translation id="1611584202130317952">佈建作業中斷。請再試一次,或是與裝置擁有者或管理員聯絡。</translation> <translation id="1614511179807650956">你的行動數據配額可能已經用完。造訪 <ph name="NAME" /> 啟用入口網站即可購買更多數據量。</translation> <translation id="161460670679785907">偵測不到你的手機</translation> <translation id="1616206807336925449">這個擴充功能不需要特殊權限。</translation> @@ -533,6 +533,7 @@ <translation id="1618268899808219593">說明中心(&E)</translation> <translation id="1620307519959413822">密碼錯誤。請再試一次,或按一下 [忘記密碼] 來重設密碼。</translation> <translation id="1620510694547887537">攝影機</translation> +<translation id="1621831347985899379"><ph name="DEVICE_TYPE" /> 資料會遭到刪除</translation> <translation id="1622054403950683339">清除 Wi-Fi 網路</translation> <translation id="1623132449929929218">目前無法提供圖片。如要查看桌布集,請重新連上網際網路。</translation> <translation id="1623723619460186680">降低藍光</translation> @@ -760,6 +761,7 @@ <translation id="1877377290348678128">標籤 (選填)</translation> <translation id="1877520246462554164">無法取得驗證憑證。請先登出,然後重新登入再試一次。</translation> <translation id="1877860345998737529">開關動作指派</translation> +<translation id="1878155070920054810">你的 Chromebook 似乎會在更新完成前沒電。請確認 Chromebook 已正確充電,以免更新中斷。</translation> <translation id="1879000426787380528">登入身分</translation> <translation id="1880905663253319515">要刪除憑證「<ph name="CERTIFICATE_NAME" />」嗎?</translation> <translation id="1881445033931614352">鍵盤配置</translation> @@ -964,6 +966,7 @@ <translation id="2148219725039824548">掛接共用裝置時發生錯誤。在網路上找不到指定的共用裝置。</translation> <translation id="2148756636027685713">格式化完成</translation> <translation id="2148892889047469596">投放分頁</translation> +<translation id="2149973817440762519">編輯書籤</translation> <translation id="2150139952286079145">搜尋目的地</translation> <translation id="2150661552845026580">要新增「<ph name="EXTENSION_NAME" />」嗎?</translation> <translation id="2151576029659734873">輸入的分頁索引無效。</translation> @@ -1073,6 +1076,7 @@ <translation id="2270627217422354837">與下列網域中的任何裝置交換資料:<ph name="DOMAINS" /></translation> <translation id="2272570998639520080">馬丁尼酒杯</translation> <translation id="2273119997271134996">座架的視訊通訊埠發生問題</translation> +<translation id="2274840746523584236">請為 Chromebook 充電</translation> <translation id="2276503375879033601">新增更多應用程式</translation> <translation id="2277255602909579701">所有 Cookie 和網站資料</translation> <translation id="2277769717710009150">{COUNT,plural, =1{已複製 1 個項目}other{已複製 # 個項目}}</translation> @@ -1914,6 +1918,7 @@ <translation id="3308116878371095290">無法為這個網頁設定 Cookie。</translation> <translation id="3308134619352333507">隱藏按鈕</translation> <translation id="3308852433423051161">正在載入 Google 助理…</translation> +<translation id="3310640316857623290">DNS 延遲時間大幅超過允許的門檻</translation> <translation id="3311445899360743395">系統可能會從這部裝置中移除與這個應用程式相關聯的資料。</translation> <translation id="3312424061798279731">已啟用的語言</translation> <translation id="3313622045786997898">憑證簽署值</translation> @@ -1926,6 +1931,7 @@ <translation id="3323295311852517824">{NUM_FILES,plural, =0{這項資料含有敏感內容或危險內容。請移除這類內容,然後再試一次。}=1{這個檔案含有敏感內容或危險內容。請移除這類內容,然後再試一次。}other{這些檔案含有敏感內容或危險內容。請移除這類內容,然後再試一次。}}</translation> <translation id="3323521181261657960">恭喜!你的裝置使用時間增加了</translation> <translation id="3325910708063135066">已關閉 Mac 系統偏好設定中的攝影機和麥克風</translation> +<translation id="3327050066667856415">Chromebook 專為提升安全性所設計。你的裝置會自動防範惡意軟體,無須安裝額外軟體。</translation> <translation id="3328489342742826322">還原備份內容時,系統將會刪除 Linux 檔案資料夾中的現有 Linux 應用程式和資料。</translation> <translation id="3331321258768829690">(<ph name="UTCOFFSET" />) <ph name="LONGTZNAME" /> (<ph name="EXEMPLARCITY" />)</translation> <translation id="3331974543021145906">應用程式資訊</translation> @@ -2115,6 +2121,7 @@ <translation id="3556433843310711081">你的管理員可以為你解除封鎖這個網站</translation> <translation id="3557101512409028104">透過 Family Link 設定網站限制和裝置使用時間限制</translation> <translation id="3559262020195162408">無法在裝置上安裝政策。</translation> +<translation id="3559533181353831840">大約還剩 <ph name="TIME_LEFT" /></translation> <translation id="3560034655160545939">拼字檢查(&S)</translation> <translation id="3562423906127931518">這個過程可能需要幾分鐘的時間。正在設定 Linux 容器。</translation> <translation id="3563432852173030730">無法下載 Kiosk 應用程式。</translation> @@ -2157,6 +2164,7 @@ <translation id="3602290021589620013">預覽</translation> <translation id="3603622770190368340">取得網路憑證</translation> <translation id="3604713164406837697">變更桌布</translation> +<translation id="360565022852130722">已使用防護力較弱的通訊協定 WEP 802.1x 保護 Wi-Fi 網路</translation> <translation id="3605780360466892872">小員工</translation> <translation id="3608576286259426129">使用者圖片預覽</translation> <translation id="3610369246614755442">座架風扇需要維修</translation> @@ -2193,6 +2201,7 @@ <translation id="3639220004740062347">結束閱讀器模式</translation> <translation id="3640214691812501263">為<ph name="USER_NAME" />新增「<ph name="EXTENSION_NAME" />」?</translation> <translation id="3640613767643722554">訓練 Google 助理辨識你的聲音</translation> +<translation id="3643014427358482789"><ph name="DOMAIN" /> 正在停用 ADB 偵錯,這項操作會重設 <ph name="DEVICE_TYPE" />。請先備份檔案再重新啟動。</translation> <translation id="3645372836428131288">請稍微移動手指,讓系統擷取完整指紋</translation> <translation id="3647998456578545569">{COUNT,plural, =1{已收到來自「<ph name="DEVICE_NAME" />」的 <ph name="ATTACHMENTS" />}other{已收到來自「<ph name="DEVICE_NAME" />」的 <ph name="ATTACHMENTS" />}}</translation> <translation id="3648348069317717750">偵測到 <ph name="USB_DEVICE_NAME" /></translation> @@ -2281,6 +2290,7 @@ <translation id="3732857534841813090">Google 助理相關資訊</translation> <translation id="3733127536501031542">具有 Step-Up 功能的 SSL 伺服器</translation> <translation id="3735740477244556633">排序依據</translation> +<translation id="3738632186060045350"><ph name="DEVICE_TYPE" /> 資料將在 24 小時後遭到刪除</translation> <translation id="3738924763801731196"><ph name="OID" />:</translation> <translation id="3739254215541673094">要開啟「<ph name="APPLICATION" />」嗎?</translation> <translation id="3742055079367172538">已拍攝螢幕截圖</translation> @@ -2468,6 +2478,7 @@ <translation id="3937734102568271121">一律翻譯<ph name="LANGUAGE" /></translation> <translation id="3938128855950761626">來自供應商 <ph name="VENDOR_ID" /> 的裝置</translation> <translation id="3940233957883229251">啟用自動重複</translation> +<translation id="3941014780699102620">無法解析主機</translation> <translation id="3941565636838060942">如要隱藏這個程式的存取權,你必須使用控制台中的「<ph name="CONTROL_PANEL_APPLET_NAME" />」解除安裝此程式。 是否要開啟「<ph name="CONTROL_PANEL_APPLET_NAME" />」?</translation> @@ -2629,6 +2640,7 @@ <translation id="413121957363593859">元件</translation> <translation id="4131410914670010031">黑白</translation> <translation id="413193092008917129">日常網路診斷項目</translation> +<translation id="4132183752438206707">在 Google Play 商店中尋找應用程式</translation> <translation id="4133076602192971179">開啟應用程式以變更密碼</translation> <translation id="4136203100490971508">夜燈功能將於日出時自動關閉</translation> <translation id="41365691917097717">如果繼續,系統將啟用 ADB 偵錯功能建立及測試 Android 應用程式。請注意,這項操作會允許你安裝未經 Google 驗證的 Android 應用程式,而且必須將裝置恢復原廠設定才能停用。</translation> @@ -2878,6 +2890,8 @@ <translation id="4479877282574735775">正在設定虛擬機器,這可能需要幾分鐘的時間。</translation> <translation id="4480590691557335796">Chrome 可以找出電腦上有害的軟體並予以移除</translation> <translation id="4481530544597605423">解除配對的裝置</translation> +<translation id="4483049906298469269">無法連線偵測非預設的網路閘道</translation> +<translation id="4487489714832036847">Chromebook 使用應用程式替代傳統軟體。取得應用程式以提高工作效率、享受娛樂體驗等等。</translation> <translation id="4488502501195719518">要清除所有資料嗎?</translation> <translation id="4493468155686877504">建議大小 (<ph name="INSTALL_SIZE" />)</translation> <translation id="4495419450179050807">不要顯示這個網頁</translation> @@ -2928,6 +2942,7 @@ <translation id="4546692474302123343">Google 助理語音輸入</translation> <translation id="4547659257713117923">沒有在其他裝置上開啟的分頁</translation> <translation id="4547672827276975204">自動設定</translation> +<translation id="4548483925627140043">偵測不到信號</translation> <translation id="4549791035683739768">你的安全金鑰沒有儲存任何指紋</translation> <translation id="4551763574344810652">按下 <ph name="MODIFIER_KEY_DESCRIPTION" /> 即可復原</translation> <translation id="4552089082226364758">Flash</translation> @@ -2957,9 +2972,9 @@ <translation id="4573515936045019911">必須連上網路才能升級 Linux。請連線至網際網路,然後再試一次。</translation> <translation id="457386861538956877">更多…</translation> <translation id="4574741712540401491">• <ph name="LIST_ITEM_TEXT" /></translation> -<translation id="457564749856982089">將學校帳戶新增至設定檔可讓子女以學生的身分輕鬆登入網站、擴充功能及應用程式,同時遵守家長監護功能的操作規範。這項操作不允許子女存取與學校帳戶同步的書籤、密碼或其他瀏覽器資料。<br><br> - 如果子女在學校使用 Chromebook,而你想在家中複製相同的學校使用體驗,以確保子女可存取所有與學校作業相關的必要資訊,請登出這個 Family Link 帳戶,然後從 Chrome 作業系統帳戶頁面登入學校帳戶 (注意:系統不會套用 Family Link 家長監護功能)。<br><br> - 如果子女在學校不是使用 Chromebook,或是你想要使用 Family Link 管理子女在家中的使用體驗,請按下方的 [下一步] 按鈕,將學校帳戶新增至這個設定檔。</translation> +<translation id="457564749856982089">將學校帳戶新增至設定檔可讓孩子以學生的身分輕鬆登入網站、擴充功能及應用程式,同時遵守家長監護功能的操作規範。這項操作不允許孩子存取與學校帳戶同步的書籤、密碼或其他瀏覽器資料。<br><br> + 如果孩子在學校使用 Chromebook,而你想在家中複製相同的學校使用體驗,以確保孩子可存取所有與學校作業相關的必要資訊,請登出這個 Family Link 帳戶,然後從 Chrome 作業系統帳戶頁面登入學校帳戶 (注意:系統不會套用 Family Link 家長監護功能)。<br><br> + 如果孩子在學校不是使用 Chromebook,或是你想要使用 Family Link 管理孩子在家中的使用體驗,請按下方的 [下一步] 按鈕,將學校帳戶新增至這個設定檔。</translation> <translation id="4576541033847873020">配對藍牙裝置</translation> <translation id="4579453506923101210">清除已連結的手機</translation> <translation id="4579581181964204535">無法投放 <ph name="HOST_NAME" />。</translation> @@ -2967,6 +2982,7 @@ <translation id="4582563038311694664">重設所有設定</translation> <translation id="4585793705637313973">編輯頁面</translation> <translation id="4586275095964870617">無法在替代瀏覽器中開啟 <ph name="URL" />。請與你的系統管理員聯絡。</translation> +<translation id="458794348635939462">無法解析所有主機</translation> <translation id="4589713469967853491">記錄已成功寫入「下載」目錄。</translation> <translation id="4590324241397107707">資料庫儲存空間</translation> <translation id="4592891116925567110">觸控筆繪圖應用程式</translation> @@ -3350,6 +3366,7 @@ <translation id="5089810972385038852">州</translation> <translation id="5094721898978802975">與合作原生應用程式建立連線</translation> <translation id="5097002363526479830">無法連線至「<ph name="NAME" />」:<ph name="DETAILS" /></translation> +<translation id="5097649414558628673">工具:<ph name="PRINT_NAME" /></translation> <translation id="5097874180538493929">游標停止時自動點擊</translation> <translation id="5101042277149003567">開啟所有書籤</translation> <translation id="5101839224773798795">游標停止時自動點擊</translation> @@ -3568,6 +3585,7 @@ <translation id="5370819323174483825">重新載入(&R)</translation> <translation id="5372529912055771682">這個版本的作業系統不支援提供註冊模式。請確認你使用的是最新版本,然後再試一次。</translation> <translation id="5372579129492968947">取消固定擴充功能</translation> +<translation id="5372659122375744710">WiFi 網路不安全</translation> <translation id="5376169624176189338">按一下回上一頁,按住可查看記錄</translation> <translation id="5376931455988532197">檔案過大</translation> <translation id="5377721922656071359">{COUNT,plural, =1{已成功將 <ph name="ATTACHMENTS" />傳送至「<ph name="DEVICE_NAME" />」}other{已成功將 <ph name="ATTACHMENTS" />傳送至「<ph name="DEVICE_NAME" />」}}</translation> @@ -3597,6 +3615,7 @@ <translation id="5414566801737831689">讀取你所瀏覽網站的圖示</translation> <translation id="5417312524372586921">瀏覽器主題</translation> <translation id="5419405654816502573">Voice Match</translation> +<translation id="5420274697768050645">需要使用密碼解鎖裝置以提升安全性</translation> <translation id="5420438158931847627">決定文字和圖片的銳利度</translation> <translation id="5422221874247253874">存取點</translation> <translation id="5422781158178868512">很抱歉,系統無法識別你的外部儲存裝置。</translation> @@ -3721,6 +3740,7 @@ <translation id="5548606607480005320">安全檢查</translation> <translation id="5551573675707792127">鍵盤與文字輸入</translation> <translation id="5553089923092577885">憑證政策對應關聯</translation> +<translation id="5554403733534868102">以後不需要等待更新</translation> <translation id="5554489410841842733">當擴充功能適用於目前網頁時,即會顯示此圖示。</translation> <translation id="5554720593229208774">電子郵件憑證授權單位</translation> <translation id="5556459405103347317">重新載入</translation> @@ -4134,6 +4154,7 @@ <translation id="6061882183774845124">將連結傳送至裝置</translation> <translation id="6064217302520318294">螢幕鎖定</translation> <translation id="6065289257230303064">憑證主體目錄屬性</translation> +<translation id="6069464830445383022">你的 Google 帳戶就是你用來登入 Chromebook 的帳戶</translation> <translation id="6069671174561668781">設定桌布</translation> <translation id="6071181508177083058">確認密碼</translation> <translation id="6071576563962215370">系統無法鎖定裝置安裝時的屬性。</translation> @@ -4176,6 +4197,7 @@ <translation id="6104311680260824317">無法將這個裝置加入網域,伺服器不支援指定的 Kerberos 加密類型。請前往「更多選項」檢查加密設定。</translation> <translation id="6104796831253957966">印表機佇列已滿</translation> <translation id="6105994589138235234">Chrome 瀏覽器同步功能</translation> +<translation id="6108689792487843350">無法連上閘道</translation> <translation id="6111972606040028426">啟用 Google 助理</translation> <translation id="6112294629795967147">輕觸即可調整大小</translation> <translation id="6112727384379533756">新增票證</translation> @@ -4236,6 +4258,7 @@ <translation id="6178664161104547336">選取憑證</translation> <translation id="6181431612547969857">下載遭封鎖</translation> <translation id="6185132558746749656">裝置位置</translation> +<translation id="6191293864534840972">名稱伺服器格式錯誤</translation> <translation id="6195446518998936840">如要設定家長監護功能,子女必須擁有你可協助管理的 Google 帳戶。透過 Family Link 應用程式,你可以設定裝置使用時間限制、核准/封鎖網站或執行更多操作。</translation> <translation id="6195693561221576702">這個裝置無法設為離線示範模式。</translation> <translation id="6196640612572343990">封鎖第三方 Cookie</translation> @@ -4449,6 +4472,7 @@ <translation id="6451591602925140504">{NUM_PAGES,plural, =0{<ph name="PAGE_TITLE" />}=1{<ph name="PAGE_TITLE" /> 和另外 1 個分頁}other{<ph name="PAGE_TITLE" /> 和另外 # 個分頁}}</translation> <translation id="6451689256222386810">如果你忘記通關密語,或是要變更這項設定,請<ph name="BEGIN_LINK" />重設同步處理功能<ph name="END_LINK" />。</translation> <translation id="6452181791372256707">拒絕</translation> +<translation id="6452251728599530347">已完成 <ph name="PERCENT" /></translation> <translation id="6452961788130242735">網路發生問題或領域無效</translation> <translation id="6455264371803474013">在特定網站上</translation> <translation id="6455894534188563617">新增資料夾(&N)</translation> @@ -4505,6 +4529,7 @@ <ph name="EVENT_NAME" /></translation> <translation id="6520876759015997832">第 <ph name="LIST_POSITION" /> 項搜尋結果,共 <ph name="LIST_SIZE" /> 項:<ph name="SEARCH_RESULT_TEXT" />。按下 Enter 鍵即可前往這個部分。</translation> <translation id="652492607360843641">你已連上<ph name="NETWORK_TYPE" />網路。</translation> +<translation id="6527081081771465939">Wi-Fi 安全通訊協定不明</translation> <translation id="6527303717912515753">分享</translation> <translation id="6528513914570774834">允許這個裝置的其他使用者使用這個網路</translation> <translation id="652948702951888897">Chrome 歷史記錄</translation> @@ -4535,7 +4560,7 @@ <translation id="6556866813142980365">重做</translation> <translation id="6556903358015358733">主題與桌布</translation> <translation id="6557290421156335491">我的捷徑</translation> -<translation id="6560151649238390891">已插入建議</translation> +<translation id="6560151649238390891">已插入建議項目</translation> <translation id="6561560012278703671">使用低擾式通知 (禁止網站顯示通知,以免干擾)</translation> <translation id="6561726789132298588">Enter 鍵</translation> <translation id="6562117348069327379">將系統記錄儲存至「下載」目錄。</translation> @@ -4621,6 +4646,7 @@ <translation id="6680442031740878064">可用空間:<ph name="AVAILABLE_SPACE" /></translation> <translation id="6680650203439190394">語速</translation> <translation id="6681668084120808868">拍照</translation> +<translation id="6684827949542560880">正在下載最新的更新</translation> <translation id="668599234725812620">開啟 Google Play</translation> <translation id="6686490380836145850">關閉右邊的分頁</translation> <translation id="6686817083349815241">儲存你的密碼</translation> @@ -4730,6 +4756,7 @@ <translation id="6812841287760418429">保留變更</translation> <translation id="6817174620439930047">每當有網站要使用系統專用訊息存取 MIDI 裝置時詢問我 (建議使用)</translation> <translation id="6818198425579322765">要翻譯的網頁語言</translation> +<translation id="6818802132960437751">內建防毒機制</translation> <translation id="682123305478866682">投放桌面</translation> <translation id="6823174134746916417">觸控板點按功能</translation> <translation id="6823506025919456619">你必須登入 Chrome 才能查看自己的裝置</translation> @@ -5376,6 +5403,7 @@ <translation id="7631205654593498032">連結裝置即表示您同意讓 <ph name="DEVICE_TYPE" /> 執行以下操作:</translation> <translation id="7631887513477658702">一律開啟這類檔案(&A)</translation> <translation id="7632948528260659758">下列 Kiosk 應用程式更新失敗:</translation> +<translation id="7633724038415831385">只有這一次需要等待更新。Chromebook 上的軟體更新會在背景中執行。</translation> <translation id="7634566076839829401">發生錯誤,請再試一次。</translation> <translation id="763632859238619983">禁止任何網站安裝付款處理常式</translation> <translation id="7636919061354591437">安裝到這部裝置</translation> @@ -5654,6 +5682,7 @@ <translation id="7933314993013528982">{NUM_TABS,plural, =1{開啟網站音訊}other{開啟多個網站的音訊}}</translation> <translation id="7933634003144813719">管理共用資料夾</translation> <translation id="793531125873261495">下載虛擬機器時發生錯誤,請再試一次。</translation> +<translation id="7936303884198020182">找不到任何名稱伺服器</translation> <translation id="7938594894617528435">目前離線</translation> <translation id="7939062555109487992">進階選項</translation> <translation id="7939412583708276221">保留</translation> @@ -5896,6 +5925,7 @@ <translation id="8226742006292257240">以下是你的電腦專用的 TPM 密碼 (由系統隨機產生):</translation> <translation id="8227119283605456246">附加檔案</translation> <translation id="8230134520748321204">要儲存 <ph name="ORIGIN" /> 的密碼嗎?</translation> +<translation id="8230672074305416752">無法連線偵測預設的網路閘道</translation> <translation id="8234795456569844941">請告訴我們在你收到設定檔錯誤訊息前執行的動作,以協助工程師修正此問題:</translation> <translation id="8236917170563564587">改為分享這個分頁</translation> <translation id="8237647586961940482">深粉紅色與紅色</translation> @@ -5956,6 +5986,7 @@ <translation id="8288032458496410887">正在解除安裝「<ph name="APP" />」...</translation> <translation id="8289128870594824098">磁碟大小</translation> <translation id="8291967909914612644">家用提供者國家/地區</translation> +<translation id="8293206222192510085">新增書籤</translation> <translation id="8294431847097064396">來源</translation> <translation id="8297006494302853456">弱</translation> <translation id="8299319456683969623">你目前處於離線狀態。</translation> @@ -6005,6 +6036,7 @@ <translation id="8363095875018065315">穩定版</translation> <translation id="8363142353806532503">無法使用麥克風</translation> <translation id="8363763184161554204">已允許使用<ph name="PERMISSION" /></translation> +<translation id="8364946094152050673">名稱伺服器空白</translation> <translation id="8366396658833131068">你的網路連線已恢復。請選取其他網路,或按底下的 [繼續] 按鈕啟動 Kiosk 應用程式。</translation> <translation id="8368027906805972958">不明或不支援的裝置 (<ph name="DEVICE_ID" />)</translation> <translation id="8368859634510605990">開啟所有書籤(&O)</translation> @@ -6090,8 +6122,10 @@ <translation id="8472623782143987204">硬體支援</translation> <translation id="8473863474539038330">地址和其他資訊</translation> <translation id="8475313423285172237">電腦中其他程式所新增的擴充功能可能會變更 Chrome 的運作方式。</translation> +<translation id="8475690821716466388">已使用防護力較弱的通訊協定 WEP PSK 保護 Wi-Fi 網路</translation> <translation id="8477241577829954800">已取代</translation> <translation id="8477384620836102176">一般(&G)</translation> +<translation id="8477551185774834963">DNS 延遲時間稍微超過允許的門檻</translation> <translation id="8480082892550707549">雖然你曾經從這個網站下載檔案,但這個網站目前並不安全 (遭到入侵)。建議你日後再下載這個檔案。</translation> <translation id="8480869669560681089">不明的 <ph name="VENDOR_NAME" /> 裝置</translation> <translation id="8481187309597259238">確認 USB 權限</translation> @@ -6143,6 +6177,7 @@ <translation id="8546930481464505581">自訂 Touch Bar</translation> <translation id="8547013269961688403">啟用全螢幕放大鏡</translation> <translation id="85486688517848470">按住搜尋鍵即可切換最上排按鍵的行為</translation> +<translation id="8549316893834449916">你將使用 Google 帳戶登入 Chromebook,Google 帳戶是你用於 Gmail、雲端硬碟、YouTube 和其他服務的帳戶。</translation> <translation id="8551388862522347954">授權</translation> <translation id="8551588720239073785">日期和時間設定</translation> <translation id="8553342806078037065">管理其他使用者</translation> @@ -6281,6 +6316,7 @@ <translation id="8720200012906404956">正在尋找行動網路。<ph name="BEGIN_LINK" />瞭解詳情<ph name="END_LINK" /></translation> <translation id="8720816553731218127">安裝時屬性的初始化作業已逾時。</translation> <translation id="8722912030556880711">傳送使用狀況與診斷資料。這個裝置目前會自動將診斷資料以及裝置和應用程式的使用狀況資料傳送給 Google。這些資料將有助於系統和應用程式提高穩定性及做出其他改善。部分匯總資料還能夠為 Google 應用程式和合作夥伴 (例如 Android 開發人員) 提供幫助。如果你的「其他網路和應用程式活動」設定為開啟,系統可能會將這些資料儲存到你的 Google 帳戶。<ph name="BEGIN_LINK2" />瞭解詳情<ph name="END_LINK2" /></translation> +<translation id="8723108084122415655">非預設網路超過延遲門檻</translation> <translation id="8724405322205516354">當你看到這個圖示時,請使用你的指紋來驗證身分或核准購物交易。</translation> <translation id="8724409975248965964">指紋新增成功</translation> <translation id="8724859055372736596">在資料夾中顯示(&S)</translation> @@ -6458,6 +6494,7 @@ <translation id="8909833622202089127">網站正在追蹤你的位置</translation> <translation id="8910146161325739742">分享螢幕畫面</translation> <translation id="8910222113987937043">你的書籤、歷史記錄、密碼和其他設定的變更將不會再同步到你的 Google 帳戶。不過,你的現有資料仍會儲存在你的 Google 帳戶中,並可透過 <ph name="BEGIN_LINK" />Google 資訊主頁<ph name="END_LINK" />管理。</translation> +<translation id="8910721771319628100">預設網路超過延遲門檻</translation> <translation id="8912362522468806198">Google 帳戶</translation> <translation id="8912793549644936705">延伸</translation> <translation id="8912810933860534797">啟用自動掃描</translation>
diff --git a/chrome/app/resources/generated_resources_zu.xtb b/chrome/app/resources/generated_resources_zu.xtb index 33a0a89..e308e8e 100644 --- a/chrome/app/resources/generated_resources_zu.xtb +++ b/chrome/app/resources/generated_resources_zu.xtb
@@ -523,7 +523,6 @@ <translation id="1608668830839595724">Izenzo eziningi zezinto ezikhethiwe</translation> <translation id="161042844686301425">I-Cyan</translation> <translation id="1611432201750675208">Idivayisi yakho ikhiyiwe</translation> -<translation id="1611584202130317952">Ukugeleza kokunikezwa kuphazanyisiwe. Sicela uzame futhi noma uxhumane nomnikazi wedivayisi yakho.</translation> <translation id="1614511179807650956">Kungenzeka ukuthi usebenzise konke ukuvunyelwa kwakho kwedatha yeselula. Vakashela ku-<ph name="NAME" /> kwephothali yokwenza kusebenze ukuze uthenge idatha eningi.</translation> <translation id="161460670679785907">Ayikwazi ukuthola ifoni yakho</translation> <translation id="1616206807336925449">Lesi sandiso asidingi izimvume ezibalulekile.</translation> @@ -965,6 +964,7 @@ <translation id="2148219725039824548">Iphutha ukukhweza ukwabelana. Ukwabelane okucacisiwe akutholakele kunethiwekhi.</translation> <translation id="2148756636027685713">Ukufometha kuqediwe</translation> <translation id="2148892889047469596">Ithebhu yokusakaza</translation> +<translation id="2149973817440762519">Hlela ibhukhimakhi</translation> <translation id="2150139952286079145">Sesha izindawo</translation> <translation id="2150661552845026580">Engeza i-"<ph name="EXTENSION_NAME" />"?</translation> <translation id="2151576029659734873">Kufakwe inkomba yethebhu engavumelekile.</translation> @@ -5988,6 +5988,7 @@ <translation id="8288032458496410887">Ikhipha i-<ph name="APP" />...</translation> <translation id="8289128870594824098">Usayizi wediski</translation> <translation id="8291967909914612644">Izwe lasekhaya lomhlinzeki</translation> +<translation id="8293206222192510085">Engeza ibhukhimakhi</translation> <translation id="8294431847097064396">Umthombo</translation> <translation id="8297006494302853456">Buthakathaka</translation> <translation id="8299319456683969623">Okwamanje awuxhunyiwe ku-inthanethi</translation>
diff --git a/chrome/app/resources/google_chrome_strings_bn.xtb b/chrome/app/resources/google_chrome_strings_bn.xtb index a2b4dcd..2430e601 100644 --- a/chrome/app/resources/google_chrome_strings_bn.xtb +++ b/chrome/app/resources/google_chrome_strings_bn.xtb
@@ -8,13 +8,16 @@ <translation id="1088300314857992706"><ph name="USER_EMAIL_ADDRESS" /> পূর্বে Chrome ব্যবহার করছিলেন</translation> <translation id="1097330777386562916">Chrome বন্ধ করার সময় কুকি ও সাইটের ডেটা মুছে দিন</translation> <translation id="110877069173485804">এটি হল আপনার Chrome</translation> +<translation id="1125124144982679672">Chrome কে ব্যবহার করছেন?</translation> <translation id="1142745911746664600">Chrome আপডেট করা যাচ্ছে না</translation> <translation id="1154147086299354128">&Chrome এ খুলুন</translation> <translation id="123620459398936149">Chrome OS আপনার ডেটা সিঙ্ক করতে পারেনি৷ দয়া করে আপনার সিঙ্ক পাসফ্রেজ আপডেট করুন৷</translation> <translation id="1302523850133262269">Chrome যখন সাম্প্রতিক সিস্টেম আপডেটগুলিকে ইনস্টল করে তখন দয়া করে অপেক্ষা করুন৷</translation> +<translation id="1355000804395496115">অফিস ও ব্যক্তিগত ব্রাউজিং আলাদা রাখতে অথবা একাধিক ব্যবহারকারী এই ডিভাইস ব্যবহার করলে, প্রত্যেকের জন্য Chrome-এ আলাদা প্রোফাইল তৈরি করুন</translation> <translation id="137466361146087520">Google Chrome বিটা</translation> <translation id="1399397803214730675">এই কম্পিউটারটিতে ইতিমধ্যে Google Chrome-এর অতি সাম্প্রতিক ভার্সন রয়েছে৷ যদি সফ্টওয়্যারটি কাজ না করে তবে দয়া করে Google Chrome আনইনস্টল করুন এবং এটি আবার ডাউনলোড করুন৷</translation> <translation id="1434626383986940139">Chrome Canary অ্যাপ্লিকেশানগুলি</translation> +<translation id="1513277449617685876">ব্যক্তিগত ব্রাউজিং থেকে <ph name="NEW_USER" /> হিসেবে ব্রাউজিংকে আলাদা রাখতে Chrome-এ নতুন প্রোফাইল তৈরি করুন</translation> <translation id="1553358976309200471">Chrome আপডেট করুন</translation> <translation id="1587223624401073077">Google Chrome আপনার ক্যামেরা ব্যবহার করছে৷</translation> <translation id="1587325591171447154"><ph name="FILE_NAME" /> বিপজ্জনক, তাই Chrome এটিকে অবরুদ্ধ করেছে।</translation> @@ -104,6 +107,7 @@ <translation id="3889417619312448367">Google Chrome আনইনস্টল করুন</translation> <translation id="4050175100176540509">গুরুত্বপূর্ণ নিরাপত্তা উন্নতি এবং নতুন বৈশিষ্ট্যগুলি সর্বশেষ ভার্সনে উপলভ্য।</translation> <translation id="4053720452172726777">Google Chrome কাস্টমাইজ ও নিয়ন্ত্রণ করুন</translation> +<translation id="4110895483821904099">আপনার নতুন Chrome প্রোফাইল সেট আপ করুন</translation> <translation id="4143243756087420366">Chrome এর নাম এবং ছবি</translation> <translation id="4147555960264124640">আপনি একটি পরিচালিত অ্যাকাউন্টের মাধ্যমে সাইন-ইন করছেন এবং এর অ্যাডমিনিস্ট্রেটরকে আপনার Google Chrome প্রোফাইলের উপরে নিয়ন্ত্রণ দিচ্ছেন৷ আপনার Chrome ডেটা, যেমন অ্যাপগুলি, বুকমার্কগুলি, ইতিহাস, পাসওয়ার্ডগুলি এবং অন্যান্য সেটিংস <ph name="USER_NAME" /> এতে স্থায়ীভাবে সম্পৃক্ত হবে৷ আপনি Google অ্যাকাউন্টের ড্যাশবোর্ডের মাধ্যমে এই ডেটাগুলি মুছতে পারবেন, কিন্তু আপনি অন্য একটি অ্যাকাউন্টের সাথে এই ডেটা সংশ্লিষ্ট করতে পারবেন না৷ <ph name="LEARN_MORE" /></translation> <translation id="4149882025268051530">ইনস্টলারটি আর্কাইভ আনকমপ্রেস করা যায়নি৷ অনুগ্রহ করে আবার Google Chrome ডাউনলোড করুন৷</translation> @@ -155,6 +159,7 @@ <translation id="5430073640787465221">আপনার পছন্দের ফাইল ক্ষতিকর অথবা ভুল৷\n\nGoogle Chrome আপনার সেটিংস পুনরুদ্ধার করতে পারছে না৷</translation> <translation id="556024056938947818">Google Chrome পাসওয়ার্ডগুলি দেখানোর চেষ্টা করছে৷</translation> <translation id="5566025111015594046">Google Chrome (mDNS-In)</translation> +<translation id="5633355459292055250">আমি Chrome খুললে জিজ্ঞাসা করো</translation> <translation id="5657226924540934362">এই পৃষ্ঠাতে কোনও একটি সেটিং দেখা না গেলে, আপনার <ph name="LINK_BEGIN" /> Chrome OS সেটিংস<ph name="LINK_END" /> বিকল্পটি দেখুন</translation> <translation id="565744775970812598"><ph name="FILE_NAME" /> বিপজ্জনক হতে পারে, তাই Chrome এটিকে অবরুদ্ধ করেছে।</translation> @@ -208,6 +213,7 @@ <translation id="7398801000654795464">আপনি <ph name="USER_EMAIL_ADDRESS" /> হিসাবে Chrome-এ প্রবেশ করেছেন৷ আবার সাইন-ইন করতে একই অ্যাকাউন্ট ব্যবহার করুন৷</translation> <translation id="7408085963519505752">Chrome OS শর্তাবলী</translation> <translation id="7419046106786626209">আপনার ডোমেনে সিঙ্ক উপলভ্য না থাকার কারণে Chrome OS আপনার ডেটা সিঙ্ক করতে পারেনি৷</translation> +<translation id="7423733001651488593">এটি এই ডিভাইস থেকে আপনার ব্রাউজিং ডেটা স্থায়ীভাবে মুছে দেবে। ডেটা ফিরিয়ে আনতে, Chrome-এ এই ইমেল আইডি ব্যবহার করে সাইন-ইন করুন</translation> <translation id="7486227612705979895">অ্যাড্রেস বারে সাজেশন দেওয়ার জন্য Chrome আপনার ড্রাইভ অ্যাক্সেস করবে</translation> <translation id="7535429826459677826">Google Chrome ডেভেলপার</translation> <translation id="7573289029918943991">আপনার ডিভাইস আপ-টু-ডেট আছে কিনা তা দেখতে <ph name="LINK_BEGIN" />Chrome OS সেটিংস<ph name="LINK_END" /> বিকল্পে যান</translation> @@ -255,6 +261,7 @@ <translation id="8681614230122836773">Chrome আপনার কম্পিউটারে ক্ষতিকর সফ্টওয়্যার খুঁজে পেয়েছে</translation> <translation id="870251953148363156">&Google Chrome আপডেট</translation> <translation id="873133009373065397">Google Chrome ডিফল্ট ব্রাউজার নির্ধারণ বা সেট করতে পারছে না</translation> +<translation id="8748242232968346981">Chrome-এ আপনার প্রোফাইল তৈরি করতে চান?</translation> <translation id="8823341990149967727">Chrome পুরানো হয়ে গেছে</translation> <translation id="8834965163890861871">Google Chrome আপনার পাসওয়ার্ড এডিট করার অনুমতি চাইছে। অনুমতি দিতে আপনার Windows পাসওয়ার্ড টাইপ করুন।</translation> <translation id="884296878221830158">আপনি Chrome শুরু করলে বা হোম বোতামটি ক্লিক করলে কোন পৃষ্ঠাটি দেখানো হবে তাও এটি নিয়ন্ত্রণ করে।</translation>
diff --git a/chrome/app/resources/google_chrome_strings_fr.xtb b/chrome/app/resources/google_chrome_strings_fr.xtb index abefcb3..754cc14 100644 --- a/chrome/app/resources/google_chrome_strings_fr.xtb +++ b/chrome/app/resources/google_chrome_strings_fr.xtb
@@ -9,13 +9,16 @@ <translation id="1088300314857992706"><ph name="USER_EMAIL_ADDRESS" /> utilisait Chrome précédemment</translation> <translation id="1097330777386562916">Effacer les cookies et les données de site en quittant Chrome</translation> <translation id="110877069173485804">Voici votre Chrome</translation> +<translation id="1125124144982679672">Qui utilise Chrome ?</translation> <translation id="1142745911746664600">Impossible de mettre Chrome à jour</translation> <translation id="1154147086299354128">&Ouvrir dans Chrome</translation> <translation id="123620459398936149">Impossible de synchroniser vos données dans Chrome OS. Veuillez mettre à jour votre phrase secrète de synchronisation.</translation> <translation id="1302523850133262269">Veuillez patienter pendant que Chrome installe les dernières mises à jour du système.</translation> +<translation id="1355000804395496115">Utilisez plusieurs profils dans Chrome pour distinguer la navigation professionnelle de la navigation personnelle, ou pour les différentes personnes qui utilisent cet appareil</translation> <translation id="137466361146087520">Version bêta de Google Chrome</translation> <translation id="1399397803214730675">Une version plus récente de Google Chrome est déjà installée sur cet ordinateur. Si celle-ci ne fonctionne pas, désinstallez Google Chrome, puis réessayez.</translation> <translation id="1434626383986940139">Applications Chrome Canary</translation> +<translation id="1513277449617685876">Pour distinguer votre navigation personnelle de celle associée à votre compte <ph name="NEW_USER" />, créez un profil dans Chrome</translation> <translation id="1553358976309200471">Mettre à jour Chrome</translation> <translation id="1587223624401073077">Votre webcam est en cours d'utilisation dans Google Chrome.</translation> <translation id="1587325591171447154">Chrome a bloqué <ph name="FILE_NAME" />, car ce fichier est dangereux.</translation> @@ -105,6 +108,7 @@ <translation id="3889417619312448367">Désinstaller Google Chrome</translation> <translation id="4050175100176540509">La dernière version propose d'importantes améliorations de la sécurité ainsi que de nouvelles fonctionnalités.</translation> <translation id="4053720452172726777">Personnaliser et contrôler Google Chrome</translation> +<translation id="4110895483821904099">Configurer votre nouveau profil Chrome</translation> <translation id="4143243756087420366">Nom et photo dans Chrome</translation> <translation id="4147555960264124640">Vous vous connectez avec un compte géré et donnez le contrôle de votre profil Google Chrome à son administrateur. Vos données Chrome, telles que les applications, les favoris, l'historique, les mots de passe et les autres paramètres, vont être définitivement associées à <ph name="USER_NAME" />. Vous pouvez supprimer ces données via le tableau de bord des comptes Google, mais vous ne pouvez pas les associer à un autre compte. <ph name="LEARN_MORE" /></translation> <translation id="4149882025268051530">Échec de la décompression de l'archive par le programme d'installation. Veuillez télécharger de nouveau Google Chrome.</translation> @@ -158,6 +162,7 @@ Google Chrome ne peut pas récupérer vos paramètres.</translation> <translation id="556024056938947818">Tentative d'affichage des mots de passe dans Google Chrome</translation> <translation id="5566025111015594046">Google Chrome (mDNS-In)</translation> +<translation id="5633355459292055250">Me demander quand j'ouvre Chrome</translation> <translation id="5657226924540934362">Si un paramètre ne s'affiche pas sur cette page, accédez aux <ph name="LINK_BEGIN" />paramètres Chrome OS<ph name="LINK_END" /></translation> <translation id="565744775970812598">Chrome a bloqué <ph name="FILE_NAME" />, car ce fichier peut être dangereux.</translation> <translation id="5678190148303298925">{COUNT,plural, =0{Votre administrateur vous demande de relancer Chrome pour installer cette mise à jour}=1{Votre administrateur vous demande de relancer Chrome pour installer cette mise à jour. Sachez que la fenêtre de navigation privée ne sera pas rouverte.}one{Votre administrateur vous demande de relancer Chrome pour installer cette mise à jour. Sachez que la fenêtre de navigation privée (#) ne sera pas rouverte.}other{Votre administrateur vous demande de relancer Chrome pour installer cette mise à jour. Sachez que les # fenêtres de navigation privée ne seront pas rouvertes.}}</translation> @@ -210,6 +215,7 @@ <translation id="7398801000654795464">Vous étiez connecté à Google Chrome en tant que <ph name="USER_EMAIL_ADDRESS" />. Veuillez utiliser le même compte pour vous reconnecter.</translation> <translation id="7408085963519505752">Conditions d'utilisation de Chrome OS</translation> <translation id="7419046106786626209">Impossible de synchroniser vos données dans Chrome OS, car la synchronisation n'est pas disponible pour votre domaine.</translation> +<translation id="7423733001651488593">Cette action aura pour effet de supprimer définitivement vos données de navigation de cet appareil. Pour les récupérer, connectez-vous à Chrome en tant que</translation> <translation id="7486227612705979895">Chromium va accéder à votre Drive pour proposer des suggestions dans la barre d'adresse</translation> <translation id="7535429826459677826">Google Chrome pour les développeurs</translation> <translation id="7573289029918943991">Pour savoir si votre appareil est à jour, accédez aux <ph name="LINK_BEGIN" />paramètres Chrome OS<ph name="LINK_END" /></translation> @@ -257,6 +263,7 @@ <translation id="8681614230122836773">Chrome a détecté un logiciel malveillant sur votre ordinateur</translation> <translation id="870251953148363156">Mettre à jour &Google Chrome</translation> <translation id="873133009373065397">Impossible d'identifier ou de définir le navigateur par défaut avec Google Chrome</translation> +<translation id="8748242232968346981">Créer votre propre profil dans Chrome ?</translation> <translation id="8823341990149967727">Version de Chrome obsolète</translation> <translation id="8834965163890861871">Google Chrome tente de modifier les mots de passe. Pour autoriser cette action, saisissez votre mot de passe Windows.</translation> <translation id="884296878221830158">Elle contrôle également la page qui s'affiche au démarrage de Chrome ou lorsque vous cliquez sur le bouton Accueil.</translation>
diff --git a/chrome/app/resources/google_chrome_strings_gl.xtb b/chrome/app/resources/google_chrome_strings_gl.xtb index b1c3718..1a25d57c 100644 --- a/chrome/app/resources/google_chrome_strings_gl.xtb +++ b/chrome/app/resources/google_chrome_strings_gl.xtb
@@ -10,13 +10,16 @@ <translation id="1088300314857992706"><ph name="USER_EMAIL_ADDRESS" /> estaba utilizando Chrome previamente</translation> <translation id="1097330777386562916">Borrar as cookies e os datos dos sitios cando peches Chrome</translation> <translation id="110877069173485804">Este é o teu navegador Chrome</translation> +<translation id="1125124144982679672">Quen está utilizando Chrome?</translation> <translation id="1142745911746664600">Non se puido actualizar Chrome</translation> <translation id="1154147086299354128">&Abrir en Chrome</translation> <translation id="123620459398936149">Chrome OS non puido sincronizar os teus datos. Actualiza a túa frase de acceso de sincronización.</translation> <translation id="1302523850133262269">Espera a que Chrome instale as actualizacións do sistema máis recentes.</translation> +<translation id="1355000804395496115">Utiliza distintos perfís en Chrome para separar a actividade de navegación persoal da do traballo, ou a das diferentes persoas que empregan este dispositivo</translation> <translation id="137466361146087520">Google Chrome Beta</translation> <translation id="1399397803214730675">Este ordenador ten instalada unha versión máis recente de Google Chrome. Se o software non funciona, desinstala Google Chrome e téntao de novo.</translation> <translation id="1434626383986940139">Aplicacións de valores controlados de Chrome</translation> +<translation id="1513277449617685876">Para separar a actividade de navegación persoal da de <ph name="NEW_USER" />, crea un perfil novo en Chrome</translation> <translation id="1553358976309200471">Actualizar Chrome</translation> <translation id="1587223624401073077">Google Chrome utiliza a túa cámara.</translation> <translation id="1587325591171447154"><ph name="FILE_NAME" /> é perigoso, así que Chrome bloqueouno.</translation> @@ -106,6 +109,7 @@ <translation id="3889417619312448367">Desinstalar Google Chrome</translation> <translation id="4050175100176540509">A última versión conta con melloras de seguranza importantes e novas funcións.</translation> <translation id="4053720452172726777">Personaliza e controla Google Chrome</translation> +<translation id="4110895483821904099">Configura o teu novo perfil de Chrome</translation> <translation id="4143243756087420366">Imaxe e nome para o perfil de Chrome</translation> <translation id="4147555960264124640">Estás iniciando sesión cunha conta administrada, polo que concedes ao seu administrador o control sobre o teu perfil de Google Chrome. Os tes datos de Chrome, como aplicacións, marcadores, historial, contrasinais e outras opcións quedarán ligados de forma permanente a <ph name="USER_NAME" />. Poderás eliminar estes datos mediante o panel de control de contas de Google, pero non poderás asocialos a outra conta. <ph name="LEARN_MORE" /></translation> <translation id="4149882025268051530">O instalador non puido descomprimir o arquivo. Descarga Google Chrome de novo.</translation> @@ -159,6 +163,7 @@ Google Chrome non pode recuperar a túa configuración.</translation> <translation id="556024056938947818">Google Chrome está intentando mostrar contrasinais.</translation> <translation id="5566025111015594046">Google Chrome (mDNS-In)</translation> +<translation id="5633355459292055250">Preguntar cando abra Chrome</translation> <translation id="5657226924540934362">Se non se mostra algunha opción de configuración nesta páxina, accede á <ph name="LINK_BEGIN" /> configuración de Chrome OS<ph name="LINK_END" /></translation> <translation id="565744775970812598"><ph name="FILE_NAME" /> pode ser perigoso, así que Chrome bloqueouno.</translation> @@ -212,6 +217,7 @@ <translation id="7398801000654795464">Iniciaches sesión en Chrome como <ph name="USER_EMAIL_ADDRESS" />. Utiliza a mesma conta para iniciar sesión de novo.</translation> <translation id="7408085963519505752">Condicións de Chrome OS</translation> <translation id="7419046106786626209">Chrome OS non puido sincronizar os teus datos porque a función de sincronización non está dispoñible para o teu dominio.</translation> +<translation id="7423733001651488593">Esta acción eliminará permanentemente os teus datos de navegación deste dispositivo. Para recuperalos, inicia sesión en Chrome como</translation> <translation id="7486227612705979895">Chrome accederá a Drive para facer suxestións na barra de enderezos</translation> <translation id="7535429826459677826">Google Chrome Dev</translation> <translation id="7573289029918943991">Para ver ser o teu dispositivo está actualizado, accede á <ph name="LINK_BEGIN" />configuración de Chrome OS<ph name="LINK_END" /></translation> @@ -259,6 +265,7 @@ <translation id="8681614230122836773">Chrome atopou software daniño no teu ordenador</translation> <translation id="870251953148363156">Actualizar &Google Chrome</translation> <translation id="873133009373065397">Google Chrome non pode determinar nin establecer o navegador predeterminado</translation> +<translation id="8748242232968346981">Queres crear o teu propio perfil en Chrome?</translation> <translation id="8823341990149967727">Chrome está desactualizado</translation> <translation id="8834965163890861871">Google Chrome está tentando editar os contrasinais. Escribe o teu contrasinal de Windows para permitir esta acción.</translation> <translation id="884296878221830158">Tamén controla que páxina se mostra ao iniciar Chrome ou ao facer clic no botón Inicio.</translation>
diff --git a/chrome/app/resources/google_chrome_strings_gu.xtb b/chrome/app/resources/google_chrome_strings_gu.xtb index 3d03d9b8e..adea3b4b 100644 --- a/chrome/app/resources/google_chrome_strings_gu.xtb +++ b/chrome/app/resources/google_chrome_strings_gu.xtb
@@ -10,13 +10,16 @@ <translation id="1088300314857992706"><ph name="USER_EMAIL_ADDRESS" />, પહેલાં Chrome નો ઉપયોગ કરી રહ્યાં હતાં</translation> <translation id="1097330777386562916">જ્યારે તમે Chromeમાંથી બહાર નીકળો ત્યારે કુકી અને સાઇટનો ડેટા સાફ કરો</translation> <translation id="110877069173485804">આ તમારું Chrome છે</translation> +<translation id="1125124144982679672">કોણ Chromeનો ઉપયોગ કરે છે?</translation> <translation id="1142745911746664600">Chrome અપડેટ કરી શકતાં નથી</translation> <translation id="1154147086299354128">&Chromeમાં ખોલો</translation> <translation id="123620459398936149">Chrome OS તમારા ડેટાને સિંક કરી શક્યું નથી. કૃપા કરીને તમારા સિંક પાસફ્રેઝને અપડેટ કરો.</translation> <translation id="1302523850133262269">કૃપા કરીને Chrome નવીનતમ સિસ્ટમ અપડેટ્સ ઇન્સ્ટોલ કરે ત્યાં સુધી રાહ જુઓ.</translation> +<translation id="1355000804395496115">ઑફિસ માટેનું અને વ્યક્તિગત બ્રાઉઝિંગ અલગ પાડવા અથવા આ ડિવાઇસનો ઉપયોગ કરતા વિવિધ લોકો માટે, Chromeમાં ભિન્ન પ્રોફાઇલનો ઉપયોગ કરો</translation> <translation id="137466361146087520">Google Chrome બીટા</translation> <translation id="1399397803214730675">આ કમ્પ્યુટર પર પહેલેથી જ Google Chromeનું વધુ તાજેતરનું વર્ઝન છે. જો સૉફ્ટવેર કામ ન કરતું હોય, તો કૃપા કરીને Google Chromeને અનઇન્સ્ટૉલ કરો અને ફરી પ્રયાસ કરો.</translation> <translation id="1434626383986940139">Chrome કેનેરી ઍપ્લિકેશનો</translation> +<translation id="1513277449617685876">વ્યક્તિગત અને <ph name="NEW_USER" /> બ્રાઉઝિંગને અલગ પાડવા માટે, Chromeમાં નવી પ્રોફાઇલ બનાવો</translation> <translation id="1553358976309200471">Chrome અપડેટ કરો</translation> <translation id="1587223624401073077">Google Chrome તમારા કેમેરાનો ઉપયોગ કરી રહ્યું છે.</translation> <translation id="1587325591171447154"><ph name="FILE_NAME" /> જોખમી છે, તેથી Chrome એ તેને અવરોધિત કરેલ છે.</translation> @@ -106,6 +109,7 @@ <translation id="3889417619312448367">Google Chromeને અનઇન્સ્ટૉલ કરો</translation> <translation id="4050175100176540509">નવીનતમ વર્ઝનમાં મહત્ત્વપૂર્ણ સુરક્ષા સુધારણાઓ અને નવી સુવિધાઓ ઉપલબ્ધ છે.</translation> <translation id="4053720452172726777">Google Chrome ને કસ્ટમાઇઝ કરો અને તેનું નિયંત્રણ કરો</translation> +<translation id="4110895483821904099">તમારી નવી Chrome પ્રોફાઇલ સેટઅપ કરો</translation> <translation id="4143243756087420366">Chromeમાંનું નામ અને ફોટો</translation> <translation id="4147555960264124640">તમે મેનેજ કરેલા એકાઉન્ટ સાથે સાઇન ઇન કરી રહ્યાં છો અને તમારી Google Chrome પ્રોફાઇલ પર એનું એડમિન નિયંત્રણ આપી રહ્યાં છો. તમારો Chrome ડેટા, જેમ કે તમારી ઍપ, બુકમાર્ક, ઇતિહાસ, પાસવર્ડ અને બીજા સેટિંગ, કાયમ માટે <ph name="USER_NAME" />થી બંધાયેલ રહેશે. તમે Google એકાઉન્ટ ડૅશબોર્ડથી આ ડેટાને કાઢી શકશો, પરંતુ તમે આ ડેટાને બીજા એકાઉન્ટ સાથે સાંકળી શકશો નહિ. <ph name="LEARN_MORE" /></translation> <translation id="4149882025268051530">ઇન્સ્ટૉલર આર્કાઇવને અનકોમ્પ્રેસ કરવામાં નિષ્ફળ. કૃપા કરીને Google Chrome ફરીથી ડાઉનલોડ કરો.</translation> @@ -159,6 +163,7 @@ Google Chrome તમારી સેટિંગ્સને પુનઃપ્રાપ્ત કરવામાં અક્ષમ છે.</translation> <translation id="556024056938947818">Google Chrome પાસવર્ડ્સ બતાવવાનો પ્રયાસ કરી રહ્યું છે.</translation> <translation id="5566025111015594046">Google Chrome (mDNS-In)</translation> +<translation id="5633355459292055250">હું Chrome ખોલું ત્યારે પૂછો</translation> <translation id="5657226924540934362">જો આ પેજ પર સેટિંગ બતાવેલું ન હોય, તો તમારા <ph name="LINK_BEGIN" /> Chrome OS સેટિંગ<ph name="LINK_END" />માં જુઓ</translation> <translation id="565744775970812598"><ph name="FILE_NAME" /> જોખમી હોઈ શકે છે, તેથી Chrome એ તેને અવરોધિત કરેલ છે.</translation> @@ -212,6 +217,7 @@ <translation id="7398801000654795464">તમે Chromeમાં <ph name="USER_EMAIL_ADDRESS" /> તરીકે સાઇન ઇન કર્યું હતું. ફરીથી સાઇન ઇન કરવા માટે કૃપા કરીને એ જ એકાઉન્ટનો ઉપયોગ કરો.</translation> <translation id="7408085963519505752">Chrome OS શરતો</translation> <translation id="7419046106786626209">Chrome OS તમારા ડેટાને સિંક કરી શક્યું નથી કારણ કે તમારા ડોમેન માટે સિંક ઉપલબ્ધ નથી.</translation> +<translation id="7423733001651488593">આ તમારો બ્રાઉઝિંગ ડેટા આ ડિવાઇસમાંથી હંમેશ માટે ડિલીટ કરશે. આ ડેટા પાછો મેળવવા માટે, Chromeમાં આ તરીકે સાઇન ઇન કરો</translation> <translation id="7486227612705979895">ઍડ્રેસ બારમાં સૂચનો કરવા માટે, Chrome તમારી ડ્રાઇવને ઍક્સેસ કરશે</translation> <translation id="7535429826459677826">Google Chrome Dev</translation> <translation id="7573289029918943991">તમારું ડિવાઇસ અપ ટૂ ડેટ છે કે નહીં, તે જાણવા માટે <ph name="LINK_BEGIN" />Chrome OS સેટિંગ<ph name="LINK_END" /> પર જાઓ</translation> @@ -259,6 +265,7 @@ <translation id="8681614230122836773">Chromeને તમારા કમ્પ્યુટરમાં હાનિકારક સૉફ્ટવેર મળી આવ્યું છે</translation> <translation id="870251953148363156">&Google Chrome ને અપડેટ કરો</translation> <translation id="873133009373065397">Google Chrome ડિફૉલ્ટ બ્રાઉઝરને નિર્ધારિત અથવા સેટ કરી શકતું નથી</translation> +<translation id="8748242232968346981">Chromeમાં તમારી પોતાની પ્રોફાઇલ બનાવવી છે?</translation> <translation id="8823341990149967727">Chrome જૂનું થઈ ગયું છે</translation> <translation id="8834965163890861871">Google Chrome પાસવર્ડમાં ફેરફાર કરવાનો પ્રયાસ કરે છે. આની મંજૂરી આપવા માટે તમારો Windows પાસવર્ડ લખો.</translation> <translation id="884296878221830158">જ્યારે તમે Chrome શરૂ કરો અથવા હોમ બટન ક્લિક કરો ત્યારે કયું પૃષ્ઠ બતાવવામાં આવે તે તેનું પણ નિયંત્રણ કરે છે.</translation>
diff --git a/chrome/app/resources/google_chrome_strings_ms.xtb b/chrome/app/resources/google_chrome_strings_ms.xtb index cfa78411..5db0290 100644 --- a/chrome/app/resources/google_chrome_strings_ms.xtb +++ b/chrome/app/resources/google_chrome_strings_ms.xtb
@@ -13,11 +13,11 @@ <translation id="1154147086299354128">&Buka dalam Chrome</translation> <translation id="123620459398936149">OS Chrome tidak dapat menyegerakkan data anda. Sila kemas kini frasa laluan Segerak anda.</translation> <translation id="1302523850133262269">Sila tunggu sementara Chrome memasang kemas kini sistem terkini.</translation> -<translation id="1355000804395496115">Gunakan profil yang berlainan di Chrome untuk memisahkan penyemakan imbas kerja dan peribadi atau untuk orang berbeza yang menggunakan peranti ini</translation> +<translation id="1355000804395496115">Gunakan profil yang berlainan pada Chrome untuk memisahkan penyemakan imbas kerja dan peribadi atau untuk orang berbeza yang menggunakan peranti ini</translation> <translation id="137466361146087520">Google Chrome Beta</translation> <translation id="1399397803214730675">Komputer ini mempunyai versi Google Chrome paling terkini. Jika perisian tidak berfungsi, sila nyahpasang Google Chrome dan cuba semula.</translation> <translation id="1434626383986940139">Apl Chrome Canary</translation> -<translation id="1513277449617685876">Untuk memisahkan penyemakan imbas peribadi dan <ph name="NEW_USER" />, cipta profil baharu di Chrome</translation> +<translation id="1513277449617685876">Untuk memisahkan penyemakan imbas peribadi dan <ph name="NEW_USER" />, buat profil baharu pada Chrome</translation> <translation id="1553358976309200471">Kemas Kini Chrome</translation> <translation id="1587223624401073077">Google Chrome menggunakan kamera anda.</translation> <translation id="1587325591171447154"><ph name="FILE_NAME" /> berbahaya, jadi Chrome telah menyekat fail itu.</translation> @@ -257,7 +257,7 @@ <translation id="8681614230122836773">Chrome menemukan perisian berbahaya pada komputer anda</translation> <translation id="870251953148363156">Kemas kini &Google Chrome</translation> <translation id="873133009373065397">Google Chrome tidak dapat menentukan atau menetapkan penyemak imbas lalai</translation> -<translation id="8748242232968346981">Cipta profil anda sendiri di Chrome?</translation> +<translation id="8748242232968346981">Buat profil anda sendiri pada Chrome?</translation> <translation id="8823341990149967727">Chrome sudah Usang</translation> <translation id="8834965163890861871">Google Chrome cuba mengedit kata laluan. Taip kata laluan Windows anda untuk membenarkan tindakan ini.</translation> <translation id="884296878221830158">Sambungan turut mengawal halaman yang ditunjukkan apabila anda memulakan Chrome atau mengklik butang Laman Utama.</translation>
diff --git a/chrome/app/resources/google_chrome_strings_ne.xtb b/chrome/app/resources/google_chrome_strings_ne.xtb index eb1f939..e3909df4 100644 --- a/chrome/app/resources/google_chrome_strings_ne.xtb +++ b/chrome/app/resources/google_chrome_strings_ne.xtb
@@ -10,13 +10,16 @@ <translation id="1088300314857992706"><ph name="USER_EMAIL_ADDRESS" /> ले पहिला Chrome प्रयोग गरिरहेको थियो</translation> <translation id="1097330777386562916">आफूले Chrome छाडेर बाहिरिँदा कुकी र साइटका डेटा हटाउनुहोस्</translation> <translation id="110877069173485804">यो तपाईंको क्रोम हो</translation> +<translation id="1125124144982679672">Chrome कसले चलाउँदै हुनुहुन्छ?</translation> <translation id="1142745911746664600">Chrome लाई अद्यावधिक गर्न सकिएन</translation> <translation id="1154147086299354128">Chrome मा खोल्नुहोस्</translation> <translation id="123620459398936149">Chrome OS ले तपाइँको लगत समक्रमण गर्न सकेन। कृपया तपाइँको समक्रमण पासफ्रेज अपडेट गर्नुहोस्।</translation> <translation id="1302523850133262269">Chrome ले नवीनतम सिस्टम अपडेटहरू स्थापित गर्दै गर्दा कृपया प्रतिक्षा गर्नुहोस्।</translation> +<translation id="1355000804395496115">कामका सिलसिलामा गरिने ब्राउजिङ र व्यक्तिगत रूपमा गरिने ब्राउजिङ अल गर्न वा यो यन्त्र प्रयोग गर्ने विभिन्न मान्छेहरूका लागि Chrome मा विभिन्न प्रोफाइलहरू बनाउनुहोस्</translation> <translation id="137466361146087520">Google Chrome बिटा</translation> <translation id="1399397803214730675">यो कम्प्युटर पहिले नै Google Chrome को एउटा अझ हालैको संस्करण छ। यदि सफ्टवेयरले काम गरिरहेको छैन भने, कृपया Google Chrome को स्थापना हटाउनुहोस् र पुन: प्रयास गर्नुहोस्।</translation> <translation id="1434626383986940139">Chrome क्यानरी एप्स</translation> +<translation id="1513277449617685876">व्यक्तिगत रूपमा गरिने ब्राउजिङ र <ph name="NEW_USER" /> बाट गरिने ब्राउजिङ अलग गर्न Chrome मा एउटा नयाँ प्रोफाइल बनाउनुहोस्</translation> <translation id="1553358976309200471">Chrome अपडेट गर्नुहोस्</translation> <translation id="1587223624401073077">Google Chrome ले तपाइँको क्यामेरा प्रयोग गर्दैछ।</translation> <translation id="1587325591171447154"><ph name="FILE_NAME" /> खतरनाक छ, त्यसैले Chrome ले यसमाथि रोक लगाएको छ।</translation> @@ -104,6 +107,7 @@ <translation id="3889417619312448367">Google Chrome को स्थापना हटाउनुहोस्</translation> <translation id="4050175100176540509">नवीनतम संस्करणमा महत्वपूर्ण सुरक्षा सुधारहरू र नयाँ सुविधाहरू उपलब्ध छन्।</translation> <translation id="4053720452172726777">Google Chrome आफू अनुकूल र नियन्त्रण गर्नुहोस्</translation> +<translation id="4110895483821904099">Chrome मा आफ्नो नयाँ प्रोफाइल सेटअप गर्नुहोस्</translation> <translation id="4143243756087420366">Chrome प्रोफाइलको नाम र तस्बिर</translation> <translation id="4147555960264124640">तपाईं एउटा व्यवस्थित खाताद्वारा साइन इन गर्दै हुनुहुन्छ र यसको व्यवस्थापकलाई आफ्नो Google Chrome प्रोफाइल माथिको नियन्त्रण दिँदै हुनुहुन्छ। तपाईंको Chrome डाटा, जस्तै एप्स, बुकमार्कहरू, इतिहास, पासवर्डहरू, र अन्य सेटिङहरू स्थायी रूपमा <ph name="USER_NAME" /> सँग गाँसिनेछन्। तपाईंले यो डाटा Google खाताहरू ड्यासबोर्ड मार्फत मेटाउन सक्नुहुनेछ, तर तपाईं॥े यो डाटालाई अर्को खातासँग सम्बद्ध गर्न सक्नुहुन्न। <ph name="LEARN_MORE" /></translation> <translation id="4149882025268051530">स्थापनाकर्ता आर्किभलाई अनकम्प्रेस गर्न असफल भयो। कृपया Google Chrome पुन: डाउनलोड गर्नुहोस्।</translation> @@ -155,6 +159,7 @@ Google Chrome ले तपाईंको सेटिङहरू पुन: प्राप्त गर्न सकदैन।</translation> <translation id="556024056938947818">Google Chrome ले पासवर्डहरू देखाउने प्रयास गरिरहेको छ।</translation> <translation id="5566025111015594046">Google Chrome (mDNS-In)</translation> +<translation id="5633355459292055250">मैले Chrome खोल्दा सोधियोस्</translation> <translation id="5657226924540934362">यो पृष्ठमा कुनै सेटिङ देखिएन भने आफ्नो <ph name="LINK_BEGIN" /> Chrome OS का सेटिङ<ph name="LINK_END" />मा गई हेर्नुहोस्</translation> <translation id="565744775970812598"><ph name="FILE_NAME" /> खतरनाक हुन सक्छ, त्यसैले Chrome ले यसमाथि रोक लगाएको छ।</translation> @@ -208,6 +213,7 @@ <translation id="7398801000654795464">तपाइँलाई Chrome मा <ph name="USER_EMAIL_ADDRESS" /> को रूपमा साइन इन गिरएको थियो। कृपया फेरि साइन इन गर्नको लागि समान खाता प्रयोग गर्नुहोस्।</translation> <translation id="7408085963519505752">Chrome OS सर्तहरू</translation> <translation id="7419046106786626209">Chrome OS ले तपाइँको लगतलाई समक्रमण गर्न सकेन किनभने तपाइँको डोमेनको लागि समक्रमण उपलब्ध छैन।</translation> +<translation id="7423733001651488593">तपाईंले यो प्रोफाइल हटाउनुभयो भने यो यन्त्रबाट तपाईंको ब्राउजिङ डेटा सदाका लागि मेटाइने छ। उक्त डेटा पुनः प्राप्त गर्न निम्न खाता प्रयोग गरी Chrome मा साइन इन गर्नुहोस्</translation> <translation id="7486227612705979895">ठेगाना बारमा सुझाव दिन Chrome तपाईंको ड्राइभमाथि पहुँच राख्ने छ</translation> <translation id="7535429826459677826">Google Chrome Dev</translation> <translation id="7573289029918943991">आफ्नो यन्त्र अद्यावधिक छ कि छैन भनी हेर्न <ph name="LINK_BEGIN" />Chrome OS का सेटिङ<ph name="LINK_END" />मा जानुहोस्</translation> @@ -255,6 +261,7 @@ <translation id="8681614230122836773">Chrome ले तपाईंको कम्प्युटरमा हानिकारक सफ्टवेयर फेला पार्यो</translation> <translation id="870251953148363156">&Google Chrome अपडेट गर्नुहोस्</translation> <translation id="873133009373065397">Google Chrome ले पूर्वनिर्धारित ब्राउजर निर्धारण वा सेट गर्न सक्दैन</translation> +<translation id="8748242232968346981">Chrome मा आफ्नै प्रोफाइल बनाउने हो?</translation> <translation id="8823341990149967727">Chrome को मिति समाप्त भएको छ</translation> <translation id="8834965163890861871">Google Chrome ले पासवर्डहरू बदल्ने प्रयास गर्दैछ। यसो गर्ने अनुमति दिन आफूले Windows मा प्रयोग गरेको पासवर्ड टाइप गर्नुहोस्।</translation> <translation id="884296878221830158">तपाइँले Chrome सुरु गर्दा वा गृह बटन क्लिक गर्दा यसले कुन पृष्ठ देखाउँछ भनेर पनि नियन्त्रण गर्छ।</translation>
diff --git a/chrome/app/resources/google_chrome_strings_or.xtb b/chrome/app/resources/google_chrome_strings_or.xtb index 8c38ebc1..cb29b6d 100644 --- a/chrome/app/resources/google_chrome_strings_or.xtb +++ b/chrome/app/resources/google_chrome_strings_or.xtb
@@ -10,13 +10,16 @@ <translation id="1088300314857992706">ପୂର୍ବରୁ <ph name="USER_EMAIL_ADDRESS" /> Chrome ବ୍ୟବହାର କରୁଥିଲେ</translation> <translation id="1097330777386562916">ଆପଣ Chromeରୁ ବାହାରିବା ସମୟରେ କୁକୀ ଏବଂ ସାଇଟ୍ ଡାଟାଗୁଡ଼ିକ ଖାଲି କରନ୍ତୁ</translation> <translation id="110877069173485804">ଏହା ଆପଣଙ୍କର Chrome ଅଟେ</translation> +<translation id="1125124144982679672">କିଏ Chrome ବ୍ୟବହାର କରୁଛନ୍ତି?</translation> <translation id="1142745911746664600">Chrome ଅପ୍ଡେଟ୍ ହୋଇପାରିବ ନାହିଁ</translation> <translation id="1154147086299354128">&Chromeରେ ଖୋଲନ୍ତୁ</translation> <translation id="123620459398936149">Chrome OS ଆପଣଙ୍କର ଡାଟାକୁ ସିଙ୍କ କରିପାରିଲା ନାହିଁ। ଦୟାକରି ଆପଣଙ୍କର ସିଙ୍କ ପାସଫ୍ରେଜ୍ ଅପ୍ଡେଟ୍ କରନ୍ତୁ।</translation> <translation id="1302523850133262269">Chrome ନବୀନତମ ସିଷ୍ଟମ୍ ଅପ୍ଡେଟ୍ଗୁଡ଼ିକ ଇନ୍ଷ୍ଟଲ୍ କରୁଛି, ଦୟାକରି ଅପେକ୍ଷା କରନ୍ତୁ।</translation> +<translation id="1355000804395496115">କାର୍ଯ୍ୟ ଏବଂ ବ୍ୟକ୍ତିଗତ ବ୍ରାଉଜିଂକୁ ଅଲଗା କରିବାକୁ କିମ୍ବା ଏହି ଡିଭାଇସ୍ ବ୍ଯବହାର କରୁଥିବା ବିଭିନ୍ନ ଲୋକଙ୍କ ପାଇଁ Chromeରେ ଭିନ୍ନ ଭିନ୍ନ ପ୍ରୋଫାଇଲ୍ ବ୍ୟବହାର କରନ୍ତୁ</translation> <translation id="137466361146087520">Google Chrome ବିଟା</translation> <translation id="1399397803214730675">ଏହି କମ୍ପ୍ୟୁଟର୍ରେ ପୂର୍ବରୁ Google Chromeର ସବୁଠାରୁ ନିକଟତମ ସଂସ୍କରଣ ଅଛି। ଯଦି ସଫ୍ଟୱେୟାର୍ କାର୍ଯ୍ୟ କରୁ ନାହିଁ, ଦୟାକରି Google Chrome ଅନ୍ଇନ୍ଷ୍ଟଲ୍ କରନ୍ତୁ ଏବଂ ପୁଣି ଚେଷ୍ଟା କରନ୍ତୁ।</translation> <translation id="1434626383986940139">Chrome କେନେରୀ ଆପ୍ସ</translation> +<translation id="1513277449617685876">ବ୍ଯକ୍ତିଗତ ଏବଂ <ph name="NEW_USER" /> ବ୍ରାଉଜିଂକୁ ଅଲଗା କରିବାକୁ, Chromeରେ ଏକ ନୂଆ ପ୍ରୋଫାଇଲ୍ ତିଆରି କରନ୍ତୁ</translation> <translation id="1553358976309200471">Chrome ଅପ୍ଡେଟ୍</translation> <translation id="1587223624401073077">Google Chrome ଆପଣଙ୍କର କ୍ୟାମେରା ବ୍ୟବହାର କରୁଛି।</translation> <translation id="1587325591171447154"><ph name="FILE_NAME" /> ବିପଜ୍ଜନକ ଅଟେ, ତେଣୁ Chrome ଏହାକୁ ଅବରୋଧ କରିଛି।</translation> @@ -106,6 +109,7 @@ <translation id="3889417619312448367">Google Chrome ଅସଂସ୍ଥାପନ କରନ୍ତୁ</translation> <translation id="4050175100176540509">ନବୀନତମ ସଂସ୍କରଣରେ ଗୁରୁତ୍ୱପୂର୍ଣ୍ଣ ସୁରକ୍ଷା ଉନ୍ନୟନ ଏବଂ ନୂତନ ବୈଶିଷ୍ଟ୍ୟ ଉପଲବ୍ଧ ଅଛି।</translation> <translation id="4053720452172726777">Google Chromeକୁ କଷ୍ଟମାଇଜ୍ ଓ ନିୟନ୍ତ୍ରଣ କରନ୍ତୁ।</translation> +<translation id="4110895483821904099">ଆପଣଙ୍କର ନୂଆ Chrome ପ୍ରୋଫାଇଲ୍ ସେଟ୍ ଅପ୍ କରନ୍ତୁ</translation> <translation id="4143243756087420366">Chrome ନାମ ଏବଂ ଛବି</translation> <translation id="4147555960264124640">ଆପଣ ଏକ ପରିଚାଳିତ ଆକାଉଣ୍ଟ ମାଧ୍ୟମରେ ସାଇନ୍ ଇନ୍ କରିଛନ୍ତି ଏବଂ ଏହାର ବ୍ୟବସ୍ଥାପକଙ୍କୁ ଆପଣଙ୍କ Google Chrome ପ୍ରୋଫାଇଲ୍ର ନିୟନ୍ତ୍ରଣ ଦେଇଛନ୍ତି। ଆପଣଙ୍କର Chrome ଡାଟା ଯେପରିକି, ଆପଣଙ୍କର ଆପ୍ସ, ବୁକ୍ମାର୍କ୍ଗୁଡ଼ିକ, ଇତିବୃତ୍ତି, ପାସ୍ୱାର୍ଡଗୁଡ଼ିକ ଏବଂ ଅନ୍ୟ ସେଟିଂସ୍ ସ୍ଥାୟୀରୂପେ <ph name="USER_NAME" />କୁ ଯୋଡ଼ି ହୋଇଯିବ। ଆପଣ ଏହି ଡାଟାକୁ Google ଆକାଉଣ୍ଟ ଡ୍ୟାସ୍ବୋର୍ଡ ମାଧ୍ୟମରେ ଡିଲିଟ୍ କରିପାରିବେ, କିନ୍ତୁ ଆପଣ ଏହି ଡାଟାକୁ ଅନ୍ୟ ଆକାଉଣ୍ଟ ସହିତ ଜଡ଼ିତ କରିପାରିବେ ନାହିଁ। <ph name="LEARN_MORE" /></translation> <translation id="4149882025268051530">ସଂସ୍ଥାପକ ଅଭିଲେଖାଗାର ଅଣ ସଙ୍କୁଚିତ କରିବାରେ ବିଫଳ । ଦୟାକରି Google Chrome ପୁନଃ ଡାଉନଲୋଡ୍ କରନ୍ତୁ ।</translation> @@ -159,6 +163,7 @@ ଆପଣଙ୍କର ସେଟିଂସ୍ ପୁନରୁଦ୍ଧାର କରିବାକୁ Google Chrome ଅକ୍ଷମ ଅଟେ।</translation> <translation id="556024056938947818">Google Chrome ପାସ୍ୱାର୍ଡ ଦେଖାଇବାକୁ ଚାହୁଁଛି।</translation> <translation id="5566025111015594046">Google Chrome (mDNS-In)</translation> +<translation id="5633355459292055250">ମୁଁ Chrome ଖୋଲିଲେ ପଚାରନ୍ତୁ</translation> <translation id="5657226924540934362">ଯଦି ଏହି ପୃଷ୍ଠାରେ ଏକ ସେଟିଂ ଦେଖାଯାଉ ନାହିଁ, ତେବେ ଆପଣଙ୍କର <ph name="LINK_BEGIN" />Chrome OS ସେଟିଂସ୍<ph name="LINK_END" />ରେ ଦେଖନ୍ତୁ</translation> <translation id="565744775970812598"><ph name="FILE_NAME" /> ବିପଜ୍ଜନକ ହୋଇପାରେ, ତେଣୁ Chrome ଏହାକୁ ବ୍ଲକ୍ କରିଦେଇଛି।</translation> <translation id="5678190148303298925">{COUNT,plural, =0{ଆପଣଙ୍କର ଆଡ୍ମିନିଷ୍ଟ୍ରେଟର୍ କହୁଛନ୍ତି ଯେ ଏହି ଅପ୍ଡେଟ୍ ଲାଗୁ କରିବାକୁ ଆପଣ Chromeକୁ ପୁଣି ଲଞ୍ଚ କରନ୍ତୁ।}=1{ଆପଣଙ୍କର ଆଡ୍ମିନିଷ୍ଟ୍ରେଟର୍ କହୁଛନ୍ତି ଯେ ଏହି ଅପ୍ଡେଟ୍ ଲାଗୁ କରିବାକୁ ଆପଣ Chromeକୁ ପୁଣି ଲଞ୍ଚ କରନ୍ତୁ। ଆପଣଙ୍କର ଇନ୍କଗ୍ନିଟୋ ୱିଣ୍ଡୋ ପୁଣି ଖୋଲିବ ନାହିଁ।}other{ଆପଣଙ୍କର ଆଡ୍ମିନିଷ୍ଟ୍ରେଟର୍ କହୁଛନ୍ତି ଯେ ଏହି ଅପ୍ଡେଟ୍ ଲାଗୁ କରିବାକୁ ଆପଣ Chromeକୁ ପୁଣି ଲଞ୍ଚ କରନ୍ତୁ। ଆପଣଙ୍କର #ଟି ଇନ୍କଗ୍ନିଟୋ ୱିଣ୍ଡୋ ପୁଣି ଖୋଲିବ ନାହିଁ।}}</translation> @@ -211,6 +216,7 @@ <translation id="7398801000654795464"><ph name="USER_EMAIL_ADDRESS" /> ଭାବରେ ଆପଣ Chromeରେ ସାଇନ୍ ଇନ୍ କରିଛନ୍ତି। ପୁଣିଥରେ ସାଇନ୍ ଇନ୍ କରିବା ପାଇଁ ଦୟାକରି ସେହି ଆକାଉଣ୍ଟ ବ୍ୟବହାର କରନ୍ତୁ।</translation> <translation id="7408085963519505752">Chrome OS ସର୍ତ୍ତ</translation> <translation id="7419046106786626209">Chrome OS ଆପଣଙ୍କର ଡାଟାକୁ ସିଙ୍କ୍ କରିପାରିବ ନାହିଁ, କାରଣ ଆପଣଙ୍କ ଡୋମେନ୍ ପାଇଁ ସିଙ୍କ୍ ଉପଲବ୍ଧ ନାହିଁ।</translation> +<translation id="7423733001651488593">ଏହି ଡିଭାଇସରୁ ଆପଣଙ୍କର ବ୍ରାଉଜିଂ ଡାଟାକୁ ଏହା ସ୍ଥାୟୀରୂପେ ଡିଲିଟ୍ କରିଦେବ। ଡାଟା ପୁନରୁଦ୍ଧାର କରିବାକୁ, ଏପରି ଭାବରେ Chromeରେ ସାଇନ୍ ଇନ୍ କରନ୍ତୁ</translation> <translation id="7486227612705979895">ଠିକଣା ବାର୍ରେ ପ୍ରସ୍ତାବ ଦେବା ପାଇଁ Chrome ଆପଣଙ୍କର ଡ୍ରାଇଭ୍କୁ ଆକ୍ସେସ୍ କରିବ</translation> <translation id="7535429826459677826">Google Chrome ଡେଭ୍</translation> <translation id="7573289029918943991">ଆପଣଙ୍କ ଡିଭାଇସ୍ ଅପ୍ ଟୁ ଡେଟ୍ ଅଛି କି ନାହିଁ, ତାହା ଦେଖିବାକୁ <ph name="LINK_BEGIN" />Chrome OS ସେଟିଂସ୍<ph name="LINK_END" />କୁ ଯାଆନ୍ତୁ</translation> @@ -258,6 +264,7 @@ <translation id="8681614230122836773">Chromeକୁ ଆପଣଙ୍କ କମ୍ପ୍ୟୁଟରରେ କ୍ଷତିକାରକ ସଫ୍ଟୱେୟାର ମିଳିଛି</translation> <translation id="870251953148363156">&Google Chrome ଅପ୍ଡେଟ୍ କରନ୍ତୁ</translation> <translation id="873133009373065397">Google Chrome ଡିଫଲ୍ଟ ବ୍ରାଉଜର୍ ନିର୍ଦ୍ଧାରଣ କିମ୍ବା ସେଟ୍ କରିପାରିବ ନାହିଁ</translation> +<translation id="8748242232968346981">Chromeରେ ଆପଣଙ୍କ ନିଜ ପ୍ରୋଫାଇଲ୍ ତିଆରି କରିବେ?</translation> <translation id="8823341990149967727">Chrome ପୁରୁଣା ହୋଇଯାଇଛି</translation> <translation id="8834965163890861871">Google Chrome ପାସୱାର୍ଡଗୁଡ଼ିକୁ ଏଡିଟ୍ କରିବାକୁ ଚେଷ୍ଟା କରୁଛି। ଏହାକୁ ଅନୁମତି ଦେବା ପାଇଁ ଆପଣଙ୍କ Windows ପାସୱାର୍ଡ ଟାଇପ୍ କରନ୍ତୁ।</translation> <translation id="884296878221830158">ଯେତେବେଳେ ଆପଣ Chrome ଆରମ୍ଭ କରନ୍ତି କିମ୍ବା ହୋମ୍ ବଟନ୍ କ୍ଲିକ୍ କରନ୍ତି, ସେତେବେଳେ କେଉଁ ପୃଷ୍ଠା ଦେଖାଯିବ ତାହା ଏହା ନିୟନ୍ତ୍ରଣ କରେ।</translation>
diff --git a/chrome/app/resources/google_chrome_strings_ru.xtb b/chrome/app/resources/google_chrome_strings_ru.xtb index 3afbfe8..a61ceda 100644 --- a/chrome/app/resources/google_chrome_strings_ru.xtb +++ b/chrome/app/resources/google_chrome_strings_ru.xtb
@@ -8,13 +8,16 @@ <translation id="1088300314857992706">Адрес <ph name="USER_EMAIL_ADDRESS" /> уже использовался в Chrome</translation> <translation id="1097330777386562916">Удалять файлы cookie и данные сайтов при выходе из Chrome</translation> <translation id="110877069173485804">Ваш персональный Chrome</translation> +<translation id="1125124144982679672">Кто использует Chrome?</translation> <translation id="1142745911746664600">Не удалось обновить Chrome</translation> <translation id="1154147086299354128">&Открыть в Chrome</translation> <translation id="123620459398936149">Не удалось синхронизировать данные. Обновите кодовую фразу в Sync.</translation> <translation id="1302523850133262269">Подождите, пока Chrome устанавливает последние обновления системы</translation> +<translation id="1355000804395496115">Разные профили Chrome нужны для раздельного использования браузера в личных и рабочих целях или если с ним работают разные люди.</translation> <translation id="137466361146087520">Google Chrome (бета)</translation> <translation id="1399397803214730675">На компьютере уже установлена последняя версия браузера Google Chrome. Если он не работает, удалите его и установите снова.</translation> <translation id="1434626383986940139">Приложения Chrome Canary</translation> +<translation id="1513277449617685876">Чтобы использовать браузер в личных целях, а не как <ph name="NEW_USER" />, создайте профиль в Chrome.</translation> <translation id="1553358976309200471">Обновить Chrome</translation> <translation id="1587223624401073077">Google Chrome использует камеру.</translation> <translation id="1587325591171447154">Chrome заблокировал файл <ph name="FILE_NAME" /> как опасный.</translation> @@ -102,6 +105,7 @@ <translation id="3889417619312448367">Удалить Google Chrome</translation> <translation id="4050175100176540509">В последней версии улучшена защита и добавлены новые функции.</translation> <translation id="4053720452172726777">Настройка и управление Google Chrome</translation> +<translation id="4110895483821904099">Создайте профиль Chrome</translation> <translation id="4143243756087420366">Имя и фото профиля Chrome</translation> <translation id="4147555960264124640">Выполнив вход в управляемый аккаунт, вы предоставляете администратору право контролировать настройки вашего профиля Google Chrome. Ваши данные Chrome (приложения, закладки, история, пароли и другие настройки) будут временно связаны с аккаунтом <ph name="USER_NAME" />. Эти данные можно удалить в Личном кабинете Google, но их нельзя связать с другим аккаунтом. <ph name="LEARN_MORE" /></translation> <translation id="4149882025268051530">Не удалось извлечь файлы из архива. Скачайте Google Chrome заново.</translation> @@ -151,6 +155,7 @@ <translation id="5430073640787465221">Файл настроек поврежден или недействителен. Google Chrome не может восстановить ваши параметры.</translation> <translation id="556024056938947818">Вводимые пароли будут отображаться в Google Chrome.</translation> <translation id="5566025111015594046">Google Chrome (mDNS-In)</translation> +<translation id="5633355459292055250">Спрашивать во время запуска Chrome</translation> <translation id="5657226924540934362">Если нужного параметра нет на этой странице, откройте <ph name="LINK_BEGIN" />настройки Chrome OS<ph name="LINK_END" />.</translation> <translation id="565744775970812598">Chrome заблокировал файл <ph name="FILE_NAME" /> как потенциально опасный.</translation> <translation id="5678190148303298925">{COUNT,plural, =0{Администратор просит перезапустить Chrome для установки обновления.}=1{Администратор просит перезапустить Chrome для установки обновления. Окно в режиме инкогнито не будет открыто повторно.}one{Администратор просит перезапустить Chrome для установки обновления. # окно в режиме инкогнито не будет открыто повторно.}few{Администратор просит перезапустить Chrome для установки обновления. # окна в режиме инкогнито не будут открыты повторно.}many{Администратор просит перезапустить Chrome для установки обновления. # окон в режиме инкогнито не будут открыты повторно.}other{Администратор просит перезапустить Chrome для установки обновления. # окна в режиме инкогнито не будут открыты повторно.}}</translation> @@ -203,6 +208,7 @@ <translation id="7398801000654795464">Ранее вы входили в Chrome как <ph name="USER_EMAIL_ADDRESS" />. Войдите снова, используя тот же аккаунт.</translation> <translation id="7408085963519505752">Условия использования Chrome OS</translation> <translation id="7419046106786626209">Не удалось синхронизировать данные, поскольку сервис Sync недоступен в вашем домене.</translation> +<translation id="7423733001651488593">Все данные о работе в браузере будут удалены с устройства. Чтобы восстановить их, войдите в Chrome как</translation> <translation id="7486227612705979895">Chrome получит доступ к Google Диску, чтобы вы могли просматривать рекомендации в адресной строке</translation> <translation id="7535429826459677826">Google Chrome для разработчиков</translation> <translation id="7573289029918943991">Чтобы посмотреть, обновлена ли операционная система устройства, перейдите в <ph name="LINK_BEGIN" />настройки Chrome OS<ph name="LINK_END" />.</translation> @@ -250,6 +256,7 @@ <translation id="8681614230122836773">Браузер Chrome обнаружил на вашем компьютере вредоносное ПО.</translation> <translation id="870251953148363156">Обновить &Google Chrome</translation> <translation id="873133009373065397">Google Chrome не удалось определить или задать браузер по умолчанию</translation> +<translation id="8748242232968346981">Создать свой профиль в Chrome?</translation> <translation id="8823341990149967727">Версия Chrome устарела</translation> <translation id="8834965163890861871">Google Chrome пытается изменить пароли. Чтобы разрешить это действие, введите свой пароль Windows.</translation> <translation id="884296878221830158">Кроме того, расширение изменило стартовую страницу Chrome и страницу, отображаемую при нажатии кнопки "Главная страница".</translation>
diff --git a/chrome/app/resources/google_chrome_strings_ta.xtb b/chrome/app/resources/google_chrome_strings_ta.xtb index 0d4d4fa..9ba5228 100644 --- a/chrome/app/resources/google_chrome_strings_ta.xtb +++ b/chrome/app/resources/google_chrome_strings_ta.xtb
@@ -8,13 +8,16 @@ <translation id="1088300314857992706"><ph name="USER_EMAIL_ADDRESS" /> ஏற்கனவே Chromeஐப் பயன்படுத்திக் கொண்டிருந்தது</translation> <translation id="1097330777386562916">நீங்கள் Chromeமை விட்டு வெளியேறும் போது குக்கீகளையும் வலைதளத் தரவையும் அழிக்கும்</translation> <translation id="110877069173485804">இது உங்கள் Chrome ஆகும்</translation> +<translation id="1125124144982679672">Chromeமைப் பயன்படுத்துவது யார்?</translation> <translation id="1142745911746664600">Chromeஐப் புதுப்பிக்க முடியவில்லை</translation> <translation id="1154147086299354128">&Chrome இல் திற</translation> <translation id="123620459398936149">உங்கள் தரவை Chrome OS ஆல் ஒத்திசைக்க முடியவில்லை. உங்கள் கடவுச்சொற்றொடரைப் புதுப்பிக்கவும்.</translation> <translation id="1302523850133262269">சமீபத்திய முறைமை புதுப்பிப்புகளை Chrome நிறுவும் வரை காத்திருக்கவும்.</translation> +<translation id="1355000804395496115">பணி நிமித்தமான உலாவலையும் தனிப்பட்ட உலாவலையும் தனித்தனியாகப் பிரிக்கவோ இந்தச் சாதனத்தைப் பயன்படுத்தும் வெவ்வேறு நபர்களுக்காகவோ Chromeமில் வெவ்வேறு சுயவிவரங்களைப் பயன்படுத்தவும்</translation> <translation id="137466361146087520">Google Chrome பீட்டா</translation> <translation id="1399397803214730675">Google Chromeமின் மிகச் சமீபத்திய பதிப்பு இந்தக் கம்ப்யூட்டரில் ஏற்கனவே உள்ளது. மென்பொருள் இயங்கவில்லை என்றால், Google Chromeமை நிறுவல்நீக்கம் செய்துவிட்டு, மீண்டும் முயற்சி செய்க.</translation> <translation id="1434626383986940139">Chrome Canary ஆப்ஸ்</translation> +<translation id="1513277449617685876">தனிப்பட்ட உலாவலையும் <ph name="NEW_USER" /> இன் உலாவலையும் தனித்தனியாகப் பிரிக்க, Chromeமில் ஒரு புதிய சுயவிவரத்தை உருவாக்கவும்</translation> <translation id="1553358976309200471">Chromeஐப் புதுப்பி</translation> <translation id="1587223624401073077">Google Chrome உங்கள் கேமராவைப் பயன்படுத்துகிறது.</translation> <translation id="1587325591171447154"><ph name="FILE_NAME" /> ஆபத்தானது என்பதால் Chrome அதைத் தடுத்துள்ளது.</translation> @@ -102,6 +105,7 @@ <translation id="3889417619312448367">Google Chrome ஐ நிறுவல் நீக்குக</translation> <translation id="4050175100176540509">முக்கியப் பாதுகாப்பு மேம்பாடுகளும், புதிய அம்சங்களும் சமீபத்திய பதிப்பில் கிடைக்கின்றன.</translation> <translation id="4053720452172726777">Google Chrome ஐ தனிப்பயனாக்கி கட்டுப்படுத்து</translation> +<translation id="4110895483821904099">உங்கள் புதிய Chrome சுயவிவரத்தை அமைத்திடுங்கள்</translation> <translation id="4143243756087420366">Chrome பெயர் மற்றும் படம்</translation> <translation id="4147555960264124640">நீங்கள் நிர்வகிக்கப்படும் கணக்கு மூலம் உள்நுழைகிறீர்கள், மேலும் அதன் நிர்வாகிக்கு உங்கள் Google Chrome சுயவிவரத்தின் கட்டுப்பாட்டை வழங்குகிறீர்கள். உங்கள் ஆப்ஸ், புக்மார்க்குகள், வரலாறு, கடவுச்சொற்கள் போன்ற உங்கள் Chrome தரவு மற்றும் பிற அமைப்புகள் நிரந்தரமாக <ph name="USER_NAME" /> உடன் இணைக்கப்படும். இந்தத் தரவை Google கணக்குகளின் டாஷ்போர்டு வழியாக நீக்க முடியும், ஆனால் இந்தத் தரவை வேறொரு கணக்குடன் தொடர்புப்படுத்த முடியாது. <ph name="LEARN_MORE" /></translation> <translation id="4149882025268051530">காப்பகத்தை விரிவுபடுத்துவதில் இன்ஸ்டாலர் தோல்வியுற்றது. Google Chromeமை மீண்டும் பதிவிறக்குக.</translation> @@ -151,6 +155,7 @@ <translation id="5430073640787465221">உங்கள் விருப்பத்தேர்வுகளின் கோப்பு சிதைவடைந்துள்ளது அல்லது தவறானது. உங்கள் அமைப்புகளை Google Chrome ஆல் மீட்டெடுக்க முடியவில்லை.</translation> <translation id="556024056938947818">Google Chrome ஆனது கடவுச்சொற்களைக் காட்ட முயற்சிக்கிறது.</translation> <translation id="5566025111015594046">Google Chrome (mDNS-In)</translation> +<translation id="5633355459292055250">நான் Chromeமைத் திறக்கும்போது கேள்</translation> <translation id="5657226924540934362">இந்தப் பக்கத்தில் ஓர் அமைப்பு காட்டப்படவில்லை எனில் அதை <ph name="LINK_BEGIN" /> Chrome OS அமைப்புகளில்<ph name="LINK_END" /> பார்க்கவும்</translation> <translation id="565744775970812598"><ph name="FILE_NAME" /> ஆபத்தானதாக இருக்கலாம் என்பதால் Chrome அதைத் தடுத்துள்ளது.</translation> @@ -204,6 +209,7 @@ <translation id="7398801000654795464">Chromeல் <ph name="USER_EMAIL_ADDRESS" /> ஆக உள்நுழைந்திருந்தீர்கள். மீண்டும் உள்நுழைய அதே கணக்கைப் பயன்படுத்தவும்.</translation> <translation id="7408085963519505752">Chrome OS விதிமுறைகள்</translation> <translation id="7419046106786626209">உங்கள் களத்திற்கு ஒத்திசைவு கிடைக்கவில்லை என்பதால், Chrome OS ஆல் உங்கள் தரவை ஒத்திசைக்க முடியவில்லை.</translation> +<translation id="7423733001651488593">அகற்றினால், நீங்கள் உலாவிய தரவு இந்தச் சாதனத்திலிருந்து நிரந்தரமாக நீக்கப்படும். தரவை மீட்டெடுக்க, Chromeமில் இந்தக் கணக்கின் மூலம் உள்நுழையவும்</translation> <translation id="7486227612705979895">முகவரிப் பட்டியில் பரிந்துரைகளை வழங்க, Chrome உங்கள் இயக்ககத்தை அணுகும்</translation> <translation id="7535429826459677826">Google Chrome Dev</translation> <translation id="7573289029918943991">உங்கள் சாதனம் புதுப்பித்த நிலையில் உள்ளதா என்பதைப் பார்க்க <ph name="LINK_BEGIN" />Chrome OS அமைப்புகளுக்குச்<ph name="LINK_END" /> செல்லவும்</translation> @@ -251,6 +257,7 @@ <translation id="8681614230122836773">உங்கள் கம்ப்யூட்டரில் தீங்கிழைக்கும் மென்பொருள் இருப்பதை Chrome கண்டறிந்துள்ளது</translation> <translation id="870251953148363156">&Google Chrome ஐப் புதுப்பி</translation> <translation id="873133009373065397">இயல்புநிலை உலாவியைக் கண்டறியவோ அமைக்கவோ Google Chrome ஆல் முடியவில்லை</translation> +<translation id="8748242232968346981">Chromeமில் உங்களுக்கெனச் சொந்த சுயவிவரத்தை உருவாக்கவா?</translation> <translation id="8823341990149967727">Chrome காலாவதியானது</translation> <translation id="8834965163890861871">Google Chrome கடவுச்சொற்களைத் திருத்த முயல்கிறது. இதை அனுமதிக்க உங்கள் Windows கடவுச்சொல்லை உள்ளிடவும்.</translation> <translation id="884296878221830158">Chromeமைத் தொடங்கும்போது அல்லது முகப்புப் பொத்தானைக் கிளிக் செய்யும்போது காண்பிக்கப்படும் பக்கத்தையும் இது கட்டுப்படுத்துகிறது.</translation>
diff --git a/chrome/app/resources/google_chrome_strings_zh-CN.xtb b/chrome/app/resources/google_chrome_strings_zh-CN.xtb index ecb42e6..ae5424d 100644 --- a/chrome/app/resources/google_chrome_strings_zh-CN.xtb +++ b/chrome/app/resources/google_chrome_strings_zh-CN.xtb
@@ -8,13 +8,16 @@ <translation id="1088300314857992706"><ph name="USER_EMAIL_ADDRESS" /> 之前使用的是 Chrome</translation> <translation id="1097330777386562916">退出 Chrome 时清除 Cookie 及网站数据</translation> <translation id="110877069173485804">这是您的专属Chrome</translation> +<translation id="1125124144982679672">谁在使用 Chrome?</translation> <translation id="1142745911746664600">无法更新 Chrome</translation> <translation id="1154147086299354128">在 Chrome 中打开(&O)</translation> <translation id="123620459398936149">Chrome操作系统无法同步您的数据。请更新您的同步密码。</translation> <translation id="1302523850133262269">Chrome正在安装最新的系统更新,请稍候。</translation> +<translation id="1355000804395496115">在 Chrome 中使用不同的个人资料将工作上的浏览数据和个人的浏览数据分隔开来,或者为此设备的不同用户使用不同的个人资料</translation> <translation id="137466361146087520">Google Chrome 测试版</translation> <translation id="1399397803214730675">该计算机已安装了更高版本的 Google Chrome 浏览器。如果该软件无法正常运行,请卸载 Google Chrome 浏览器,然后重试。</translation> <translation id="1434626383986940139">Chrome Canary 应用</translation> +<translation id="1513277449617685876">若要将个人的浏览数据与 <ph name="NEW_USER" /> 的浏览数据分隔开来,请在 Chrome 中创建一份新的个人资料</translation> <translation id="1553358976309200471">更新 Chrome</translation> <translation id="1587223624401073077">Google Chrome 正在使用您的摄像头。</translation> <translation id="1587325591171447154"><ph name="FILE_NAME" /> 存在危险,因此 Chrome 已将其拦截。</translation> @@ -102,6 +105,7 @@ <translation id="3889417619312448367">卸载 Google Chrome</translation> <translation id="4050175100176540509">最新版本不仅在安全性方面做出了重要改进,还提供了多项新功能。</translation> <translation id="4053720452172726777">自定义及控制 Google Chrome</translation> +<translation id="4110895483821904099">设置您的新 Chrome 个人资料</translation> <translation id="4143243756087420366">Chrome 名称和图片</translation> <translation id="4147555960264124640">您目前登录的帐号是一个托管帐号,该帐号的管理员将能够控制您的 Google Chrome 个人资料。您的 Chrome 数据(例如您的应用、书签、历史记录、密码和其他设置)将永远与 <ph name="USER_NAME" /> 相关联。您可以通过 Google 帐号信息中心删除这些数据,但无法将这些数据与其他帐号相关联。<ph name="LEARN_MORE" /></translation> <translation id="4149882025268051530">安装程序无法解压缩存档文件。请重新下载 Google Chrome。</translation> @@ -151,6 +155,7 @@ <translation id="5430073640787465221">您的偏好设置文件已损坏或无效。Google Chrome 浏览器无法恢复您的设置。</translation> <translation id="556024056938947818">Google Chrome 正尝试显示密码。</translation> <translation id="5566025111015594046">Google Chrome (mDNS-In)</translation> +<translation id="5633355459292055250">在我打开 Chrome 时询问</translation> <translation id="5657226924540934362">如果此页面中未显示某项设置,请在 <ph name="LINK_BEGIN" /> Chrome 操作系统设置<ph name="LINK_END" />中查找</translation> <translation id="565744775970812598"><ph name="FILE_NAME" /> 可能存在危险,因此 Chrome 已将其拦截。</translation> @@ -204,6 +209,7 @@ <translation id="7398801000654795464">您之前登录 Chrome 时使用的帐号为 <ph name="USER_EMAIL_ADDRESS" />,请使用同一帐号再次登录。</translation> <translation id="7408085963519505752">Chrome操作系统条款</translation> <translation id="7419046106786626209">由于您的网域停用了同步功能,Chrome操作系统无法同步您的数据。</translation> +<translation id="7423733001651488593">此操作会将您的浏览数据从这部设备上永久删除。若要恢复这些数据,请使用以下身份登录 Chrome:</translation> <translation id="7486227612705979895">Chrome 将访问您的云端硬盘,以在地址栏提供建议</translation> <translation id="7535429826459677826">Google Chrome 开发者版</translation> <translation id="7573289029918943991">若想确认您设备上的操作系统是否是最新版本,请前往 <ph name="LINK_BEGIN" />Chrome 操作系统设置<ph name="LINK_END" /></translation> @@ -251,6 +257,7 @@ <translation id="8681614230122836773">Chrome 在您的计算机上发现了有害软件</translation> <translation id="870251953148363156">更新 Google Chrome(&G)</translation> <translation id="873133009373065397">Google Chrome 无法确定或设置默认浏览器</translation> +<translation id="8748242232968346981">在 Chrome 中创建您自己的个人资料?</translation> <translation id="8823341990149967727">Chrome版本太旧</translation> <translation id="8834965163890861871">Google Chrome 正在尝试修改密码。请输入您的 Windows 密码以允许此操作。</translation> <translation id="884296878221830158">它还能够控制您启动Chrome或点击“主页”按钮后系统显示的页面。</translation>
diff --git a/chrome/app/settings_strings.grdp b/chrome/app/settings_strings.grdp index 274f23e..4d4578b 100644 --- a/chrome/app/settings_strings.grdp +++ b/chrome/app/settings_strings.grdp
@@ -1521,7 +1521,7 @@ Search engine </message> <message name="IDS_SETTINGS_SEARCH_EXPLANATION" desc="Explanation for the search engine dropdown setting."> - Search engine used in the <ph name="BEGIN_LINK"><a target="_blank" href="$1"></ph>address bar<ph name="END_LINK"></a></ph> + Search engine used in the address bar </message> <message name="IDS_SETTINGS_SEARCH_MANAGE_SEARCH_ENGINES" desc="Label for the Manage Search Engines button."> Manage search engines
diff --git a/chrome/app/settings_strings_grdp/IDS_SETTINGS_SEARCH_EXPLANATION.png.sha1 b/chrome/app/settings_strings_grdp/IDS_SETTINGS_SEARCH_EXPLANATION.png.sha1 new file mode 100644 index 0000000..723f2ad0 --- /dev/null +++ b/chrome/app/settings_strings_grdp/IDS_SETTINGS_SEARCH_EXPLANATION.png.sha1
@@ -0,0 +1 @@ +308eb586c46929a05c317afe0a3c36b93b4a758f \ No newline at end of file
diff --git a/chrome/app/vector_icons/nearby_share.icon b/chrome/app/vector_icons/nearby_share.icon index 411644e3..0902bc5 100644 --- a/chrome/app/vector_icons/nearby_share.icon +++ b/chrome/app/vector_icons/nearby_share.icon
@@ -2,62 +2,50 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -CANVAS_DIMENSIONS, 20, +CANVAS_DIMENSIONS, 24, PATH_COLOR_ARGB, 0xFF, 0x1A, 0x73, 0xE8, -MOVE_TO, 2.89f, 12.31f, -R_CUBIC_TO, 1.05f, 0, 1.89f, -0.85f, 1.89f, -1.89f, -CUBIC_TO_SHORTHAND, 3.94f, 8.52f, 2.89f, 8.52f, -CUBIC_TO, 1.85f, 8.52f, 1, 9.37f, 1, 10.42f, -R_CUBIC_TO, 0, 1.05f, 0.85f, 1.89f, 1.89f, 1.89f, +MOVE_TO, 2.72f, 8.87f, +CUBIC_TO, 2.24f, 9.32f, 2.23f, 10.07f, 2.69f, 10.54f, +LINE_TO, 3.89f, 11.78f, +LINE_TO, 5.54f, 10.08f, +LINE_TO, 4.39f, 8.89f, +CUBIC_TO, 3.94f, 8.42f, 3.19f, 8.41f, 2.72f, 8.87f, CLOSE, -NEW_PATH, -PATH_COLOR_ARGB, 0xFF, 0xD9, 0x30, 0x25, -MOVE_TO, 17.11f, 12.31f, -R_CUBIC_TO, 1.05f, 0, 1.89f, -0.85f, 1.89f, -1.89f, -R_CUBIC_TO, 0, -1.04f, -0.85f, -1.89f, -1.89f, -1.89f, -R_CUBIC_TO, -1.05f, 0, -1.89f, 0.85f, -1.89f, 1.89f, -R_CUBIC_TO, 0, 1.04f, 0.85f, 1.89f, 1.89f, 1.89f, +MOVE_TO, 16.26f, 15.75f, +LINE_TO, 17.26f, 14.73f, +LINE_TO, 18.92f, 13.04f, +LINE_TO, 21.35f, 10.55f, +CUBIC_TO, 21.57f, 10.31f, 21.68f, 10.02f, 21.68f, 9.72f, +CUBIC_TO, 21.68f, 9.41f, 21.56f, 9.11f, 21.32f, 8.87f, +CUBIC_TO, 20.86f, 8.42f, 20.1f, 8.42f, 19.65f, 8.89f, +LINE_TO, 17.26f, 11.35f, +LINE_TO, 15.6f, 13.04f, +LINE_TO, 14.57f, 14.09f, +CUBIC_TO, 13.89f, 14.79f, 12.99f, 15.17f, 12.02f, 15.17f, +CUBIC_TO, 11.15f, 15.17f, 10.35f, 14.86f, 9.71f, 14.3f, +LINE_TO, 8.06f, 15.99f, +CUBIC_TO, 9.15f, 16.99f, 10.54f, 17.54f, 12.02f, 17.54f, +CUBIC_TO, 13.63f, 17.54f, 15.14f, 16.91f, 16.26f, 15.75f, CLOSE, -NEW_PATH, -PATH_COLOR_ARGB, 0xFF, 0x1A, 0x73, 0xE8, -MOVE_TO, 9.57f, 6.11f, -LINE_TO, 6.13f, 2.67f, -R_ARC_TO, 0.95f, 0.95f, 0, 0, 0, -1.34f, 1.34f, -LINE_TO, 8.23f, 7.45f, -R_LINE_TO, 1.34f, -1.34f, +MOVE_TO, 12.02f, 8.54f, +CUBIC_TO, 10.41f, 8.54f, 8.9f, 9.17f, 7.78f, 10.33f, +LINE_TO, 4.07f, 14.13f, +LINE_TO, 2.69f, 15.54f, +CUBIC_TO, 2.24f, 16, 2.24f, 16.76f, 2.72f, 17.21f, +CUBIC_TO, 3.18f, 17.66f, 3.94f, 17.66f, 4.39f, 17.19f, +LINE_TO, 6.78f, 14.73f, +LINE_TO, 8.44f, 13.04f, +LINE_TO, 9.47f, 11.99f, +CUBIC_TO, 10.15f, 11.29f, 11.05f, 10.91f, 12.02f, 10.91f, +CUBIC_TO, 12.88f, 10.91f, 13.68f, 11.22f, 14.33f, 11.78f, +LINE_TO, 15.98f, 10.09f, +CUBIC_TO, 14.89f, 9.09f, 13.5f, 8.54f, 12.02f, 8.54f, CLOSE, -NEW_PATH, -PATH_COLOR_ARGB, 0xFF, 0xD9, 0x30, 0x25, -MOVE_TO, 8.12f, 8.41f, -R_ARC_TO, 2.84f, 2.84f, 0, 0, 0, 0, 4.02f, -R_LINE_TO, 0.13f, 0.13f, -R_LINE_TO, 1.37f, -1.34f, -R_LINE_TO, -0.13f, -0.13f, -R_ARC_TO, 0.93f, 0.93f, 0, 0, 1, -0.3f, -0.67f, -R_ARC_TO, 0.95f, 0.95f, 0, 0, 1, 0.28f, -0.67f, -R_LINE_TO, 5.74f, -5.74f, -R_ARC_TO, 0.95f, 0.95f, 0, 0, 0, 0, -1.34f, -R_ARC_TO, 0.95f, 0.95f, 0, 0, 0, -1.34f, 0, -LINE_TO, 8.12f, 8.41f, -CLOSE, -MOVE_TO, 11.73f, 13.34f, -R_LINE_TO, -1.34f, 1.34f, -R_LINE_TO, 3.48f, 3.48f, -R_ARC_TO, 0.95f, 0.95f, 0, 1, 0, 1.34f, -1.34f, -R_LINE_TO, -3.48f, -3.48f, -CLOSE, -NEW_PATH, -PATH_COLOR_ARGB, 0xFF, 0x1A, 0x73, 0xE8, -MOVE_TO, 11.88f, 12.43f, -R_ARC_TO, 2.84f, 2.84f, 0, 0, 0, 0.62f, -3.1f, -R_ARC_TO, 2.84f, 2.84f, 0, 0, 0, -0.62f, -0.92f, -R_LINE_TO, -0.13f, -0.13f, -R_LINE_TO, -1.34f, 1.34f, -R_LINE_TO, 0.13f, 0.13f, -R_ARC_TO, 0.93f, 0.93f, 0, 0, 1, 0.27f, 0.67f, -R_ARC_TO, 0.94f, 0.94f, 0, 0, 1, -0.28f, 0.67f, -R_LINE_TO, -5.74f, 5.74f, -R_ARC_TO, 0.95f, 0.95f, 0, 0, 0, 0, 1.34f, -R_CUBIC_TO, 0.37f, 0.37f, 0.97f, 0.37f, 1.34f, 0, -R_LINE_TO, 5.75f, -5.74f, +MOVE_TO, 21.68f, 16.37f, +CUBIC_TO, 21.68f, 16.07f, 21.57f, 15.77f, 21.35f, 15.54f, +LINE_TO, 20.16f, 14.32f, +LINE_TO, 18.51f, 16.03f, +LINE_TO, 19.65f, 17.2f, +CUBIC_TO, 20.1f, 17.67f, 20.85f, 17.69f, 21.32f, 17.22f, +CUBIC_TO, 21.56f, 16.99f, 21.68f, 16.68f, 21.68f, 16.37f, CLOSE
diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn index 05310cc7..939e3bc 100644 --- a/chrome/browser/BUILD.gn +++ b/chrome/browser/BUILD.gn
@@ -1411,6 +1411,8 @@ "push_messaging/push_messaging_features.h", "push_messaging/push_messaging_notification_manager.cc", "push_messaging/push_messaging_notification_manager.h", + "push_messaging/push_messaging_refresher.cc", + "push_messaging/push_messaging_refresher.h", "push_messaging/push_messaging_service_factory.cc", "push_messaging/push_messaging_service_factory.h", "push_messaging/push_messaging_service_impl.cc", @@ -3997,6 +3999,8 @@ "metrics/perf/random_selector.h", "metrics/perf/windowed_incognito_observer.cc", "metrics/perf/windowed_incognito_observer.h", + "nearby_sharing/sharesheet/nearby_share_action.cc", + "nearby_sharing/sharesheet/nearby_share_action.h", "notifications/arc_application_notifier_controller.cc", "notifications/arc_application_notifier_controller.h", "notifications/chrome_ash_message_center_client.cc", @@ -4009,6 +4013,8 @@ "notifications/notifier_controller.h", "notifications/web_page_notifier_controller.cc", "notifications/web_page_notifier_controller.h", + "performance_manager/mechanisms/userspace_swap_chromeos.cc", + "performance_manager/mechanisms/userspace_swap_chromeos.h", "performance_manager/mechanisms/working_set_trimmer_chromeos.cc", "performance_manager/mechanisms/working_set_trimmer_chromeos.h", "performance_manager/policies/userspace_swap_policy_chromeos.cc", @@ -4063,6 +4069,8 @@ "//chromeos/components/quick_answers", "//chromeos/components/sync_wifi", "//chromeos/crosapi/mojom", + "//chromeos/memory/userspace_swap", + "//chromeos/memory/userspace_swap:mojom", "//chromeos/services/assistant/public/cpp", "//chromeos/services/cellular_setup", "//chromeos/services/device_sync/public/mojom", @@ -4729,6 +4737,8 @@ "crash_upload_list/crash_upload_list_crashpad.h", "payments/chrome_payment_request_delegate.cc", "payments/chrome_payment_request_delegate.h", + "payments/payment_credential_factory.cc", + "payments/payment_credential_factory.h", "payments/payment_request_display_manager_factory.cc", "payments/payment_request_display_manager_factory.h", "payments/payment_request_factory.cc",
diff --git a/chrome/browser/DEPS b/chrome/browser/DEPS index 2abacf6f..25ab377 100644 --- a/chrome/browser/DEPS +++ b/chrome/browser/DEPS
@@ -489,5 +489,8 @@ ], "chrome_find_request_manager_browsertest\.cc": [ "+pdf/document_loader_impl.h", - ] + ], + "chrome_content_browser_client_receiver_bindings\.cc" : [ + "+chrome/browser/performance_manager/mechanisms/userspace_swap_chromeos.h", + ], }
diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc index 02119ab..183c5fe 100644 --- a/chrome/browser/about_flags.cc +++ b/chrome/browser/about_flags.cc
@@ -523,6 +523,51 @@ base::size(kDelayAsyncScriptExecutionFirstPaintOrFinishedParsing), nullptr}}; +const FeatureEntry::FeatureParam + kDelayCompetingLowPriorityRequestsAggressiveFirstPaint[] = { + {"until", "first_paint"}, + {"priority_threshold", "medium"}}; +const FeatureEntry::FeatureParam + kDelayCompetingLowPriorityRequestsAggressiveFirstContentfulPaint[] = { + {"until", "first_contentful_paint"}, + {"priority_threshold", "medium"}}; +const FeatureEntry::FeatureParam + kDelayCompetingLowPriorityRequestsRelaxedFirstPaint[] = { + {"until", "first_paint"}, + {"priority_threshold", "high"}}; +const FeatureEntry::FeatureParam + kDelayCompetingLowPriorityRequestsRelaxedFirstContentfulPaint[] = { + {"until", "first_contentful_paint"}, + {"priority_threshold", "high"}}; +const FeatureEntry::FeatureParam + kDelayCompetingLowPriorityRequestsRelaxedAlways[] = { + {"until", "always"}, + {"priority_threshold", "high"}}; + +const FeatureEntry::FeatureVariation + kDelayCompetingLowPriorityRequestsFeatureVariations[] = { + {"behind medium priority, until first paint", + kDelayCompetingLowPriorityRequestsAggressiveFirstPaint, + base::size(kDelayCompetingLowPriorityRequestsAggressiveFirstPaint), + nullptr}, + {"behind medium priority, until first contentful paint", + kDelayCompetingLowPriorityRequestsAggressiveFirstContentfulPaint, + base::size( + kDelayCompetingLowPriorityRequestsAggressiveFirstContentfulPaint), + nullptr}, + {"behind high priority, until first paint", + kDelayCompetingLowPriorityRequestsRelaxedFirstPaint, + base::size(kDelayCompetingLowPriorityRequestsRelaxedFirstPaint), + nullptr}, + {"behind high priority, until first contentful paint", + kDelayCompetingLowPriorityRequestsRelaxedFirstContentfulPaint, + base::size( + kDelayCompetingLowPriorityRequestsRelaxedFirstContentfulPaint), + nullptr}, + {"behind high priority, always", + kDelayCompetingLowPriorityRequestsRelaxedAlways, + base::size(kDelayCompetingLowPriorityRequestsRelaxedAlways), nullptr}}; + const FeatureEntry::FeatureParam kIntensiveWakeUpThrottlingImmediate[] = { {blink::features::kIntensiveWakeUpThrottling_GracePeriodSeconds_Name, "0"}}; @@ -4028,6 +4073,14 @@ kDelayAsyncScriptExecutionFeatureVariations, "DelayAsyncScriptExecution")}, + {"delay-competing-low-priority-requests", + flag_descriptions::kDelayCompetingLowPriorityRequestsName, + flag_descriptions::kDelayCompetingLowPriorityRequestsDescription, kOsAll, + FEATURE_WITH_PARAMS_VALUE_TYPE( + blink::features::kDelayCompetingLowPriorityRequests, + kDelayCompetingLowPriorityRequestsFeatureVariations, + "DelayCompetingLowPriorityRequests")}, + {"prefetch-privacy-changes", flag_descriptions::kPrefetchPrivacyChangesName, flag_descriptions::kPrefetchPrivacyChangesDescription, kOsAll, FEATURE_VALUE_TYPE(blink::features::kPrefetchPrivacyChanges)}, @@ -5507,10 +5560,16 @@ FEATURE_VALUE_TYPE(chromeos::features::kCrostiniWebUIUpgrader)}, #endif // OS_CHROMEOS - {"turn-off-streaming-media-caching", - flag_descriptions::kTurnOffStreamingMediaCachingName, - flag_descriptions::kTurnOffStreamingMediaCachingDescription, kOsAll, - FEATURE_VALUE_TYPE(net::features::kTurnOffStreamingMediaCaching)}, + {"turn-off-streaming-media-caching-on-battery", + flag_descriptions::kTurnOffStreamingMediaCachingOnBatteryName, + flag_descriptions::kTurnOffStreamingMediaCachingOnBatteryDescription, + kOsAll, + FEATURE_VALUE_TYPE(net::features::kTurnOffStreamingMediaCachingOnBattery)}, + + {"turn-off-streaming-media-caching-always", + flag_descriptions::kTurnOffStreamingMediaCachingAlwaysName, + flag_descriptions::kTurnOffStreamingMediaCachingAlwaysDescription, kOsAll, + FEATURE_VALUE_TYPE(net::features::kTurnOffStreamingMediaCachingAlways)}, #if defined(OS_ANDROID) {"password-manager-onboarding-android", @@ -6354,6 +6413,13 @@ flag_descriptions::kWellKnownChangePasswordDescription, kOsAll, FEATURE_VALUE_TYPE(password_manager::features::kWellKnownChangePassword)}, +#if defined(OS_MAC) + {"videotoolbox-vp9-decoding", + flag_descriptions::kVideoToolboxVp9DecodingName, + flag_descriptions::kVideoToolboxVp9DecodingDescription, kOsMac, + FEATURE_VALUE_TYPE(media::kVideoToolboxVp9Decoding)}, +#endif + // NOTE: Adding a new flag requires adding a corresponding entry to enum // "LoginCustomFlags" in tools/metrics/histograms/enums.xml. See "Flag // Histograms" in tools/metrics/histograms/README.md (run the
diff --git a/chrome/browser/chrome_browser_interface_binders.cc b/chrome/browser/chrome_browser_interface_binders.cc index f9f4832..19d93b5 100644 --- a/chrome/browser/chrome_browser_interface_binders.cc +++ b/chrome/browser/chrome_browser_interface_binders.cc
@@ -66,6 +66,7 @@ #include "third_party/blink/public/mojom/credentialmanager/credential_manager.mojom.h" #include "third_party/blink/public/mojom/insecure_input/insecure_input_service.mojom.h" #include "third_party/blink/public/mojom/loader/navigation_predictor.mojom.h" +#include "third_party/blink/public/mojom/payments/payment_credential.mojom.h" #include "third_party/blink/public/mojom/payments/payment_request.mojom.h" #include "third_party/blink/public/mojom/prerender/prerender.mojom.h" #include "third_party/blink/public/public_buildflags.h" @@ -108,6 +109,7 @@ #include "chrome/browser/media/kaleidoscope/kaleidoscope_data_provider_impl.h" #include "chrome/browser/media/kaleidoscope/kaleidoscope_ui.h" #include "chrome/browser/media/kaleidoscope/mojom/kaleidoscope.mojom.h" +#include "chrome/browser/payments/payment_credential_factory.h" #include "chrome/browser/payments/payment_request_factory.h" #include "chrome/browser/promo_browser_command/promo_browser_command.mojom.h" #include "chrome/browser/speech/speech_recognition_service.h" @@ -463,6 +465,8 @@ map->Add<payments::mojom::PaymentRequest>( base::BindRepeating(&payments::CreatePaymentRequest)); } + map->Add<payments::mojom::PaymentCredential>( + base::BindRepeating(&payments::CreatePaymentCredential)); #endif #if BUILDFLAG(ENABLE_EXTENSIONS)
diff --git a/chrome/browser/chrome_content_browser_client_receiver_bindings.cc b/chrome/browser/chrome_content_browser_client_receiver_bindings.cc index 23a47ed..ab5fda63 100644 --- a/chrome/browser/chrome_content_browser_client_receiver_bindings.cc +++ b/chrome/browser/chrome_content_browser_client_receiver_bindings.cc
@@ -43,7 +43,9 @@ #include "chrome/browser/win/conflicts/module_database.h" #include "chrome/browser/win/conflicts/module_event_sink_impl.h" #elif defined(OS_CHROMEOS) +#include "chrome/browser/performance_manager/mechanisms/userspace_swap_chromeos.h" #include "chromeos/components/cdm_factory_daemon/cdm_factory_daemon_proxy.h" +#include "components/performance_manager/public/performance_manager.h" #endif #if BUILDFLAG(ENABLE_EXTENSIONS) @@ -181,6 +183,17 @@ content::GetUIThreadTaskRunner({})); #endif +#if defined(OS_CHROMEOS) + if (performance_manager::mechanism::userspace_swap:: + UserspaceSwapInitializationImpl::UserspaceSwapSupportedAndEnabled()) { + registry->AddInterface( + base::BindRepeating(&performance_manager::mechanism::userspace_swap:: + UserspaceSwapInitializationImpl::Create, + render_process_host->GetID()), + performance_manager::PerformanceManager::GetTaskRunner()); + } +#endif + for (auto* ep : extra_parts_) { ep->ExposeInterfacesToRenderer(registry, associated_registry, render_process_host);
diff --git a/chrome/browser/chromeos/crosapi/browser_util.cc b/chrome/browser/chromeos/crosapi/browser_util.cc index d2109bb..e13a2f8 100644 --- a/chrome/browser/chromeos/crosapi/browser_util.cc +++ b/chrome/browser/chromeos/crosapi/browser_util.cc
@@ -82,13 +82,12 @@ return true; case Channel::CANARY: case Channel::DEV: - case Channel::BETA: { + case Channel::BETA: + case Channel::STABLE: { std::string canonical_email = user->GetAccountId().GetUserEmail(); return base::EndsWith(canonical_email, "google.com", base::CompareCase::INSENSITIVE_ASCII); } - case Channel::STABLE: - return false; } }
diff --git a/chrome/browser/chromeos/crosapi/browser_util_unittest.cc b/chrome/browser/chromeos/crosapi/browser_util_unittest.cc index 5853e0a8..ba11f30a 100644 --- a/chrome/browser/chromeos/crosapi/browser_util_unittest.cc +++ b/chrome/browser/chromeos/crosapi/browser_util_unittest.cc
@@ -57,11 +57,7 @@ EXPECT_TRUE(browser_util::IsLacrosAllowed(Channel::CANARY)); EXPECT_TRUE(browser_util::IsLacrosAllowed(Channel::DEV)); EXPECT_TRUE(browser_util::IsLacrosAllowed(Channel::BETA)); -} - -TEST_F(LacrosUtilTest, BlockedForGoogler) { - AddRegularUser("user@google.com"); - EXPECT_FALSE(browser_util::IsLacrosAllowed(Channel::STABLE)); + EXPECT_TRUE(browser_util::IsLacrosAllowed(Channel::STABLE)); } TEST_F(LacrosUtilTest, BlockedForChildUser) {
diff --git a/chrome/browser/chromeos/login/existing_user_controller_browsertest.cc b/chrome/browser/chromeos/login/existing_user_controller_browsertest.cc index 7da43c5b4..1a3ba71b 100644 --- a/chrome/browser/chromeos/login/existing_user_controller_browsertest.cc +++ b/chrome/browser/chromeos/login/existing_user_controller_browsertest.cc
@@ -853,7 +853,7 @@ ExistingUserControllerActiveDirectoryTest:: SetUpInProcessBrowserTestFixture(); em::ChromeDeviceSettingsProto device_policy; - device_policy.mutable_user_whitelist()->add_user_whitelist()->assign( + device_policy.mutable_user_allowlist()->add_user_allowlist()->assign( kUserWhitelist); FakeAuthPolicyClient::Get()->set_device_policy(device_policy); }
diff --git a/chrome/browser/chromeos/login/screens/gaia_screen.cc b/chrome/browser/chromeos/login/screens/gaia_screen.cc index 32abbcb..b30e4912 100644 --- a/chrome/browser/chromeos/login/screens/gaia_screen.cc +++ b/chrome/browser/chromeos/login/screens/gaia_screen.cc
@@ -74,7 +74,6 @@ void GaiaScreen::HideImpl() { view_->SetGaiaPath(GaiaView::GaiaPath::kDefault); - view_->LoadGaiaAsync(EmptyAccountId()); view_->Hide(); }
diff --git a/chrome/browser/chromeos/login/webview_login_browsertest.cc b/chrome/browser/chromeos/login/webview_login_browsertest.cc index 413484d..69f583a8 100644 --- a/chrome/browser/chromeos/login/webview_login_browsertest.cc +++ b/chrome/browser/chromeos/login/webview_login_browsertest.cc
@@ -242,7 +242,9 @@ class WebviewLoginTest : public OobeBaseTest { public: WebviewLoginTest() { - scoped_feature_list_.InitWithFeatures({features::kChildSpecificSignin}, {}); + // TODO(https://crbug.com/1121910) Migrate to the kChildSpecificSignin + // enabled. + scoped_feature_list_.InitWithFeatures({}, {features::kChildSpecificSignin}); } ~WebviewLoginTest() override = default; @@ -425,7 +427,16 @@ test::WaitForPrimaryUserSessionStart(); } -IN_PROC_BROWSER_TEST_F(WebviewLoginTest, BackToUserCreationScreen) { +class WebviewLoginTestWithChildSigninEnabled : public WebviewLoginTest { + public: + WebviewLoginTestWithChildSigninEnabled() { + scoped_feature_list_.Reset(); + scoped_feature_list_.InitWithFeatures({features::kChildSpecificSignin}, {}); + } +}; + +IN_PROC_BROWSER_TEST_F(WebviewLoginTestWithChildSigninEnabled, + BackToUserCreationScreen) { WaitForGaiaPageLoadAndPropertyUpdate(); // Start with identifier page. @@ -1331,13 +1342,7 @@ ExpectIdentifierPage(); } -class WebviewLoginTestWithChildSigninDisabled : public WebviewLoginTest { - public: - WebviewLoginTestWithChildSigninDisabled() { - scoped_feature_list_.Reset(); - scoped_feature_list_.InitWithFeatures({}, {features::kChildSpecificSignin}); - } -}; +using WebviewLoginTestWithChildSigninDisabled = WebviewLoginTest; IN_PROC_BROWSER_TEST_F(WebviewLoginTestWithChildSigninDisabled, ErrorScreenOnGaiaError) {
diff --git a/chrome/browser/chromeos/ownership/owner_settings_service_chromeos.cc b/chrome/browser/chromeos/ownership/owner_settings_service_chromeos.cc index 2d554e4a..6b68798e 100644 --- a/chrome/browser/chromeos/ownership/owner_settings_service_chromeos.cc +++ b/chrome/browser/chromeos/ownership/owner_settings_service_chromeos.cc
@@ -15,6 +15,7 @@ #include "base/bind_helpers.h" #include "base/callback.h" #include "base/command_line.h" +#include "base/logging.h" #include "base/memory/ptr_util.h" #include "base/stl_util.h" #include "base/task/post_task.h" @@ -47,6 +48,7 @@ namespace em = enterprise_management; using content::BrowserThread; +using google::protobuf::RepeatedPtrField; using ownership::OwnerKeyUtil; using ownership::PrivateKey; using ownership::PublicKey; @@ -436,9 +438,19 @@ if (!settings->has_allow_new_users()) settings->mutable_allow_new_users()->set_allow_new_users(true); - em::UserWhitelistProto* whitelist_proto = settings->mutable_user_whitelist(); - if (!base::Contains(whitelist_proto->user_whitelist(), user_id)) - whitelist_proto->add_user_whitelist(user_id); + // Only add the owner id to the whitelist if the allowlist doesn't exist. + // Otherwise, use the allowlist. + if (settings->has_user_whitelist() && !settings->has_user_allowlist()) { + em::UserWhitelistProto* whitelist_proto = + settings->mutable_user_whitelist(); + if (!base::Contains(whitelist_proto->user_whitelist(), user_id)) + whitelist_proto->add_user_whitelist(user_id); + } else { + em::UserAllowlistProto* allowlist_proto = + settings->mutable_user_allowlist(); + if (!base::Contains(allowlist_proto->user_allowlist(), user_id)) + allowlist_proto->add_user_allowlist(user_id); + } } // static @@ -568,16 +580,20 @@ else NOTREACHED(); } else if (path == kAccountsPrefUsers) { - em::UserWhitelistProto* whitelist_proto = settings.mutable_user_whitelist(); - whitelist_proto->clear_user_whitelist(); - const base::ListValue* users; - if (value.GetAsList(&users)) { - for (base::ListValue::const_iterator i = users->begin(); - i != users->end(); - ++i) { - std::string email; - if (i->GetAsString(&email)) - whitelist_proto->add_user_whitelist(email); + RepeatedPtrField<std::string>* list = nullptr; + // Only use the whitelist if the allowlist isn't being used. + if (settings.has_user_whitelist() && !settings.has_user_allowlist()) { + list = settings.mutable_user_whitelist()->mutable_user_whitelist(); + } else { + // Clear the whitelist when using the allowlist + settings.mutable_user_whitelist()->clear_user_whitelist(); + list = settings.mutable_user_allowlist()->mutable_user_allowlist(); + } + DCHECK(list); + list->Clear(); + for (const auto& user : value.GetList()) { + if (user.is_string()) { + list->Add(std::string(user.GetString())); } } } else if (path == kAccountsPrefEphemeralUsersEnabled) {
diff --git a/chrome/browser/chromeos/ownership/owner_settings_service_chromeos_unittest.cc b/chrome/browser/chromeos/ownership/owner_settings_service_chromeos_unittest.cc index b23009d9..7ad935c0 100644 --- a/chrome/browser/chromeos/ownership/owner_settings_service_chromeos_unittest.cc +++ b/chrome/browser/chromeos/ownership/owner_settings_service_chromeos_unittest.cc
@@ -29,6 +29,9 @@ namespace { +const char kUserAllowlist[] = "*@allowlist-domain.com"; +const char kOther[] = "other"; + void OnPrefChanged(const std::string& /* setting */) {} class PrefsChecker : public ownership::OwnerSettingsService::Observer { @@ -185,7 +188,7 @@ .release_channel()); } -TEST_F(OwnerSettingsServiceChromeOSTest, ForceWhitelist) { +TEST_F(OwnerSettingsServiceChromeOSTest, ForceAllowlist) { EXPECT_FALSE(FindInListValue(device_policy_->policy_data().username(), provider_->Get(kAccountsPrefUsers))); // Force a settings write. @@ -194,6 +197,97 @@ provider_->Get(kAccountsPrefUsers))); } +TEST_F(OwnerSettingsServiceChromeOSTest, AccountPrefUsersEmptyLists) { + std::vector<base::Value> list; + list.push_back(base::Value(kUserAllowlist)); + + EXPECT_EQ(0, + device_policy_->payload().user_allowlist().user_allowlist().size()); + EXPECT_EQ(0, + device_policy_->payload().user_whitelist().user_whitelist().size()); + + OwnerSettingsServiceChromeOS::UpdateDeviceSettings( + kAccountsPrefUsers, base::ListValue(list), device_policy_->payload()); + + EXPECT_EQ(1, + device_policy_->payload().user_allowlist().user_allowlist().size()); + EXPECT_EQ(kUserAllowlist, + device_policy_->payload().user_allowlist().user_allowlist(0)); + EXPECT_EQ(0, + device_policy_->payload().user_whitelist().user_whitelist().size()); +} + +TEST_F(OwnerSettingsServiceChromeOSTest, AccountPrefUsersAllowList) { + std::vector<base::Value> list; + list.push_back(base::Value(kUserAllowlist)); + + device_policy_->payload().mutable_user_allowlist()->add_user_allowlist( + kOther); + + EXPECT_EQ(1, + device_policy_->payload().user_allowlist().user_allowlist().size()); + EXPECT_EQ(0, + device_policy_->payload().user_whitelist().user_whitelist().size()); + + OwnerSettingsServiceChromeOS::UpdateDeviceSettings( + kAccountsPrefUsers, base::ListValue(list), device_policy_->payload()); + + EXPECT_EQ(1, + device_policy_->payload().user_allowlist().user_allowlist().size()); + EXPECT_EQ(kUserAllowlist, + device_policy_->payload().user_allowlist().user_allowlist(0)); + EXPECT_EQ(0, + device_policy_->payload().user_whitelist().user_whitelist().size()); +} + +TEST_F(OwnerSettingsServiceChromeOSTest, AccountPrefUsersWhiteList) { + std::vector<base::Value> list; + list.push_back(base::Value(kUserAllowlist)); + + device_policy_->payload().mutable_user_whitelist()->add_user_whitelist( + kOther); + + EXPECT_EQ(0, + device_policy_->payload().user_allowlist().user_allowlist().size()); + EXPECT_EQ(1, + device_policy_->payload().user_whitelist().user_whitelist().size()); + + OwnerSettingsServiceChromeOS::UpdateDeviceSettings( + kAccountsPrefUsers, base::ListValue(list), device_policy_->payload()); + + EXPECT_EQ(0, + device_policy_->payload().user_allowlist().user_allowlist().size()); + EXPECT_EQ(1, + device_policy_->payload().user_whitelist().user_whitelist().size()); + EXPECT_EQ(kUserAllowlist, + device_policy_->payload().user_whitelist().user_whitelist(0)); +} + +TEST_F(OwnerSettingsServiceChromeOSTest, AccountPrefUsersBothLists) { + std::vector<base::Value> list; + list.push_back(base::Value(kUserAllowlist)); + + device_policy_->payload().mutable_user_allowlist()->add_user_allowlist( + kOther); + device_policy_->payload().mutable_user_whitelist()->add_user_whitelist( + kOther); + + EXPECT_EQ(1, + device_policy_->payload().user_allowlist().user_allowlist().size()); + EXPECT_EQ(1, + device_policy_->payload().user_whitelist().user_whitelist().size()); + + OwnerSettingsServiceChromeOS::UpdateDeviceSettings( + kAccountsPrefUsers, base::ListValue(list), device_policy_->payload()); + + EXPECT_EQ(1, + device_policy_->payload().user_allowlist().user_allowlist().size()); + EXPECT_EQ(kUserAllowlist, + device_policy_->payload().user_allowlist().user_allowlist(0)); + EXPECT_EQ(0, + device_policy_->payload().user_whitelist().user_whitelist().size()); +} + class OwnerSettingsServiceChromeOSNoOwnerTest : public OwnerSettingsServiceChromeOSTest { public: @@ -220,7 +314,7 @@ ASSERT_FALSE(service_->SetBoolean(kAccountsPrefAllowGuest, false)); } -TEST_F(OwnerSettingsServiceChromeOSNoOwnerTest, TakeOwnershipForceWhitelist) { +TEST_F(OwnerSettingsServiceChromeOSNoOwnerTest, TakeOwnershipForceAllowlist) { EXPECT_FALSE(FindInListValue(device_policy_->policy_data().username(), provider_->Get(kAccountsPrefUsers))); owner_key_util_->SetPrivateKey(device_policy_->GetSigningKey());
diff --git a/chrome/browser/chromeos/phonehub/phone_hub_manager_factory.cc b/chrome/browser/chromeos/phonehub/phone_hub_manager_factory.cc index 6dcdaddc..63b34f0 100644 --- a/chrome/browser/chromeos/phonehub/phone_hub_manager_factory.cc +++ b/chrome/browser/chromeos/phonehub/phone_hub_manager_factory.cc
@@ -10,7 +10,7 @@ #include "chrome/browser/chromeos/profiles/profile_helper.h" #include "chrome/browser/profiles/profile.h" #include "chromeos/components/phonehub/notification_access_manager_impl.h" -#include "chromeos/components/phonehub/phone_hub_manager.h" +#include "chromeos/components/phonehub/phone_hub_manager_impl.h" #include "chromeos/constants/chromeos_features.h" #include "chromeos/services/multidevice_setup/public/cpp/prefs.h" #include "components/keyed_service/content/browser_context_dependency_manager.h" @@ -41,7 +41,7 @@ // static PhoneHubManager* PhoneHubManagerFactory::GetForProfile(Profile* profile) { - return static_cast<PhoneHubManager*>( + return static_cast<PhoneHubManagerImpl*>( PhoneHubManagerFactory::GetInstance()->GetServiceForBrowserContext( profile, /*create=*/true)); } @@ -75,7 +75,7 @@ if (IsProhibitedByPolicy(profile)) return nullptr; - PhoneHubManager* phone_hub_manager = new PhoneHubManager( + PhoneHubManagerImpl* phone_hub_manager = new PhoneHubManagerImpl( profile->GetPrefs(), device_sync::DeviceSyncClientFactory::GetForProfile(profile), multidevice_setup::MultiDeviceSetupClientFactory::GetForProfile(profile));
diff --git a/chrome/browser/chromeos/policy/active_directory_policy_manager.cc b/chrome/browser/chromeos/policy/active_directory_policy_manager.cc index 2b9c66a..ef9a225 100644 --- a/chrome/browser/chromeos/policy/active_directory_policy_manager.cc +++ b/chrome/browser/chromeos/policy/active_directory_policy_manager.cc
@@ -7,7 +7,6 @@ #include <string> #include <utility> -#include "base/command_line.h" #include "base/logging.h" #include "chrome/browser/browser_process.h" #include "chrome/browser/chromeos/authpolicy/authpolicy_helper.h" @@ -21,7 +20,6 @@ #include "components/policy/core/common/cloud/component_cloud_policy_store.h" #include "components/policy/core/common/policy_bundle.h" #include "components/policy/core/common/policy_namespace.h" -#include "components/policy/core/common/policy_switches.h" #include "components/policy/policy_constants.h" #include "services/network/public/cpp/shared_url_loader_factory.h" @@ -43,11 +41,6 @@ std::move(callback).Run(error == authpolicy::ERROR_NONE); } -bool IsComponentPolicyDisabled() { - return base::CommandLine::ForCurrentProcess()->HasSwitch( - switches::kDisableComponentCloudPolicy); -} - } // namespace ActiveDirectoryPolicyManager::~ActiveDirectoryPolicyManager() = default; @@ -97,7 +90,7 @@ PolicyDomain domain) const { if (domain == POLICY_DOMAIN_CHROME) return store_->is_initialized(); - if (domain == extension_policy_domain_ && !IsComponentPolicyDisabled()) { + if (domain == extension_policy_domain_) { return extension_policy_service_ && extension_policy_service_->policy() != nullptr; } @@ -177,9 +170,6 @@ login_manager::PolicyAccountType account_type, const AccountId& account_id, SchemaRegistry* schema_registry) { - if (IsComponentPolicyDisabled()) - return; - std::string cryptohome_id; if (!account_id.empty()) cryptohome_id = cryptohome::Identification(account_id).id();
diff --git a/chrome/browser/chromeos/policy/device_local_account_policy_service.cc b/chrome/browser/chromeos/policy/device_local_account_policy_service.cc index 08c13b2..6143255 100644 --- a/chrome/browser/chromeos/policy/device_local_account_policy_service.cc +++ b/chrome/browser/chromeos/policy/device_local_account_policy_service.cc
@@ -10,7 +10,6 @@ #include "base/bind.h" #include "base/bind_helpers.h" #include "base/check_op.h" -#include "base/command_line.h" #include "base/files/file_enumerator.h" #include "base/files/file_util.h" #include "base/optional.h" @@ -40,7 +39,6 @@ #include "components/policy/core/common/cloud/device_management_service.h" #include "components/policy/core/common/cloud/resource_cache.h" #include "components/policy/core/common/policy_namespace.h" -#include "components/policy/core/common/policy_switches.h" #include "components/policy/core/common/policy_types.h" #include "components/policy/policy_constants.h" #include "components/policy/proto/device_management_backend.pb.h" @@ -242,12 +240,6 @@ void DeviceLocalAccountPolicyBroker::CreateComponentCloudPolicyService( CloudPolicyClient* client) { - if (base::CommandLine::ForCurrentProcess()->HasSwitch( - switches::kDisableComponentCloudPolicy)) { - // Disabled via the command line. - return; - } - std::unique_ptr<ResourceCache> resource_cache(new ResourceCache( component_policy_cache_path_, resource_cache_task_runner_, /* max_cache_size */ base::nullopt));
diff --git a/chrome/browser/chromeos/policy/device_policy_decoder_chromeos.cc b/chrome/browser/chromeos/policy/device_policy_decoder_chromeos.cc index bc3340e..315a04f 100644 --- a/chrome/browser/chromeos/policy/device_policy_decoder_chromeos.cc +++ b/chrome/browser/chromeos/policy/device_policy_decoder_chromeos.cc
@@ -15,6 +15,7 @@ #include "base/optional.h" #include "base/stl_util.h" #include "base/strings/stringprintf.h" +#include "base/strings/utf_string_conversions.h" #include "base/syslog_logging.h" #include "base/values.h" #include "chrome/browser/chromeos/policy/device_local_account.h" @@ -35,6 +36,7 @@ #include "components/strings/grit/components_strings.h" #include "third_party/cros_system_api/dbus/service_constants.h" #include "third_party/re2/src/re2/re2.h" +#include "ui/base/l10n/l10n_util.h" using google::protobuf::RepeatedField; using google::protobuf::RepeatedPtrField; @@ -151,6 +153,14 @@ return std::make_unique<base::Value>(iter->second); } +void AddDeprecationWarning(const std::string& old_name, + const std::string& new_name, + PolicyMap* policies) { + policies->AddError(old_name, + l10n_util::GetStringFUTF8(IDS_POLICY_MIGRATED_OLD_POLICY, + base::UTF8ToUTF16(new_name))); +} + void DecodeLoginPolicies(const em::ChromeDeviceSettingsProto& policy, PolicyMap* policies) { if (policy.has_guest_mode_enabled()) { @@ -216,6 +226,15 @@ } } + if (policy.has_user_allowlist()) { + const em::UserAllowlistProto& container(policy.user_allowlist()); + base::Value allowlist(base::Value::Type::LIST); + for (const auto& entry : container.user_allowlist()) + allowlist.Append(entry); + policies->Set(key::kDeviceUserAllowlist, POLICY_LEVEL_MANDATORY, + POLICY_SCOPE_MACHINE, POLICY_SOURCE_CLOUD, + std::move(allowlist), nullptr); + } if (policy.has_user_whitelist()) { const em::UserWhitelistProto& container(policy.user_whitelist()); base::Value whitelist(base::Value::Type::LIST); @@ -224,6 +243,8 @@ policies->Set(key::kDeviceUserWhitelist, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_MACHINE, POLICY_SOURCE_CLOUD, std::move(whitelist), nullptr); + AddDeprecationWarning(key::kDeviceUserWhitelist, key::kDeviceUserAllowlist, + policies); } if (policy.has_ephemeral_users_enabled()) {
diff --git a/chrome/browser/chromeos/policy/device_policy_decoder_chromeos_unittest.cc b/chrome/browser/chromeos/policy/device_policy_decoder_chromeos_unittest.cc index f8ca6035..83c715d7 100644 --- a/chrome/browser/chromeos/policy/device_policy_decoder_chromeos_unittest.cc +++ b/chrome/browser/chromeos/policy/device_policy_decoder_chromeos_unittest.cc
@@ -3,8 +3,15 @@ // found in the LICENSE file. #include "chrome/browser/chromeos/policy/device_policy_decoder_chromeos.h" + +#include "base/bind.h" +#include "components/policy/core/common/policy_bundle.h" #include "components/policy/policy_constants.h" +#include "components/policy/proto/chrome_device_policy.pb.h" #include "testing/gtest/include/gtest/gtest.h" +#include "ui/base/l10n/l10n_util.h" + +namespace em = enterprise_management; namespace policy { @@ -35,6 +42,7 @@ "https://example.com/device_wallpaper.jpg"; constexpr char kWallpaperHashPropertyName[] = "hash"; constexpr char kWallpaperHashPropertyValue[] = "examplewallpaperhash"; +const char kUserWhitelist[] = "*@test-domain.com"; } // namespace @@ -112,4 +120,32 @@ EXPECT_TRUE(error.empty()); } +TEST_F(DevicePolicyDecoderChromeOSTest, UserWhitelistWarning) { + PolicyBundle bundle; + PolicyMap& policies = bundle.Get(PolicyNamespace(POLICY_DOMAIN_CHROME, "")); + + base::WeakPtr<ExternalDataManager> external_data_manager; + + em::ChromeDeviceSettingsProto device_policy; + device_policy.mutable_user_whitelist()->add_user_whitelist()->assign( + kUserWhitelist); + + DecodeDevicePolicy(device_policy, external_data_manager, &policies); + + EXPECT_TRUE(policies.GetValue(key::kDeviceUserWhitelist)); + + std::vector<base::Value> list; + list.emplace_back(base::Value(kUserWhitelist)); + EXPECT_EQ(base::ListValue(list), + *policies.GetValue(key::kDeviceUserWhitelist)); + + base::RepeatingCallback<base::string16(int)> l10nlookup = + base::BindRepeating(&l10n_util::GetStringUTF16); + + // Should have a deprecation warning. + EXPECT_FALSE(policies.Get(key::kDeviceUserWhitelist) + ->GetLocalizedErrors(l10nlookup) + .empty()); +} + } // namespace policy
diff --git a/chrome/browser/chromeos/printing/cups_print_job_notification.cc b/chrome/browser/chromeos/printing/cups_print_job_notification.cc index 3d63c326..a23a3ce 100644 --- a/chrome/browser/chromeos/printing/cups_print_job_notification.cc +++ b/chrome/browser/chromeos/printing/cups_print_job_notification.cc
@@ -133,8 +133,13 @@ const base::Optional<base::string16>& reply) { if (!button_index) { if (base::FeatureList::IsEnabled(features::kPrintJobManagementApp)) { + // If we are in guest mode then we need to use the OffTheRecord profile to + // open the Print Manageament App. There is a check in Browser::Browser + // that only OffTheRecord profiles can open browser windows in guest mode. chrome::ShowPrintManagementApp( - profile_, PrintManagementAppEntryPoint::kNotification); + profile_->IsGuestSession() ? profile_->GetPrimaryOTRProfile() + : profile_, + PrintManagementAppEntryPoint::kNotification); } return; }
diff --git a/chrome/browser/chromeos/printing/usb_printer_notification.cc b/chrome/browser/chromeos/printing/usb_printer_notification.cc index 9bec3bc..daa7454 100644 --- a/chrome/browser/chromeos/printing/usb_printer_notification.cc +++ b/chrome/browser/chromeos/printing/usb_printer_notification.cc
@@ -81,8 +81,13 @@ // Body of notification clicked. visible_ = false; if (type_ == Type::kConfigurationRequired) { + // If we are in guest mode then we need to use the OffTheRecord profile to + // open the Settings page. There is a check in Browser::Browser that only + // OffTheRecord profiles can open browser windows in guest mode. chrome::SettingsWindowManager::GetInstance()->ShowOSSettings( - profile_, chromeos::settings::mojom::kPrintingDetailsSubpagePath); + profile_->IsGuestSession() ? profile_->GetPrimaryOTRProfile() + : profile_, + chromeos::settings::mojom::kPrintingDetailsSubpagePath); } return; }
diff --git a/chrome/browser/chromeos/settings/cros_settings_unittest.cc b/chrome/browser/chromeos/settings/cros_settings_unittest.cc index 121fbb5..77326026 100644 --- a/chrome/browser/chromeos/settings/cros_settings_unittest.cc +++ b/chrome/browser/chromeos/settings/cros_settings_unittest.cc
@@ -126,7 +126,7 @@ } } - bool IsWhitelisted(const std::string& username) { + bool IsAllowlisted(const std::string& username) { return CrosSettings::Get()->FindEmailInList(kAccountsPrefUsers, username, NULL); } @@ -157,22 +157,22 @@ ExpectPref(kAccountsPrefEphemeralUsersEnabled, base::Value(true)); } -TEST_F(CrosSettingsTest, SetWhitelist) { - // Set a non-empty whitelist. - device_policy_.payload().mutable_user_whitelist()->add_user_whitelist(kOwner); +TEST_F(CrosSettingsTest, SetAllowlist) { + // Set a non-empty allowlist. + device_policy_.payload().mutable_user_allowlist()->add_user_allowlist(kOwner); // Clear allow_new_users, so it is not set to true or false. device_policy_.payload().mutable_allow_new_users()->clear_allow_new_users(); StoreDevicePolicy(); - base::ListValue whitelist; - whitelist.AppendString(kOwner); - ExpectPref(kAccountsPrefUsers, whitelist); - // When a non-empty whitelist is set, allow_new_user defaults to false. + base::ListValue allowlist; + allowlist.AppendString(kOwner); + ExpectPref(kAccountsPrefUsers, allowlist); + // When a non-empty allowlist is set, allow_new_user defaults to false. ExpectPref(kAccountsPrefAllowNewUser, base::Value(false)); } -TEST_F(CrosSettingsTest, SetWhitelistWithListOps) { +TEST_F(CrosSettingsTest, SetAllowlistWithListOps) { // Clear allow_new_users, so it is not set to true or false. device_policy_.payload().mutable_allow_new_users()->clear_allow_new_users(); StoreDevicePolicy(); @@ -188,14 +188,14 @@ modified_list.AppendString(kOwner); modified_list.AppendString(kUser1); - // Add some user to the whitelist. + // Add some user to the allowlist. oss->AppendToList(kAccountsPrefUsers, base::Value(kUser1)); ExpectPref(kAccountsPrefUsers, modified_list); - // When a non-empty whitelist is set, allow_new_user defaults to false. + // When a non-empty allowlist is set, allow_new_user defaults to false. ExpectPref(kAccountsPrefAllowNewUser, base::Value(false)); } -TEST_F(CrosSettingsTest, SetWhitelistWithListOps2) { +TEST_F(CrosSettingsTest, SetAllowlistWithListOps2) { // Clear allow_new_users, so it is not set to true or false. device_policy_.payload().mutable_allow_new_users()->clear_allow_new_users(); StoreDevicePolicy(); @@ -213,83 +213,83 @@ modified_list.AppendString(kOwner); modified_list.AppendString(kUser1); - // Remove some user from the whitelist. + // Remove some user from the allowlist. oss->RemoveFromList(kAccountsPrefUsers, base::Value(kUser2)); ExpectPref(kAccountsPrefUsers, modified_list); - // When a non-empty whitelist is set, allow_new_user defaults to false. + // When a non-empty allowlist is set, allow_new_user defaults to false. ExpectPref(kAccountsPrefAllowNewUser, base::Value(false)); } -// The following tests check that the whitelist / allow_new_users logic in +// The following tests check that the allowlist / allow_new_users logic in // DeviceSettings:Provider::DecodeLoginPolicies still works properly at this // level, the CrosSettings API. // They do not use OwnerSettingsService since having a local // OwnerSettingsService constrains the policies in certain ways - see // OwnerSettingsServiceChromeOS::FixupLocalOwnerPolicy. -TEST_F(CrosSettingsTest, SetEmptyWhitelist) { - // Set an empty whitelist. - device_policy_.payload().mutable_user_whitelist()->clear_user_whitelist(); +TEST_F(CrosSettingsTest, SetEmptyAllowlist) { + // Set an empty allowlist. + device_policy_.payload().mutable_user_allowlist()->clear_user_allowlist(); // Clear allow_new_users, so it is not set to true or false. device_policy_.payload().mutable_allow_new_users()->clear_allow_new_users(); StoreDevicePolicy(); ExpectPref(kAccountsPrefUsers, base::ListValue()); - // When an empty whitelist is set, allow_new_user defaults to true. + // When an empty allowlist is set, allow_new_user defaults to true. ExpectPref(kAccountsPrefAllowNewUser, base::Value(true)); } -TEST_F(CrosSettingsTest, SetEmptyWhitelistAndDisallowNewUsers) { - // Set an empty whitelist. - device_policy_.payload().mutable_user_whitelist()->clear_user_whitelist(); +TEST_F(CrosSettingsTest, SetEmptyAllowlistAndDisallowNewUsers) { + // Set an empty allowlist. + device_policy_.payload().mutable_user_allowlist()->clear_user_allowlist(); // Set allow_new_users to false. device_policy_.payload().mutable_allow_new_users()->set_allow_new_users( false); StoreDevicePolicy(); - // Expect the same - an empty whitelist and no new users allowed. + // Expect the same - an empty allowlist and no new users allowed. ExpectPref(kAccountsPrefUsers, base::ListValue()); ExpectPref(kAccountsPrefAllowNewUser, base::Value(false)); } -TEST_F(CrosSettingsTest, SetWhitelistAndDisallowNewUsers) { - // Set a non-empty whitelist. - device_policy_.payload().mutable_user_whitelist()->add_user_whitelist(kOwner); +TEST_F(CrosSettingsTest, SetAllowlistAndDisallowNewUsers) { + // Set a non-empty allowlist. + device_policy_.payload().mutable_user_allowlist()->add_user_allowlist(kOwner); // Set allow_new_users to false. device_policy_.payload().mutable_allow_new_users()->set_allow_new_users( false); StoreDevicePolicy(); - // Expect the same - a non-empty whitelist and no new users allowed. - base::ListValue whitelist; - whitelist.AppendString(kOwner); - ExpectPref(kAccountsPrefUsers, whitelist); + // Expect the same - a non-empty allowlist and no new users allowed. + base::ListValue allowlist; + allowlist.AppendString(kOwner); + ExpectPref(kAccountsPrefUsers, allowlist); ExpectPref(kAccountsPrefAllowNewUser, base::Value(false)); } -TEST_F(CrosSettingsTest, SetEmptyWhitelistAndAllowNewUsers) { - // Set an empty whitelist. - device_policy_.payload().mutable_user_whitelist()->clear_user_whitelist(); +TEST_F(CrosSettingsTest, SetEmptyAllowlistAndAllowNewUsers) { + // Set an empty allowlist. + device_policy_.payload().mutable_user_allowlist()->clear_user_allowlist(); // Set allow_new_users to true. device_policy_.payload().mutable_allow_new_users()->set_allow_new_users(true); StoreDevicePolicy(); - // Expect the same - an empty whitelist and new users allowed. + // Expect the same - an empty allowlist and new users allowed. ExpectPref(kAccountsPrefUsers, base::ListValue()); ExpectPref(kAccountsPrefAllowNewUser, base::Value(true)); } -TEST_F(CrosSettingsTest, SetWhitelistAndAllowNewUsers) { - // Set a non-empty whitelist. - device_policy_.payload().mutable_user_whitelist()->add_user_whitelist(kOwner); +TEST_F(CrosSettingsTest, SetAllowlistAndAllowNewUsers) { + // Set a non-empty allowlist. + device_policy_.payload().mutable_user_allowlist()->add_user_allowlist(kOwner); // Set allow_new_users to true. device_policy_.payload().mutable_allow_new_users()->set_allow_new_users(true); StoreDevicePolicy(); - // Expect the same - a non-empty whitelist and new users allowed. - base::ListValue whitelist; - whitelist.AppendString(kOwner); - ExpectPref(kAccountsPrefUsers, whitelist); + // Expect the same - a non-empty allowlist and new users allowed. + base::ListValue allowlist; + allowlist.AppendString(kOwner); + ExpectPref(kAccountsPrefUsers, allowlist); ExpectPref(kAccountsPrefAllowNewUser, base::Value(true)); } @@ -305,25 +305,25 @@ oss->Set(kAccountsPrefUsers, list); task_environment_.RunUntilIdle(); - EXPECT_TRUE(IsWhitelisted("user@example.com")); - EXPECT_FALSE(IsWhitelisted("us.er@example.com")); - EXPECT_TRUE(IsWhitelisted("USER@example.com")); - EXPECT_FALSE(IsWhitelisted("user")); + EXPECT_TRUE(IsAllowlisted("user@example.com")); + EXPECT_FALSE(IsAllowlisted("us.er@example.com")); + EXPECT_TRUE(IsAllowlisted("USER@example.com")); + EXPECT_FALSE(IsAllowlisted("user")); - EXPECT_TRUE(IsWhitelisted("nodomain")); - EXPECT_TRUE(IsWhitelisted("nodomain@gmail.com")); - EXPECT_TRUE(IsWhitelisted("no.domain@gmail.com")); - EXPECT_TRUE(IsWhitelisted("NO.DOMAIN")); + EXPECT_TRUE(IsAllowlisted("nodomain")); + EXPECT_TRUE(IsAllowlisted("nodomain@gmail.com")); + EXPECT_TRUE(IsAllowlisted("no.domain@gmail.com")); + EXPECT_TRUE(IsAllowlisted("NO.DOMAIN")); - EXPECT_TRUE(IsWhitelisted("with.dots@gmail.com")); - EXPECT_TRUE(IsWhitelisted("withdots@gmail.com")); - EXPECT_TRUE(IsWhitelisted("WITH.DOTS@gmail.com")); - EXPECT_TRUE(IsWhitelisted("WITHDOTS")); + EXPECT_TRUE(IsAllowlisted("with.dots@gmail.com")); + EXPECT_TRUE(IsAllowlisted("withdots@gmail.com")); + EXPECT_TRUE(IsAllowlisted("WITH.DOTS@gmail.com")); + EXPECT_TRUE(IsAllowlisted("WITHDOTS")); - EXPECT_TRUE(IsWhitelisted("Upper@example.com")); - EXPECT_FALSE(IsWhitelisted("U.pper@example.com")); - EXPECT_FALSE(IsWhitelisted("Upper")); - EXPECT_TRUE(IsWhitelisted("upper@example.com")); + EXPECT_TRUE(IsAllowlisted("Upper@example.com")); + EXPECT_FALSE(IsAllowlisted("U.pper@example.com")); + EXPECT_FALSE(IsAllowlisted("Upper")); + EXPECT_TRUE(IsAllowlisted("upper@example.com")); } TEST_F(CrosSettingsTest, FindEmailInListWildcard) {
diff --git a/chrome/browser/chromeos/settings/device_settings_provider.cc b/chrome/browser/chromeos/settings/device_settings_provider.cc index cc8b556..9c928df5 100644 --- a/chrome/browser/chromeos/settings/device_settings_provider.cc +++ b/chrome/browser/chromeos/settings/device_settings_provider.cc
@@ -200,15 +200,17 @@ // New users allowed, user whitelist ignored. new_values_cache->SetBoolean(kAccountsPrefAllowNewUser, true); } else { - // New users not allowed, enforce user whitelist if present. - new_values_cache->SetBoolean(kAccountsPrefAllowNewUser, - !policy.has_user_whitelist()); + // New users not allowed, enforce user allowlist if present. + new_values_cache->SetBoolean( + kAccountsPrefAllowNewUser, + !policy.has_user_whitelist() && !policy.has_user_allowlist()); } } else { // No configured allow-new-users value, enforce whitelist if non-empty. new_values_cache->SetBoolean( kAccountsPrefAllowNewUser, - policy.user_whitelist().user_whitelist_size() == 0); + policy.user_whitelist().user_whitelist_size() == 0 && + policy.user_allowlist().user_allowlist_size() == 0); } new_values_cache->SetBoolean( @@ -243,12 +245,22 @@ policy.ephemeral_users_enabled().ephemeral_users_enabled()); std::vector<base::Value> list; - const em::UserWhitelistProto& whitelist_proto = policy.user_whitelist(); - const RepeatedPtrField<std::string>& whitelist = - whitelist_proto.user_whitelist(); - for (const std::string& value : whitelist) { - list.push_back(base::Value(value)); + const em::UserAllowlistProto& allowlist_proto = policy.user_allowlist(); + if (policy.user_allowlist().user_allowlist_size() > 0) { + const RepeatedPtrField<std::string>& allowlist = + allowlist_proto.user_allowlist(); + for (const std::string& value : allowlist) { + list.push_back(base::Value(value)); + } + } else { + const em::UserWhitelistProto& whitelist_proto = policy.user_whitelist(); + const RepeatedPtrField<std::string>& whitelist = + whitelist_proto.user_whitelist(); + for (const std::string& value : whitelist) { + list.push_back(base::Value(value)); + } } + new_values_cache->SetValue(kAccountsPrefUsers, base::Value(std::move(list))); std::vector<base::Value> account_list;
diff --git a/chrome/browser/chromeos/settings/session_manager_operation_unittest.cc b/chrome/browser/chromeos/settings/session_manager_operation_unittest.cc index 90ba6cc..84281c2 100644 --- a/chrome/browser/chromeos/settings/session_manager_operation_unittest.cc +++ b/chrome/browser/chromeos/settings/session_manager_operation_unittest.cc
@@ -78,7 +78,7 @@ } void SetUp() override { - policy_.payload().mutable_user_whitelist()->add_user_whitelist( + policy_.payload().mutable_user_allowlist()->add_user_allowlist( "fake-whitelist"); policy_.Build();
diff --git a/chrome/browser/chromeos/usb/cros_usb_detector.cc b/chrome/browser/chromeos/usb/cros_usb_detector.cc index a536c58..da28b4b 100644 --- a/chrome/browser/chromeos/usb/cros_usb_detector.cc +++ b/chrome/browser/chromeos/usb/cros_usb_detector.cc
@@ -465,8 +465,11 @@ const std::string& vm_name) { // Reattach shared devices when the VM becomes available. for (auto& device : usb_devices_) { - for (const auto& sharing_pair : device.vm_sharing_info) { + for (auto& sharing_pair : device.vm_sharing_info) { if (sharing_pair.second.shared && sharing_pair.first == vm_name) { + VLOG(1) << "Connecting " << device.label << " to " << vm_name; + // Clear any older guest_port setting. + sharing_pair.second.guest_port = base::nullopt; AttachUsbDeviceToVm(vm_name, device.guid, base::DoNothing()); } } @@ -572,6 +575,7 @@ if (device.guid == device_info->guid) { const auto it = device.vm_sharing_info.find(vm_name); if (it != device.vm_sharing_info.end() && it->second.guest_port) { + LOG(ERROR) << "Device " << device.label << " is already shared"; // The device is already attached. std::move(callback).Run(/*success=*/true); return;
diff --git a/chrome/browser/chromeos/usb/cros_usb_detector_unittest.cc b/chrome/browser/chromeos/usb/cros_usb_detector_unittest.cc index 0d25d267..bf9ad3e 100644 --- a/chrome/browser/chromeos/usb/cros_usb_detector_unittest.cc +++ b/chrome/browser/chromeos/usb/cros_usb_detector_unittest.cc
@@ -758,8 +758,8 @@ cros_usb_detector_->ConnectSharedDevicesOnVmStartup( crostini::kCrostiniDefaultVmName); base::RunLoop().RunUntilIdle(); - // Attaching an already attached device is a no-op currently. - EXPECT_EQ(0, usb_device_observer_.notify_count()); + // On VM startup, we have to re-attach devices. + EXPECT_EQ(1, usb_device_observer_.notify_count()); EXPECT_TRUE(IsSharedWithCrostini(GetSingleDeviceInfo())); }
diff --git a/chrome/browser/flag-metadata.json b/chrome/browser/flag-metadata.json index 7f87b19e..e8e52106 100644 --- a/chrome/browser/flag-metadata.json +++ b/chrome/browser/flag-metadata.json
@@ -774,6 +774,11 @@ "expiry_milestone": 88 }, { + "name": "delay-competing-low-priority-requests", + "owners": [ "dom", "chrome-loading@google.com" ], + "expiry_milestone": 90 + }, + { "name": "desktop-version-default", "owners": [ "gambard", "bling-flags" ], "expiry_milestone": 87 @@ -4360,9 +4365,14 @@ "expiry_milestone": 76 }, { - "name": "turn-off-streaming-media-caching", - "owners": [ "shawnpi@microsoft.com" ], - "expiry_milestone": 86 + "name": "turn-off-streaming-media-caching-always", + "owners": [ "shawnpi@microsoft.com", "cassew@google.com" ], + "expiry_milestone": 87 + }, + { + "name": "turn-off-streaming-media-caching-on-battery", + "owners": [ "shawnpi@microsoft.com", "cassew@google.com" ], + "expiry_milestone": 87 }, { "name": "ui-disable-partial-swap", @@ -4518,6 +4528,11 @@ "expiry_milestone": 90 }, { + "name": "videotoolbox-vp9-decoding", + "owners": [ "dalecurtis", "videostack-eng" ], + "expiry_milestone": 90 + }, + { "name": "wallet-service-use-sandbox", "owners": [ "jsaul@google.com", "payments-autofill-team@google.com" ], // This flag is used by testing teams to run Google Payments calls against
diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descriptions.cc index 8a158ccd..8238816 100644 --- a/chrome/browser/flag_descriptions.cc +++ b/chrome/browser/flag_descriptions.cc
@@ -1986,6 +1986,12 @@ const char kDelayAsyncScriptExecutionDescription[] = "The execution of async scripts will be delayed."; +const char kDelayCompetingLowPriorityRequestsName[] = + "Delay Competing Low Priority Requests"; +const char kDelayCompetingLowPriorityRequestsDescription[] = + "Low priority requests will be delayed if they would otherwise compete " + "with a high priority request."; + const char kPrefetchPrivacyChangesName[] = "Prefetch request properties are updated to be privacy-preserving"; const char kPrefetchPrivacyChangesDescription[] = @@ -2379,9 +2385,15 @@ "to do stereo to surround expansion if supported. May expose third party " "driver bugs, use with caution."; -const char kTurnOffStreamingMediaCachingName[] = +const char kTurnOffStreamingMediaCachingOnBatteryName[] = + "Turn off caching of streaming media to disk while on battery power."; +const char kTurnOffStreamingMediaCachingOnBatteryDescription[] = + "Reduces disk activity during media playback, which can result in " + "power savings."; + +const char kTurnOffStreamingMediaCachingAlwaysName[] = "Turn off caching of streaming media to disk."; -const char kTurnOffStreamingMediaCachingDescription[] = +const char kTurnOffStreamingMediaCachingAlwaysDescription[] = "Reduces disk activity during media playback, which can result in " "power savings."; @@ -3521,6 +3533,10 @@ "Use Metal instead of OpenGL for rasterization (if out-of-process " "rasterization is enabled) and display (if the Skia renderer is enabled)"; +const char kVideoToolboxVp9DecodingName[] = "VideoToolbox VP9 Decoding"; +const char kVideoToolboxVp9DecodingDescription[] = + "Controls usage of VideoToolbox for hardware decoding of VP9 video."; + #endif // Chrome OS -------------------------------------------------------------------
diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptions.h index aaa27d2..2e1b937 100644 --- a/chrome/browser/flag_descriptions.h +++ b/chrome/browser/flag_descriptions.h
@@ -1152,6 +1152,9 @@ extern const char kDelayAsyncScriptExecutionName[]; extern const char kDelayAsyncScriptExecutionDescription[]; +extern const char kDelayCompetingLowPriorityRequestsName[]; +extern const char kDelayCompetingLowPriorityRequestsDescription[]; + extern const char kPrefetchPrivacyChangesName[]; extern const char kPrefetchPrivacyChangesDescription[]; @@ -1373,8 +1376,11 @@ extern const char kTrySupportedChannelLayoutsName[]; extern const char kTrySupportedChannelLayoutsDescription[]; -extern const char kTurnOffStreamingMediaCachingName[]; -extern const char kTurnOffStreamingMediaCachingDescription[]; +extern const char kTurnOffStreamingMediaCachingOnBatteryName[]; +extern const char kTurnOffStreamingMediaCachingOnBatteryDescription[]; + +extern const char kTurnOffStreamingMediaCachingAlwaysName[]; +extern const char kTurnOffStreamingMediaCachingAlwaysDescription[]; extern const char kUnsafeWebGPUName[]; extern const char kUnsafeWebGPUDescription[]; @@ -2027,6 +2033,9 @@ extern const char kMetalName[]; extern const char kMetalDescription[]; +extern const char kVideoToolboxVp9DecodingName[]; +extern const char kVideoToolboxVp9DecodingDescription[]; + #endif // defined(OS_MAC) // Chrome OS ------------------------------------------------------------------
diff --git a/chrome/browser/lookalikes/lookalike_url_navigation_throttle_browsertest.cc b/chrome/browser/lookalikes/lookalike_url_navigation_throttle_browsertest.cc index b5c19ac..626d26a 100644 --- a/chrome/browser/lookalikes/lookalike_url_navigation_throttle_browsertest.cc +++ b/chrome/browser/lookalikes/lookalike_url_navigation_throttle_browsertest.cc
@@ -9,6 +9,7 @@ #include "base/test/metrics/histogram_tester.h" #include "base/test/scoped_feature_list.h" #include "base/test/simple_test_clock.h" +#include "build/build_config.h" #include "chrome/browser/engagement/site_engagement_score.h" #include "chrome/browser/engagement/site_engagement_service.h" #include "chrome/browser/history/history_service_factory.h" @@ -768,12 +769,19 @@ custom_test_server.GetURL("googlé.com", "/")); } +// TODO(https://crbug.com/1122078): Enable test when MacOS flake is fixed. +#if defined(OS_MAC) +#define MAYBE_Idn_SiteEngagement_Match DISABLED_Idn_SiteEngagement_Match +#else +#define MAYBE_Idn_SiteEngagement_Match Idn_SiteEngagement_Match +#endif + // Navigate to a domain whose visual representation looks like a domain with a // site engagement score above a certain threshold. This should record metrics. // It should also show lookalike warning interstitial if configured via // a feature param. IN_PROC_BROWSER_TEST_P(LookalikeUrlNavigationThrottleBrowserTest, - Idn_SiteEngagement_Match) { + MAYBE_Idn_SiteEngagement_Match) { const char* const kEngagedSites[] = { "http://site1.com", "http://www.site2.com", "http://sité3.com", "http://www.sité4.com"};
diff --git a/chrome/browser/media/webrtc/webrtc_event_log_uploader.cc b/chrome/browser/media/webrtc/webrtc_event_log_uploader.cc index 6327f0af..a0e329f 100644 --- a/chrome/browser/media/webrtc/webrtc_event_log_uploader.cc +++ b/chrome/browser/media/webrtc/webrtc_event_log_uploader.cc
@@ -36,12 +36,12 @@ const char kProduct[] = "Chrome"; #elif defined(OS_MAC) const char kProduct[] = "Chrome_Mac"; +#elif defined(OS_CHROMEOS) +const char kProduct[] = "Chrome_ChromeOS"; #elif defined(OS_LINUX) const char kProduct[] = "Chrome_Linux"; #elif defined(OS_ANDROID) const char kProduct[] = "Chrome_Android"; -#elif defined(OS_CHROMEOS) -const char kProduct[] = "Chrome_ChromeOS"; #else #error Platform not supported. #endif
diff --git a/chrome/browser/metrics/chrome_metrics_extensions_helper_unittest.cc b/chrome/browser/metrics/chrome_metrics_extensions_helper_unittest.cc new file mode 100644 index 0000000..37faa5e --- /dev/null +++ b/chrome/browser/metrics/chrome_metrics_extensions_helper_unittest.cc
@@ -0,0 +1,47 @@ +// Copyright 2020 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "chrome/browser/metrics/chrome_metrics_extensions_helper.h" + +#include "chrome/test/base/testing_browser_process.h" +#include "chrome/test/base/testing_profile_manager.h" +#include "content/public/browser/browser_context.h" +#include "content/public/browser/render_process_host.h" +#include "content/public/browser/site_instance.h" +#include "content/public/test/browser_task_environment.h" +#include "content/public/test/mock_render_process_host.h" +#include "extensions/buildflags/buildflags.h" +#include "testing/gtest/include/gtest/gtest.h" + +#if BUILDFLAG(ENABLE_EXTENSIONS) +#include "extensions/browser/process_map.h" +#endif + +TEST(ChromeMetricsExtensionsHelperTest, Basic) { + content::BrowserTaskEnvironment task_environment; + TestingProfileManager profile_manager(TestingBrowserProcess::GetGlobal()); + ASSERT_TRUE(profile_manager.SetUp()); + // Owned by |profile_manager|. + TestingProfile* profile = + profile_manager.CreateTestingProfile("StabilityTestProfile"); + std::unique_ptr<content::MockRenderProcessHostFactory> rph_factory = + std::make_unique<content::MockRenderProcessHostFactory>(); + scoped_refptr<content::SiteInstance> site_instance( + content::SiteInstance::Create(profile)); + // Owned by rph_factory. + content::RenderProcessHost* host = + rph_factory->CreateRenderProcessHost(profile, site_instance.get()); + ChromeMetricsExtensionsHelper extensions_helper; + + // |host| is not an extensions host. + EXPECT_FALSE(extensions_helper.IsExtensionProcess(host)); + +#if BUILDFLAG(ENABLE_EXTENSIONS) + // Tag |host| so that it's an extensions host. + extensions::ProcessMap::Get(profile)->Insert("1", host->GetID(), + site_instance->GetId()); + EXPECT_TRUE(extensions_helper.IsExtensionProcess(host)); +#endif + profile_manager.DeleteAllTestingProfiles(); +}
diff --git a/chrome/browser/metrics/extensions_metrics_provider.cc b/chrome/browser/metrics/extensions_metrics_provider.cc index ad892498..110ce2db 100644 --- a/chrome/browser/metrics/extensions_metrics_provider.cc +++ b/chrome/browser/metrics/extensions_metrics_provider.cc
@@ -382,7 +382,7 @@ return std::unique_ptr<extensions::ExtensionSet>(); } -uint64_t ExtensionsMetricsProvider::GetClientID() { +uint64_t ExtensionsMetricsProvider::GetClientID() const { // TODO(blundell): Create a MetricsLog::ClientIDAsInt() API and call it // here as well as in MetricsLog's population of the client_id field of // the uma_proto.
diff --git a/chrome/browser/metrics/extensions_metrics_provider.h b/chrome/browser/metrics/extensions_metrics_provider.h index 1850cb8..aafc299b 100644 --- a/chrome/browser/metrics/extensions_metrics_provider.h +++ b/chrome/browser/metrics/extensions_metrics_provider.h
@@ -11,7 +11,6 @@ #include <string> #include <vector> -#include "base/macros.h" #include "base/time/time.h" #include "chrome/browser/metrics/cached_metrics_profile.h" #include "components/metrics/metrics_provider.h" @@ -39,6 +38,9 @@ // weak pointer. explicit ExtensionsMetricsProvider( metrics::MetricsStateManager* metrics_state_manager); + ExtensionsMetricsProvider(const ExtensionsMetricsProvider&) = delete; + ExtensionsMetricsProvider& operator=(const ExtensionsMetricsProvider&) = + delete; ~ExtensionsMetricsProvider() override; // metrics::MetricsProvider: @@ -61,7 +63,7 @@ Profile* profile); // Retrieves the client ID. - virtual uint64_t GetClientID(); + virtual uint64_t GetClientID() const; // Hashes the extension extension ID using the provided client key (which // must be less than kExtensionListClientKeys) and to produce an output value @@ -89,8 +91,6 @@ // The time of our last recorded sample. base::Time last_sample_time_; - - DISALLOW_COPY_AND_ASSIGN(ExtensionsMetricsProvider); }; #endif // CHROME_BROWSER_METRICS_EXTENSIONS_METRICS_PROVIDER_H_
diff --git a/chrome/browser/metrics/extensions_metrics_provider_unittest.cc b/chrome/browser/metrics/extensions_metrics_provider_unittest.cc index 67885e94..8f80c7ef 100644 --- a/chrome/browser/metrics/extensions_metrics_provider_unittest.cc +++ b/chrome/browser/metrics/extensions_metrics_provider_unittest.cc
@@ -98,7 +98,7 @@ // Override GetClientID() to return a specific value on which test // expectations are based. - uint64_t GetClientID() override { return 0x3f1bfee9; } + uint64_t GetClientID() const override { return 0x3f1bfee9; } }; } // namespace
diff --git a/chrome/browser/nearby_sharing/DEPS b/chrome/browser/nearby_sharing/DEPS new file mode 100644 index 0000000..e381c91 --- /dev/null +++ b/chrome/browser/nearby_sharing/DEPS
@@ -0,0 +1,5 @@ +specific_include_rules = { + "nearby_sharing_service_impl_unittest.cc": [ + "+chrome/services/sharing/nearby/decoder/advertisement_decoder.h", + ] +}
diff --git a/chrome/browser/nearby_sharing/certificates/BUILD.gn b/chrome/browser/nearby_sharing/certificates/BUILD.gn index e934a25..1895031 100644 --- a/chrome/browser/nearby_sharing/certificates/BUILD.gn +++ b/chrome/browser/nearby_sharing/certificates/BUILD.gn
@@ -33,6 +33,7 @@ "//chrome/browser/nearby_sharing/logging", "//chrome/browser/nearby_sharing/proto", "//chrome/browser/nearby_sharing/scheduling", + "//chrome/browser/ui/webui/nearby_share/public/mojom", "//components/leveldb_proto", "//components/prefs", "//crypto",
diff --git a/chrome/browser/nearby_sharing/certificates/nearby_share_visibility.h b/chrome/browser/nearby_sharing/certificates/nearby_share_visibility.h index 009fc1d..5f7a4b7 100644 --- a/chrome/browser/nearby_sharing/certificates/nearby_share_visibility.h +++ b/chrome/browser/nearby_sharing/certificates/nearby_share_visibility.h
@@ -5,12 +5,8 @@ #ifndef CHROME_BROWSER_NEARBY_SHARING_CERTIFICATES_NEARBY_SHARE_VISIBILITY_H_ #define CHROME_BROWSER_NEARBY_SHARING_CERTIFICATES_NEARBY_SHARE_VISIBILITY_H_ -// Specifies which contacts can receive the public certificate corresponding -// to the local device's private certificate. -enum class NearbyShareVisibility { - kNoOne = 0, // Integer values persisted in prefs; do not renumber. - kAllContacts = 1, - kSelectedContacts = 2 -}; +#include "chrome/browser/ui/webui/nearby_share/public/mojom/nearby_share_settings.mojom.h" + +using NearbyShareVisibility = nearby_share::mojom::Visibility; #endif // CHROME_BROWSER_NEARBY_SHARING_CERTIFICATES_NEARBY_SHARE_VISIBILITY_H_
diff --git a/chrome/browser/nearby_sharing/fake_nearby_connections_manager.cc b/chrome/browser/nearby_sharing/fake_nearby_connections_manager.cc index b1d1b4d..3697c73 100644 --- a/chrome/browser/nearby_sharing/fake_nearby_connections_manager.cc +++ b/chrome/browser/nearby_sharing/fake_nearby_connections_manager.cc
@@ -24,6 +24,7 @@ advertising_listener_ = listener; advertising_data_usage_ = data_usage; advertising_power_level_ = power_level; + adverting_endpoint_info_ = std::move(endpoint_info); } void FakeNearbyConnectionsManager::StopAdvertising() { @@ -32,6 +33,7 @@ advertising_listener_ = nullptr; advertising_data_usage_ = DataUsage::kUnknown; advertising_power_level_ = PowerLevel::kUnknown; + adverting_endpoint_info_.reset(); } void FakeNearbyConnectionsManager::StartDiscovery( @@ -57,12 +59,13 @@ NearbyConnectionCallback callback) { DCHECK(!is_shutdown()); connected_data_usage_ = data_usage; + connection_endpoint_info_ = std::move(endpoint_info); std::move(callback).Run(connection_); } void FakeNearbyConnectionsManager::Disconnect(const std::string& endpoint_id) { DCHECK(!is_shutdown()); - // TODO(alexchau): Implement. + connection_endpoint_info_.reset(); } void FakeNearbyConnectionsManager::Send(const std::string& endpoint_id,
diff --git a/chrome/browser/nearby_sharing/fake_nearby_connections_manager.h b/chrome/browser/nearby_sharing/fake_nearby_connections_manager.h index ef12bde..99ebd19 100644 --- a/chrome/browser/nearby_sharing/fake_nearby_connections_manager.h +++ b/chrome/browser/nearby_sharing/fake_nearby_connections_manager.h
@@ -12,6 +12,7 @@ #include <vector> #include "base/callback.h" +#include "base/optional.h" #include "chrome/browser/nearby_sharing/nearby_connections_manager.h" #include "chrome/services/sharing/public/mojom/nearby_connections.mojom.h" @@ -85,6 +86,12 @@ base::RepeatingCallback<void(PayloadPtr payload)> callback) { send_payload_callback_ = std::move(callback); } + const base::Optional<std::vector<uint8_t>>& adverting_endpoint_info() { + return adverting_endpoint_info_; + } + const base::Optional<std::vector<uint8_t>>& connection_endpoint_info() { + return connection_endpoint_info_; + } private: IncomingConnectionListener* advertising_listener_ = nullptr; @@ -97,6 +104,8 @@ NearbyConnection* connection_ = nullptr; DataUsage connected_data_usage_ = DataUsage::kUnknown; base::RepeatingCallback<void(PayloadPtr payload)> send_payload_callback_; + base::Optional<std::vector<uint8_t>> adverting_endpoint_info_; + base::Optional<std::vector<uint8_t>> connection_endpoint_info_; }; #endif // CHROME_BROWSER_NEARBY_SHARING_FAKE_NEARBY_CONNECTIONS_MANAGER_H_
diff --git a/chrome/browser/nearby_sharing/nearby_sharing_service_impl.cc b/chrome/browser/nearby_sharing/nearby_sharing_service_impl.cc index 76b1917..8e25868 100644 --- a/chrome/browser/nearby_sharing/nearby_sharing_service_impl.cc +++ b/chrome/browser/nearby_sharing/nearby_sharing_service_impl.cc
@@ -17,6 +17,7 @@ #include "base/task_runner_util.h" #include "base/threading/sequenced_task_runner_handle.h" #include "chrome/browser/download/download_prefs.h" +#include "chrome/browser/nearby_sharing/certificates/common.h" #include "chrome/browser/nearby_sharing/certificates/nearby_share_certificate_manager_impl.h" #include "chrome/browser/nearby_sharing/certificates/nearby_share_encrypted_metadata_key.h" #include "chrome/browser/nearby_sharing/client/nearby_share_client_impl.h" @@ -807,18 +808,34 @@ const base::Optional<std::vector<uint8_t>> NearbySharingServiceImpl::CreateEndpointInfo( const base::Optional<std::string>& device_name) { - // TODO(nmusgrave) fill values from CertificateManager - std::vector<uint8_t> salt(sharing::Advertisement::kSaltSize, 0); - std::vector<uint8_t> encrypted_metadata_key( - sharing::Advertisement::kMetadataEncryptionKeyHashByteSize, 0); + std::vector<uint8_t> salt; + std::vector<uint8_t> encrypted_key; + + nearby_share::mojom::Visibility visibility = settings_.GetVisibility(); + if (visibility == Visibility::kAllContacts || + visibility == Visibility::kSelectedContacts) { + base::Optional<NearbyShareEncryptedMetadataKey> encrypted_metadata_key = + certificate_manager_->GetValidPrivateCertificate(visibility) + .EncryptMetadataKey(); + if (encrypted_metadata_key) { + salt = encrypted_metadata_key->salt(); + encrypted_key = encrypted_metadata_key->encrypted_key(); + } + } + + if (salt.empty() || encrypted_key.empty()) { + // Generate random metadata key. + salt = GenerateRandomBytes(sharing::Advertisement::kSaltSize); + encrypted_key = GenerateRandomBytes( + sharing::Advertisement::kMetadataEncryptionKeyHashByteSize); + } nearby_share::mojom::ShareTargetType device_type = nearby_share::mojom::ShareTargetType::kLaptop; std::unique_ptr<sharing::Advertisement> advertisement = - sharing::Advertisement::NewInstance(std::move(salt), - std::move(encrypted_metadata_key), - device_type, device_name); + sharing::Advertisement::NewInstance( + std::move(salt), std::move(encrypted_key), device_type, device_name); if (advertisement) { return advertisement->ToEndpointInfo(); } else {
diff --git a/chrome/browser/nearby_sharing/nearby_sharing_service_impl_unittest.cc b/chrome/browser/nearby_sharing/nearby_sharing_service_impl_unittest.cc index 5068202..dc9e6190 100644 --- a/chrome/browser/nearby_sharing/nearby_sharing_service_impl_unittest.cc +++ b/chrome/browser/nearby_sharing/nearby_sharing_service_impl_unittest.cc
@@ -43,6 +43,7 @@ #include "chrome/browser/nearby_sharing/proto/rpc_resources.pb.h" #include "chrome/browser/notifications/notification_display_service_factory.h" #include "chrome/browser/notifications/notification_display_service_tester.h" +#include "chrome/services/sharing/nearby/decoder/advertisement_decoder.h" #include "chrome/services/sharing/public/cpp/advertisement.h" #include "chrome/services/sharing/public/proto/wire_format.pb.h" #include "chrome/test/base/testing_browser_process.h" @@ -422,6 +423,7 @@ bool is_incoming, sharing::mojom::PairedKeyResultFrame::Status status) { SetVisibility(nearby_share::mojom::Visibility::kAllContacts); + local_device_data_manager()->SetDeviceName(kDeviceName); std::string encryption_frame = "test_encryption_frame"; std::vector<uint8_t> encryption_bytes(encryption_frame.begin(), @@ -1249,9 +1251,11 @@ } TEST_F(NearbySharingServiceImplTest, - ForegroundRegisterReceiveSurfaceIsAdvertising) { + ForegroundRegisterReceiveSurfaceIsAdvertisingAllContacts) { ui::ScopedSetIdleState unlocked(ui::IDLE_STATE_IDLE); SetConnectionType(net::NetworkChangeNotifier::CONNECTION_WIFI); + SetVisibility(nearby_share::mojom::Visibility::kAllContacts); + local_device_data_manager()->SetDeviceName(kDeviceName); MockTransferUpdateCallback callback; NearbySharingService::StatusCodes result = service_->RegisterReceiveSurface( &callback, NearbySharingService::ReceiveSurfaceState::kForeground); @@ -1259,12 +1263,54 @@ EXPECT_TRUE(fake_nearby_connections_manager_->IsAdvertising()); EXPECT_EQ(PowerLevel::kHighPower, fake_nearby_connections_manager_->advertising_power_level()); + ASSERT_TRUE(fake_nearby_connections_manager_->adverting_endpoint_info()); + auto advertisement = + sharing::AdvertisementDecoder::FromEndpointInfo(base::make_span( + *fake_nearby_connections_manager_->adverting_endpoint_info())); + ASSERT_TRUE(advertisement); + EXPECT_EQ(kDeviceName, advertisement->device_name()); + EXPECT_EQ(nearby_share::mojom::ShareTargetType::kLaptop, + advertisement->device_type()); + auto& test_metadata_key = GetNearbyShareTestEncryptedMetadataKey(); + EXPECT_EQ(test_metadata_key.salt(), advertisement->salt()); + EXPECT_EQ(test_metadata_key.encrypted_key(), + advertisement->encrypted_metadata_key()); } TEST_F(NearbySharingServiceImplTest, - BackgroundRegisterReceiveSurfaceIsAdvertising) { + ForegroundRegisterReceiveSurfaceIsAdvertisingNoOne) { ui::ScopedSetIdleState unlocked(ui::IDLE_STATE_IDLE); SetConnectionType(net::NetworkChangeNotifier::CONNECTION_WIFI); + SetVisibility(nearby_share::mojom::Visibility::kNoOne); + local_device_data_manager()->SetDeviceName(kDeviceName); + MockTransferUpdateCallback callback; + NearbySharingService::StatusCodes result = service_->RegisterReceiveSurface( + &callback, NearbySharingService::ReceiveSurfaceState::kForeground); + EXPECT_EQ(result, NearbySharingService::StatusCodes::kOk); + EXPECT_TRUE(fake_nearby_connections_manager_->IsAdvertising()); + EXPECT_EQ(PowerLevel::kHighPower, + fake_nearby_connections_manager_->advertising_power_level()); + ASSERT_TRUE(fake_nearby_connections_manager_->adverting_endpoint_info()); + auto advertisement = + sharing::AdvertisementDecoder::FromEndpointInfo(base::make_span( + *fake_nearby_connections_manager_->adverting_endpoint_info())); + ASSERT_TRUE(advertisement); + EXPECT_EQ(kDeviceName, advertisement->device_name()); + EXPECT_EQ(nearby_share::mojom::ShareTargetType::kLaptop, + advertisement->device_type()); + // Expecting random metadata key. + EXPECT_EQ(static_cast<size_t>(sharing::Advertisement::kSaltSize), + advertisement->salt().size()); + EXPECT_EQ(static_cast<size_t>( + sharing::Advertisement::kMetadataEncryptionKeyHashByteSize), + advertisement->encrypted_metadata_key().size()); +} + +TEST_F(NearbySharingServiceImplTest, + BackgroundRegisterReceiveSurfaceIsAdvertisingSelectedContacts) { + ui::ScopedSetIdleState unlocked(ui::IDLE_STATE_IDLE); + SetConnectionType(net::NetworkChangeNotifier::CONNECTION_WIFI); + SetVisibility(nearby_share::mojom::Visibility::kSelectedContacts); prefs_.SetInteger(prefs::kNearbySharingBackgroundVisibilityName, static_cast<int>(Visibility::kSelectedContacts)); MockTransferUpdateCallback callback; @@ -1274,6 +1320,18 @@ EXPECT_TRUE(fake_nearby_connections_manager_->IsAdvertising()); EXPECT_EQ(PowerLevel::kLowPower, fake_nearby_connections_manager_->advertising_power_level()); + ASSERT_TRUE(fake_nearby_connections_manager_->adverting_endpoint_info()); + auto advertisement = + sharing::AdvertisementDecoder::FromEndpointInfo(base::make_span( + *fake_nearby_connections_manager_->adverting_endpoint_info())); + ASSERT_TRUE(advertisement); + EXPECT_FALSE(advertisement->device_name()); + EXPECT_EQ(nearby_share::mojom::ShareTargetType::kLaptop, + advertisement->device_type()); + auto& test_metadata_key = GetNearbyShareTestEncryptedMetadataKey(); + EXPECT_EQ(test_metadata_key.salt(), advertisement->salt()); + EXPECT_EQ(test_metadata_key.encrypted_key(), + advertisement->encrypted_metadata_key()); } TEST_F(NearbySharingServiceImplTest, @@ -2530,6 +2588,19 @@ EXPECT_EQ(strlen(kTextPayload), static_cast<size_t>(meta.size())); EXPECT_EQ(sharing::nearby::TextMetadata_Type_TEXT, meta.type()); + ASSERT_TRUE(fake_nearby_connections_manager_->connection_endpoint_info()); + auto advertisement = + sharing::AdvertisementDecoder::FromEndpointInfo(base::make_span( + *fake_nearby_connections_manager_->connection_endpoint_info())); + ASSERT_TRUE(advertisement); + EXPECT_EQ(kDeviceName, advertisement->device_name()); + EXPECT_EQ(nearby_share::mojom::ShareTargetType::kLaptop, + advertisement->device_type()); + auto& test_metadata_key = GetNearbyShareTestEncryptedMetadataKey(); + EXPECT_EQ(test_metadata_key.salt(), advertisement->salt()); + EXPECT_EQ(test_metadata_key.encrypted_key(), + advertisement->encrypted_metadata_key()); + // Expect the text payload to be sent in the end. base::RunLoop payload_run_loop; fake_nearby_connections_manager_->set_send_payload_callback(
diff --git a/chrome/browser/nearby_sharing/paired_key_verification_runner.cc b/chrome/browser/nearby_sharing/paired_key_verification_runner.cc index 137bec8..716ee03 100644 --- a/chrome/browser/nearby_sharing/paired_key_verification_runner.cc +++ b/chrome/browser/nearby_sharing/paired_key_verification_runner.cc
@@ -10,7 +10,6 @@ #include "base/bind.h" #include "chrome/browser/nearby_sharing/certificates/common.h" #include "chrome/browser/nearby_sharing/certificates/constants.h" -#include "chrome/browser/nearby_sharing/certificates/nearby_share_visibility.h" #include "chrome/browser/nearby_sharing/logging/logging.h" #include "chrome/browser/nearby_sharing/proto/rpc_resources.pb.h" #include "chrome/services/sharing/public/proto/wire_format.pb.h" @@ -42,22 +41,6 @@ } } -NearbyShareVisibility Convert(nearby_share::mojom::Visibility visibility) { - switch (visibility) { - case nearby_share::mojom::Visibility::kAllContacts: - return NearbyShareVisibility::kAllContacts; - - case nearby_share::mojom::Visibility::kSelectedContacts: - return NearbyShareVisibility::kSelectedContacts; - - case nearby_share::mojom::Visibility::kNoOne: - return NearbyShareVisibility::kNoOne; - - case nearby_share::mojom::Visibility::kUnknown: - return NearbyShareVisibility::kNoOne; - } -} - std::vector<uint8_t> PadPrefix(char prefix, std::vector<uint8_t> bytes) { bytes.insert(bytes.begin(), prefix); return bytes; @@ -250,7 +233,7 @@ void PairedKeyVerificationRunner::SendPairedKeyEncryptionFrame() { NearbySharePrivateCertificate private_certificate = - certificate_manager_->GetValidPrivateCertificate(Convert(visibility_)); + certificate_manager_->GetValidPrivateCertificate(visibility_); sharing::nearby::Frame frame; frame.set_version(sharing::nearby::Frame::V1); @@ -286,7 +269,7 @@ PairedKeyVerificationRunner::VerifyRemotePublicCertificate( const sharing::mojom::V1FramePtr& frame) { NearbySharePrivateCertificate private_certificate = - certificate_manager_->GetValidPrivateCertificate(Convert(visibility_)); + certificate_manager_->GetValidPrivateCertificate(visibility_); if (private_certificate.HashAuthenticationToken(raw_token_) == frame->get_paired_key_encryption()->secret_id_hash) {
diff --git a/chrome/browser/nearby_sharing/sharesheet/nearby_share_action.cc b/chrome/browser/nearby_sharing/sharesheet/nearby_share_action.cc new file mode 100644 index 0000000..45727053 --- /dev/null +++ b/chrome/browser/nearby_sharing/sharesheet/nearby_share_action.cc
@@ -0,0 +1,90 @@ +// Copyright 2020 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "chrome/browser/nearby_sharing/sharesheet/nearby_share_action.h" + +#include "base/logging.h" +#include "chrome/app/vector_icons/vector_icons.h" +#include "chrome/browser/profiles/profile_manager.h" +#include "chrome/browser/ui/webui/nearby_share/nearby_share_dialog_ui.h" +#include "chrome/common/webui_url_constants.h" +#include "chrome/grit/generated_resources.h" +#include "third_party/skia/include/core/SkColor.h" +#include "ui/base/l10n/l10n_util.h" +#include "ui/gfx/geometry/size.h" +#include "ui/gfx/image/image_skia.h" +#include "ui/gfx/paint_vector_icon.h" +#include "ui/views/controls/webview/webview.h" + +namespace { + +constexpr int kCornerRadius = 12; + +gfx::Size ComputeSize() { + // TODO(vecore): compute expected size based on screen size + return {500, 500}; +} + +} // namespace + +NearbyShareAction::NearbyShareAction() = default; + +NearbyShareAction::~NearbyShareAction() = default; + +const base::string16 NearbyShareAction::GetActionName() { + return l10n_util::GetStringUTF16(IDS_NEARBY_SHARE_FEATURE_NAME); +} + +const gfx::ImageSkia NearbyShareAction::GetActionIcon() { + return gfx::CreateVectorIcon(kNearbyShareIcon); +} + +void NearbyShareAction::LaunchAction( + sharesheet::SharesheetController* controller, + views::View* root_view, + apps::mojom::IntentPtr intent) { + // Store so we can trigger the share sheet close later. + controller_ = controller; + + gfx::Size size = ComputeSize(); + controller->SetSharesheetSize(size.width(), size.height()); + + // TODO(vecore): SharesheetController will eventually provide the profile. + auto* profile = ProfileManager::GetLastUsedProfileAllowedByPolicy(); + auto view = std::make_unique<views::WebView>(profile); + // If this is not done, we don't see anything in our view. + view->SetPreferredSize(size); + views::WebView* web_view = root_view->AddChildView(std::move(view)); + // TODO(vecore): Query this from the container view + web_view->holder()->SetCornerRadii(gfx::RoundedCornersF(kCornerRadius)); + + // load chrome://nearby into the webview + web_view->LoadInitialURL(GURL(chrome::kChromeUINearbyShareURL)); + + auto* webui = web_view->GetWebContents()->GetWebUI(); + DCHECK(webui != nullptr); + + nearby_ui_ = + webui->GetController()->GetAs<nearby_share::NearbyShareDialogUI>(); + DCHECK(nearby_ui_ != nullptr); + + nearby_ui_->AddObserver(this); + nearby_ui_->SetShareIntent(std::move(intent)); +} + +void NearbyShareAction::OnClose() { + // The nearby WebUI requested to close through user action + if (controller_) { + controller_->CloseSharesheet(); + } +} + +void NearbyShareAction::OnClosing( + sharesheet::SharesheetController* controller) { + if (nearby_ui_) { + nearby_ui_->RemoveObserver(this); + nearby_ui_ = nullptr; + } + controller_ = nullptr; +}
diff --git a/chrome/browser/nearby_sharing/sharesheet/nearby_share_action.h b/chrome/browser/nearby_sharing/sharesheet/nearby_share_action.h new file mode 100644 index 0000000..310a5b66 --- /dev/null +++ b/chrome/browser/nearby_sharing/sharesheet/nearby_share_action.h
@@ -0,0 +1,35 @@ +// Copyright 2020 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef CHROME_BROWSER_NEARBY_SHARING_SHARESHEET_NEARBY_SHARE_ACTION_H_ +#define CHROME_BROWSER_NEARBY_SHARING_SHARESHEET_NEARBY_SHARE_ACTION_H_ + +#include "chrome/browser/sharesheet/share_action.h" +#include "chrome/browser/ui/webui/nearby_share/nearby_share_dialog_ui.h" + +class NearbyShareAction : public sharesheet::ShareAction, + nearby_share::NearbyShareDialogUI::Observer { + public: + NearbyShareAction(); + ~NearbyShareAction() override; + NearbyShareAction(const NearbyShareAction&) = delete; + NearbyShareAction& operator=(const NearbyShareAction&) = delete; + + // sharesheet::ShareAction: + const base::string16 GetActionName() override; + const gfx::ImageSkia GetActionIcon() override; + void LaunchAction(sharesheet::SharesheetController* controller, + views::View* root_view, + apps::mojom::IntentPtr intent) override; + void OnClosing(sharesheet::SharesheetController* controller) override; + + // nearby_share::NearbyShareDialogUI::Observer: + void OnClose() override; + + private: + sharesheet::SharesheetController* controller_ = nullptr; + nearby_share::NearbyShareDialogUI* nearby_ui_ = nullptr; +}; + +#endif // CHROME_BROWSER_NEARBY_SHARING_SHARESHEET_NEARBY_SHARE_ACTION_H_
diff --git a/chrome/browser/notifications/arc_application_notifier_controller.cc b/chrome/browser/notifications/arc_application_notifier_controller.cc index e483c3a..190c5e5 100644 --- a/chrome/browser/notifications/arc_application_notifier_controller.cc +++ b/chrome/browser/notifications/arc_application_notifier_controller.cc
@@ -25,6 +25,10 @@ class ArcAppNotifierShutdownNotifierFactory : public BrowserContextKeyedServiceShutdownNotifierFactory { public: + ArcAppNotifierShutdownNotifierFactory( + const ArcAppNotifierShutdownNotifierFactory&) = delete; + ArcAppNotifierShutdownNotifierFactory& operator=( + const ArcAppNotifierShutdownNotifierFactory&) = delete; static ArcAppNotifierShutdownNotifierFactory* GetInstance() { return base::Singleton<ArcAppNotifierShutdownNotifierFactory>::get(); } @@ -39,8 +43,6 @@ } ~ArcAppNotifierShutdownNotifierFactory() override {} - - DISALLOW_COPY_AND_ASSIGN(ArcAppNotifierShutdownNotifierFactory); }; } // namespace
diff --git a/chrome/browser/notifications/arc_application_notifier_controller.h b/chrome/browser/notifications/arc_application_notifier_controller.h index e9569b5..5b3e7f03 100644 --- a/chrome/browser/notifications/arc_application_notifier_controller.h +++ b/chrome/browser/notifications/arc_application_notifier_controller.h
@@ -10,7 +10,6 @@ #include <string> #include <vector> -#include "base/macros.h" #include "chrome/browser/notifications/notifier_controller.h" #include "chrome/browser/ui/app_list/arc/arc_app_icon.h" #include "chrome/browser/ui/app_list/arc/arc_app_list_prefs.h" @@ -28,6 +27,10 @@ explicit ArcApplicationNotifierController( NotifierController::Observer* observer); + ArcApplicationNotifierController(const ArcApplicationNotifierController&) = + delete; + ArcApplicationNotifierController& operator=( + const ArcApplicationNotifierController&) = delete; ~ArcApplicationNotifierController() override; // TODO(hirono): Rewrite the function with new API to fetch package list. @@ -53,8 +56,6 @@ Profile* last_profile_; std::unique_ptr<KeyedServiceShutdownNotifier::Subscription> shutdown_notifier_; - - DISALLOW_COPY_AND_ASSIGN(ArcApplicationNotifierController); }; } // namespace arc
diff --git a/chrome/browser/notifications/chrome_ash_message_center_client.cc b/chrome/browser/notifications/chrome_ash_message_center_client.cc index 78ce527..aa480ed 100644 --- a/chrome/browser/notifications/chrome_ash_message_center_client.cc +++ b/chrome/browser/notifications/chrome_ash_message_center_client.cc
@@ -63,6 +63,10 @@ ForwardingNotificationDelegate(const std::string& notification_id, NotificationPlatformBridgeDelegate* delegate) : notification_id_(notification_id), delegate_(delegate) {} + ForwardingNotificationDelegate(const ForwardingNotificationDelegate&) = + delete; + ForwardingNotificationDelegate& operator=( + const ForwardingNotificationDelegate&) = delete; // message_center::NotificationDelegate: void Close(bool by_user) override { @@ -94,8 +98,6 @@ const std::string notification_id_; NotificationPlatformBridgeDelegate* delegate_; - - DISALLOW_COPY_AND_ASSIGN(ForwardingNotificationDelegate); }; } // namespace
diff --git a/chrome/browser/notifications/chrome_ash_message_center_client.h b/chrome/browser/notifications/chrome_ash_message_center_client.h index cb9086b..8ef27ba 100644 --- a/chrome/browser/notifications/chrome_ash_message_center_client.h +++ b/chrome/browser/notifications/chrome_ash_message_center_client.h
@@ -22,6 +22,9 @@ public: explicit ChromeAshMessageCenterClient( NotificationPlatformBridgeDelegate* delegate); + ChromeAshMessageCenterClient(const ChromeAshMessageCenterClient&) = delete; + ChromeAshMessageCenterClient& operator=(const ChromeAshMessageCenterClient&) = + delete; ~ChromeAshMessageCenterClient() override; // NotificationPlatformBridge: @@ -60,8 +63,6 @@ base::ObserverList<ash::NotifierSettingsObserver> notifier_observers_; base::WeakPtrFactory<ChromeAshMessageCenterClient> weak_ptr_{this}; - - DISALLOW_COPY_AND_ASSIGN(ChromeAshMessageCenterClient); }; #endif // CHROME_BROWSER_NOTIFICATIONS_CHROME_ASH_MESSAGE_CENTER_CLIENT_H_
diff --git a/chrome/browser/notifications/chrome_ash_message_center_client_unittest.cc b/chrome/browser/notifications/chrome_ash_message_center_client_unittest.cc index a8886dd..7a3769101 100644 --- a/chrome/browser/notifications/chrome_ash_message_center_client_unittest.cc +++ b/chrome/browser/notifications/chrome_ash_message_center_client_unittest.cc
@@ -11,7 +11,6 @@ #include "ash/public/cpp/notifier_settings_observer.h" #include "base/bind.h" #include "base/command_line.h" -#include "base/macros.h" #include "base/strings/utf_string_conversions.h" #include "build/build_config.h" #include "chrome/browser/chromeos/login/users/fake_chrome_user_manager.h" @@ -38,6 +37,12 @@ class ChromeAshMessageCenterClientTest : public testing::Test, public ash::NotifierSettingsObserver { + public: + ChromeAshMessageCenterClientTest(const ChromeAshMessageCenterClientTest&) = + delete; + ChromeAshMessageCenterClientTest& operator=( + const ChromeAshMessageCenterClientTest&) = delete; + protected: ChromeAshMessageCenterClientTest() : testing_profile_manager_(TestingBrowserProcess::GetGlobal()) {} @@ -108,8 +113,6 @@ TestingProfileManager testing_profile_manager_; std::unique_ptr<ChromeAshMessageCenterClient> client_; std::unique_ptr<user_manager::ScopedUserManager> user_manager_enabler_; - - DISALLOW_COPY_AND_ASSIGN(ChromeAshMessageCenterClientTest); }; // TODO(mukai): write a test case to reproduce the actual guest session scenario
diff --git a/chrome/browser/notifications/fullscreen_notification_blocker.h b/chrome/browser/notifications/fullscreen_notification_blocker.h index dc7de5de..bb4193e 100644 --- a/chrome/browser/notifications/fullscreen_notification_blocker.h +++ b/chrome/browser/notifications/fullscreen_notification_blocker.h
@@ -5,7 +5,6 @@ #ifndef CHROME_BROWSER_NOTIFICATIONS_FULLSCREEN_NOTIFICATION_BLOCKER_H_ #define CHROME_BROWSER_NOTIFICATIONS_FULLSCREEN_NOTIFICATION_BLOCKER_H_ -#include "base/macros.h" #include "base/timer/timer.h" #include "ui/message_center/notification_blocker.h" @@ -16,6 +15,9 @@ public: explicit FullscreenNotificationBlocker( message_center::MessageCenter* message_center); + FullscreenNotificationBlocker(const FullscreenNotificationBlocker&) = delete; + FullscreenNotificationBlocker& operator=( + const FullscreenNotificationBlocker&) = delete; ~FullscreenNotificationBlocker() override; // message_center::NotificationBlocker overrides: @@ -27,8 +29,6 @@ bool is_fullscreen_mode_; base::OneShotTimer timer_; - - DISALLOW_COPY_AND_ASSIGN(FullscreenNotificationBlocker); }; #endif // CHROME_BROWSER_NOTIFICATIONS_FULLSCREEN_NOTIFICATION_BLOCKER_H_
diff --git a/chrome/browser/notifications/metrics/notification_metrics_logger_factory.h b/chrome/browser/notifications/metrics/notification_metrics_logger_factory.h index 5dee2d4..8c71f8e 100644 --- a/chrome/browser/notifications/metrics/notification_metrics_logger_factory.h +++ b/chrome/browser/notifications/metrics/notification_metrics_logger_factory.h
@@ -19,6 +19,11 @@ content::BrowserContext* browser_context); static NotificationMetricsLoggerFactory* GetInstance(); + NotificationMetricsLoggerFactory(const NotificationMetricsLoggerFactory&) = + delete; + NotificationMetricsLoggerFactory& operator=( + const NotificationMetricsLoggerFactory&) = delete; + private: friend struct base::DefaultSingletonTraits<NotificationMetricsLoggerFactory>; @@ -29,8 +34,6 @@ content::BrowserContext* context) const override; content::BrowserContext* GetBrowserContextToUse( content::BrowserContext* context) const override; - - DISALLOW_COPY_AND_ASSIGN(NotificationMetricsLoggerFactory); }; #endif // CHROME_BROWSER_NOTIFICATIONS_METRICS_NOTIFICATION_METRICS_LOGGER_FACTORY_H_
diff --git a/chrome/browser/notifications/non_persistent_notification_handler.h b/chrome/browser/notifications/non_persistent_notification_handler.h index ba5b3a81..4e2a2661 100644 --- a/chrome/browser/notifications/non_persistent_notification_handler.h +++ b/chrome/browser/notifications/non_persistent_notification_handler.h
@@ -5,7 +5,6 @@ #ifndef CHROME_BROWSER_NOTIFICATIONS_NON_PERSISTENT_NOTIFICATION_HANDLER_H_ #define CHROME_BROWSER_NOTIFICATIONS_NON_PERSISTENT_NOTIFICATION_HANDLER_H_ -#include "base/macros.h" #include "base/memory/weak_ptr.h" #include "chrome/browser/notifications/notification_handler.h" @@ -13,6 +12,10 @@ class NonPersistentNotificationHandler : public NotificationHandler { public: NonPersistentNotificationHandler(); + NonPersistentNotificationHandler(const NonPersistentNotificationHandler&) = + delete; + NonPersistentNotificationHandler& operator=( + const NonPersistentNotificationHandler&) = delete; ~NonPersistentNotificationHandler() override; // NotificationHandler implementation @@ -43,8 +46,6 @@ base::WeakPtrFactory<NonPersistentNotificationHandler> weak_ptr_factory_{ this}; - - DISALLOW_COPY_AND_ASSIGN(NonPersistentNotificationHandler); }; #endif // CHROME_BROWSER_NOTIFICATIONS_NON_PERSISTENT_NOTIFICATION_HANDLER_H_
diff --git a/chrome/browser/notifications/notification_channels_provider_android.cc b/chrome/browser/notifications/notification_channels_provider_android.cc index 2d016526..0a9af34 100644 --- a/chrome/browser/notifications/notification_channels_provider_android.cc +++ b/chrome/browser/notifications/notification_channels_provider_android.cc
@@ -12,7 +12,6 @@ #include "base/bind.h" #include "base/check_op.h" #include "base/feature_list.h" -#include "base/macros.h" #include "base/notreached.h" #include "base/strings/string_number_conversions.h" #include "base/strings/string_util.h" @@ -123,6 +122,8 @@ explicit ChannelsRuleIterator(std::vector<NotificationChannel> channels) : channels_(std::move(channels)), index_(0) {} + ChannelsRuleIterator(const ChannelsRuleIterator&) = delete; + ChannelsRuleIterator& operator=(const ChannelsRuleIterator&) = delete; ~ChannelsRuleIterator() override = default; bool HasNext() const override { return index_ < channels_.size(); } @@ -143,7 +144,6 @@ private: std::vector<NotificationChannel> channels_; size_t index_; - DISALLOW_COPY_AND_ASSIGN(ChannelsRuleIterator); }; // This copies the logic of
diff --git a/chrome/browser/notifications/notification_channels_provider_android.h b/chrome/browser/notifications/notification_channels_provider_android.h index 7e3cc3b..1d01e80 100644 --- a/chrome/browser/notifications/notification_channels_provider_android.h +++ b/chrome/browser/notifications/notification_channels_provider_android.h
@@ -11,7 +11,6 @@ #include <tuple> #include <vector> -#include "base/macros.h" #include "base/memory/weak_ptr.h" #include "base/time/clock.h" #include "components/content_settings/core/browser/content_settings_observer.h" @@ -68,6 +67,10 @@ static void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry); NotificationChannelsProviderAndroid(); + NotificationChannelsProviderAndroid( + const NotificationChannelsProviderAndroid&) = delete; + NotificationChannelsProviderAndroid& operator=( + const NotificationChannelsProviderAndroid&) = delete; ~NotificationChannelsProviderAndroid() override; // Migrates any notification settings from the passed-in provider to @@ -143,8 +146,6 @@ std::map<std::string, NotificationChannel> cached_channels_; base::WeakPtrFactory<NotificationChannelsProviderAndroid> weak_factory_{this}; - - DISALLOW_COPY_AND_ASSIGN(NotificationChannelsProviderAndroid); }; #endif // CHROME_BROWSER_NOTIFICATIONS_NOTIFICATION_CHANNELS_PROVIDER_ANDROID_H_
diff --git a/chrome/browser/notifications/notification_channels_provider_android_unittest.cc b/chrome/browser/notifications/notification_channels_provider_android_unittest.cc index 038774b..195e09fee 100644 --- a/chrome/browser/notifications/notification_channels_provider_android_unittest.cc +++ b/chrome/browser/notifications/notification_channels_provider_android_unittest.cc
@@ -47,6 +47,10 @@ should_use_channels_ = should_use_channels; } + FakeNotificationChannelsBridge(const FakeNotificationChannelsBridge&) = + delete; + FakeNotificationChannelsBridge& operator=( + const FakeNotificationChannelsBridge&) = delete; ~FakeNotificationChannelsBridge() override = default; void SetChannelStatus(const std::string& origin, @@ -105,8 +109,6 @@ // Map from channel_id - channel. std::map<std::string, NotificationChannel> channels_; - - DISALLOW_COPY_AND_ASSIGN(FakeNotificationChannelsBridge); }; class NotificationChannelsProviderAndroidTest : public testing::Test {
diff --git a/chrome/browser/notifications/notification_display_service.h b/chrome/browser/notifications/notification_display_service.h index f2642fea..d9ca3df 100644 --- a/chrome/browser/notifications/notification_display_service.h +++ b/chrome/browser/notifications/notification_display_service.h
@@ -11,7 +11,6 @@ #include <string> #include "base/callback_forward.h" -#include "base/macros.h" #include "base/observer_list_types.h" #include "chrome/browser/notifications/notification_common.h" #include "chrome/browser/notifications/notification_handler.h" @@ -51,6 +50,9 @@ ~Observer() override; }; + NotificationDisplayService(const NotificationDisplayService&) = delete; + NotificationDisplayService& operator=(const NotificationDisplayService&) = + delete; ~NotificationDisplayService() override; // Callback to be used with the GetDisplayed() method. Includes the set of @@ -88,9 +90,6 @@ protected: NotificationDisplayService() = default; - - private: - DISALLOW_COPY_AND_ASSIGN(NotificationDisplayService); }; #endif // CHROME_BROWSER_NOTIFICATIONS_NOTIFICATION_DISPLAY_SERVICE_H_
diff --git a/chrome/browser/notifications/notification_display_service_factory.h b/chrome/browser/notifications/notification_display_service_factory.h index 79a7adb..a2c70c13 100644 --- a/chrome/browser/notifications/notification_display_service_factory.h +++ b/chrome/browser/notifications/notification_display_service_factory.h
@@ -5,7 +5,6 @@ #ifndef CHROME_BROWSER_NOTIFICATIONS_NOTIFICATION_DISPLAY_SERVICE_FACTORY_H_ #define CHROME_BROWSER_NOTIFICATIONS_NOTIFICATION_DISPLAY_SERVICE_FACTORY_H_ -#include "base/macros.h" #include "base/memory/singleton.h" #include "components/keyed_service/content/browser_context_keyed_service_factory.h" @@ -15,6 +14,10 @@ class NotificationDisplayServiceFactory : public BrowserContextKeyedServiceFactory { public: + NotificationDisplayServiceFactory(const NotificationDisplayServiceFactory&) = + delete; + NotificationDisplayServiceFactory& operator=( + const NotificationDisplayServiceFactory&) = delete; static NotificationDisplayService* GetForProfile(Profile* profile); static NotificationDisplayServiceFactory* GetInstance(); @@ -28,7 +31,6 @@ content::BrowserContext* context) const override; content::BrowserContext* GetBrowserContextToUse( content::BrowserContext* context) const override; - DISALLOW_COPY_AND_ASSIGN(NotificationDisplayServiceFactory); }; #endif // CHROME_BROWSER_NOTIFICATIONS_NOTIFICATION_DISPLAY_SERVICE_FACTORY_H_
diff --git a/chrome/browser/notifications/notification_display_service_impl.h b/chrome/browser/notifications/notification_display_service_impl.h index 878304d..ea976c0 100644 --- a/chrome/browser/notifications/notification_display_service_impl.h +++ b/chrome/browser/notifications/notification_display_service_impl.h
@@ -9,7 +9,6 @@ #include "base/callback.h" #include "base/containers/queue.h" -#include "base/macros.h" #include "base/memory/weak_ptr.h" #include "base/observer_list.h" #include "base/optional.h" @@ -36,6 +35,10 @@ // SystemNotificationHelper, and is only expected to handle TRANSIENT // notifications. explicit NotificationDisplayServiceImpl(Profile* profile); + NotificationDisplayServiceImpl(const NotificationDisplayServiceImpl&) = + delete; + NotificationDisplayServiceImpl& operator=( + const NotificationDisplayServiceImpl&) = delete; ~NotificationDisplayServiceImpl() override; // Returns an instance of the display service implementation for the given @@ -113,8 +116,6 @@ base::ObserverList<Observer> observers_; base::WeakPtrFactory<NotificationDisplayServiceImpl> weak_factory_{this}; - - DISALLOW_COPY_AND_ASSIGN(NotificationDisplayServiceImpl); }; #endif // CHROME_BROWSER_NOTIFICATIONS_NOTIFICATION_DISPLAY_SERVICE_IMPL_H_
diff --git a/chrome/browser/notifications/notification_display_service_tester.cc b/chrome/browser/notifications/notification_display_service_tester.cc index 031659f3..d6af260 100644 --- a/chrome/browser/notifications/notification_display_service_tester.cc +++ b/chrome/browser/notifications/notification_display_service_tester.cc
@@ -32,6 +32,10 @@ class MockNotificationPlatformBridge : public NotificationPlatformBridge { public: MockNotificationPlatformBridge() = default; + MockNotificationPlatformBridge(const MockNotificationPlatformBridge&) = + delete; + MockNotificationPlatformBridge& operator=( + const MockNotificationPlatformBridge&) = delete; ~MockNotificationPlatformBridge() override = default; // NotificationPlatformBridge implementation: @@ -51,9 +55,6 @@ std::move(callback).Run(true /* ready */); } void DisplayServiceShutDown(Profile* profile) override {} - - private: - DISALLOW_COPY_AND_ASSIGN(MockNotificationPlatformBridge); }; #endif // !BUILDFLAG(ENABLE_MESSAGE_CENTER) @@ -61,6 +62,10 @@ class NotificationDisplayServiceShutdownNotifierFactory : public BrowserContextKeyedServiceShutdownNotifierFactory { public: + NotificationDisplayServiceShutdownNotifierFactory( + const NotificationDisplayServiceShutdownNotifierFactory&) = delete; + NotificationDisplayServiceShutdownNotifierFactory& operator=( + const NotificationDisplayServiceShutdownNotifierFactory&) = delete; static NotificationDisplayServiceShutdownNotifierFactory* GetInstance() { return base::Singleton< NotificationDisplayServiceShutdownNotifierFactory>::get(); @@ -76,8 +81,6 @@ DependsOn(NotificationDisplayServiceFactory::GetInstance()); } ~NotificationDisplayServiceShutdownNotifierFactory() override {} - - DISALLOW_COPY_AND_ASSIGN(NotificationDisplayServiceShutdownNotifierFactory); }; } // namespace
diff --git a/chrome/browser/notifications/notification_display_service_tester.h b/chrome/browser/notifications/notification_display_service_tester.h index edd6e20..1571e882f 100644 --- a/chrome/browser/notifications/notification_display_service_tester.h +++ b/chrome/browser/notifications/notification_display_service_tester.h
@@ -8,7 +8,6 @@ #include <vector> #include "base/callback_forward.h" -#include "base/macros.h" #include "base/optional.h" #include "base/strings/string16.h" #include "chrome/browser/notifications/notification_common.h" @@ -33,6 +32,10 @@ // It can be nullptr, in which case |display_service_| will be set up as a // system notification display service. explicit NotificationDisplayServiceTester(Profile* profile); + NotificationDisplayServiceTester(const NotificationDisplayServiceTester&) = + delete; + NotificationDisplayServiceTester& operator=( + const NotificationDisplayServiceTester&) = delete; ~NotificationDisplayServiceTester(); // Returns the currently active tester, if any. @@ -91,8 +94,6 @@ StubNotificationDisplayService* display_service_; std::unique_ptr<KeyedServiceShutdownNotifier::Subscription> profile_shutdown_subscription_; - - DISALLOW_COPY_AND_ASSIGN(NotificationDisplayServiceTester); }; #endif // CHROME_BROWSER_NOTIFICATIONS_NOTIFICATION_DISPLAY_SERVICE_TESTER_H_
diff --git a/chrome/browser/notifications/notification_interactive_uitest.cc b/chrome/browser/notifications/notification_interactive_uitest.cc index 2adc8c6..a0f278e 100644 --- a/chrome/browser/notifications/notification_interactive_uitest.cc +++ b/chrome/browser/notifications/notification_interactive_uitest.cc
@@ -8,7 +8,6 @@ #include "base/callback.h" #include "base/command_line.h" #include "base/compiler_specific.h" -#include "base/macros.h" #include "base/memory/ref_counted.h" #include "base/strings/stringprintf.h" #include "base/strings/utf_string_conversions.h" @@ -62,6 +61,9 @@ : message_center::NotificationBlocker( message_center::MessageCenter::Get()), notifications_enabled_(true) {} + ToggledNotificationBlocker(const ToggledNotificationBlocker&) = delete; + ToggledNotificationBlocker& operator=(const ToggledNotificationBlocker&) = + delete; ~ToggledNotificationBlocker() override {} void SetNotificationsEnabled(bool enabled) { @@ -79,8 +81,6 @@ private: bool notifications_enabled_; - - DISALLOW_COPY_AND_ASSIGN(ToggledNotificationBlocker); }; } // namespace
diff --git a/chrome/browser/notifications/notification_interactive_uitest_support.cc b/chrome/browser/notifications/notification_interactive_uitest_support.cc index 6d05f37..0ec1476 100644 --- a/chrome/browser/notifications/notification_interactive_uitest_support.cc +++ b/chrome/browser/notifications/notification_interactive_uitest_support.cc
@@ -29,6 +29,8 @@ Impl() : notification_received_(false) { message_center::MessageCenter::Get()->AddObserver(this); } + Impl(const Impl&) = delete; + Impl& operator=(const Impl&) = delete; ~Impl() override { message_center::MessageCenter::Get()->RemoveObserver(this); @@ -72,8 +74,6 @@ bool notification_received_; scoped_refptr<content::MessageLoopRunner> message_loop_runner_; - - DISALLOW_COPY_AND_ASSIGN(Impl); }; MessageCenterChangeObserver::MessageCenterChangeObserver() : impl_(new Impl) {}
diff --git a/chrome/browser/notifications/notification_interactive_uitest_support.h b/chrome/browser/notifications/notification_interactive_uitest_support.h index ab1293f..78b7e0b 100644 --- a/chrome/browser/notifications/notification_interactive_uitest_support.h +++ b/chrome/browser/notifications/notification_interactive_uitest_support.h
@@ -15,6 +15,9 @@ class MessageCenterChangeObserver { public: MessageCenterChangeObserver(); + MessageCenterChangeObserver(const MessageCenterChangeObserver&) = delete; + MessageCenterChangeObserver& operator=(const MessageCenterChangeObserver&) = + delete; ~MessageCenterChangeObserver(); bool Wait(); @@ -22,13 +25,14 @@ private: class Impl; std::unique_ptr<Impl> impl_; - - DISALLOW_COPY_AND_ASSIGN(MessageCenterChangeObserver); }; class TestMessageCenterObserver : public message_center::MessageCenterObserver { public: TestMessageCenterObserver() = default; + TestMessageCenterObserver(const TestMessageCenterObserver&) = delete; + TestMessageCenterObserver& operator=(const TestMessageCenterObserver&) = + delete; // MessageCenterObserver: void OnNotificationDisplayed( @@ -39,8 +43,6 @@ private: std::string last_displayed_id_; - - DISALLOW_COPY_AND_ASSIGN(TestMessageCenterObserver); }; class NotificationsTest : public InProcessBrowserTest {
diff --git a/chrome/browser/notifications/notification_permission_context.cc b/chrome/browser/notifications/notification_permission_context.cc index 9070c6f6..9f0c710d 100644 --- a/chrome/browser/notifications/notification_permission_context.cc +++ b/chrome/browser/notifications/notification_permission_context.cc
@@ -47,6 +47,8 @@ : public content::WebContentsObserver, public content::WebContentsUserData<VisibilityTimerTabHelper> { public: + VisibilityTimerTabHelper(const VisibilityTimerTabHelper&) = delete; + VisibilityTimerTabHelper& operator=(const VisibilityTimerTabHelper&) = delete; ~VisibilityTimerTabHelper() override {} // Runs |task| after the WebContents has been visible for a consecutive @@ -92,8 +94,6 @@ base::circular_deque<Task> task_queue_; WEB_CONTENTS_USER_DATA_KEY_DECL(); - - DISALLOW_COPY_AND_ASSIGN(VisibilityTimerTabHelper); }; WEB_CONTENTS_USER_DATA_KEY_IMPL(VisibilityTimerTabHelper)
diff --git a/chrome/browser/notifications/notification_permission_context_apitest.cc b/chrome/browser/notifications/notification_permission_context_apitest.cc index 8d26a9a..d64a71c 100644 --- a/chrome/browser/notifications/notification_permission_context_apitest.cc +++ b/chrome/browser/notifications/notification_permission_context_apitest.cc
@@ -5,7 +5,6 @@ #include "chrome/browser/extensions/extension_apitest.h" #include "base/check.h" -#include "base/macros.h" #include "base/scoped_observer.h" #include "chrome/browser/notifications/notifier_state_tracker.h" #include "chrome/browser/notifications/notifier_state_tracker_factory.h" @@ -28,6 +27,9 @@ : profile_(profile), enabled_(enabled) { extension_registry_observer_.Add(ExtensionRegistry::Get(profile)); } + ExtensionPermissionUpdater(const ExtensionPermissionUpdater&) = delete; + ExtensionPermissionUpdater& operator=(const ExtensionPermissionUpdater&) = + delete; // ExtensionRegistryObserver overrides: void OnExtensionLoaded(content::BrowserContext* browser_context, @@ -50,8 +52,6 @@ ScopedObserver<ExtensionRegistry, ExtensionRegistryObserver> extension_registry_observer_{this}; - - DISALLOW_COPY_AND_ASSIGN(ExtensionPermissionUpdater); }; using NotificationPermissionContextApiTest = extensions::ExtensionApiTest;
diff --git a/chrome/browser/notifications/notification_platform_bridge.h b/chrome/browser/notifications/notification_platform_bridge.h index 64f07b2..9e7903b 100644 --- a/chrome/browser/notifications/notification_platform_bridge.h +++ b/chrome/browser/notifications/notification_platform_bridge.h
@@ -10,7 +10,6 @@ #include <string> #include "base/callback_forward.h" -#include "base/macros.h" #include "chrome/browser/notifications/displayed_notifications_dispatch_callback.h" #include "chrome/browser/notifications/notification_common.h" #include "chrome/browser/notifications/notification_handler.h" @@ -38,6 +37,9 @@ // Returns a unique string identifier for |profile|. static std::string GetProfileId(Profile* profile); + NotificationPlatformBridge(const NotificationPlatformBridge&) = delete; + NotificationPlatformBridge& operator=(const NotificationPlatformBridge&) = + delete; virtual ~NotificationPlatformBridge() {} // Shows a toast on screen using the data passed in |notification|. @@ -69,9 +71,6 @@ protected: NotificationPlatformBridge() = default; - - private: - DISALLOW_COPY_AND_ASSIGN(NotificationPlatformBridge); }; #endif // CHROME_BROWSER_NOTIFICATIONS_NOTIFICATION_PLATFORM_BRIDGE_H_
diff --git a/chrome/browser/notifications/notification_platform_bridge_android.h b/chrome/browser/notifications/notification_platform_bridge_android.h index d6fc39d..7ff3547 100644 --- a/chrome/browser/notifications/notification_platform_bridge_android.h +++ b/chrome/browser/notifications/notification_platform_bridge_android.h
@@ -11,7 +11,6 @@ #include <string> #include "base/android/scoped_java_ref.h" -#include "base/macros.h" #include "base/optional.h" #include "chrome/browser/notifications/displayed_notifications_dispatch_callback.h" #include "chrome/browser/notifications/notification_common.h" @@ -36,6 +35,10 @@ class NotificationPlatformBridgeAndroid : public NotificationPlatformBridge { public: NotificationPlatformBridgeAndroid(); + NotificationPlatformBridgeAndroid(const NotificationPlatformBridgeAndroid&) = + delete; + NotificationPlatformBridgeAndroid& operator=( + const NotificationPlatformBridgeAndroid&) = delete; ~NotificationPlatformBridgeAndroid() override; // Called by the Java implementation when the notification has been clicked. @@ -116,8 +119,6 @@ regenerated_notification_infos_; base::android::ScopedJavaGlobalRef<jobject> java_object_; - - DISALLOW_COPY_AND_ASSIGN(NotificationPlatformBridgeAndroid); }; #endif // CHROME_BROWSER_NOTIFICATIONS_NOTIFICATION_PLATFORM_BRIDGE_ANDROID_H_
diff --git a/chrome/browser/notifications/notification_platform_bridge_chromeos.h b/chrome/browser/notifications/notification_platform_bridge_chromeos.h index 5ffc98d..8031aa0a 100644 --- a/chrome/browser/notifications/notification_platform_bridge_chromeos.h +++ b/chrome/browser/notifications/notification_platform_bridge_chromeos.h
@@ -9,7 +9,6 @@ #include <memory> #include <string> -#include "base/macros.h" #include "chrome/browser/notifications/notification_platform_bridge.h" #include "chrome/browser/notifications/notification_platform_bridge_delegate.h" #include "chrome/browser/notifications/profile_notification.h" @@ -22,6 +21,10 @@ public NotificationPlatformBridgeDelegate { public: NotificationPlatformBridgeChromeOs(); + NotificationPlatformBridgeChromeOs( + const NotificationPlatformBridgeChromeOs&) = delete; + NotificationPlatformBridgeChromeOs& operator=( + const NotificationPlatformBridgeChromeOs&) = delete; ~NotificationPlatformBridgeChromeOs() override; // NotificationPlatformBridge: @@ -62,8 +65,6 @@ // the permuted ID. std::map<std::string, std::unique_ptr<ProfileNotification>> active_notifications_; - - DISALLOW_COPY_AND_ASSIGN(NotificationPlatformBridgeChromeOs); }; #endif // CHROME_BROWSER_NOTIFICATIONS_NOTIFICATION_PLATFORM_BRIDGE_CHROMEOS_H_
diff --git a/chrome/browser/notifications/notification_platform_bridge_chromeos_browsertest.cc b/chrome/browser/notifications/notification_platform_bridge_chromeos_browsertest.cc index e8b52567..484f9eb 100644 --- a/chrome/browser/notifications/notification_platform_bridge_chromeos_browsertest.cc +++ b/chrome/browser/notifications/notification_platform_bridge_chromeos_browsertest.cc
@@ -4,7 +4,6 @@ #include "chrome/browser/notifications/notification_platform_bridge_chromeos.h" -#include "base/macros.h" #include "base/memory/weak_ptr.h" #include "chrome/browser/notifications/notification_display_service.h" #include "chrome/browser/ui/browser.h" @@ -18,6 +17,10 @@ public message_center::NotificationObserver { public: NotificationPlatformBridgeChromeOsBrowserTest() = default; + NotificationPlatformBridgeChromeOsBrowserTest( + const NotificationPlatformBridgeChromeOsBrowserTest&) = delete; + NotificationPlatformBridgeChromeOsBrowserTest& operator=( + const NotificationPlatformBridgeChromeOsBrowserTest&) = delete; ~NotificationPlatformBridgeChromeOsBrowserTest() override { EXPECT_EQ(expected_close_count_, close_count_); } @@ -31,9 +34,6 @@ base::WeakPtrFactory<NotificationPlatformBridgeChromeOsBrowserTest> weak_ptr_factory_{this}; - - private: - DISALLOW_COPY_AND_ASSIGN(NotificationPlatformBridgeChromeOsBrowserTest); }; // Tests that a notification delegate is informed of the notification closing
diff --git a/chrome/browser/notifications/notification_platform_bridge_linux.cc b/chrome/browser/notifications/notification_platform_bridge_linux.cc index dd8a927e..bdea464 100644 --- a/chrome/browser/notifications/notification_platform_bridge_linux.cc +++ b/chrome/browser/notifications/notification_platform_bridge_linux.cc
@@ -224,14 +224,14 @@ DCHECK(!file_path.empty()); DCHECK(file_path.IsAbsolute()); } + ResourceFile(const ResourceFile&) = delete; + ResourceFile& operator=(const ResourceFile&) = delete; ~ResourceFile() { base::DeleteFile(file_path_); } const base::FilePath& file_path() const { return file_path_; } private: const base::FilePath file_path_; - - DISALLOW_COPY_AND_ASSIGN(ResourceFile); }; // Writes |data| to a new temporary file and returns the ResourceFile @@ -309,6 +309,10 @@ registrar_.Add(this, chrome::NOTIFICATION_APP_TERMINATING, content::NotificationService::AllSources()); } + NotificationPlatformBridgeLinuxImpl( + const NotificationPlatformBridgeLinuxImpl&) = delete; + NotificationPlatformBridgeLinuxImpl& operator=( + const NotificationPlatformBridgeLinuxImpl&) = delete; // InitOnTaskRunner() cannot be posted from within the constructor // because of a race condition. The reference count for |this| @@ -1070,8 +1074,6 @@ UnorderedUniqueSet<NotificationData> notifications_; bool clean_up_on_task_runner_called_ = false; - - DISALLOW_COPY_AND_ASSIGN(NotificationPlatformBridgeLinuxImpl); }; NotificationPlatformBridgeLinux::NotificationPlatformBridgeLinux()
diff --git a/chrome/browser/notifications/notification_platform_bridge_linux.h b/chrome/browser/notifications/notification_platform_bridge_linux.h index 369b9ab..0c19b82 100644 --- a/chrome/browser/notifications/notification_platform_bridge_linux.h +++ b/chrome/browser/notifications/notification_platform_bridge_linux.h
@@ -8,7 +8,6 @@ #include <string> #include "base/callback_forward.h" -#include "base/macros.h" #include "base/memory/ref_counted.h" #include "chrome/browser/notifications/notification_platform_bridge.h" @@ -21,7 +20,10 @@ class NotificationPlatformBridgeLinux : public NotificationPlatformBridge { public: NotificationPlatformBridgeLinux(); - + NotificationPlatformBridgeLinux(const NotificationPlatformBridgeLinux&) = + delete; + NotificationPlatformBridgeLinux& operator=( + const NotificationPlatformBridgeLinux&) = delete; ~NotificationPlatformBridgeLinux() override; // NotificationPlatformBridge: @@ -44,8 +46,6 @@ void CleanUp(); scoped_refptr<NotificationPlatformBridgeLinuxImpl> impl_; - - DISALLOW_COPY_AND_ASSIGN(NotificationPlatformBridgeLinux); }; #endif // CHROME_BROWSER_NOTIFICATIONS_NOTIFICATION_PLATFORM_BRIDGE_LINUX_H_
diff --git a/chrome/browser/notifications/notification_platform_bridge_linux_unittest.cc b/chrome/browser/notifications/notification_platform_bridge_linux_unittest.cc index ba8d1c70..483e6b50 100644 --- a/chrome/browser/notifications/notification_platform_bridge_linux_unittest.cc +++ b/chrome/browser/notifications/notification_platform_bridge_linux_unittest.cc
@@ -313,6 +313,10 @@ class NotificationPlatformBridgeLinuxTest : public BrowserWithTestWindowTest { public: NotificationPlatformBridgeLinuxTest() = default; + NotificationPlatformBridgeLinuxTest( + const NotificationPlatformBridgeLinuxTest&) = delete; + NotificationPlatformBridgeLinuxTest& operator=( + const NotificationPlatformBridgeLinuxTest&) = delete; ~NotificationPlatformBridgeLinuxTest() override = default; void SetUp() override { @@ -443,8 +447,6 @@ writer.AppendString(action); std::move(action_invoked_callback_).Run(&signal); } - - DISALLOW_COPY_AND_ASSIGN(NotificationPlatformBridgeLinuxTest); }; TEST_F(NotificationPlatformBridgeLinuxTest, SetUpAndTearDown) {
diff --git a/chrome/browser/notifications/notification_platform_bridge_mac.h b/chrome/browser/notifications/notification_platform_bridge_mac.h index 0529ac9..b5ee7b6 100644 --- a/chrome/browser/notifications/notification_platform_bridge_mac.h +++ b/chrome/browser/notifications/notification_platform_bridge_mac.h
@@ -10,7 +10,6 @@ #include "base/compiler_specific.h" #include "base/mac/scoped_nsobject.h" -#include "base/macros.h" #include "chrome/browser/notifications/alert_dispatcher_mac.h" #include "chrome/browser/notifications/notification_common.h" #include "chrome/browser/notifications/notification_platform_bridge.h" @@ -31,6 +30,9 @@ NotificationPlatformBridgeMac(NSUserNotificationCenter* notification_center, id<AlertDispatcher> alert_dispatcher); + NotificationPlatformBridgeMac(const NotificationPlatformBridgeMac&) = delete; + NotificationPlatformBridgeMac& operator=( + const NotificationPlatformBridgeMac&) = delete; ~NotificationPlatformBridgeMac() override; // NotificationPlatformBridge implementation. @@ -66,8 +68,6 @@ // The object in charge of dispatching remote notifications. base::scoped_nsprotocol<id<AlertDispatcher>> alert_dispatcher_; - - DISALLOW_COPY_AND_ASSIGN(NotificationPlatformBridgeMac); }; #endif // CHROME_BROWSER_NOTIFICATIONS_NOTIFICATION_PLATFORM_BRIDGE_MAC_H_
diff --git a/chrome/browser/notifications/notification_platform_bridge_message_center.cc b/chrome/browser/notifications/notification_platform_bridge_message_center.cc index 2f92fe4..0edb79f 100644 --- a/chrome/browser/notifications/notification_platform_bridge_message_center.cc +++ b/chrome/browser/notifications/notification_platform_bridge_message_center.cc
@@ -31,6 +31,8 @@ notification_type_(notification_type) { DCHECK_NE(notification_type, NotificationHandler::Type::TRANSIENT); } + PassThroughDelegate(const PassThroughDelegate&) = delete; + PassThroughDelegate& operator=(const PassThroughDelegate&) = delete; void SettingsClick() override { NotificationDisplayServiceImpl::GetForProfile(profile_) @@ -74,8 +76,6 @@ Profile* profile_; message_center::Notification notification_; NotificationHandler::Type notification_type_; - - DISALLOW_COPY_AND_ASSIGN(PassThroughDelegate); }; } // namespace
diff --git a/chrome/browser/notifications/notification_platform_bridge_message_center.h b/chrome/browser/notifications/notification_platform_bridge_message_center.h index 180784d..4e389d9 100644 --- a/chrome/browser/notifications/notification_platform_bridge_message_center.h +++ b/chrome/browser/notifications/notification_platform_bridge_message_center.h
@@ -5,7 +5,6 @@ #ifndef CHROME_BROWSER_NOTIFICATIONS_NOTIFICATION_PLATFORM_BRIDGE_MESSAGE_CENTER_H_ #define CHROME_BROWSER_NOTIFICATIONS_NOTIFICATION_PLATFORM_BRIDGE_MESSAGE_CENTER_H_ -#include "base/macros.h" #include "chrome/browser/notifications/notification_platform_bridge.h" class Profile; @@ -21,6 +20,10 @@ : public NotificationPlatformBridge { public: explicit NotificationPlatformBridgeMessageCenter(Profile* profile); + NotificationPlatformBridgeMessageCenter( + const NotificationPlatformBridgeMessageCenter&) = delete; + NotificationPlatformBridgeMessageCenter& operator=( + const NotificationPlatformBridgeMessageCenter&) = delete; ~NotificationPlatformBridgeMessageCenter() override; // NotificationPlatformBridge implementation: @@ -36,8 +39,6 @@ private: Profile* profile_; - - DISALLOW_COPY_AND_ASSIGN(NotificationPlatformBridgeMessageCenter); }; #endif // CHROME_BROWSER_NOTIFICATIONS_NOTIFICATION_PLATFORM_BRIDGE_MESSAGE_CENTER_H_
diff --git a/chrome/browser/notifications/notification_platform_bridge_win.cc b/chrome/browser/notifications/notification_platform_bridge_win.cc index 68b903e..e7ca7d15 100644 --- a/chrome/browser/notifications/notification_platform_bridge_win.cc +++ b/chrome/browser/notifications/notification_platform_bridge_win.cc
@@ -159,6 +159,10 @@ InitializeExpectedDisplayedNotification, base::Unretained(this))); } + NotificationPlatformBridgeWinImpl(const NotificationPlatformBridgeWinImpl&) = + delete; + NotificationPlatformBridgeWinImpl& operator=( + const NotificationPlatformBridgeWinImpl&) = delete; // Obtain an IToastNotification interface from a given XML as in // |xml_template|. This function is only used when displaying notification in @@ -849,8 +853,6 @@ // The ToastNotifier to use to communicate with the Action Center. mswr::ComPtr<winui::Notifications::IToastNotifier> notifier_; - - DISALLOW_COPY_AND_ASSIGN(NotificationPlatformBridgeWinImpl); }; std::vector<mswr::ComPtr<winui::Notifications::IToastNotification>>*
diff --git a/chrome/browser/notifications/notification_platform_bridge_win.h b/chrome/browser/notifications/notification_platform_bridge_win.h index a026a7e..fc71768 100644 --- a/chrome/browser/notifications/notification_platform_bridge_win.h +++ b/chrome/browser/notifications/notification_platform_bridge_win.h
@@ -10,7 +10,6 @@ #include <windows.ui.notifications.h> #include <wrl/client.h> -#include "base/macros.h" #include "base/optional.h" #include "base/timer/timer.h" #include "chrome/browser/notifications/notification_platform_bridge.h" @@ -29,6 +28,9 @@ class NotificationPlatformBridgeWin : public NotificationPlatformBridge { public: NotificationPlatformBridgeWin(); + NotificationPlatformBridgeWin(const NotificationPlatformBridgeWin&) = delete; + NotificationPlatformBridgeWin& operator=( + const NotificationPlatformBridgeWin&) = delete; ~NotificationPlatformBridgeWin() override; // NotificationPlatformBridge implementation. @@ -116,8 +118,6 @@ scoped_refptr<NotificationPlatformBridgeWinImpl> impl_; scoped_refptr<base::SequencedTaskRunner> notification_task_runner_; - - DISALLOW_COPY_AND_ASSIGN(NotificationPlatformBridgeWin); }; #endif // CHROME_BROWSER_NOTIFICATIONS_NOTIFICATION_PLATFORM_BRIDGE_WIN_H_
diff --git a/chrome/browser/notifications/notification_platform_bridge_win_interactive_uitest.cc b/chrome/browser/notifications/notification_platform_bridge_win_interactive_uitest.cc index 660e6eda..d59d942 100644 --- a/chrome/browser/notifications/notification_platform_bridge_win_interactive_uitest.cc +++ b/chrome/browser/notifications/notification_platform_bridge_win_interactive_uitest.cc
@@ -197,6 +197,9 @@ public: explicit FakeIToastActivatedEventArgs(const base::string16& args) : arguments_(args) {} + FakeIToastActivatedEventArgs(const FakeIToastActivatedEventArgs&) = delete; + FakeIToastActivatedEventArgs& operator=(const FakeIToastActivatedEventArgs&) = + delete; ~FakeIToastActivatedEventArgs() override = default; HRESULT STDMETHODCALLTYPE get_Arguments(HSTRING* value) override { @@ -208,8 +211,6 @@ private: base::string16 arguments_; - - DISALLOW_COPY_AND_ASSIGN(FakeIToastActivatedEventArgs); }; IN_PROC_BROWSER_TEST_F(NotificationPlatformBridgeWinUITest, HandleEvent) {
diff --git a/chrome/browser/notifications/notification_platform_bridge_win_unittest.cc b/chrome/browser/notifications/notification_platform_bridge_win_unittest.cc index 393fa39..ec063fa 100644 --- a/chrome/browser/notifications/notification_platform_bridge_win_unittest.cc +++ b/chrome/browser/notifications/notification_platform_bridge_win_unittest.cc
@@ -51,6 +51,10 @@ public: NotificationPlatformBridgeWinTest() : task_environment_(base::test::TaskEnvironment::TimeSource::MOCK_TIME) {} + NotificationPlatformBridgeWinTest(const NotificationPlatformBridgeWinTest&) = + delete; + NotificationPlatformBridgeWinTest& operator=( + const NotificationPlatformBridgeWinTest&) = delete; ~NotificationPlatformBridgeWinTest() override = default; @@ -93,9 +97,6 @@ } content::BrowserTaskEnvironment task_environment_; - - private: - DISALLOW_COPY_AND_ASSIGN(NotificationPlatformBridgeWinTest); }; TEST_F(NotificationPlatformBridgeWinTest, GroupAndTag) {
diff --git a/chrome/browser/notifications/notification_system_observer.h b/chrome/browser/notifications/notification_system_observer.h index fc6319b..dffb7b425 100644 --- a/chrome/browser/notifications/notification_system_observer.h +++ b/chrome/browser/notifications/notification_system_observer.h
@@ -5,7 +5,6 @@ #ifndef CHROME_BROWSER_NOTIFICATIONS_NOTIFICATION_SYSTEM_OBSERVER_H_ #define CHROME_BROWSER_NOTIFICATIONS_NOTIFICATION_SYSTEM_OBSERVER_H_ -#include "base/macros.h" #include "base/scoped_observer.h" #include "content/public/browser/notification_observer.h" #include "content/public/browser/notification_registrar.h" @@ -25,6 +24,9 @@ extensions::ExtensionRegistryObserver { public: explicit NotificationSystemObserver(NotificationUIManager* ui_manager); + NotificationSystemObserver(const NotificationSystemObserver&) = delete; + NotificationSystemObserver& operator=(const NotificationSystemObserver&) = + delete; ~NotificationSystemObserver() override; protected: @@ -47,8 +49,6 @@ ScopedObserver<extensions::ExtensionRegistry, extensions::ExtensionRegistryObserver> extension_registry_observer_{this}; - - DISALLOW_COPY_AND_ASSIGN(NotificationSystemObserver); }; #endif // CHROME_BROWSER_NOTIFICATIONS_NOTIFICATION_SYSTEM_OBSERVER_H_
diff --git a/chrome/browser/notifications/notification_test_util.h b/chrome/browser/notifications/notification_test_util.h index 876e6233..a1618021 100644 --- a/chrome/browser/notifications/notification_test_util.h +++ b/chrome/browser/notifications/notification_test_util.h
@@ -11,7 +11,6 @@ #include <vector> #include "base/callback.h" -#include "base/macros.h" #include "build/build_config.h" #include "chrome/browser/notifications/notification_ui_manager.h" #include "ui/message_center/public/cpp/notification.h" @@ -22,6 +21,9 @@ class StubNotificationUIManager : public NotificationUIManager { public: StubNotificationUIManager(); + StubNotificationUIManager(const StubNotificationUIManager&) = delete; + StubNotificationUIManager& operator=(const StubNotificationUIManager&) = + delete; ~StubNotificationUIManager() override; // Returns the number of currently active notifications. @@ -60,8 +62,6 @@ bool is_shutdown_started_ = false; GURL last_canceled_source_; - - DISALLOW_COPY_AND_ASSIGN(StubNotificationUIManager); }; #if !defined(OS_ANDROID) @@ -70,14 +70,14 @@ class FullscreenStateWaiter { public: FullscreenStateWaiter(Browser* browser, bool desired_state); + FullscreenStateWaiter(const FullscreenStateWaiter&) = delete; + FullscreenStateWaiter& operator=(const FullscreenStateWaiter&) = delete; void Wait(); private: Browser* const browser_; bool desired_state_; - - DISALLOW_COPY_AND_ASSIGN(FullscreenStateWaiter); }; #endif
diff --git a/chrome/browser/notifications/notification_trigger_scheduler.h b/chrome/browser/notifications/notification_trigger_scheduler.h index 4fb5fc51..09cecbe70 100644 --- a/chrome/browser/notifications/notification_trigger_scheduler.h +++ b/chrome/browser/notifications/notification_trigger_scheduler.h
@@ -22,6 +22,9 @@ // Triggers pending notifications for all loaded profiles. static void TriggerNotifications(); + NotificationTriggerScheduler(const NotificationTriggerScheduler&) = delete; + NotificationTriggerScheduler& operator=(const NotificationTriggerScheduler&) = + delete; virtual ~NotificationTriggerScheduler(); // Schedules a trigger at |timestamp| that calls TriggerNotifications on each @@ -41,8 +44,6 @@ private: base::OneShotTimer trigger_timer_; - - DISALLOW_COPY_AND_ASSIGN(NotificationTriggerScheduler); }; #endif // CHROME_BROWSER_NOTIFICATIONS_NOTIFICATION_TRIGGER_SCHEDULER_H_
diff --git a/chrome/browser/notifications/notification_trigger_scheduler_android.h b/chrome/browser/notifications/notification_trigger_scheduler_android.h index 63b52a91..70bdc7d 100644 --- a/chrome/browser/notifications/notification_trigger_scheduler_android.h +++ b/chrome/browser/notifications/notification_trigger_scheduler_android.h
@@ -7,7 +7,6 @@ #include "base/android/jni_android.h" #include "base/lazy_instance.h" -#include "base/macros.h" #include "base/time/time.h" #include "chrome/browser/notifications/notification_trigger_scheduler.h" @@ -17,6 +16,10 @@ class NotificationTriggerSchedulerAndroid : public NotificationTriggerScheduler { public: + NotificationTriggerSchedulerAndroid( + const NotificationTriggerSchedulerAndroid&) = delete; + NotificationTriggerSchedulerAndroid& operator=( + const NotificationTriggerSchedulerAndroid&) = delete; ~NotificationTriggerSchedulerAndroid() override; // NotificationTriggerScheduler @@ -30,8 +33,6 @@ base::android::ScopedJavaGlobalRef<jobject> java_notification_trigger_scheduler_; - - DISALLOW_COPY_AND_ASSIGN(NotificationTriggerSchedulerAndroid); }; #endif // CHROME_BROWSER_NOTIFICATIONS_NOTIFICATION_TRIGGER_SCHEDULER_ANDROID_H_
diff --git a/chrome/browser/notifications/notification_ui_manager.h b/chrome/browser/notifications/notification_ui_manager.h index 25b9f50..4f87047 100644 --- a/chrome/browser/notifications/notification_ui_manager.h +++ b/chrome/browser/notifications/notification_ui_manager.h
@@ -10,7 +10,6 @@ #include <string> #include <vector> -#include "base/macros.h" #include "chrome/browser/notifications/notification_common.h" typedef void* ProfileID; @@ -43,6 +42,8 @@ return static_cast<ProfileID>(profile); } + NotificationUIManager(const NotificationUIManager&) = delete; + NotificationUIManager& operator=(const NotificationUIManager&) = delete; virtual ~NotificationUIManager() {} // Creates an initialized UI manager. @@ -92,9 +93,6 @@ protected: NotificationUIManager() {} - - private: - DISALLOW_COPY_AND_ASSIGN(NotificationUIManager); }; #endif // CHROME_BROWSER_NOTIFICATIONS_NOTIFICATION_UI_MANAGER_H_
diff --git a/chrome/browser/notifications/notification_ui_manager_browsertest.cc b/chrome/browser/notifications/notification_ui_manager_browsertest.cc index a4e72329..ef8e2f6a 100644 --- a/chrome/browser/notifications/notification_ui_manager_browsertest.cc +++ b/chrome/browser/notifications/notification_ui_manager_browsertest.cc
@@ -6,7 +6,6 @@ #include <string> #include "base/command_line.h" -#include "base/macros.h" #include "base/run_loop.h" #include "base/strings/string_number_conversions.h" #include "base/strings/string_util.h" @@ -52,6 +51,8 @@ class TestDelegate : public message_center::NotificationDelegate { public: TestDelegate() = default; + TestDelegate(const TestDelegate&) = delete; + TestDelegate& operator=(const TestDelegate&) = delete; void Close(bool by_user) override { log_ += "Close_"; log_ += (by_user ? "by_user_" : "programmatically_"); @@ -70,8 +71,6 @@ private: ~TestDelegate() override {} std::string log_; - - DISALLOW_COPY_AND_ASSIGN(TestDelegate); }; Notification CreateTestNotification(const std::string& id,
diff --git a/chrome/browser/notifications/notification_ui_manager_impl.h b/chrome/browser/notifications/notification_ui_manager_impl.h index d95fa5e1..4a2f12e0 100644 --- a/chrome/browser/notifications/notification_ui_manager_impl.h +++ b/chrome/browser/notifications/notification_ui_manager_impl.h
@@ -11,7 +11,6 @@ #include <vector> #include "base/gtest_prod_util.h" -#include "base/macros.h" #include "base/memory/weak_ptr.h" #include "base/scoped_observer.h" #include "base/time/time.h" @@ -42,6 +41,9 @@ public ProfileObserver { public: NotificationUIManagerImpl(); + NotificationUIManagerImpl(const NotificationUIManagerImpl&) = delete; + NotificationUIManagerImpl& operator=(const NotificationUIManagerImpl&) = + delete; ~NotificationUIManagerImpl() override; // NotificationUIManager @@ -111,8 +113,6 @@ // Tracks the current visibility status of the popup bubbles. bool popups_visible_ = false; - - DISALLOW_COPY_AND_ASSIGN(NotificationUIManagerImpl); }; #endif // CHROME_BROWSER_NOTIFICATIONS_NOTIFICATION_UI_MANAGER_IMPL_H_
diff --git a/chrome/browser/notifications/notification_ui_manager_interactive_uitest.cc b/chrome/browser/notifications/notification_ui_manager_interactive_uitest.cc index 4667ad02b79..3e7b5d4 100644 --- a/chrome/browser/notifications/notification_ui_manager_interactive_uitest.cc +++ b/chrome/browser/notifications/notification_ui_manager_interactive_uitest.cc
@@ -30,6 +30,10 @@ class NotificationUIManagerInteractiveUITest : public InProcessBrowserTest { public: NotificationUIManagerInteractiveUITest() = default; + NotificationUIManagerInteractiveUITest( + const NotificationUIManagerInteractiveUITest&) = delete; + NotificationUIManagerInteractiveUITest& operator=( + const NotificationUIManagerInteractiveUITest&) = delete; ~NotificationUIManagerInteractiveUITest() override = default; // InProcessBrowserTest overrides. @@ -79,8 +83,6 @@ const base::FilePath server_root_{FILE_PATH_LITERAL("chrome/test/data")}; std::unique_ptr<net::EmbeddedTestServer> https_server_; - - DISALLOW_COPY_AND_ASSIGN(NotificationUIManagerInteractiveUITest); }; // Make sure that clicks go through on web notifications. Regression test for
diff --git a/chrome/browser/notifications/notifier_controller.h b/chrome/browser/notifications/notifier_controller.h index b23375a6..4cbd6a6 100644 --- a/chrome/browser/notifications/notifier_controller.h +++ b/chrome/browser/notifications/notifier_controller.h
@@ -9,7 +9,6 @@ #include <vector> #include "ash/public/cpp/notifier_metadata.h" -#include "base/macros.h" class Profile; @@ -31,6 +30,8 @@ }; NotifierController() = default; + NotifierController(const NotifierController&) = delete; + NotifierController& operator=(const NotifierController&) = delete; virtual ~NotifierController() = default; // Returns notifiers to display in the settings UI. Not all notifiers appear @@ -45,9 +46,6 @@ virtual void SetNotifierEnabled(Profile* profile, const message_center::NotifierId& notifier_id, bool enabled) = 0; - - private: - DISALLOW_COPY_AND_ASSIGN(NotifierController); }; #endif // CHROME_BROWSER_NOTIFICATIONS_NOTIFIER_CONTROLLER_H_
diff --git a/chrome/browser/notifications/notifier_state_tracker.h b/chrome/browser/notifications/notifier_state_tracker.h index 0095073..a17068d 100644 --- a/chrome/browser/notifications/notifier_state_tracker.h +++ b/chrome/browser/notifications/notifier_state_tracker.h
@@ -8,7 +8,6 @@ #include <set> #include <string> -#include "base/macros.h" #include "components/keyed_service/core/keyed_service.h" #include "components/prefs/pref_member.h" #include "extensions/buildflags/buildflags.h" @@ -41,6 +40,8 @@ static void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* prefs); explicit NotifierStateTracker(Profile* profile); + NotifierStateTracker(const NotifierStateTracker&) = delete; + NotifierStateTracker& operator=(const NotifierStateTracker&) = delete; ~NotifierStateTracker() override; // Returns whether the notifier with |notifier_id| may send notifications. @@ -83,8 +84,6 @@ extensions::ExtensionRegistryObserver> extension_registry_observer_; #endif - - DISALLOW_COPY_AND_ASSIGN(NotifierStateTracker); }; #endif // CHROME_BROWSER_NOTIFICATIONS_NOTIFIER_STATE_TRACKER_H_
diff --git a/chrome/browser/notifications/notifier_state_tracker_factory.h b/chrome/browser/notifications/notifier_state_tracker_factory.h index a737373..fd018a3 100644 --- a/chrome/browser/notifications/notifier_state_tracker_factory.h +++ b/chrome/browser/notifications/notifier_state_tracker_factory.h
@@ -5,7 +5,6 @@ #ifndef CHROME_BROWSER_NOTIFICATIONS_NOTIFIER_STATE_TRACKER_FACTORY_H_ #define CHROME_BROWSER_NOTIFICATIONS_NOTIFIER_STATE_TRACKER_FACTORY_H_ -#include "base/macros.h" #include "base/memory/singleton.h" #include "components/keyed_service/content/browser_context_keyed_service_factory.h" @@ -21,6 +20,9 @@ friend struct base::DefaultSingletonTraits<NotifierStateTrackerFactory>; NotifierStateTrackerFactory(); + NotifierStateTrackerFactory(const NotifierStateTrackerFactory&) = delete; + NotifierStateTrackerFactory& operator=(const NotifierStateTrackerFactory&) = + delete; ~NotifierStateTrackerFactory() override; // BrowserContextKeyedServiceFactory implementation. @@ -28,8 +30,6 @@ content::BrowserContext* profile) const override; content::BrowserContext* GetBrowserContextToUse( content::BrowserContext* context) const override; - - DISALLOW_COPY_AND_ASSIGN(NotifierStateTrackerFactory); }; #endif // CHROME_BROWSER_NOTIFICATIONS_NOTIFIER_STATE_TRACKER_FACTORY_H_
diff --git a/chrome/browser/notifications/persistent_notification_handler.h b/chrome/browser/notifications/persistent_notification_handler.h index f9df19c..863caa9c 100644 --- a/chrome/browser/notifications/persistent_notification_handler.h +++ b/chrome/browser/notifications/persistent_notification_handler.h
@@ -7,7 +7,6 @@ #include <memory> -#include "base/macros.h" #include "base/memory/weak_ptr.h" #include "chrome/browser/notifications/notification_handler.h" #include "chrome/common/buildflags.h" @@ -23,6 +22,9 @@ class PersistentNotificationHandler : public NotificationHandler { public: PersistentNotificationHandler(); + PersistentNotificationHandler(const PersistentNotificationHandler&) = delete; + PersistentNotificationHandler& operator=( + const PersistentNotificationHandler&) = delete; ~PersistentNotificationHandler() override; // NotificationHandler implementation. @@ -60,8 +62,6 @@ #endif base::WeakPtrFactory<PersistentNotificationHandler> weak_ptr_factory_{this}; - - DISALLOW_COPY_AND_ASSIGN(PersistentNotificationHandler); }; #endif // CHROME_BROWSER_NOTIFICATIONS_PERSISTENT_NOTIFICATION_HANDLER_H_
diff --git a/chrome/browser/notifications/persistent_notification_handler_unittest.cc b/chrome/browser/notifications/persistent_notification_handler_unittest.cc index aae3e62..ef6858e 100644 --- a/chrome/browser/notifications/persistent_notification_handler_unittest.cc +++ b/chrome/browser/notifications/persistent_notification_handler_unittest.cc
@@ -8,7 +8,6 @@ #include "base/bind.h" #include "base/bind_helpers.h" -#include "base/macros.h" #include "base/run_loop.h" #include "chrome/browser/notifications/metrics/mock_notification_metrics_logger.h" #include "chrome/browser/notifications/metrics/notification_metrics_logger_factory.h" @@ -40,6 +39,10 @@ : permission_manager_( std::make_unique< testing::NiceMock<content::MockPermissionManager>>()) {} + TestingProfileWithPermissionManager( + const TestingProfileWithPermissionManager&) = delete; + TestingProfileWithPermissionManager& operator=( + const TestingProfileWithPermissionManager&) = delete; ~TestingProfileWithPermissionManager() override = default; @@ -59,8 +62,6 @@ private: std::unique_ptr<content::MockPermissionManager> permission_manager_; - - DISALLOW_COPY_AND_ASSIGN(TestingProfileWithPermissionManager); }; } // namespace @@ -69,6 +70,10 @@ public: PersistentNotificationHandlerTest() : display_service_tester_(&profile_), origin_(kExampleOrigin) {} + PersistentNotificationHandlerTest(const PersistentNotificationHandlerTest&) = + delete; + PersistentNotificationHandlerTest& operator=( + const PersistentNotificationHandlerTest&) = delete; ~PersistentNotificationHandlerTest() override = default; @@ -95,9 +100,6 @@ // Owned by the |profile_| as a keyed service. MockNotificationMetricsLogger* mock_logger_ = nullptr; - - private: - DISALLOW_COPY_AND_ASSIGN(PersistentNotificationHandlerTest); }; TEST_F(PersistentNotificationHandlerTest, OnClick_WithoutPermission) {
diff --git a/chrome/browser/notifications/platform_notification_service_factory.h b/chrome/browser/notifications/platform_notification_service_factory.h index e9be556..9db39ad3 100644 --- a/chrome/browser/notifications/platform_notification_service_factory.h +++ b/chrome/browser/notifications/platform_notification_service_factory.h
@@ -5,7 +5,6 @@ #ifndef CHROME_BROWSER_NOTIFICATIONS_PLATFORM_NOTIFICATION_SERVICE_FACTORY_H_ #define CHROME_BROWSER_NOTIFICATIONS_PLATFORM_NOTIFICATION_SERVICE_FACTORY_H_ -#include "base/macros.h" #include "base/memory/singleton.h" #include "components/keyed_service/content/browser_context_keyed_service_factory.h" @@ -15,6 +14,11 @@ class PlatformNotificationServiceFactory : public BrowserContextKeyedServiceFactory { public: + PlatformNotificationServiceFactory( + const PlatformNotificationServiceFactory&) = delete; + PlatformNotificationServiceFactory& operator=( + const PlatformNotificationServiceFactory&) = delete; + static PlatformNotificationServiceImpl* GetForProfile(Profile* profile); static PlatformNotificationServiceFactory* GetInstance(); @@ -29,8 +33,6 @@ content::BrowserContext* profile) const override; content::BrowserContext* GetBrowserContextToUse( content::BrowserContext* context) const override; - - DISALLOW_COPY_AND_ASSIGN(PlatformNotificationServiceFactory); }; #endif // CHROME_BROWSER_NOTIFICATIONS_PLATFORM_NOTIFICATION_SERVICE_FACTORY_H_
diff --git a/chrome/browser/notifications/platform_notification_service_impl.cc b/chrome/browser/notifications/platform_notification_service_impl.cc index 9071744d..f7caf22 100644 --- a/chrome/browser/notifications/platform_notification_service_impl.cc +++ b/chrome/browser/notifications/platform_notification_service_impl.cc
@@ -106,6 +106,9 @@ : public base::RefCounted<RevokeDeleteCountRecorder> { public: RevokeDeleteCountRecorder() : total_deleted_count_(0) {} + RevokeDeleteCountRecorder(const RevokeDeleteCountRecorder&) = delete; + RevokeDeleteCountRecorder& operator=(const RevokeDeleteCountRecorder&) = + delete; void OnDeleted(bool success, size_t deleted_count) { total_deleted_count_ += deleted_count; @@ -120,8 +123,6 @@ } size_t total_deleted_count_; - - DISALLOW_COPY_AND_ASSIGN(RevokeDeleteCountRecorder); }; } // namespace
diff --git a/chrome/browser/notifications/platform_notification_service_impl.h b/chrome/browser/notifications/platform_notification_service_impl.h index c7ee3ff8..926349b 100644 --- a/chrome/browser/notifications/platform_notification_service_impl.h +++ b/chrome/browser/notifications/platform_notification_service_impl.h
@@ -12,7 +12,6 @@ #include <unordered_set> #include "base/gtest_prod_util.h" -#include "base/macros.h" #include "base/strings/string16.h" #include "base/task/cancelable_task_tracker.h" #include "chrome/browser/notifications/notification_common.h" @@ -40,6 +39,10 @@ public KeyedService { public: explicit PlatformNotificationServiceImpl(Profile* profile); + PlatformNotificationServiceImpl(const PlatformNotificationServiceImpl&) = + delete; + PlatformNotificationServiceImpl& operator=( + const PlatformNotificationServiceImpl&) = delete; ~PlatformNotificationServiceImpl() override; // Register profile-specific prefs. @@ -131,8 +134,6 @@ // Testing-only closure to observe when a UKM event has been recorded. base::OnceClosure ukm_recorded_closure_for_testing_; - - DISALLOW_COPY_AND_ASSIGN(PlatformNotificationServiceImpl); }; #endif // CHROME_BROWSER_NOTIFICATIONS_PLATFORM_NOTIFICATION_SERVICE_IMPL_H_
diff --git a/chrome/browser/notifications/popups_only_ui_controller.h b/chrome/browser/notifications/popups_only_ui_controller.h index 25a6918..29958ea 100644 --- a/chrome/browser/notifications/popups_only_ui_controller.h +++ b/chrome/browser/notifications/popups_only_ui_controller.h
@@ -7,7 +7,6 @@ #include <memory> -#include "base/macros.h" #include "ui/message_center/message_center.h" #include "ui/message_center/message_center_observer.h" @@ -22,6 +21,8 @@ class PopupsOnlyUiController : public message_center::MessageCenterObserver { public: PopupsOnlyUiController(); + PopupsOnlyUiController(const PopupsOnlyUiController&) = delete; + PopupsOnlyUiController& operator=(const PopupsOnlyUiController&) = delete; ~PopupsOnlyUiController() override; // MessageCenterObserver: @@ -48,8 +49,6 @@ void ShowOrHidePopupBubbles(); bool popups_visible_ = false; - - DISALLOW_COPY_AND_ASSIGN(PopupsOnlyUiController); }; #endif // CHROME_BROWSER_NOTIFICATIONS_POPUPS_ONLY_UI_CONTROLLER_H_
diff --git a/chrome/browser/notifications/popups_only_ui_controller_unittest.cc b/chrome/browser/notifications/popups_only_ui_controller_unittest.cc index 9b3e91f..95e1229 100644 --- a/chrome/browser/notifications/popups_only_ui_controller_unittest.cc +++ b/chrome/browser/notifications/popups_only_ui_controller_unittest.cc
@@ -6,7 +6,6 @@ #include <stddef.h> -#include "base/macros.h" #include "base/strings/stringprintf.h" #include "base/strings/utf_string_conversions.h" #include "build/build_config.h" @@ -33,6 +32,9 @@ class PopupsOnlyUiControllerTest : public views::test::WidgetTest { public: PopupsOnlyUiControllerTest() = default; + PopupsOnlyUiControllerTest(const PopupsOnlyUiControllerTest&) = delete; + PopupsOnlyUiControllerTest& operator=(const PopupsOnlyUiControllerTest&) = + delete; ~PopupsOnlyUiControllerTest() override = default; void SetUp() override { @@ -85,9 +87,6 @@ bool HasNotification(const std::string& id) { return !!MessageCenter::Get()->FindVisibleNotificationById(id); } - - private: - DISALLOW_COPY_AND_ASSIGN(PopupsOnlyUiControllerTest); }; TEST_F(PopupsOnlyUiControllerTest, WebNotificationPopupBubble) {
diff --git a/chrome/browser/notifications/scheduler/display_agent_android.h b/chrome/browser/notifications/scheduler/display_agent_android.h index e1d91e6f..5fb4d644 100644 --- a/chrome/browser/notifications/scheduler/display_agent_android.h +++ b/chrome/browser/notifications/scheduler/display_agent_android.h
@@ -8,20 +8,19 @@ #include <memory> #include "base/android/scoped_java_ref.h" -#include "base/macros.h" #include "chrome/browser/notifications/scheduler/public/display_agent.h" class DisplayAgentAndroid : public notifications::DisplayAgent { public: DisplayAgentAndroid(); + DisplayAgentAndroid(const DisplayAgentAndroid&) = delete; + DisplayAgentAndroid& operator=(const DisplayAgentAndroid&) = delete; ~DisplayAgentAndroid() override; private: void ShowNotification( std::unique_ptr<notifications::NotificationData> notification_data, std::unique_ptr<SystemData> system_data) override; - - DISALLOW_COPY_AND_ASSIGN(DisplayAgentAndroid); }; #endif // CHROME_BROWSER_NOTIFICATIONS_SCHEDULER_DISPLAY_AGENT_ANDROID_H_
diff --git a/chrome/browser/notifications/scheduler/internal/background_task_coordinator.cc b/chrome/browser/notifications/scheduler/internal/background_task_coordinator.cc index 3a0d8ac..cdaf6c8 100644 --- a/chrome/browser/notifications/scheduler/internal/background_task_coordinator.cc +++ b/chrome/browser/notifications/scheduler/internal/background_task_coordinator.cc
@@ -28,6 +28,10 @@ const SchedulerConfig* config, base::Clock* clock) : background_task_(background_task), config_(config), clock_(clock) {} + BackgroundTaskCoordinatorHelper(const BackgroundTaskCoordinatorHelper&) = + delete; + BackgroundTaskCoordinatorHelper& operator=( + const BackgroundTaskCoordinatorHelper&) = delete; ~BackgroundTaskCoordinatorHelper() = default; void ScheduleBackgroundTask( @@ -168,8 +172,6 @@ const SchedulerConfig* config_; base::Clock* clock_; base::Optional<base::Time> background_task_time_; - - DISALLOW_COPY_AND_ASSIGN(BackgroundTaskCoordinatorHelper); }; } // namespace @@ -184,6 +186,9 @@ config_(config), clock_(clock) {} + BackgroundTaskCoordinatorImpl(const BackgroundTaskCoordinatorImpl&) = delete; + BackgroundTaskCoordinatorImpl& operator=( + const BackgroundTaskCoordinatorImpl&) = delete; ~BackgroundTaskCoordinatorImpl() override = default; private: @@ -204,8 +209,6 @@ // Clock to query the current timestamp. base::Clock* clock_; - - DISALLOW_COPY_AND_ASSIGN(BackgroundTaskCoordinatorImpl); }; // static
diff --git a/chrome/browser/notifications/scheduler/internal/background_task_coordinator_unittest.cc b/chrome/browser/notifications/scheduler/internal/background_task_coordinator_unittest.cc index 844e9c0..476e53a 100644 --- a/chrome/browser/notifications/scheduler/internal/background_task_coordinator_unittest.cc +++ b/chrome/browser/notifications/scheduler/internal/background_task_coordinator_unittest.cc
@@ -76,6 +76,9 @@ class BackgroundTaskCoordinatorTest : public testing::Test { public: BackgroundTaskCoordinatorTest() = default; + BackgroundTaskCoordinatorTest(const BackgroundTaskCoordinatorTest&) = delete; + BackgroundTaskCoordinatorTest& operator=( + const BackgroundTaskCoordinatorTest&) = delete; ~BackgroundTaskCoordinatorTest() override = default; protected: @@ -138,8 +141,6 @@ test::MockNotificationBackgroundTaskScheduler* background_task_; TestData test_data_; std::map<SchedulerClientType, std::unique_ptr<ClientState>> client_states_; - - DISALLOW_COPY_AND_ASSIGN(BackgroundTaskCoordinatorTest); }; // No notification persisted, then no background task needs to be scheduled.
diff --git a/chrome/browser/notifications/scheduler/internal/collection_store.h b/chrome/browser/notifications/scheduler/internal/collection_store.h index 7a1fdf0..774dcc7 100644 --- a/chrome/browser/notifications/scheduler/internal/collection_store.h +++ b/chrome/browser/notifications/scheduler/internal/collection_store.h
@@ -10,7 +10,6 @@ #include <vector> #include "base/callback.h" -#include "base/macros.h" namespace notifications { @@ -42,10 +41,9 @@ virtual void Delete(const std::string& key, UpdateCallback callback) = 0; CollectionStore() = default; + CollectionStore(const CollectionStore&) = delete; + CollectionStore& operator=(const CollectionStore&) = delete; virtual ~CollectionStore() = default; - - private: - DISALLOW_COPY_AND_ASSIGN(CollectionStore); }; } // namespace notifications
diff --git a/chrome/browser/notifications/scheduler/internal/display_decider.cc b/chrome/browser/notifications/scheduler/internal/display_decider.cc index d8d1e60..484f046 100644 --- a/chrome/browser/notifications/scheduler/internal/display_decider.cc +++ b/chrome/browser/notifications/scheduler/internal/display_decider.cc
@@ -36,6 +36,8 @@ last_shown_type_(SchedulerClientType::kUnknown), shown_(0) {} + DecisionHelper(const DecisionHelper&) = delete; + DecisionHelper& operator=(const DecisionHelper&) = delete; ~DecisionHelper() = default; // Figures out a list of notifications to show. @@ -164,8 +166,6 @@ SchedulerClientType last_shown_type_; std::map<SchedulerClientType, int> shown_per_type_; int shown_; - - DISALLOW_COPY_AND_ASSIGN(DecisionHelper); }; class DisplayDeciderImpl : public DisplayDecider { @@ -174,6 +174,8 @@ std::vector<SchedulerClientType> clients, base::Clock* clock) : config_(config), clients_(std::move(clients)), clock_(clock) {} + DisplayDeciderImpl(const DisplayDeciderImpl&) = delete; + DisplayDeciderImpl& operator=(const DisplayDeciderImpl&) = delete; ~DisplayDeciderImpl() override = default; private: @@ -204,8 +206,6 @@ const SchedulerConfig* config_; const std::vector<SchedulerClientType> clients_; base::Clock* clock_; - - DISALLOW_COPY_AND_ASSIGN(DisplayDeciderImpl); }; } // namespace
diff --git a/chrome/browser/notifications/scheduler/internal/display_decider.h b/chrome/browser/notifications/scheduler/internal/display_decider.h index e47124f..757131c 100644 --- a/chrome/browser/notifications/scheduler/internal/display_decider.h +++ b/chrome/browser/notifications/scheduler/internal/display_decider.h
@@ -13,7 +13,6 @@ #include <vector> #include "base/callback.h" -#include "base/macros.h" #include "chrome/browser/notifications/scheduler/public/notification_scheduler_types.h" namespace base { @@ -44,6 +43,8 @@ base::Clock* clock); DisplayDecider() = default; + DisplayDecider(const DisplayDecider&) = delete; + DisplayDecider& operator=(const DisplayDecider&) = delete; virtual ~DisplayDecider() = default; // Finds notifications to show. Returns a list of notification guids. @@ -51,9 +52,6 @@ Notifications notifications, ClientStates client_states, Results* results) = 0; - - private: - DISALLOW_COPY_AND_ASSIGN(DisplayDecider); }; } // namespace notifications
diff --git a/chrome/browser/notifications/scheduler/internal/display_decider_unittest.cc b/chrome/browser/notifications/scheduler/internal/display_decider_unittest.cc index 381b4ac..8f644561 100644 --- a/chrome/browser/notifications/scheduler/internal/display_decider_unittest.cc +++ b/chrome/browser/notifications/scheduler/internal/display_decider_unittest.cc
@@ -76,6 +76,8 @@ class DisplayDeciderTest : public testing::Test { public: DisplayDeciderTest() = default; + DisplayDeciderTest(const DisplayDeciderTest&) = delete; + DisplayDeciderTest& operator=(const DisplayDeciderTest&) = delete; ~DisplayDeciderTest() override = default; void SetUp() override { @@ -160,8 +162,6 @@ // Test target class and output. std::unique_ptr<DisplayDecider> decider_; DisplayDecider::Results results_; - - DISALLOW_COPY_AND_ASSIGN(DisplayDeciderTest); }; TEST_F(DisplayDeciderTest, NoNotification) {
diff --git a/chrome/browser/notifications/scheduler/internal/icon_converter.h b/chrome/browser/notifications/scheduler/internal/icon_converter.h index af617b9..8ea5115a 100644 --- a/chrome/browser/notifications/scheduler/internal/icon_converter.h +++ b/chrome/browser/notifications/scheduler/internal/icon_converter.h
@@ -10,7 +10,6 @@ #include <vector> #include "base/callback.h" -#include "base/macros.h" #include "chrome/browser/notifications/scheduler/internal/icon_converter_result.h" #include "third_party/skia/include/core/SkBitmap.h" @@ -25,6 +24,9 @@ using DecodeCallback = base::OnceCallback<void(std::unique_ptr<DecodeResult>)>; + IconConverter(const IconConverter&) = delete; + IconConverter& operator=(const IconConverter&) = delete; + // Converts SkBitmap icons to strings. virtual void ConvertIconToString(std::vector<SkBitmap> images, EncodeCallback callback) = 0; @@ -37,9 +39,6 @@ protected: IconConverter() = default; - - private: - DISALLOW_COPY_AND_ASSIGN(IconConverter); }; } // namespace notifications
diff --git a/chrome/browser/notifications/scheduler/internal/icon_converter_result.h b/chrome/browser/notifications/scheduler/internal/icon_converter_result.h index 3bcf1d77..86cd6c7 100644 --- a/chrome/browser/notifications/scheduler/internal/icon_converter_result.h +++ b/chrome/browser/notifications/scheduler/internal/icon_converter_result.h
@@ -8,7 +8,6 @@ #include <string> #include <vector> -#include "base/macros.h" #include "base/optional.h" #include "third_party/skia/include/core/SkBitmap.h" @@ -18,26 +17,24 @@ struct EncodeResult { EncodeResult(bool success, std::vector<std::string> data); bool operator==(const EncodeResult& other) const; + EncodeResult(const EncodeResult&) = delete; + EncodeResult& operator=(const EncodeResult&) = delete; ~EncodeResult(); bool success; std::vector<std::string> encoded_data; - - private: - DISALLOW_COPY_AND_ASSIGN(EncodeResult); }; // Result from IconConverter's decoding process. struct DecodeResult { DecodeResult(bool success, std::vector<SkBitmap> icons); bool operator==(const DecodeResult& other) const; + DecodeResult(const DecodeResult&) = delete; + DecodeResult& operator=(const DecodeResult&) = delete; ~DecodeResult(); bool success; std::vector<SkBitmap> decoded_icons; - - private: - DISALLOW_COPY_AND_ASSIGN(DecodeResult); }; } // namespace notifications
diff --git a/chrome/browser/notifications/scheduler/internal/icon_converter_unittest.cc b/chrome/browser/notifications/scheduler/internal/icon_converter_unittest.cc index 3f23d8d..7dabeac 100644 --- a/chrome/browser/notifications/scheduler/internal/icon_converter_unittest.cc +++ b/chrome/browser/notifications/scheduler/internal/icon_converter_unittest.cc
@@ -14,6 +14,8 @@ class IconConverterTest : public testing::Test { public: IconConverterTest() : encoded_result_(), decoded_result_() {} + IconConverterTest(const IconConverterTest&) = delete; + IconConverterTest& operator=(const IconConverterTest&) = delete; ~IconConverterTest() override = default; void SetUp() override { @@ -55,8 +57,6 @@ std::unique_ptr<IconConverter> icon_converter_; std::unique_ptr<EncodeResult> encoded_result_; std::unique_ptr<DecodeResult> decoded_result_; - - DISALLOW_COPY_AND_ASSIGN(IconConverterTest); }; TEST_F(IconConverterTest, EncodeRoundTrip) {
diff --git a/chrome/browser/notifications/scheduler/internal/icon_entry.h b/chrome/browser/notifications/scheduler/internal/icon_entry.h index 637c0f8..57d1957 100644 --- a/chrome/browser/notifications/scheduler/internal/icon_entry.h +++ b/chrome/browser/notifications/scheduler/internal/icon_entry.h
@@ -8,8 +8,6 @@ #include <string> #include <utility> -#include "base/macros.h" - namespace notifications { // The database entry that contains a notification icon, deserialized from the @@ -21,13 +19,12 @@ using IconData = std::string; IconEntry(); + IconEntry(const IconEntry&) = delete; + IconEntry& operator=(const IconEntry&) = delete; IconEntry(IconEntry&& other); // Raw data of the icon. IconData data; - - private: - DISALLOW_COPY_AND_ASSIGN(IconEntry); }; } // namespace notifications
diff --git a/chrome/browser/notifications/scheduler/internal/icon_store.h b/chrome/browser/notifications/scheduler/internal/icon_store.h index 2d8a8567..91b2e02 100644 --- a/chrome/browser/notifications/scheduler/internal/icon_store.h +++ b/chrome/browser/notifications/scheduler/internal/icon_store.h
@@ -12,7 +12,6 @@ #include "base/bind.h" #include "base/callback.h" -#include "base/macros.h" #include "base/memory/weak_ptr.h" #include "chrome/browser/notifications/proto/icon.pb.h" #include "chrome/browser/notifications/scheduler/internal/icon_converter.h" @@ -62,10 +61,9 @@ UpdateCallback callback) = 0; IconStore() = default; + IconStore(const IconStore&) = delete; + IconStore& operator=(const IconStore&) = delete; virtual ~IconStore() = default; - - private: - DISALLOW_COPY_AND_ASSIGN(IconStore); }; // IconStore implementation backed by a proto database. @@ -74,6 +72,8 @@ explicit IconProtoDbStore( std::unique_ptr<leveldb_proto::ProtoDatabase<proto::Icon, IconEntry>> db, std::unique_ptr<IconConverter> icon_converter); + IconProtoDbStore(const IconProtoDbStore&) = delete; + IconProtoDbStore& operator=(const IconProtoDbStore&) = delete; ~IconProtoDbStore() override; private: @@ -118,8 +118,6 @@ std::unique_ptr<IconConverter> icon_converter_; base::WeakPtrFactory<IconProtoDbStore> weak_ptr_factory_{this}; - - DISALLOW_COPY_AND_ASSIGN(IconProtoDbStore); }; } // namespace notifications
diff --git a/chrome/browser/notifications/scheduler/internal/icon_store_unittest.cc b/chrome/browser/notifications/scheduler/internal/icon_store_unittest.cc index ecd8672..3f1a7686 100644 --- a/chrome/browser/notifications/scheduler/internal/icon_store_unittest.cc +++ b/chrome/browser/notifications/scheduler/internal/icon_store_unittest.cc
@@ -28,13 +28,12 @@ class MockIconConverter : public IconConverter { public: MockIconConverter() = default; + MockIconConverter(const MockIconConverter&) = delete; + MockIconConverter& operator=(const MockIconConverter&) = delete; MOCK_METHOD2(ConvertIconToString, void(std::vector<SkBitmap>, IconConverter::EncodeCallback)); MOCK_METHOD2(ConvertStringToIcon, void(std::vector<std::string>, IconConverter::DecodeCallback)); - - private: - DISALLOW_COPY_AND_ASSIGN(MockIconConverter); }; class IconStoreTest : public testing::Test { @@ -44,6 +43,8 @@ load_result_(false), db_(nullptr), icon_converter_(nullptr) {} + IconStoreTest(const IconStoreTest&) = delete; + IconStoreTest& operator=(const IconStoreTest&) = delete; ~IconStoreTest() override = default; void SetUp() override { @@ -140,8 +141,6 @@ std::map<std::string, proto::Icon> db_entries_; leveldb_proto::test::FakeDB<proto::Icon, IconEntry>* db_; MockIconConverter* icon_converter_; - - DISALLOW_COPY_AND_ASSIGN(IconStoreTest); }; TEST_F(IconStoreTest, Init) {
diff --git a/chrome/browser/notifications/scheduler/internal/impression_history_tracker.h b/chrome/browser/notifications/scheduler/internal/impression_history_tracker.h index cba1d67..1914a83 100644 --- a/chrome/browser/notifications/scheduler/internal/impression_history_tracker.h +++ b/chrome/browser/notifications/scheduler/internal/impression_history_tracker.h
@@ -12,7 +12,6 @@ #include "base/callback.h" #include "base/containers/circular_deque.h" -#include "base/macros.h" #include "base/memory/weak_ptr.h" #include "base/time/clock.h" #include "base/time/time.h" @@ -37,16 +36,18 @@ using ThrottleConfigCallback = base::OnceCallback<void(std::unique_ptr<ThrottleConfig>)>; Delegate() = default; + Delegate(const Delegate&) = delete; + Delegate& operator=(const Delegate&) = delete; virtual ~Delegate() = default; // Get ThrottleConfig. virtual void GetThrottleConfig(SchedulerClientType type, ThrottleConfigCallback callback) = 0; - - private: - DISALLOW_COPY_AND_ASSIGN(Delegate); }; + ImpressionHistoryTracker(const ImpressionHistoryTracker&) = delete; + ImpressionHistoryTracker& operator=(const ImpressionHistoryTracker&) = delete; + // Initializes the impression tracker. virtual void Init(Delegate* delegate, InitCallback callback) = 0; @@ -80,9 +81,6 @@ protected: ImpressionHistoryTracker() = default; - - private: - DISALLOW_COPY_AND_ASSIGN(ImpressionHistoryTracker); }; // An implementation of ImpressionHistoryTracker backed by a database. @@ -93,6 +91,9 @@ std::vector<SchedulerClientType> registered_clients, std::unique_ptr<CollectionStore<ClientState>> store, base::Clock* clock); + ImpressionHistoryTrackerImpl(const ImpressionHistoryTrackerImpl&) = delete; + ImpressionHistoryTrackerImpl& operator=(const ImpressionHistoryTrackerImpl&) = + delete; ~ImpressionHistoryTrackerImpl() override; private: @@ -208,7 +209,6 @@ Delegate* delegate_; base::WeakPtrFactory<ImpressionHistoryTrackerImpl> weak_ptr_factory_{this}; - DISALLOW_COPY_AND_ASSIGN(ImpressionHistoryTrackerImpl); }; } // namespace notifications
diff --git a/chrome/browser/notifications/scheduler/internal/impression_history_tracker_unittest.cc b/chrome/browser/notifications/scheduler/internal/impression_history_tracker_unittest.cc index 42ec47b..9c9d2aa 100644 --- a/chrome/browser/notifications/scheduler/internal/impression_history_tracker_unittest.cc +++ b/chrome/browser/notifications/scheduler/internal/impression_history_tracker_unittest.cc
@@ -83,6 +83,8 @@ class MockImpressionStore : public CollectionStore<ClientState> { public: MockImpressionStore() {} + MockImpressionStore(const MockImpressionStore&) = delete; + MockImpressionStore& operator=(const MockImpressionStore&) = delete; MOCK_METHOD1(InitAndLoad, void(CollectionStore<ClientState>::LoadCallback)); MOCK_METHOD3(Add, @@ -95,27 +97,26 @@ base::OnceCallback<void(bool)>)); MOCK_METHOD2(Delete, void(const std::string&, base::OnceCallback<void(bool)>)); - - private: - DISALLOW_COPY_AND_ASSIGN(MockImpressionStore); }; class MockDelegate : public ImpressionHistoryTracker::Delegate { public: MockDelegate() = default; + MockDelegate(const MockDelegate&) = delete; + MockDelegate& operator=(const MockDelegate&) = delete; ~MockDelegate() final = default; MOCK_METHOD2(GetThrottleConfig, void(SchedulerClientType, base::OnceCallback<void(std::unique_ptr<ThrottleConfig>)>)); - - private: - DISALLOW_COPY_AND_ASSIGN(MockDelegate); }; // TODO(xingliu): Add more test cases following the test doc. class ImpressionHistoryTrackerTest : public ::testing::Test { public: ImpressionHistoryTrackerTest() : store_(nullptr), delegate_(nullptr) {} + ImpressionHistoryTrackerTest(const ImpressionHistoryTrackerTest&) = delete; + ImpressionHistoryTrackerTest& operator=(const ImpressionHistoryTrackerTest&) = + delete; ~ImpressionHistoryTrackerTest() override = default; void SetUp() override { @@ -190,8 +191,6 @@ std::unique_ptr<ImpressionHistoryTracker> impression_trakcer_; MockImpressionStore* store_; std::unique_ptr<MockDelegate> delegate_; - - DISALLOW_COPY_AND_ASSIGN(ImpressionHistoryTrackerTest); }; // New client data should be added to impression tracker. @@ -399,10 +398,11 @@ public ::testing::WithParamInterface<UserActionTestParam> { public: ImpressionHistoryTrackerUserActionTest() = default; + ImpressionHistoryTrackerUserActionTest( + const ImpressionHistoryTrackerUserActionTest&) = delete; + ImpressionHistoryTrackerUserActionTest& operator=( + const ImpressionHistoryTrackerUserActionTest&) = delete; ~ImpressionHistoryTrackerUserActionTest() override = default; - - private: - DISALLOW_COPY_AND_ASSIGN(ImpressionHistoryTrackerUserActionTest); }; const UserActionTestParam kUserActionTestParams[] = {
diff --git a/chrome/browser/notifications/scheduler/internal/impression_store.h b/chrome/browser/notifications/scheduler/internal/impression_store.h index b5e3a915..9836729 100644 --- a/chrome/browser/notifications/scheduler/internal/impression_store.h +++ b/chrome/browser/notifications/scheduler/internal/impression_store.h
@@ -10,7 +10,6 @@ #include <vector> #include "base/bind.h" -#include "base/macros.h" #include "base/memory/weak_ptr.h" #include "chrome/browser/notifications/proto/client_state.pb.h" #include "chrome/browser/notifications/scheduler/internal/collection_store.h" @@ -34,6 +33,8 @@ ImpressionStore( std::unique_ptr< leveldb_proto::ProtoDatabase<proto::ClientState, ClientState>> db); + ImpressionStore(const ImpressionStore&) = delete; + ImpressionStore& operator=(const ImpressionStore&) = delete; ~ImpressionStore() override; private: @@ -64,8 +65,6 @@ std::unique_ptr<leveldb_proto::ProtoDatabase<proto::ClientState, ClientState>> db_; base::WeakPtrFactory<ImpressionStore> weak_ptr_factory_{this}; - - DISALLOW_COPY_AND_ASSIGN(ImpressionStore); }; } // namespace notifications
diff --git a/chrome/browser/notifications/scheduler/internal/impression_store_unittest.cc b/chrome/browser/notifications/scheduler/internal/impression_store_unittest.cc index 34e947c..b442addc 100644 --- a/chrome/browser/notifications/scheduler/internal/impression_store_unittest.cc +++ b/chrome/browser/notifications/scheduler/internal/impression_store_unittest.cc
@@ -34,6 +34,8 @@ class ImpressionStoreTest : public testing::Test { public: ImpressionStoreTest() : load_result_(false), db_(nullptr) {} + ImpressionStoreTest(const ImpressionStoreTest&) = delete; + ImpressionStoreTest& operator=(const ImpressionStoreTest&) = delete; ~ImpressionStoreTest() override = default; void SetUp() override {} @@ -97,8 +99,6 @@ FakeDB<proto::ClientState, ClientState>* db_; std::unique_ptr<CollectionStore<ClientState>> store_; - - DISALLOW_COPY_AND_ASSIGN(ImpressionStoreTest); }; // Initializes an empty database should success.
diff --git a/chrome/browser/notifications/scheduler/internal/init_aware_scheduler.h b/chrome/browser/notifications/scheduler/internal/init_aware_scheduler.h index c58620c2..e2612b7d 100644 --- a/chrome/browser/notifications/scheduler/internal/init_aware_scheduler.h +++ b/chrome/browser/notifications/scheduler/internal/init_aware_scheduler.h
@@ -10,7 +10,6 @@ #include <vector> #include "base/callback.h" -#include "base/macros.h" #include "base/memory/weak_ptr.h" #include "base/optional.h" #include "chrome/browser/notifications/scheduler/internal/notification_scheduler.h" @@ -27,6 +26,10 @@ public: explicit InitAwareNotificationScheduler( std::unique_ptr<NotificationScheduler> impl); + InitAwareNotificationScheduler(const InitAwareNotificationScheduler&) = + delete; + InitAwareNotificationScheduler& operator=( + const InitAwareNotificationScheduler&) = delete; ~InitAwareNotificationScheduler() override; private: @@ -63,7 +66,6 @@ std::unique_ptr<NotificationScheduler> impl_; base::WeakPtrFactory<InitAwareNotificationScheduler> weak_ptr_factory_{this}; - DISALLOW_COPY_AND_ASSIGN(InitAwareNotificationScheduler); }; } // namespace notifications
diff --git a/chrome/browser/notifications/scheduler/internal/init_aware_scheduler_unittest.cc b/chrome/browser/notifications/scheduler/internal/init_aware_scheduler_unittest.cc index 52fc432..4b74f30 100644 --- a/chrome/browser/notifications/scheduler/internal/init_aware_scheduler_unittest.cc +++ b/chrome/browser/notifications/scheduler/internal/init_aware_scheduler_unittest.cc
@@ -23,6 +23,9 @@ class MockNotificationScheduler : public NotificationScheduler { public: MockNotificationScheduler() = default; + MockNotificationScheduler(const MockNotificationScheduler&) = delete; + MockNotificationScheduler& operator=(const MockNotificationScheduler&) = + delete; ~MockNotificationScheduler() override = default; MOCK_METHOD1(Init, void(InitCallback)); @@ -34,14 +37,15 @@ MOCK_METHOD1(OnStartTask, void(TaskFinishedCallback)); MOCK_METHOD0(OnStopTask, void()); MOCK_METHOD1(OnUserAction, void(const UserActionData&)); - - private: - DISALLOW_COPY_AND_ASSIGN(MockNotificationScheduler); }; class InitAwareNotificationSchedulerTest : public testing::Test { public: InitAwareNotificationSchedulerTest() : scheduler_impl_(nullptr) {} + InitAwareNotificationSchedulerTest( + const InitAwareNotificationSchedulerTest&) = delete; + InitAwareNotificationSchedulerTest& operator=( + const InitAwareNotificationSchedulerTest&) = delete; ~InitAwareNotificationSchedulerTest() override = default; void SetUp() override { @@ -67,8 +71,6 @@ base::test::TaskEnvironment task_environment_; MockNotificationScheduler* scheduler_impl_; std::unique_ptr<NotificationScheduler> init_aware_scheduler_; - - DISALLOW_COPY_AND_ASSIGN(InitAwareNotificationSchedulerTest); }; // Checks std::unique_ptr<NotificationParams> has specific guid.
diff --git a/chrome/browser/notifications/scheduler/internal/noop_notification_schedule_service.h b/chrome/browser/notifications/scheduler/internal/noop_notification_schedule_service.h index 5f64937..3dbdfc30 100644 --- a/chrome/browser/notifications/scheduler/internal/noop_notification_schedule_service.h +++ b/chrome/browser/notifications/scheduler/internal/noop_notification_schedule_service.h
@@ -19,6 +19,10 @@ public UserActionHandler { public: NoopNotificationScheduleService(); + NoopNotificationScheduleService(const NoopNotificationScheduleService&) = + delete; + NoopNotificationScheduleService& operator=( + const NoopNotificationScheduleService&) = delete; ~NoopNotificationScheduleService() override; private: @@ -39,8 +43,6 @@ // UserActionHandler implementation. void OnUserAction(const UserActionData& action_data) override; - - DISALLOW_COPY_AND_ASSIGN(NoopNotificationScheduleService); }; } // namespace notifications
diff --git a/chrome/browser/notifications/scheduler/internal/notification_schedule_service_impl.h b/chrome/browser/notifications/scheduler/internal/notification_schedule_service_impl.h index 229fdf3..b7ff504 100644 --- a/chrome/browser/notifications/scheduler/internal/notification_schedule_service_impl.h +++ b/chrome/browser/notifications/scheduler/internal/notification_schedule_service_impl.h
@@ -8,7 +8,6 @@ #include <memory> #include <string> -#include "base/macros.h" #include "base/memory/weak_ptr.h" #include "chrome/browser/notifications/scheduler/public/notification_schedule_service.h" #include "chrome/browser/notifications/scheduler/public/user_action_handler.h" @@ -25,6 +24,10 @@ public: explicit NotificationScheduleServiceImpl( std::unique_ptr<NotificationScheduler> scheduler); + NotificationScheduleServiceImpl(const NotificationScheduleServiceImpl&) = + delete; + NotificationScheduleServiceImpl& operator=( + const NotificationScheduleServiceImpl&) = delete; ~NotificationScheduleServiceImpl() override; private: @@ -53,7 +56,6 @@ std::unique_ptr<NotificationScheduler> scheduler_; base::WeakPtrFactory<NotificationScheduleServiceImpl> weak_ptr_factory_{this}; - DISALLOW_COPY_AND_ASSIGN(NotificationScheduleServiceImpl); }; } // namespace notifications
diff --git a/chrome/browser/notifications/scheduler/internal/notification_scheduler.cc b/chrome/browser/notifications/scheduler/internal/notification_scheduler.cc index 484fc8f..2c24a36 100644 --- a/chrome/browser/notifications/scheduler/internal/notification_scheduler.cc +++ b/chrome/browser/notifications/scheduler/internal/notification_scheduler.cc
@@ -40,7 +40,8 @@ public: using InitCallback = base::OnceCallback<void(bool)>; InitHelper() : context_(nullptr) {} - + InitHelper(const InitHelper&) = delete; + InitHelper& operator=(const InitHelper&) = delete; ~InitHelper() = default; // Initializes subsystems in notification scheduler, |callback| will be @@ -80,7 +81,6 @@ InitCallback callback_; base::WeakPtrFactory<InitHelper> weak_ptr_factory_{this}; - DISALLOW_COPY_AND_ASSIGN(InitHelper); }; // Helper class to display multiple notifications, and invoke a callback when @@ -109,6 +109,8 @@ } } + DisplayHelper(const DisplayHelper&) = delete; + DisplayHelper& operator=(const DisplayHelper&) = delete; ~DisplayHelper() = default; private: @@ -188,8 +190,6 @@ FinishCallback finish_callback_; int shown_count_; base::WeakPtrFactory<DisplayHelper> weak_ptr_factory_{this}; - - DISALLOW_COPY_AND_ASSIGN(DisplayHelper); }; // Implementation of NotificationScheduler. @@ -200,6 +200,9 @@ std::unique_ptr<NotificationSchedulerContext> context) : context_(std::move(context)) {} + NotificationSchedulerImpl(const NotificationSchedulerImpl&) = delete; + NotificationSchedulerImpl& operator=(const NotificationSchedulerImpl&) = + delete; ~NotificationSchedulerImpl() override = default; private: @@ -381,7 +384,6 @@ std::unique_ptr<DisplayHelper> display_helper_; base::WeakPtrFactory<NotificationSchedulerImpl> weak_ptr_factory_{this}; - DISALLOW_COPY_AND_ASSIGN(NotificationSchedulerImpl); }; } // namespace
diff --git a/chrome/browser/notifications/scheduler/internal/notification_scheduler.h b/chrome/browser/notifications/scheduler/internal/notification_scheduler.h index 1b0bb91..80f4c62 100644 --- a/chrome/browser/notifications/scheduler/internal/notification_scheduler.h +++ b/chrome/browser/notifications/scheduler/internal/notification_scheduler.h
@@ -8,7 +8,6 @@ #include <memory> #include "base/callback.h" -#include "base/macros.h" #include "chrome/browser/notifications/scheduler/public/client_overview.h" #include "chrome/browser/notifications/scheduler/public/notification_background_task_scheduler.h" #include "chrome/browser/notifications/scheduler/public/user_action_handler.h" @@ -29,6 +28,8 @@ std::unique_ptr<NotificationSchedulerContext> context); NotificationScheduler(); + NotificationScheduler(const NotificationScheduler&) = delete; + NotificationScheduler& operator=(const NotificationScheduler&) = delete; ~NotificationScheduler() override; // Initializes the scheduler. @@ -47,9 +48,6 @@ // Deletes all notifications of a given |SchedulerClientType|. virtual void DeleteAllNotifications(SchedulerClientType type) = 0; - - private: - DISALLOW_COPY_AND_ASSIGN(NotificationScheduler); }; } // namespace notifications
diff --git a/chrome/browser/notifications/scheduler/internal/notification_scheduler_context.h b/chrome/browser/notifications/scheduler/internal/notification_scheduler_context.h index c8d95052..dbd4316 100644 --- a/chrome/browser/notifications/scheduler/internal/notification_scheduler_context.h +++ b/chrome/browser/notifications/scheduler/internal/notification_scheduler_context.h
@@ -8,7 +8,6 @@ #include <memory> #include <vector> -#include "base/macros.h" #include "chrome/browser/notifications/scheduler/public/notification_scheduler_types.h" namespace notifications { @@ -33,6 +32,9 @@ std::unique_ptr<DisplayAgent> display_agent, std::unique_ptr<DisplayDecider> display_decider, std::unique_ptr<SchedulerConfig> config); + NotificationSchedulerContext(const NotificationSchedulerContext&) = delete; + NotificationSchedulerContext& operator=(const NotificationSchedulerContext&) = + delete; ~NotificationSchedulerContext(); NotificationSchedulerClientRegistrar* client_registrar() { @@ -78,8 +80,6 @@ // Used to schedule background task in OS level. std::unique_ptr<BackgroundTaskCoordinator> background_task_coordinator_; - - DISALLOW_COPY_AND_ASSIGN(NotificationSchedulerContext); }; } // namespace notifications
diff --git a/chrome/browser/notifications/scheduler/internal/notification_scheduler_unittest.cc b/chrome/browser/notifications/scheduler/internal/notification_scheduler_unittest.cc index a511106..506be23 100644 --- a/chrome/browser/notifications/scheduler/internal/notification_scheduler_unittest.cc +++ b/chrome/browser/notifications/scheduler/internal/notification_scheduler_unittest.cc
@@ -50,6 +50,9 @@ task_coordinator_(nullptr), display_agent_(nullptr), display_decider_(nullptr) {} + NotificationSchedulerTest(const NotificationSchedulerTest&) = delete; + NotificationSchedulerTest& operator=(const NotificationSchedulerTest&) = + delete; ~NotificationSchedulerTest() override = default; void SetUp() override { @@ -150,7 +153,6 @@ test::MockDisplayDecider* display_decider_; std::unique_ptr<NotificationScheduler> notification_scheduler_; - DISALLOW_COPY_AND_ASSIGN(NotificationSchedulerTest); }; // Tests successful initialization flow.
diff --git a/chrome/browser/notifications/scheduler/internal/notification_store.h b/chrome/browser/notifications/scheduler/internal/notification_store.h index 58254f3..b714544 100644 --- a/chrome/browser/notifications/scheduler/internal/notification_store.h +++ b/chrome/browser/notifications/scheduler/internal/notification_store.h
@@ -11,7 +11,6 @@ #include <utility> #include <vector> -#include "base/macros.h" #include "base/memory/weak_ptr.h" #include "chrome/browser/notifications/proto/notification_entry.pb.h" #include "chrome/browser/notifications/scheduler/internal/collection_store.h" @@ -34,6 +33,8 @@ NotificationStore( std::unique_ptr<leveldb_proto::ProtoDatabase<proto::NotificationEntry, NotificationEntry>> db); + NotificationStore(const NotificationStore&) = delete; + NotificationStore& operator=(const NotificationStore&) = delete; ~NotificationStore() override; private: @@ -67,7 +68,6 @@ db_; base::WeakPtrFactory<NotificationStore> weak_ptr_factory_{this}; - DISALLOW_COPY_AND_ASSIGN(NotificationStore); }; } // namespace notifications
diff --git a/chrome/browser/notifications/scheduler/internal/notification_store_unittest.cc b/chrome/browser/notifications/scheduler/internal/notification_store_unittest.cc index 9676c10..db9303f 100644 --- a/chrome/browser/notifications/scheduler/internal/notification_store_unittest.cc +++ b/chrome/browser/notifications/scheduler/internal/notification_store_unittest.cc
@@ -30,6 +30,8 @@ class NotificationStoreTest : public testing::Test { public: NotificationStoreTest() : load_result_(false) {} + NotificationStoreTest(const NotificationStoreTest&) = delete; + NotificationStoreTest& operator=(const NotificationStoreTest&) = delete; ~NotificationStoreTest() override = default; void SetUp() override {} @@ -97,8 +99,6 @@ std::unique_ptr<CollectionStore<NotificationEntry>> store_; Entries loaded_entries_; bool load_result_; - - DISALLOW_COPY_AND_ASSIGN(NotificationStoreTest); }; // Verifies initialization with empty database.
diff --git a/chrome/browser/notifications/scheduler/internal/png_icon_converter_impl.h b/chrome/browser/notifications/scheduler/internal/png_icon_converter_impl.h index c071f48..8a59ce4 100644 --- a/chrome/browser/notifications/scheduler/internal/png_icon_converter_impl.h +++ b/chrome/browser/notifications/scheduler/internal/png_icon_converter_impl.h
@@ -17,6 +17,8 @@ class PngIconConverterImpl : public IconConverter { public: PngIconConverterImpl(); + PngIconConverterImpl(const PngIconConverterImpl&) = delete; + PngIconConverterImpl& operator=(const PngIconConverterImpl&) = delete; ~PngIconConverterImpl() override; private: @@ -25,8 +27,6 @@ EncodeCallback callback) override; void ConvertStringToIcon(std::vector<std::string> encoded_data, DecodeCallback callback) override; - - DISALLOW_COPY_AND_ASSIGN(PngIconConverterImpl); }; } // namespace notifications
diff --git a/chrome/browser/notifications/scheduler/internal/scheduled_notification_manager.cc b/chrome/browser/notifications/scheduler/internal/scheduled_notification_manager.cc index b0fa935..b79ff93f 100644 --- a/chrome/browser/notifications/scheduler/internal/scheduled_notification_manager.cc +++ b/chrome/browser/notifications/scheduler/internal/scheduled_notification_manager.cc
@@ -60,6 +60,10 @@ icon_store_(std::move(icon_store)), clients_(clients.begin(), clients.end()), config_(config) {} + ScheduledNotificationManagerImpl(const ScheduledNotificationManagerImpl&) = + delete; + ScheduledNotificationManagerImpl& operator=( + const ScheduledNotificationManagerImpl&) = delete; private: // NotificationManager implementation. @@ -443,7 +447,6 @@ const SchedulerConfig& config_; base::WeakPtrFactory<ScheduledNotificationManagerImpl> weak_ptr_factory_{ this}; - DISALLOW_COPY_AND_ASSIGN(ScheduledNotificationManagerImpl); }; } // namespace
diff --git a/chrome/browser/notifications/scheduler/internal/scheduled_notification_manager.h b/chrome/browser/notifications/scheduler/internal/scheduled_notification_manager.h index 9b62e6c..946b35d9 100644 --- a/chrome/browser/notifications/scheduler/internal/scheduled_notification_manager.h +++ b/chrome/browser/notifications/scheduler/internal/scheduled_notification_manager.h
@@ -11,7 +11,6 @@ #include <vector> #include "base/callback.h" -#include "base/macros.h" #include "chrome/browser/notifications/scheduler/internal/collection_store.h" #include "chrome/browser/notifications/scheduler/public/notification_scheduler_types.h" #include "third_party/skia/include/core/SkBitmap.h" @@ -33,6 +32,10 @@ using DisplayCallback = base::OnceCallback<void(std::unique_ptr<NotificationEntry>)>; + ScheduledNotificationManager(const ScheduledNotificationManager&) = delete; + ScheduledNotificationManager& operator=(const ScheduledNotificationManager&) = + delete; + // Creates the instance. static std::unique_ptr<ScheduledNotificationManager> Create( std::unique_ptr<CollectionStore<NotificationEntry>> notification_store, @@ -70,9 +73,6 @@ protected: ScheduledNotificationManager(); - - private: - DISALLOW_COPY_AND_ASSIGN(ScheduledNotificationManager); }; } // namespace notifications
diff --git a/chrome/browser/notifications/scheduler/internal/scheduled_notification_manager_unittest.cc b/chrome/browser/notifications/scheduler/internal/scheduled_notification_manager_unittest.cc index 332e094..921c364 100644 --- a/chrome/browser/notifications/scheduler/internal/scheduled_notification_manager_unittest.cc +++ b/chrome/browser/notifications/scheduler/internal/scheduled_notification_manager_unittest.cc
@@ -79,6 +79,8 @@ class MockNotificationStore : public CollectionStore<NotificationEntry> { public: MockNotificationStore() {} + MockNotificationStore(const MockNotificationStore&) = delete; + MockNotificationStore& operator=(const MockNotificationStore&) = delete; MOCK_METHOD1(InitAndLoad, void(CollectionStore<NotificationEntry>::LoadCallback)); @@ -92,14 +94,13 @@ base::OnceCallback<void(bool)>)); MOCK_METHOD2(Delete, void(const std::string&, base::OnceCallback<void(bool)>)); - - private: - DISALLOW_COPY_AND_ASSIGN(MockNotificationStore); }; class MockIconStore : public IconStore { public: MockIconStore() {} + MockIconStore(const MockIconStore&) = delete; + MockIconStore& operator=(const MockIconStore&) = delete; MOCK_METHOD1(InitAndLoadKeys, void(IconStore::InitAndLoadKeysCallback)); MOCK_METHOD2(LoadIcons, @@ -110,15 +111,16 @@ MOCK_METHOD2(DeleteIcons, void(const std::vector<std::string>&, IconStore::UpdateCallback)); - - private: - DISALLOW_COPY_AND_ASSIGN(MockIconStore); }; class ScheduledNotificationManagerTest : public testing::Test { public: ScheduledNotificationManagerTest() : notification_store_(nullptr), icon_store_(nullptr) {} + ScheduledNotificationManagerTest(const ScheduledNotificationManagerTest&) = + delete; + ScheduledNotificationManagerTest& operator=( + const ScheduledNotificationManagerTest&) = delete; ~ScheduledNotificationManagerTest() override = default; void SetUp() override { @@ -213,8 +215,6 @@ std::vector<SchedulerClientType> clients_; std::unique_ptr<ScheduledNotificationManager> manager_; SchedulerConfig config_; - - DISALLOW_COPY_AND_ASSIGN(ScheduledNotificationManagerTest); }; // Verify that error is received when notification database failed to
diff --git a/chrome/browser/notifications/scheduler/internal/scheduler_config.h b/chrome/browser/notifications/scheduler/internal/scheduler_config.h index 12ec96e..96eb5a2 100644 --- a/chrome/browser/notifications/scheduler/internal/scheduler_config.h +++ b/chrome/browser/notifications/scheduler/internal/scheduler_config.h
@@ -7,7 +7,6 @@ #include <memory> -#include "base/macros.h" #include "base/time/time.h" namespace notifications { @@ -50,6 +49,8 @@ static std::unique_ptr<SchedulerConfig> CreateFromFinch(); SchedulerConfig(); + SchedulerConfig(const SchedulerConfig&) = delete; + SchedulerConfig& operator=(const SchedulerConfig&) = delete; ~SchedulerConfig(); // Maximum number of all types of notifications shown to the user per day. @@ -83,9 +84,6 @@ // The time window to launch the background task. base::TimeDelta background_task_window_duration; - - private: - DISALLOW_COPY_AND_ASSIGN(SchedulerConfig); }; } // namespace notifications
diff --git a/chrome/browser/notifications/scheduler/internal/scheduler_utils_unittest.cc b/chrome/browser/notifications/scheduler/internal/scheduler_utils_unittest.cc index 950f9f35..815b105 100644 --- a/chrome/browser/notifications/scheduler/internal/scheduler_utils_unittest.cc +++ b/chrome/browser/notifications/scheduler/internal/scheduler_utils_unittest.cc
@@ -23,6 +23,8 @@ class SchedulerUtilsTest : public testing::Test { public: SchedulerUtilsTest() {} + SchedulerUtilsTest(const SchedulerUtilsTest&) = delete; + SchedulerUtilsTest& operator=(const SchedulerUtilsTest&) = delete; ~SchedulerUtilsTest() override = default; void SetUp() override { config_.initial_daily_shown_per_type = 100; } @@ -63,7 +65,6 @@ test::FakeClock clock_; SchedulerConfig config_; base::Time beginning_of_today_; - DISALLOW_COPY_AND_ASSIGN(SchedulerUtilsTest); }; // Verifies we can get the correct time stamp at certain hour in yesterday.
diff --git a/chrome/browser/notifications/scheduler/internal/webui_client.h b/chrome/browser/notifications/scheduler/internal/webui_client.h index 8fd55e9f..ece682ce 100644 --- a/chrome/browser/notifications/scheduler/internal/webui_client.h +++ b/chrome/browser/notifications/scheduler/internal/webui_client.h
@@ -17,6 +17,8 @@ class WebUIClient : public NotificationSchedulerClient { public: WebUIClient(); + WebUIClient(const WebUIClient&) = delete; + WebUIClient& operator=(const WebUIClient&) = delete; ~WebUIClient() override; private: @@ -28,8 +30,6 @@ std::set<std::string> guids) override; void OnUserAction(const UserActionData& action_data) override; void GetThrottleConfig(ThrottleConfigCallback callback) override; - - DISALLOW_COPY_AND_ASSIGN(WebUIClient); }; } // namespace notifications
diff --git a/chrome/browser/notifications/scheduler/notification_background_task_scheduler_android.h b/chrome/browser/notifications/scheduler/notification_background_task_scheduler_android.h index 1cf4c12..8e19e32 100644 --- a/chrome/browser/notifications/scheduler/notification_background_task_scheduler_android.h +++ b/chrome/browser/notifications/scheduler/notification_background_task_scheduler_android.h
@@ -5,7 +5,6 @@ #ifndef CHROME_BROWSER_NOTIFICATIONS_SCHEDULER_NOTIFICATION_BACKGROUND_TASK_SCHEDULER_ANDROID_H_ #define CHROME_BROWSER_NOTIFICATIONS_SCHEDULER_NOTIFICATION_BACKGROUND_TASK_SCHEDULER_ANDROID_H_ -#include "base/macros.h" #include "base/time/time.h" #include "chrome/browser/notifications/scheduler/public/notification_background_task_scheduler.h" @@ -18,6 +17,10 @@ : public notifications::NotificationBackgroundTaskScheduler { public: NotificationBackgroundTaskSchedulerAndroid(); + NotificationBackgroundTaskSchedulerAndroid( + const NotificationBackgroundTaskSchedulerAndroid&) = delete; + NotificationBackgroundTaskSchedulerAndroid& operator=( + const NotificationBackgroundTaskSchedulerAndroid&) = delete; ~NotificationBackgroundTaskSchedulerAndroid() override; private: @@ -25,8 +28,6 @@ void Schedule(base::TimeDelta window_start, base::TimeDelta window_end) override; void Cancel() override; - - DISALLOW_COPY_AND_ASSIGN(NotificationBackgroundTaskSchedulerAndroid); }; #endif // CHROME_BROWSER_NOTIFICATIONS_SCHEDULER_NOTIFICATION_BACKGROUND_TASK_SCHEDULER_ANDROID_H_
diff --git a/chrome/browser/notifications/scheduler/notification_background_task_scheduler_impl.h b/chrome/browser/notifications/scheduler/notification_background_task_scheduler_impl.h index 467c6f9..b606ea8 100644 --- a/chrome/browser/notifications/scheduler/notification_background_task_scheduler_impl.h +++ b/chrome/browser/notifications/scheduler/notification_background_task_scheduler_impl.h
@@ -5,7 +5,6 @@ #ifndef CHROME_BROWSER_NOTIFICATIONS_SCHEDULER_NOTIFICATION_BACKGROUND_TASK_SCHEDULER_IMPL_H_ #define CHROME_BROWSER_NOTIFICATIONS_SCHEDULER_NOTIFICATION_BACKGROUND_TASK_SCHEDULER_IMPL_H_ -#include "base/macros.h" #include "base/time/time.h" #include "chrome/browser/notifications/scheduler/public/notification_background_task_scheduler.h" @@ -14,6 +13,10 @@ : public notifications::NotificationBackgroundTaskScheduler { public: NotificationBackgroundTaskSchedulerImpl(); + NotificationBackgroundTaskSchedulerImpl( + const NotificationBackgroundTaskSchedulerImpl&) = delete; + NotificationBackgroundTaskSchedulerImpl& operator=( + const NotificationBackgroundTaskSchedulerImpl&) = delete; ~NotificationBackgroundTaskSchedulerImpl() override; private: @@ -21,8 +24,6 @@ void Schedule(base::TimeDelta window_start, base::TimeDelta window_end) override; void Cancel() override; - - DISALLOW_COPY_AND_ASSIGN(NotificationBackgroundTaskSchedulerImpl); }; #endif // CHROME_BROWSER_NOTIFICATIONS_SCHEDULER_NOTIFICATION_BACKGROUND_TASK_SCHEDULER_IMPL_H_
diff --git a/chrome/browser/notifications/scheduler/notification_schedule_service_browsertest.cc b/chrome/browser/notifications/scheduler/notification_schedule_service_browsertest.cc index 49d044e9..774d21a 100644 --- a/chrome/browser/notifications/scheduler/notification_schedule_service_browsertest.cc +++ b/chrome/browser/notifications/scheduler/notification_schedule_service_browsertest.cc
@@ -8,7 +8,6 @@ #include <utility> #include <vector> -#include "base/macros.h" #include "base/run_loop.h" #include "base/strings/utf_string_conversions.h" #include "base/test/scoped_feature_list.h" @@ -39,6 +38,8 @@ class TestClient : public NotificationSchedulerClient { public: TestClient() {} + TestClient(const TestClient&) = delete; + TestClient& operator=(const TestClient&) = delete; ~TestClient() override = default; const std::vector<NotificationData>& shown_notification_data() const { @@ -68,13 +69,14 @@ // Any NotificationData received before showing the notification. std::vector<NotificationData> shown_notification_data_; - - DISALLOW_COPY_AND_ASSIGN(TestClient); }; class TestBackgroundTaskScheduler : public NotificationBackgroundTaskScheduler { public: TestBackgroundTaskScheduler() = default; + TestBackgroundTaskScheduler(const TestBackgroundTaskScheduler&) = delete; + TestBackgroundTaskScheduler& operator=(const TestBackgroundTaskScheduler&) = + delete; ~TestBackgroundTaskScheduler() override = default; // Waits until a background task has been updated. @@ -111,8 +113,6 @@ // Delegates to a mock to setup call expectations. test::MockNotificationBackgroundTaskScheduler mock_background_task_; - - DISALLOW_COPY_AND_ASSIGN(TestBackgroundTaskScheduler); }; // Browser test for notification scheduling system. Uses real database @@ -123,6 +123,10 @@ scoped_feature_list_.InitWithFeatures( {features::kNotificationScheduleService}, {}); } + NotificationScheduleServiceTest(const NotificationScheduleServiceTest&) = + delete; + NotificationScheduleServiceTest& operator=( + const NotificationScheduleServiceTest&) = delete; ~NotificationScheduleServiceTest() override {} @@ -208,8 +212,6 @@ std::unique_ptr<KeyedService> service_; TestBackgroundTaskScheduler* task_scheduler_; std::map<SchedulerClientType, TestClient*> clients_; - - DISALLOW_COPY_AND_ASSIGN(NotificationScheduleServiceTest); }; // Test to schedule a notification.
diff --git a/chrome/browser/notifications/scheduler/notification_schedule_service_factory.h b/chrome/browser/notifications/scheduler/notification_schedule_service_factory.h index f1d044bfb..d1223ad1 100644 --- a/chrome/browser/notifications/scheduler/notification_schedule_service_factory.h +++ b/chrome/browser/notifications/scheduler/notification_schedule_service_factory.h
@@ -7,7 +7,6 @@ #include <memory> -#include "base/macros.h" #include "base/no_destructor.h" #include "components/keyed_service/core/simple_keyed_service_factory.h" @@ -33,14 +32,16 @@ NotificationScheduleServiceFactory>; NotificationScheduleServiceFactory(); + NotificationScheduleServiceFactory( + const NotificationScheduleServiceFactory&) = delete; + NotificationScheduleServiceFactory& operator=( + const NotificationScheduleServiceFactory&) = delete; ~NotificationScheduleServiceFactory() override; // SimpleKeyedServiceFactory implementation. std::unique_ptr<KeyedService> BuildServiceInstanceFor( SimpleFactoryKey* key) const override; SimpleFactoryKey* GetKeyToUse(SimpleFactoryKey* key) const override; - - DISALLOW_COPY_AND_ASSIGN(NotificationScheduleServiceFactory); }; #endif // CHROME_BROWSER_NOTIFICATIONS_SCHEDULER_NOTIFICATION_SCHEDULE_SERVICE_FACTORY_H_
diff --git a/chrome/browser/notifications/scheduler/public/display_agent.cc b/chrome/browser/notifications/scheduler/public/display_agent.cc index b188147..8b62797 100644 --- a/chrome/browser/notifications/scheduler/public/display_agent.cc +++ b/chrome/browser/notifications/scheduler/public/display_agent.cc
@@ -12,6 +12,8 @@ class DisplayAgentDefault : public DisplayAgent { public: DisplayAgentDefault() = default; + DisplayAgentDefault(const DisplayAgentDefault&) = delete; + DisplayAgentDefault& operator=(const DisplayAgentDefault&) = delete; ~DisplayAgentDefault() override = default; private: @@ -19,8 +21,6 @@ std::unique_ptr<SystemData> system_data) override { NOTIMPLEMENTED(); } - - DISALLOW_COPY_AND_ASSIGN(DisplayAgentDefault); }; // static
diff --git a/chrome/browser/notifications/scheduler/public/display_agent.h b/chrome/browser/notifications/scheduler/public/display_agent.h index 6b4cbed..15c218c 100644 --- a/chrome/browser/notifications/scheduler/public/display_agent.h +++ b/chrome/browser/notifications/scheduler/public/display_agent.h
@@ -8,7 +8,6 @@ #include <memory> #include <string> -#include "base/macros.h" #include "chrome/browser/notifications/scheduler/public/notification_data.h" #include "third_party/skia/include/core/SkBitmap.h" @@ -32,13 +31,12 @@ std::unique_ptr<NotificationData> notification_data, std::unique_ptr<SystemData> system_data) = 0; + DisplayAgent(const DisplayAgent&) = delete; + DisplayAgent& operator=(const DisplayAgent&) = delete; virtual ~DisplayAgent() = default; protected: DisplayAgent() = default; - - private: - DISALLOW_COPY_AND_ASSIGN(DisplayAgent); }; } // namespace notifications
diff --git a/chrome/browser/notifications/scheduler/public/notification_background_task_scheduler.h b/chrome/browser/notifications/scheduler/public/notification_background_task_scheduler.h index c0ccb2b..90ad042 100644 --- a/chrome/browser/notifications/scheduler/public/notification_background_task_scheduler.h +++ b/chrome/browser/notifications/scheduler/public/notification_background_task_scheduler.h
@@ -6,7 +6,6 @@ #define CHROME_BROWSER_NOTIFICATIONS_SCHEDULER_PUBLIC_NOTIFICATION_BACKGROUND_TASK_SCHEDULER_H_ #include "base/callback.h" -#include "base/macros.h" #include "base/time/time.h" #include "chrome/browser/notifications/scheduler/public/notification_scheduler_types.h" @@ -20,6 +19,9 @@ class Handler { public: using TaskFinishedCallback = base::OnceCallback<void(bool)>; + + Handler(const Handler&) = delete; + Handler& operator=(const Handler&) = delete; // Called when the background task is started. virtual void OnStartTask(TaskFinishedCallback callback) = 0; @@ -32,9 +34,6 @@ protected: Handler() = default; virtual ~Handler() = default; - - private: - DISALLOW_COPY_AND_ASSIGN(Handler); }; // Schedules a background task in a time window between |window_start| and @@ -46,13 +45,14 @@ // Cancels the background task. virtual void Cancel() = 0; + NotificationBackgroundTaskScheduler( + const NotificationBackgroundTaskScheduler&) = delete; + NotificationBackgroundTaskScheduler& operator=( + const NotificationBackgroundTaskScheduler&) = delete; virtual ~NotificationBackgroundTaskScheduler() = default; protected: NotificationBackgroundTaskScheduler() = default; - - private: - DISALLOW_COPY_AND_ASSIGN(NotificationBackgroundTaskScheduler); }; } // namespace notifications
diff --git a/chrome/browser/notifications/scheduler/public/notification_schedule_service.h b/chrome/browser/notifications/scheduler/public/notification_schedule_service.h index 5526b4c4..ce8ab1c 100644 --- a/chrome/browser/notifications/scheduler/public/notification_schedule_service.h +++ b/chrome/browser/notifications/scheduler/public/notification_schedule_service.h
@@ -7,7 +7,6 @@ #include <memory> -#include "base/macros.h" #include "chrome/browser/notifications/scheduler/public/client_overview.h" #include "chrome/browser/notifications/scheduler/public/impression_detail.h" #include "chrome/browser/notifications/scheduler/public/notification_background_task_scheduler.h" @@ -44,13 +43,13 @@ // Returns the user action handler to process notification events. virtual UserActionHandler* GetUserActionHandler() = 0; + NotificationScheduleService(const NotificationScheduleService&) = delete; + NotificationScheduleService& operator=(const NotificationScheduleService&) = + delete; ~NotificationScheduleService() override = default; protected: NotificationScheduleService() = default; - - private: - DISALLOW_COPY_AND_ASSIGN(NotificationScheduleService); }; } // namespace notifications
diff --git a/chrome/browser/notifications/scheduler/public/notification_scheduler_client.h b/chrome/browser/notifications/scheduler/public/notification_scheduler_client.h index 5f32002..20e677f 100644 --- a/chrome/browser/notifications/scheduler/public/notification_scheduler_client.h +++ b/chrome/browser/notifications/scheduler/public/notification_scheduler_client.h
@@ -11,7 +11,6 @@ #include <string> #include "base/callback.h" -#include "base/macros.h" #include "base/optional.h" #include "chrome/browser/notifications/scheduler/public/notification_data.h" #include "chrome/browser/notifications/scheduler/public/notification_scheduler_types.h" @@ -28,6 +27,9 @@ using ThrottleConfigCallback = base::OnceCallback<void(std::unique_ptr<ThrottleConfig>)>; NotificationSchedulerClient() = default; + NotificationSchedulerClient(const NotificationSchedulerClient&) = delete; + NotificationSchedulerClient& operator=(const NotificationSchedulerClient&) = + delete; virtual ~NotificationSchedulerClient() = default; // Called before the notification should be displayed to the user. The clients @@ -50,9 +52,6 @@ // Used to pull customized throttle config from client and may override global // config in the framework. Return |nullptr| to callback if no customization. virtual void GetThrottleConfig(ThrottleConfigCallback callback) = 0; - - private: - DISALLOW_COPY_AND_ASSIGN(NotificationSchedulerClient); }; } // namespace notifications
diff --git a/chrome/browser/notifications/scheduler/public/notification_scheduler_client_registrar.h b/chrome/browser/notifications/scheduler/public/notification_scheduler_client_registrar.h index 5cca83ca..858595f 100644 --- a/chrome/browser/notifications/scheduler/public/notification_scheduler_client_registrar.h +++ b/chrome/browser/notifications/scheduler/public/notification_scheduler_client_registrar.h
@@ -9,7 +9,6 @@ #include <memory> #include <vector> -#include "base/macros.h" #include "chrome/browser/notifications/scheduler/public/notification_scheduler_types.h" namespace notifications { @@ -21,6 +20,10 @@ class NotificationSchedulerClientRegistrar { public: NotificationSchedulerClientRegistrar(); + NotificationSchedulerClientRegistrar( + const NotificationSchedulerClientRegistrar&) = delete; + NotificationSchedulerClientRegistrar& operator=( + const NotificationSchedulerClientRegistrar&) = delete; ~NotificationSchedulerClientRegistrar(); // Registers a client into notification scheduler system. @@ -38,8 +41,6 @@ using ClientsMap = std::map<SchedulerClientType, std::unique_ptr<NotificationSchedulerClient>>; ClientsMap clients_; - - DISALLOW_COPY_AND_ASSIGN(NotificationSchedulerClientRegistrar); }; } // namespace notifications
diff --git a/chrome/browser/notifications/scheduler/public/user_action_handler.h b/chrome/browser/notifications/scheduler/public/user_action_handler.h index e364d65..e5d9551 100644 --- a/chrome/browser/notifications/scheduler/public/user_action_handler.h +++ b/chrome/browser/notifications/scheduler/public/user_action_handler.h
@@ -5,8 +5,6 @@ #ifndef CHROME_BROWSER_NOTIFICATIONS_SCHEDULER_PUBLIC_USER_ACTION_HANDLER_H_ #define CHROME_BROWSER_NOTIFICATIONS_SCHEDULER_PUBLIC_USER_ACTION_HANDLER_H_ - -#include "base/macros.h" #include "chrome/browser/notifications/scheduler/public/notification_scheduler_types.h" namespace notifications { @@ -17,13 +15,12 @@ // Called when the user interacts with the notification. virtual void OnUserAction(const UserActionData& action_data) = 0; + UserActionHandler(const UserActionHandler&) = delete; + UserActionHandler& operator=(const UserActionHandler&) = delete; ~UserActionHandler() = default; protected: UserActionHandler() = default; - - private: - DISALLOW_COPY_AND_ASSIGN(UserActionHandler); }; } // namespace notifications
diff --git a/chrome/browser/notifications/scheduler/test/fake_clock.h b/chrome/browser/notifications/scheduler/test/fake_clock.h index 30c4c21..eb8fe331 100644 --- a/chrome/browser/notifications/scheduler/test/fake_clock.h +++ b/chrome/browser/notifications/scheduler/test/fake_clock.h
@@ -5,7 +5,6 @@ #ifndef CHROME_BROWSER_NOTIFICATIONS_SCHEDULER_TEST_FAKE_CLOCK_H_ #define CHROME_BROWSER_NOTIFICATIONS_SCHEDULER_TEST_FAKE_CLOCK_H_ -#include "base/macros.h" #include "base/time/clock.h" #include "base/time/time.h" @@ -19,6 +18,8 @@ static base::Time GetTime(const char* time_str); FakeClock(); + FakeClock(const FakeClock&) = delete; + FakeClock& operator=(const FakeClock&) = delete; ~FakeClock() override; // Helper functions to set the current timestamp. @@ -37,8 +38,6 @@ // Whether Now() should return mocked time. bool time_mocked_; - - DISALLOW_COPY_AND_ASSIGN(FakeClock); }; } // namespace test
diff --git a/chrome/browser/notifications/scheduler/test/mock_notification_background_task_scheduler.h b/chrome/browser/notifications/scheduler/test/mock_notification_background_task_scheduler.h index 3385b53..be06776 100644 --- a/chrome/browser/notifications/scheduler/test/mock_notification_background_task_scheduler.h +++ b/chrome/browser/notifications/scheduler/test/mock_notification_background_task_scheduler.h
@@ -15,12 +15,13 @@ : public NotificationBackgroundTaskScheduler { public: MockNotificationBackgroundTaskScheduler(); + MockNotificationBackgroundTaskScheduler( + const MockNotificationBackgroundTaskScheduler&) = delete; + MockNotificationBackgroundTaskScheduler& operator=( + const MockNotificationBackgroundTaskScheduler&) = delete; ~MockNotificationBackgroundTaskScheduler() override; MOCK_METHOD2(Schedule, void(base::TimeDelta, base::TimeDelta)); MOCK_METHOD0(Cancel, void()); - - private: - DISALLOW_COPY_AND_ASSIGN(MockNotificationBackgroundTaskScheduler); }; } // namespace test
diff --git a/chrome/browser/notifications/screen_lock_notification_blocker.h b/chrome/browser/notifications/screen_lock_notification_blocker.h index be1e3951..64bef0a30 100644 --- a/chrome/browser/notifications/screen_lock_notification_blocker.h +++ b/chrome/browser/notifications/screen_lock_notification_blocker.h
@@ -5,7 +5,6 @@ #ifndef CHROME_BROWSER_NOTIFICATIONS_SCREEN_LOCK_NOTIFICATION_BLOCKER_H_ #define CHROME_BROWSER_NOTIFICATIONS_SCREEN_LOCK_NOTIFICATION_BLOCKER_H_ -#include "base/macros.h" #include "base/observer_list.h" #include "base/timer/timer.h" #include "ui/message_center/notification_blocker.h" @@ -18,6 +17,9 @@ public: explicit ScreenLockNotificationBlocker( message_center::MessageCenter* message_center); + ScreenLockNotificationBlocker(const ScreenLockNotificationBlocker&) = delete; + ScreenLockNotificationBlocker& operator=( + const ScreenLockNotificationBlocker&) = delete; ~ScreenLockNotificationBlocker() override; bool is_locked() const { return is_locked_; } @@ -31,8 +33,6 @@ bool is_locked_; base::OneShotTimer timer_; - - DISALLOW_COPY_AND_ASSIGN(ScreenLockNotificationBlocker); }; #endif // CHROME_BROWSER_NOTIFICATIONS_SCREEN_LOCK_NOTIFICATION_BLOCKER_H_
diff --git a/chrome/browser/notifications/stub_notification_display_service.h b/chrome/browser/notifications/stub_notification_display_service.h index bec53ea..c51fdbd 100644 --- a/chrome/browser/notifications/stub_notification_display_service.h +++ b/chrome/browser/notifications/stub_notification_display_service.h
@@ -10,7 +10,6 @@ #include <vector> #include "base/callback.h" -#include "base/macros.h" #include "base/optional.h" #include "chrome/browser/notifications/notification_common.h" #include "chrome/browser/notifications/notification_display_service_impl.h" @@ -43,6 +42,10 @@ ProcessNotificationOperationCallback; explicit StubNotificationDisplayService(Profile* profile); + StubNotificationDisplayService(const StubNotificationDisplayService&) = + delete; + StubNotificationDisplayService& operator=( + const StubNotificationDisplayService&) = delete; ~StubNotificationDisplayService() override; // Sets |closure| to be invoked when any notification has been added. @@ -135,8 +138,6 @@ Profile* profile_; ProcessNotificationOperationCallback process_notification_operation_delegate_; - - DISALLOW_COPY_AND_ASSIGN(StubNotificationDisplayService); }; #endif // CHROME_BROWSER_NOTIFICATIONS_STUB_NOTIFICATION_DISPLAY_SERVICE_H_
diff --git a/chrome/browser/notifications/system_notification_helper.h b/chrome/browser/notifications/system_notification_helper.h index 43909c1..ed771c4 100644 --- a/chrome/browser/notifications/system_notification_helper.h +++ b/chrome/browser/notifications/system_notification_helper.h
@@ -8,7 +8,6 @@ #include <memory> #include <string> -#include "base/macros.h" #include "ui/message_center/public/cpp/notification.h" class NotificationDisplayService; @@ -23,6 +22,8 @@ // Note that only single instance of this class should be created. The // instance is retrievable by SystemNotificationHelper::GetInstance(). SystemNotificationHelper(); + SystemNotificationHelper(const SystemNotificationHelper&) = delete; + SystemNotificationHelper& operator=(const SystemNotificationHelper&) = delete; ~SystemNotificationHelper(); // Displays a notification which isn't tied to a normal user profile. The @@ -42,8 +43,6 @@ // The global system NotificationDisaplyService, not bound to any profile. std::unique_ptr<NotificationDisplayService> system_service_; - - DISALLOW_COPY_AND_ASSIGN(SystemNotificationHelper); }; #endif // CHROME_BROWSER_NOTIFICATIONS_SYSTEM_NOTIFICATION_HELPER_H_
diff --git a/chrome/browser/notifications/win/fake_itoastnotification.h b/chrome/browser/notifications/win/fake_itoastnotification.h index 25a449f..73a7cef 100644 --- a/chrome/browser/notifications/win/fake_itoastnotification.h +++ b/chrome/browser/notifications/win/fake_itoastnotification.h
@@ -8,7 +8,6 @@ #include <windows.ui.notifications.h> #include <wrl/implements.h> -#include "base/macros.h" #include "base/strings/string16.h" class FakeIToastNotification @@ -20,6 +19,8 @@ public: explicit FakeIToastNotification(const base::string16& xml, const base::string16& tag); + FakeIToastNotification(const FakeIToastNotification&) = delete; + FakeIToastNotification& operator=(const FakeIToastNotification&) = delete; ~FakeIToastNotification() override = default; // ABI::Windows::UI::Notifications::IToastNotification implementation: @@ -61,8 +62,6 @@ base::string16 group_; base::string16 tag_; - - DISALLOW_COPY_AND_ASSIGN(FakeIToastNotification); }; #endif // CHROME_BROWSER_NOTIFICATIONS_WIN_FAKE_ITOASTNOTIFICATION_H_
diff --git a/chrome/browser/notifications/win/fake_itoastnotifier.h b/chrome/browser/notifications/win/fake_itoastnotifier.h index f5c4396..a8cb201 100644 --- a/chrome/browser/notifications/win/fake_itoastnotifier.h +++ b/chrome/browser/notifications/win/fake_itoastnotifier.h
@@ -9,7 +9,6 @@ #include <wrl/implements.h> #include "base/callback.h" -#include "base/macros.h" class NotificationLaunchId; @@ -20,6 +19,8 @@ ABI::Windows::UI::Notifications::IToastNotifier> { public: FakeIToastNotifier(); + FakeIToastNotifier(const FakeIToastNotifier&) = delete; + FakeIToastNotifier& operator=(const FakeIToastNotifier&) = delete; ~FakeIToastNotifier() override; // Sets a callback to be notified when Show has been called. @@ -54,8 +55,6 @@ private: base::RepeatingCallback<void(const NotificationLaunchId& launch_id)> notification_shown_callback_; - - DISALLOW_COPY_AND_ASSIGN(FakeIToastNotifier); }; #endif // CHROME_BROWSER_NOTIFICATIONS_WIN_FAKE_ITOASTNOTIFIER_H_
diff --git a/chrome/browser/notifications/win/fake_notification_image_retainer.h b/chrome/browser/notifications/win/fake_notification_image_retainer.h index 7c3cd78..824b210d 100644 --- a/chrome/browser/notifications/win/fake_notification_image_retainer.h +++ b/chrome/browser/notifications/win/fake_notification_image_retainer.h
@@ -5,7 +5,6 @@ #ifndef CHROME_BROWSER_NOTIFICATIONS_WIN_FAKE_NOTIFICATION_IMAGE_RETAINER_H_ #define CHROME_BROWSER_NOTIFICATIONS_WIN_FAKE_NOTIFICATION_IMAGE_RETAINER_H_ -#include "base/macros.h" #include "chrome/browser/notifications/win/notification_image_retainer.h" namespace gfx { @@ -17,6 +16,9 @@ class FakeNotificationImageRetainer : public NotificationImageRetainer { public: FakeNotificationImageRetainer() : NotificationImageRetainer() {} + FakeNotificationImageRetainer(const FakeNotificationImageRetainer&) = delete; + FakeNotificationImageRetainer& operator=( + const FakeNotificationImageRetainer&) = delete; ~FakeNotificationImageRetainer() override = default; // NotificationImageRetainer implementation: @@ -25,8 +27,6 @@ private: int counter_ = 0; - - DISALLOW_COPY_AND_ASSIGN(FakeNotificationImageRetainer); }; #endif // CHROME_BROWSER_NOTIFICATIONS_WIN_FAKE_NOTIFICATION_IMAGE_RETAINER_H_
diff --git a/chrome/browser/notifications/win/notification_helper_launches_chrome_unittest.cc b/chrome/browser/notifications/win/notification_helper_launches_chrome_unittest.cc index c35d58d9..b3e0f0e 100644 --- a/chrome/browser/notifications/win/notification_helper_launches_chrome_unittest.cc +++ b/chrome/browser/notifications/win/notification_helper_launches_chrome_unittest.cc
@@ -72,6 +72,8 @@ : parent_pid_(process.Pid()) { ancestor_processes_[process.Pid()] = std::move(process); } + ProcessTreeFilter(const ProcessTreeFilter&) = delete; + ProcessTreeFilter& operator=(const ProcessTreeFilter&) = delete; bool Includes(const base::ProcessEntry& entry) const override { auto iter = ancestor_processes_.find(entry.parent_pid()); @@ -116,8 +118,6 @@ // A flag indicating if there is any child process alive. // Must be mutable because override function Includes() is const. mutable bool has_child_process_alive_ = false; - - DISALLOW_COPY_AND_ASSIGN(ProcessTreeFilter); }; // Kills |process| and all of its descendants. Child processes are explicitly @@ -177,6 +177,8 @@ public: explicit ChildProcessFilter(base::ProcessId parent_pid) : parent_pid_(parent_pid) {} + ChildProcessFilter(const ChildProcessFilter&) = delete; + ChildProcessFilter& operator=(const ChildProcessFilter&) = delete; bool Includes(const base::ProcessEntry& entry) const override { return parent_pid_ == entry.parent_pid(); @@ -184,13 +186,17 @@ private: const base::ProcessId parent_pid_; - - DISALLOW_COPY_AND_ASSIGN(ChildProcessFilter); }; } // namespace class NotificationHelperLaunchesChrome : public testing::Test { + public: + NotificationHelperLaunchesChrome(const NotificationHelperLaunchesChrome&) = + delete; + NotificationHelperLaunchesChrome& operator=( + const NotificationHelperLaunchesChrome&) = delete; + protected: NotificationHelperLaunchesChrome() : root_(HKEY_CURRENT_USER) {} @@ -243,8 +249,6 @@ std::unique_ptr<WorkItemList> work_item_list_; base::win::ScopedCOMInitializer scoped_com_initializer_; - - DISALLOW_COPY_AND_ASSIGN(NotificationHelperLaunchesChrome); }; TEST_F(NotificationHelperLaunchesChrome, ChromeLaunchTest) {
diff --git a/chrome/browser/notifications/win/notification_image_retainer.h b/chrome/browser/notifications/win/notification_image_retainer.h index 563db2f3..5bf298b 100644 --- a/chrome/browser/notifications/win/notification_image_retainer.h +++ b/chrome/browser/notifications/win/notification_image_retainer.h
@@ -39,6 +39,9 @@ scoped_refptr<base::SequencedTaskRunner> deletion_task_runner, const base::TickClock* tick_clock); + NotificationImageRetainer(const NotificationImageRetainer&) = delete; + NotificationImageRetainer& operator=(const NotificationImageRetainer&) = + delete; NotificationImageRetainer(); virtual ~NotificationImageRetainer(); @@ -90,8 +93,6 @@ // For callbacks may run after destruction. base::WeakPtrFactory<NotificationImageRetainer> weak_ptr_factory_{this}; - - DISALLOW_COPY_AND_ASSIGN(NotificationImageRetainer); }; #endif // CHROME_BROWSER_NOTIFICATIONS_WIN_NOTIFICATION_IMAGE_RETAINER_H_
diff --git a/chrome/browser/notifications/win/notification_image_retainer_unittest.cc b/chrome/browser/notifications/win/notification_image_retainer_unittest.cc index 9175640..cc038ce 100644 --- a/chrome/browser/notifications/win/notification_image_retainer_unittest.cc +++ b/chrome/browser/notifications/win/notification_image_retainer_unittest.cc
@@ -6,7 +6,6 @@ #include "base/files/file_path.h" #include "base/files/file_util.h" -#include "base/macros.h" #include "base/run_loop.h" #include "base/test/scoped_path_override.h" #include "base/test/task_environment.h" @@ -28,6 +27,9 @@ : task_environment_(base::test::TaskEnvironment::TimeSource::MOCK_TIME), user_data_dir_override_(chrome::DIR_USER_DATA) {} + NotificationImageRetainerTest(const NotificationImageRetainerTest&) = delete; + NotificationImageRetainerTest& operator=( + const NotificationImageRetainerTest&) = delete; ~NotificationImageRetainerTest() override = default; protected: @@ -35,8 +37,6 @@ private: base::ScopedPathOverride user_data_dir_override_; - - DISALLOW_COPY_AND_ASSIGN(NotificationImageRetainerTest); }; TEST_F(NotificationImageRetainerTest, RegisterTemporaryImage) {
diff --git a/chrome/browser/notifications/win/notification_template_builder_unittest.cc b/chrome/browser/notifications/win/notification_template_builder_unittest.cc index 9774ced..5fd4258 100644 --- a/chrome/browser/notifications/win/notification_template_builder_unittest.cc +++ b/chrome/browser/notifications/win/notification_template_builder_unittest.cc
@@ -7,7 +7,6 @@ #include <memory> #include <string> -#include "base/macros.h" #include "base/strings/string16.h" #include "base/strings/string_number_conversions.h" #include "base/strings/stringprintf.h" @@ -53,6 +52,10 @@ class NotificationTemplateBuilderTest : public ::testing::Test { public: NotificationTemplateBuilderTest() = default; + NotificationTemplateBuilderTest(const NotificationTemplateBuilderTest&) = + delete; + NotificationTemplateBuilderTest& operator=( + const NotificationTemplateBuilderTest&) = delete; ~NotificationTemplateBuilderTest() override = default; void SetUp() override { SetContextMenuLabelForTesting(kContextMenuLabel); } @@ -88,9 +91,6 @@ } base::test::TaskEnvironment task_environment_; - - private: - DISALLOW_COPY_AND_ASSIGN(NotificationTemplateBuilderTest); }; TEST_F(NotificationTemplateBuilderTest, SimpleToast) {
diff --git a/chrome/browser/optimization_guide/prediction/machine_learning_service_browsertest.cc b/chrome/browser/optimization_guide/prediction/machine_learning_service_browsertest.cc index f6acb9c..b959273 100644 --- a/chrome/browser/optimization_guide/prediction/machine_learning_service_browsertest.cc +++ b/chrome/browser/optimization_guide/prediction/machine_learning_service_browsertest.cc
@@ -4,14 +4,19 @@ #include <memory> #include "base/run_loop.h" +#include "base/task/thread_pool/thread_pool_instance.h" +#include "base/test/metrics/histogram_tester.h" +#include "chrome/services/machine_learning/metrics.h" #include "chrome/services/machine_learning/public/cpp/service_connection.h" #include "chrome/services/machine_learning/public/cpp/test_support/machine_learning_test_utils.h" #include "chrome/services/machine_learning/public/mojom/decision_tree.mojom.h" #include "chrome/services/machine_learning/public/mojom/machine_learning_service.mojom.h" #include "chrome/test/base/in_process_browser_test.h" +#include "components/metrics/content/subprocess_metrics_provider.h" #include "content/public/browser/service_process_host.h" #include "content/public/browser/service_process_info.h" #include "content/public/test/browser_test.h" +#include "content/public/test/browser_test_utils.h" #include "mojo/public/cpp/bindings/remote.h" namespace machine_learning { @@ -64,26 +69,66 @@ bool is_launched_ = false; bool is_terminated_ = false; }; + +// Retries fetching |histogram_name| until it contains at least |count| samples. +void RetryForHistogramUntilCountReached(base::HistogramTester* histogram_tester, + const std::string& histogram_name, + size_t count) { + while (true) { + const std::vector<base::Bucket> buckets = + histogram_tester->GetAllSamples(histogram_name); + size_t total_count = 0; + for (const auto& bucket : buckets) + total_count += bucket.count; + if (total_count >= count) + return; + + content::FetchHistogramsFromChildProcesses(); + ::metrics::SubprocessMetricsProvider::MergeHistogramDeltasForTesting(); + base::RunLoop().RunUntilIdle(); + } +} + } // namespace using MachineLearningServiceBrowserTest = InProcessBrowserTest; IN_PROC_BROWSER_TEST_F(MachineLearningServiceBrowserTest, LaunchAndTerminate) { + base::HistogramTester histogram_tester; ServiceProcessObserver observer; auto* service_connection = ServiceConnection::GetInstance(); service_connection->GetService(); observer.WaitForLaunch(); + RetryForHistogramUntilCountReached( + &histogram_tester, machine_learning::metrics::kServiceLaunch, 1); + EXPECT_TRUE(service_connection); EXPECT_TRUE(observer.IsLaunched()); + histogram_tester.ExpectTotalCount(machine_learning::metrics::kServiceLaunch, + 1); + histogram_tester.ExpectUniqueSample( + machine_learning::metrics::kServiceRequested, + machine_learning::metrics::MLServiceRequestStatus:: + kRequestedServiceNotLaunched, + 1); + service_connection->ResetServiceForTesting(); observer.WaitForTerminate(); + RetryForHistogramUntilCountReached( + &histogram_tester, machine_learning::metrics::kServiceNormalTermination, + 1); + EXPECT_TRUE(observer.IsTerminated()); + + histogram_tester.ExpectTotalCount( + machine_learning::metrics::kServiceNormalTermination, 1); } IN_PROC_BROWSER_TEST_F(MachineLearningServiceBrowserTest, MultipleLaunchesReusesSharedProcess) { + base::HistogramTester histogram_tester; ServiceProcessObserver observer; auto* service_connection = ServiceConnection::GetInstance(); @@ -92,12 +137,34 @@ EXPECT_TRUE(service_connection); EXPECT_TRUE(observer.IsLaunched()); + RetryForHistogramUntilCountReached( + &histogram_tester, machine_learning::metrics::kServiceLaunch, 1); + histogram_tester.ExpectTotalCount(machine_learning::metrics::kServiceLaunch, + 1); + histogram_tester.ExpectBucketCount( + machine_learning::metrics::kServiceRequested, + machine_learning::metrics::MLServiceRequestStatus:: + kRequestedServiceNotLaunched, + 1); + auto* service_ptr2 = service_connection->GetService(); EXPECT_EQ(service_ptr1, service_ptr2); + + RetryForHistogramUntilCountReached( + &histogram_tester, machine_learning::metrics::kServiceRequested, 2); + histogram_tester.ExpectTotalCount(machine_learning::metrics::kServiceLaunch, + 1); + histogram_tester.ExpectBucketCount( + machine_learning::metrics::kServiceRequested, + machine_learning::metrics::MLServiceRequestStatus:: + kRequestedServiceLaunched, + 1); } IN_PROC_BROWSER_TEST_F(MachineLearningServiceBrowserTest, LoadInvalidDecisionTreeModel) { + base::HistogramTester histogram_tester; + ServiceProcessObserver observer; auto run_loop = std::make_unique<base::RunLoop>(); auto* service_connection = ServiceConnection::GetInstance(); @@ -118,21 +185,40 @@ EXPECT_TRUE(observer.IsLaunched()); EXPECT_EQ(mojom::LoadModelResult::kModelSpecError, result); + RetryForHistogramUntilCountReached( + &histogram_tester, + machine_learning::metrics::kDecisionTreeModelLoadResult, 1); + histogram_tester.ExpectTotalCount(machine_learning::metrics::kServiceLaunch, + 1); + histogram_tester.ExpectUniqueSample( + machine_learning::metrics::kServiceRequested, + machine_learning::metrics::MLServiceRequestStatus:: + kRequestedServiceNotLaunched, + 1); + histogram_tester.ExpectUniqueSample( + machine_learning::metrics::kDecisionTreeModelLoadResult, + mojom::LoadModelResult::kModelSpecError, 1); + // Flush so that |predictor| becomes aware of potential disconnection. predictor.FlushForTesting(); EXPECT_FALSE(predictor.is_connected()); } IN_PROC_BROWSER_TEST_F(MachineLearningServiceBrowserTest, - LoadValidDecisionTreeModel) { - ServiceProcessObserver observer; - auto run_loop = std::make_unique<base::RunLoop>(); - auto* service_connection = ServiceConnection::GetInstance(); + LoadValidDecisionTreeModelAndPredict) { + base::HistogramTester histogram_tester; - auto model_proto = testing::GetModelProtoForPredictionResult( - mojom::DecisionTreePredictionResult::kTrue); + ServiceProcessObserver observer; + auto* service_connection = ServiceConnection::GetInstance(); + const mojom::DecisionTreePredictionResult expected_prediction_result = + mojom::DecisionTreePredictionResult::kTrue; + + auto model_proto = + testing::GetModelProtoForPredictionResult(expected_prediction_result); mojo::Remote<mojom::DecisionTreePredictor> predictor; - mojom::LoadModelResult result = mojom::LoadModelResult::kLoadModelError; + + mojom::LoadModelResult load_result = mojom::LoadModelResult::kLoadModelError; + auto run_loop = std::make_unique<base::RunLoop>(); service_connection->LoadDecisionTreeModel( mojom::DecisionTreeModelSpec::New(model_proto->SerializeAsString()), predictor.BindNewPipeAndPassReceiver(), @@ -142,14 +228,61 @@ *p_result = result; run_loop->Quit(); }, - &result, run_loop.get())); + &load_result, run_loop.get())); run_loop->Run(); + RetryForHistogramUntilCountReached( + &histogram_tester, + machine_learning::metrics::kDecisionTreeModelLoadResult, 1); + EXPECT_TRUE(observer.IsLaunched()); - EXPECT_EQ(mojom::LoadModelResult::kOk, result); + EXPECT_EQ(mojom::LoadModelResult::kOk, load_result); + + histogram_tester.ExpectTotalCount(machine_learning::metrics::kServiceLaunch, + 1); + histogram_tester.ExpectTotalCount( + machine_learning::metrics::kDecisionTreeModelValidationLatency, 1); + histogram_tester.ExpectUniqueSample( + machine_learning::metrics::kServiceRequested, + machine_learning::metrics::MLServiceRequestStatus:: + kRequestedServiceNotLaunched, + 1); + histogram_tester.ExpectUniqueSample( + machine_learning::metrics::kDecisionTreeModelLoadResult, + mojom::LoadModelResult::kOk, 1); // Flush so that |predictor| becomes aware of potential disconnection. predictor.FlushForTesting(); EXPECT_TRUE(predictor.is_connected()); + + auto prediction_result = mojom::DecisionTreePredictionResult::kUnknown; + double prediction_score = 0.0; + // Reset the RunLoop. + run_loop = std::make_unique<base::RunLoop>(); + + predictor->Predict( + {}, base::BindOnce( + [](mojom::DecisionTreePredictionResult* p_result, double* p_score, + base::RunLoop* runloop, + mojom::DecisionTreePredictionResult result, double score) { + *p_result = result; + *p_score = score; + runloop->Quit(); + }, + &prediction_result, &prediction_score, run_loop.get())); + run_loop->Run(); + predictor.FlushForTesting(); + RetryForHistogramUntilCountReached( + &histogram_tester, + machine_learning::metrics::kDecisionTreeModelPredictionResult, 1); + + EXPECT_EQ(expected_prediction_result, prediction_result); + EXPECT_GT(prediction_score, 0.0); + + histogram_tester.ExpectTotalCount( + machine_learning::metrics::kDecisionTreeModelEvaluationLatency, 1); + histogram_tester.ExpectUniqueSample( + machine_learning::metrics::kDecisionTreeModelPredictionResult, + prediction_result, 1); } } // namespace machine_learning
diff --git a/chrome/browser/paint_preview/android/java/src/org/chromium/chrome/browser/paint_preview/TabbedPaintPreviewMetricsHelper.java b/chrome/browser/paint_preview/android/java/src/org/chromium/chrome/browser/paint_preview/TabbedPaintPreviewMetricsHelper.java index 7438063..9fb420eb4 100644 --- a/chrome/browser/paint_preview/android/java/src/org/chromium/chrome/browser/paint_preview/TabbedPaintPreviewMetricsHelper.java +++ b/chrome/browser/paint_preview/android/java/src/org/chromium/chrome/browser/paint_preview/TabbedPaintPreviewMetricsHelper.java
@@ -84,6 +84,11 @@ CompositorStatus.COUNT); } + void recordHadCapture(boolean hadCapture) { + RecordHistogram.recordBooleanHistogram( + "Browser.PaintPreview.TabbedPlayer.HadCapture", hadCapture); + } + void recordExitMetrics(int exitCause, int snackbarShownCount) { if (exitCause == ExitCause.SNACK_BAR_ACTION) { RecordUserAction.record("PaintPreview.TabbedPlayer.Actionbar.Action");
diff --git a/chrome/browser/paint_preview/android/java/src/org/chromium/chrome/browser/paint_preview/TabbedPaintPreviewPlayer.java b/chrome/browser/paint_preview/android/java/src/org/chromium/chrome/browser/paint_preview/TabbedPaintPreviewPlayer.java index ef11e0a..2ef1ac80 100644 --- a/chrome/browser/paint_preview/android/java/src/org/chromium/chrome/browser/paint_preview/TabbedPaintPreviewPlayer.java +++ b/chrome/browser/paint_preview/android/java/src/org/chromium/chrome/browser/paint_preview/TabbedPaintPreviewPlayer.java
@@ -149,6 +149,7 @@ // Check if a capture exists. This is a quick check using a cache. boolean hasCapture = mPaintPreviewTabService.hasCaptureForTab(mTab.getId()); mInitializing = hasCapture; + mMetricsHelper.recordHadCapture(hasCapture); if (!hasCapture) return false; mPlayerManager = new PlayerManager(mTab.getUrl(), mTab.getContext(),
diff --git a/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_bn.xtb b/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_bn.xtb index e6d3b93..83573b5d 100644 --- a/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_bn.xtb +++ b/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_bn.xtb
@@ -1,6 +1,7 @@ <?xml version="1.0" ?> <!DOCTYPE translationbundle> <translationbundle lang="bn"> +<translation id="1355944513479998918">Chrome সব পাসওয়ার্ড চেক করতে পারেনি। আগামীকাল আবার চেষ্টা করুন বা <ph name="BEGIN_LINK" />আপনার Google অ্যাকাউন্টের পাসওয়ার্ড চেক করুন<ph name="END_LINK" />।</translation> <translation id="1513858653616922153">পাসওয়ার্ড মুছুন</translation> <translation id="1547725796794473036">{COMPROMISED_PASSWORDS,plural, =1{#টি পাসওয়ার্ড চুরি হয়েছে}one{#টি পাসওয়ার্ড চুরি হয়েছে}other{#টি পাসওয়ার্ড চুরি হয়েছে}}</translation> <translation id="1599766761352751884">পাসওয়ার্ড চেক করা হচ্ছে (<ph name="TOTAL_PASSWORDS" />টির মধ্যে <ph name="ANALYSED_PASSWORDS" />টি)…</translation> @@ -10,6 +11,7 @@ <translation id="2388655922303272221">ম্যানুয়ালি পরিবর্তন করুন</translation> <translation id="2670599755795384625">পাসওয়ার্ড চেক করার কাজ রিস্টার্ট করুন</translation> <translation id="2775140325783767197">আপনার পাসওয়ার্ড Chrome চেক করে দেখতে পারছে না। আপনার ইন্টারনেট কানেকশন চেক করে দেখে নিন।</translation> +<translation id="3235063766008841141">এই পাসওয়ার্ড কোনও প্রতারণামূলক সাইটে ব্যবহার করা হয়েছিল এবং হ্যাক হওয়া ডেটাবেসেও এটি পাওয়া গেছে</translation> <translation id="3533694711092285624">কোনও পাসওয়ার্ড সেভ করা নেই। আপনি পাসওয়ার্ড সেভ করলে Chrome সেটি চেক করতে পারবে।</translation> <translation id="3568945271227339929">কোনও পাসওয়ার্ড চুরি হয়নি</translation> <translation id="3918034518766455210">পাসওয়ার্ড চেক করে দেখা হচ্ছে · <ph name="TIME_SINCE_LAST_CHECK" /></translation> @@ -25,6 +27,7 @@ <translation id="7693089333295158718">Chrome আপনার পাসওয়ার্ড চেক করতে পারছে না। আবার চেষ্টা করুন।</translation> <translation id="7744192722284567281">ডেটার নিরাপত্তা লঙ্ঘন দেখা গেছে</translation> <translation id="7808889146555843082">এই পাসওয়ার্ডটি মুছে দিলেও, <ph name="SITE" />-এ থাকা আপনার অ্যাকাউন্ট মুছে যাবে না। অন্যদের কাছ থেকে গোপন রাখতে, <ph name="SITE" />-এ আপনার দেওয়া পাসওয়ার্ড পরিবর্তন করুন বা অ্যাকাউন্ট মুছে দিন।</translation> +<translation id="7986497153528221272">পাসওয়ার্ড দেখতে, আগে আপনার ডিভাইসে স্ক্রিন লক সেট করুন</translation> <translation id="808894953321890993">পাসওয়ার্ড পরিবর্তন করুন</translation> <translation id="8399282673057829204">পাসওয়ার্ড দেখুন</translation> <translation id="8603820497269504141">আপনার Google অ্যাকাউন্ট দিয়ে সাইন-ইন করলে Chrome পাসওয়ার্ড চেক করে দেখতে পারবে।</translation>
diff --git a/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_fr.xtb b/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_fr.xtb index c492fb6..defecc7 100644 --- a/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_fr.xtb +++ b/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_fr.xtb
@@ -1,6 +1,7 @@ <?xml version="1.0" ?> <!DOCTYPE translationbundle> <translationbundle lang="fr"> +<translation id="1355944513479998918">Chrome n'a pas pu vérifier tous les mots de passe. Réessayez demain ou <ph name="BEGIN_LINK" />vérifiez les mots de passe enregistrés dans votre compte Google<ph name="END_LINK" />.</translation> <translation id="1513858653616922153">Supprimer le mot de passe</translation> <translation id="1547725796794473036">{COMPROMISED_PASSWORDS,plural, =1{# mot de passe compromis}one{# mot de passe compromis}other{# mots de passe compromis}}</translation> <translation id="1599766761352751884">Vérification des mots de passe (<ph name="ANALYSED_PASSWORDS" /> sur <ph name="TOTAL_PASSWORDS" />)…</translation> @@ -10,6 +11,7 @@ <translation id="2388655922303272221">Modifier manuellement</translation> <translation id="2670599755795384625">Relancer la vérification des mots de passe</translation> <translation id="2775140325783767197">Chrome ne parvient pas à vérifier vos mots de passe. Vérifiez votre connexion Internet.</translation> +<translation id="3235063766008841141">Identifiant saisi sur un site trompeur et détecté lors d'une violation des données</translation> <translation id="3533694711092285624">Aucun mot de passe enregistré. Chrome ne peut vérifier vos mots de passe que si vous les enregistrez.</translation> <translation id="3568945271227339929">Aucun mot de passe compromis</translation> <translation id="3918034518766455210">Mots de passe vérifiés · <ph name="TIME_SINCE_LAST_CHECK" /></translation> @@ -25,6 +27,7 @@ <translation id="7693089333295158718">Chrome ne parvient pas à vérifier vos mots de passe. Réessayez.</translation> <translation id="7744192722284567281">Détecté lors d'une violation des données</translation> <translation id="7808889146555843082">La suppression de ce mot de passe n'entraînera pas la suppression de votre compte sur <ph name="SITE" />. Modifiez votre mot de passe ou supprimez votre compte sur <ph name="SITE" /> pour le protéger des autres utilisateurs.</translation> +<translation id="7986497153528221272">Pour afficher les mots de passe, définissez d'abord un verrouillage d'écran sur votre appareil</translation> <translation id="808894953321890993">Modifier le mot de passe</translation> <translation id="8399282673057829204">Afficher le mot de passe</translation> <translation id="8603820497269504141">Chrome peut vérifier vos mots de passe lorsque vous vous connectez à votre compte Google.</translation>
diff --git a/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_gl.xtb b/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_gl.xtb index 71a520c..4231b5e 100644 --- a/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_gl.xtb +++ b/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_gl.xtb
@@ -1,6 +1,7 @@ <?xml version="1.0" ?> <!DOCTYPE translationbundle> <translationbundle lang="gl"> +<translation id="1355944513479998918">Chrome non puido comprobar todos os contrasinais. Téntao de novo mañá ou <ph name="BEGIN_LINK" />compróbaos na túa Conta de Google<ph name="END_LINK" />.</translation> <translation id="1513858653616922153">Eliminar contrasinal</translation> <translation id="1547725796794473036">{COMPROMISED_PASSWORDS,plural, =1{# contrasinal vulnerado}other{# contrasinais vulnerados}}</translation> <translation id="1599766761352751884">Comprobando contrasinais (<ph name="ANALYSED_PASSWORDS" /> de <ph name="TOTAL_PASSWORDS" />)…</translation> @@ -10,6 +11,7 @@ <translation id="2388655922303272221">Cambiar manualmente</translation> <translation id="2670599755795384625">Reinicia a comprobación do contrasinal</translation> <translation id="2775140325783767197">Chrome non puido comprobar os teus contrasinais. Verifica a conexión a Internet.</translation> +<translation id="3235063766008841141">A credencial escribiuse nun sitio enganoso e viuse afectada por unha violación da seguranza dos datos</translation> <translation id="3533694711092285624">Non hai contrasinais gardados. Chrome pode comprobar os teus contrasinais cando os gardes.</translation> <translation id="3568945271227339929">Non hai ningún contrasinal vulnerado</translation> <translation id="3918034518766455210">Comprobáronse os contrasinais · <ph name="TIME_SINCE_LAST_CHECK" /></translation> @@ -25,6 +27,7 @@ <translation id="7693089333295158718">Chrome non puido comprobar os teus contrasinais. Téntao de novo.</translation> <translation id="7744192722284567281">O contrasinal viuse implicado nunha violación da seguranza dos datos</translation> <translation id="7808889146555843082">Ao eliminar este contrasinal non se eliminará a túa conta de <ph name="SITE" />. Cambia o contrasinal ou elimina a túa conta en <ph name="SITE" /> para protexela doutras persoas.</translation> +<translation id="7986497153528221272">Para poder ver os contrasinais, define un bloqueo de pantalla no teu dispositivo</translation> <translation id="808894953321890993">Cambiar contrasinal</translation> <translation id="8399282673057829204">Ver contrasinal</translation> <translation id="8603820497269504141">Chrome pode comprobar os teus contrasinais cando inicies sesión coa túa Conta de Google.</translation>
diff --git a/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_gu.xtb b/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_gu.xtb index 360521e8..ff09ff8 100644 --- a/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_gu.xtb +++ b/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_gu.xtb
@@ -1,6 +1,7 @@ <?xml version="1.0" ?> <!DOCTYPE translationbundle> <translationbundle lang="gu"> +<translation id="1355944513479998918">Chrome બધા પાસવર્ડ ચેક કરી શક્યું નથી. આવતી કાલે ફરી પ્રયાસ કરજો અથવા <ph name="BEGIN_LINK" />તમારા Google એકાઉન્ટમાં પાસવર્ડ ચેક કરો<ph name="END_LINK" />.</translation> <translation id="1513858653616922153">પાસવર્ડ ડિલીટ કરો</translation> <translation id="1547725796794473036">{COMPROMISED_PASSWORDS,plural, =1{ચેડાં કરાયેલો # પાસવર્ડ}one{ચેડાં કરાયેલો # પાસવર્ડ}other{ચેડાં કરાયેલા # પાસવર્ડ}}</translation> <translation id="1599766761352751884">પાસવર્ડ ચેક કરી રહ્યાં છીએ (<ph name="TOTAL_PASSWORDS" />માંથી <ph name="ANALYSED_PASSWORDS" />)…</translation> @@ -10,6 +11,7 @@ <translation id="2388655922303272221">મેન્યુઅલી પાસવર્ડ બદલો</translation> <translation id="2670599755795384625">પાસવર્ડ ચેક કરવાની સુવિધા ફરી શરૂ કરો</translation> <translation id="2775140325783767197">Chrome તમારા પાસવર્ડ ચેક કરી શકતું નથી. તમારું ઇન્ટરનેટ કનેક્શન ચેક કરવાનો પ્રયાસ કરો.</translation> +<translation id="3235063766008841141">કોઈ છેતરામણી સાઇટ પર દાખલ કરાયો હતો અને ડેટા ઉલ્લંઘનમાં જાણ થઈ હતી</translation> <translation id="3533694711092285624">કોઈ સાચવેલો પાસવર્ડ નથી. જ્યારે તમે તમારા પાસવર્ડ સાચવો ત્યારે Chrome તેને ચેક કરી શકે છે.</translation> <translation id="3568945271227339929">કોઈ પાસવર્ડ સાથે ચેડાં થયાં નથી</translation> <translation id="3918034518766455210">ચેક કરેલા પાસવર્ડ <ph name="TIME_SINCE_LAST_CHECK" /></translation> @@ -25,6 +27,7 @@ <translation id="7693089333295158718">Chrome તમારા પાસવર્ડ ચેક કરી શકતું નથી. ફરી પ્રયાસ કરો.</translation> <translation id="7744192722284567281">ડેટા ઉલ્લંઘનમાં મળ્યો</translation> <translation id="7808889146555843082">આ પાસવર્ડ ડિલીટ કરવાથી <ph name="SITE" /> પરનું તમારું એકાઉન્ટ ડિલીટ થશે નહીં. <ph name="SITE" /> પરનું તમારું એકાઉન્ટ ડિલીટ કરો અથવા તમારો પાસવર્ડ બદલો કે જેથી તેને અન્ય લોકોથી સુરક્ષિત રાખી શકાય.</translation> +<translation id="7986497153528221272">પાસવર્ડ જોવા માટે, પહેલા તમારા ડિવાઇસ પર સ્ક્રીન લૉક સેટ કરો</translation> <translation id="808894953321890993">પાસવર્ડ બદલો</translation> <translation id="8399282673057829204">પાસવર્ડ જુઓ</translation> <translation id="8603820497269504141">જ્યારે તમે તમારા Google એકાઉન્ટ વડે સાઇન ઇન કરો ત્યારે Chrome તમારા પાસવર્ડ ચેક કરી શકે છે.</translation>
diff --git a/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_ne.xtb b/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_ne.xtb index b464267..b2192ea 100644 --- a/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_ne.xtb +++ b/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_ne.xtb
@@ -1,6 +1,7 @@ <?xml version="1.0" ?> <!DOCTYPE translationbundle> <translationbundle lang="ne"> +<translation id="1355944513479998918">Chrome ले सबै पासवर्डहरू जाँच्न सकेन। भोलि फेरि प्रयास गर्नुहोस् वा <ph name="BEGIN_LINK" />आफ्नो Google खातामा रहेका पासवर्डहरू जाँच्नुहोस्<ph name="END_LINK" />।</translation> <translation id="1513858653616922153">पासवर्ड मेट्नुहोस्</translation> <translation id="1547725796794473036">{COMPROMISED_PASSWORDS,plural, =1{अरूले देखेको एउटा पासवर्ड फेला पर्यो}other{अरूले देखेका # वटा पासवर्डहरू फेला परे}}</translation> <translation id="1599766761352751884">पासवर्डहरू जाँच गर्दै (<ph name="TOTAL_PASSWORDS" /> मध्ये <ph name="ANALYSED_PASSWORDS" />)…</translation> @@ -10,6 +11,7 @@ <translation id="2388655922303272221">आफैँ परिवर्तन गर्नुहोस्</translation> <translation id="2670599755795384625">पासवर्ड जाँच गर्ने प्रक्रिया पुनः सुरु गर्नुहोस्</translation> <translation id="2775140325783767197">Chrome ले तपाईंका पासवर्डहरूको जाँच गर्न सकेन। आफ्नो इन्टरनेट जडान जाँच गरी हेर्नुहोस्।</translation> +<translation id="3235063766008841141">यो पासवर्ड भ्रामक साइटमा प्रविष्टि गरिएको थियो र यसलाई अरूले देखेका थिए</translation> <translation id="3533694711092285624">कुनै पनि सुरक्षित गरिएको पासवर्ड छैन। तपाईंले आफ्ना पासवर्डहरू सुरक्षित गर्नुभएको छ भने मात्र Chrome ले तिनको जाँच गर्न सक्छ।</translation> <translation id="3568945271227339929">कुनै पनि पासवर्ड अरूले देखेका छैनन्</translation> <translation id="3918034518766455210">पासवर्डहरू जाँच गरिए · <ph name="TIME_SINCE_LAST_CHECK" /></translation> @@ -25,6 +27,7 @@ <translation id="7693089333295158718">Chrome तपाईंका पासवर्डहरू जाँच्न सक्दैन। फेरि प्रयास गर्नुहोस्।</translation> <translation id="7744192722284567281">डेटा चोरीको घटनामा फेला परेको</translation> <translation id="7808889146555843082">तपाईंले यो पासवर्ड मेटाउनुभयो भने <ph name="SITE" /> मा रहेको तपाईंको खाता मेटिने छैन। <ph name="SITE" /> मा रहेको तपाईंको खाता अन्य मान्छेहरूबाट सुरक्षित राख्न आफ्नो पासवर्ड परिवर्तन गर्नुहोस् वा उक्त खाता मेटाउनुहोस्।</translation> +<translation id="7986497153528221272">पासवर्डहरू हेर्न सर्वप्रथम आफ्नो यन्त्रमा स्क्रिन लक सेट गर्नुहोस्</translation> <translation id="808894953321890993">पासवर्ड परिवर्तन गर्नुहोस्</translation> <translation id="8399282673057829204">पासवर्ड हेर्नुहोस्</translation> <translation id="8603820497269504141">तपाईंले आफ्नो Google खातामा साइन इन गरेपछि मात्र Chrome ले तपाईंका पासवर्डहरूको जाँच गर्न सक्छ।</translation>
diff --git a/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_or.xtb b/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_or.xtb index d4e76648..dd9702a2 100644 --- a/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_or.xtb +++ b/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_or.xtb
@@ -1,6 +1,7 @@ <?xml version="1.0" ?> <!DOCTYPE translationbundle> <translationbundle lang="or"> +<translation id="1355944513479998918">Chrome ସମସ୍ତ ପାସୱାର୍ଡକୁ ଯାଞ୍ଚ କରିପାରିଲା ନାହିଁ। ଆସନ୍ତାକାଲି ପୁଣି ଚେଷ୍ଟା କରନ୍ତୁ କିମ୍ବା <ph name="BEGIN_LINK" />ଆପଣଙ୍କ Google ଆକାଉଣ୍ଟରେ ପାସୱାର୍ଡଗୁଡ଼ିକୁ ଯାଞ୍ଚ କରନ୍ତୁ<ph name="END_LINK" />।</translation> <translation id="1513858653616922153">ପାସ୍ୱାର୍ଡକୁ ଡିଲିଟ୍ କରନ୍ତୁ</translation> <translation id="1547725796794473036">{COMPROMISED_PASSWORDS,plural, =1{#ଟି ଚୋରି ହୋଇଯାଇଥିବା ପାସୱାର୍ଡ}other{#ଟି ଚୋରି ହୋଇଯାଇଥିବା ପାସୱାର୍ଡ}}</translation> <translation id="1599766761352751884">ପାସୱାର୍ଡଗୁଡ଼ିକୁ ଯାଞ୍ଚ କରାଯାଉଛି (<ph name="TOTAL_PASSWORDS" />ଟିରୁ <ph name="ANALYSED_PASSWORDS" />ଟି)…</translation> @@ -10,6 +11,7 @@ <translation id="2388655922303272221">ମାନୁଆଲୀ ବଦଳାନ୍ତୁ</translation> <translation id="2670599755795384625">ପାସୱାର୍ଡ ଯାଞ୍ଚ ରିଷ୍ଟାର୍ଟ କରନ୍ତୁ</translation> <translation id="2775140325783767197">Chrome ଆପଣଙ୍କର ପାସୱାର୍ଡଗୁଡ଼ିକୁ ଯାଞ୍ଚ କରିପାରିବ ନାହିଁ। ଆପଣଙ୍କର ଇଣ୍ଟର୍ନେଟ୍ ସଂଯୋଗ ଯାଞ୍ଚ କରି ଦେଖନ୍ତୁ।</translation> +<translation id="3235063766008841141">ଏକ ପ୍ରତାରଣାମୂଳକ ସାଇଟରେ ଲେଖାଯାଇଥିଲା ଏବଂ ଏକ ଡାଟା ଉଲ୍ଲଙ୍ଘନ ସମୟରେ ମିଳିଥିଲା</translation> <translation id="3533694711092285624">ସେଭ୍ କରାଯାଇଥିବା କୌଣସି ପାସୱାର୍ଡ ନାହିଁ। ଆପଣ ପାସୱାର୍ଡଗୁଡ଼ିକୁ ସେଭ୍ କଲେ Chrome ସେଗୁଡ଼ିକୁ ଯାଞ୍ଚ କରିପାରିବ।</translation> <translation id="3568945271227339929">ଚୋରି ହୋଇଯାଇଥିବା କୌଣସି ପାସୱାର୍ଡ ନାହିଁ</translation> <translation id="3918034518766455210">ଯାଞ୍ଚ କରାଯାଇଥିବା ପାସୱାର୍ଡଗୁଡ଼ିକ · <ph name="TIME_SINCE_LAST_CHECK" /></translation> @@ -25,6 +27,7 @@ <translation id="7693089333295158718">Chrome ଆପଣଙ୍କ ପାସୱାର୍ଡଗୁଡ଼ିକୁ ଯାଞ୍ଚ କରିପାରିବ ନାହିଁ। ପୁଣି ଚେଷ୍ଟା କରନ୍ତୁ।</translation> <translation id="7744192722284567281">ଡାଟା ଚୋରିରେ ପାସୱାର୍ଡ ମିଳିଛି</translation> <translation id="7808889146555843082">ଏହି ପାସୱାର୍ଡ ଡିଲିଟ୍ କରିବା ଦ୍ଵାରା <ph name="SITE" />ରେ ଥିବା ଆପଣଙ୍କ ଆକାଉଣ୍ଟ ଡିଲିଟ୍ ହେବ ନାହିଁ। ଆପଣଙ୍କ ପାସୱାର୍ଡ ପରିବର୍ତ୍ତନ କରନ୍ତୁ କିମ୍ବା <ph name="SITE" />ରେ ଥିବା ଆପଣଙ୍କ ଆକାଉଣ୍ଟକୁ ଅନ୍ୟମାନଙ୍କ ଠାରୁ ସୁରକ୍ଷିତ ରଖିବା ପାଇଁ ଏହାକୁ ଡିଲିଟ୍ କରନ୍ତୁ।</translation> +<translation id="7986497153528221272">ପାସୱାର୍ଡଗୁଡ଼ିକୁ ଦେଖିବାକୁ, ପ୍ରଥମେ ଆପଣଙ୍କ ଡିଭାଇସରେ ଏକ ସ୍କ୍ରିନ୍ ଲକ୍ ସେଟ୍ କରନ୍ତୁ</translation> <translation id="808894953321890993">ପାସ୍ୱାର୍ଡ ବଦଳାନ୍ତୁ</translation> <translation id="8399282673057829204">ପାସୱାର୍ଡ ଦେଖନ୍ତୁ</translation> <translation id="8603820497269504141">ଆପଣ ଆପଣଙ୍କର Google ଆକାଉଣ୍ଟ ମାଧ୍ୟମରେ ସାଇନ୍ ଇନ୍ କଲେ, Chrome ଆପଣଙ୍କ ପାସୱାର୍ଡଗୁଡ଼ିକୁ ଯାଞ୍ଚ କରିପାରିବ।</translation>
diff --git a/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_ru.xtb b/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_ru.xtb index c21f0dc..9c1b70c 100644 --- a/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_ru.xtb +++ b/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_ru.xtb
@@ -1,6 +1,7 @@ <?xml version="1.0" ?> <!DOCTYPE translationbundle> <translationbundle lang="ru"> +<translation id="1355944513479998918">Браузеру Chrome не удается проверить все пароли. Повторите попытку завтра или <ph name="BEGIN_LINK" />проверьте пароли в аккаунте Google<ph name="END_LINK" />.</translation> <translation id="1513858653616922153">Удалить пароль</translation> <translation id="1547725796794473036">{COMPROMISED_PASSWORDS,plural, =1{# раскрытый пароль}one{# раскрытый пароль}few{# раскрытых пароля}many{# раскрытых паролей}other{# раскрытого пароля}}</translation> <translation id="1599766761352751884">Проверка паролей (<ph name="ANALYSED_PASSWORDS" /> из <ph name="TOTAL_PASSWORDS" />)…</translation> @@ -10,6 +11,7 @@ <translation id="2388655922303272221">Сменить вручную</translation> <translation id="2670599755795384625">Начать проверку паролей заново</translation> <translation id="2775140325783767197">Не удается запустить проверку паролей в Chrome. Проверьте подключение к Интернету.</translation> +<translation id="3235063766008841141">Введен на обманном сайте и использовался для кражи данных.</translation> <translation id="3533694711092285624">Сохраненных паролей нет. Чтобы браузер Chrome мог проверять пароли, сохраните их.</translation> <translation id="3568945271227339929">Нет раскрытых паролей</translation> <translation id="3918034518766455210">Пароли проверены · <ph name="TIME_SINCE_LAST_CHECK" /></translation> @@ -25,6 +27,7 @@ <translation id="7693089333295158718">Не удается проверить пароли в Chrome. Повторите попытку.</translation> <translation id="7744192722284567281">Раскрыт при утечке данных</translation> <translation id="7808889146555843082">Это действие не приведет к удалению вашего аккаунта на сайте <ph name="SITE" />. Чтобы защитить от злоумышленников свои данные на сайте <ph name="SITE" />, удалите аккаунт или измените пароль.</translation> +<translation id="7986497153528221272">Чтобы просматривать пароли, включите на устройстве блокировку экрана.</translation> <translation id="808894953321890993">Сменить пароль</translation> <translation id="8399282673057829204">Показать пароль</translation> <translation id="8603820497269504141">Chrome сможет проверить ваши пароли, когда вы войдете в аккаунт Google.</translation>
diff --git a/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_ta.xtb b/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_ta.xtb index 3d25507..33f62878 100644 --- a/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_ta.xtb +++ b/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_ta.xtb
@@ -1,6 +1,7 @@ <?xml version="1.0" ?> <!DOCTYPE translationbundle> <translationbundle lang="ta"> +<translation id="1355944513479998918">Chromeமால் கடவுச்சொற்கள் அனைத்தையும் சரிபார்க்க முடியவில்லை. நாளை மீண்டும் முயலவும் அல்லது <ph name="BEGIN_LINK" />உங்கள் Google கணக்கில் கடவுச்சொற்களைச் சரிபார்க்கவும்<ph name="END_LINK" />.</translation> <translation id="1513858653616922153">கடவுச்சொல்லை நீக்கு</translation> <translation id="1547725796794473036">{COMPROMISED_PASSWORDS,plural, =1{களவாடப்பட்ட கடவுச்சொல்: #}other{களவாடப்பட்ட கடவுச்சொற்கள்: #}}</translation> <translation id="1599766761352751884">(<ph name="ANALYSED_PASSWORDS" />/<ph name="TOTAL_PASSWORDS" />) கடவுச்சொற்களைச் சரிபார்க்கிறது…</translation> @@ -10,6 +11,7 @@ <translation id="2388655922303272221">நேரடியாக மாற்றுக</translation> <translation id="2670599755795384625">கடவுச்சொல் சரிபார்ப்பை மீண்டும் தொடங்கும் பட்டன்</translation> <translation id="2775140325783767197">Chromeமால் உங்கள் கடவுச்சொற்களைச் சரிபார்க்க முடியவில்லை. உங்கள் இணைய இணைப்பைச் சரிபார்க்க முயலவும்.</translation> +<translation id="3235063766008841141">ஏமாற்றக்கூடிய தளத்தில் உள்ளிடப்பட்டதால் தரவு மீறலுக்கு உள்ளானது</translation> <translation id="3533694711092285624">சேமித்த கடவுச்சொற்கள் எதுவும் இல்லை. நீங்கள் அவற்றைச் சேமிக்கும்போது Chromeமால் உங்கள் கடவுச்சொற்களைச் சரிபார்க்க முடியும்.</translation> <translation id="3568945271227339929">களவாடப்பட்ட கடவுச்சொற்கள் எதுவும் இல்லை</translation> <translation id="3918034518766455210">கடவுச்சொற்கள் சரிபார்க்கப்பட்டன · <ph name="TIME_SINCE_LAST_CHECK" /></translation> @@ -25,6 +27,7 @@ <translation id="7693089333295158718">Chrome உலாவியால் உங்கள் கடவுச்சொற்களைச் சரிபார்க்க முடியவில்லை. மீண்டும் முயலவும்.</translation> <translation id="7744192722284567281">தரவு மீறலில் உள்ளது</translation> <translation id="7808889146555843082">இந்தக் கடவுச்சொல்லை நீக்கினால் <ph name="SITE" /> டொமைனில் உள்ள உங்கள் கணக்கு நீக்கப்படாது. <ph name="SITE" /> டொமைனில் உள்ள உங்கள் கணக்கைப் பிறரிடமிருந்து பாதுகாக்க, உங்கள் கடவுச்சொல்லை மாற்றவும் அல்லது உங்கள் கணக்கை நீக்கவும்.</translation> +<translation id="7986497153528221272">கடவுச்சொற்களைப் பார்க்க, முதலில் உங்கள் சாதனத்தில் திரைப் பூட்டை அமைக்கவும்</translation> <translation id="808894953321890993">கடவுச்சொல்லை மாற்று</translation> <translation id="8399282673057829204">கடவுச்சொல்லைக் காட்டு</translation> <translation id="8603820497269504141">Google கணக்கைப் பயன்படுத்தி நீங்கள் உள்நுழையும்போது Chromeமால் உங்கள் கடவுச்சொற்களைச் சரிபார்க்க முடியும்.</translation>
diff --git a/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_zh-CN.xtb b/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_zh-CN.xtb index 115e66a..d76dabb 100644 --- a/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_zh-CN.xtb +++ b/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_zh-CN.xtb
@@ -1,6 +1,7 @@ <?xml version="1.0" ?> <!DOCTYPE translationbundle> <translationbundle lang="zh-CN"> +<translation id="1355944513479998918">Chrome 无法检查所有密码。请明天再试,或者<ph name="BEGIN_LINK" />检查您的 Google 帐号中的密码<ph name="END_LINK" />。</translation> <translation id="1513858653616922153">删除密码</translation> <translation id="1547725796794473036">{COMPROMISED_PASSWORDS,plural, =1{有 # 个密码已遭泄露}other{有 # 个密码已遭泄露}}</translation> <translation id="1599766761352751884">正在检查密码 (<ph name="ANALYSED_PASSWORDS" />/<ph name="TOTAL_PASSWORDS" />)…</translation> @@ -10,6 +11,7 @@ <translation id="2388655922303272221">手动更改</translation> <translation id="2670599755795384625">重启密码检查</translation> <translation id="2775140325783767197">Chrome 无法检查您的密码。请检查您的互联网连接。</translation> +<translation id="3235063766008841141">曾在诈骗网站上输入过,并且遭遇了数据泄露</translation> <translation id="3533694711092285624">尚未保存任何密码。您需要先保存密码才能使用 Chrome 的密码检查功能。</translation> <translation id="3568945271227339929">没有密码已遭泄露</translation> <translation id="3918034518766455210">已检查完密码 · <ph name="TIME_SINCE_LAST_CHECK" /></translation> @@ -25,6 +27,7 @@ <translation id="7693089333295158718">Chrome 无法检查您的密码。请重试。</translation> <translation id="7744192722284567281">遭遇了数据泄露</translation> <translation id="7808889146555843082">删除此密码不会删除您在 <ph name="SITE" /> 上的帐号。如需保护您在 <ph name="SITE" /> 上的帐号免遭他人盗用,请更改您的密码或删除该帐号。</translation> +<translation id="7986497153528221272">若要查看密码,请先在设备上设置屏幕锁定</translation> <translation id="808894953321890993">更改密码</translation> <translation id="8399282673057829204">查看密码</translation> <translation id="8603820497269504141">您需要先登录 Google 帐号才能使用 Chrome 的密码检查功能。</translation>
diff --git a/chrome/browser/payments/BUILD.gn b/chrome/browser/payments/BUILD.gn index d3a3705..d2368a1 100644 --- a/chrome/browser/payments/BUILD.gn +++ b/chrome/browser/payments/BUILD.gn
@@ -42,6 +42,7 @@ "//components/payments/core", "//components/payments/core:test_support", "//components/ukm:test_support", + "//device/fido:test_support", ] if (is_android) {
diff --git a/chrome/browser/payments/payment_credential_factory.cc b/chrome/browser/payments/payment_credential_factory.cc new file mode 100644 index 0000000..3fe62e1f --- /dev/null +++ b/chrome/browser/payments/payment_credential_factory.cc
@@ -0,0 +1,26 @@ +// Copyright 2020 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "chrome/browser/payments/payment_credential_factory.h" + +#include "base/feature_list.h" +#include "chrome/browser/payments/chrome_payment_request_delegate.h" +#include "components/payments/content/payment_request_web_contents_manager.h" +#include "content/public/browser/render_frame_host.h" +#include "content/public/browser/web_contents.h" + +namespace payments { + +void CreatePaymentCredential( + content::RenderFrameHost* render_frame_host, + mojo::PendingReceiver<mojom::PaymentCredential> receiver) { + content::WebContents* web_contents = + content::WebContents::FromRenderFrameHost(render_frame_host); + if (!web_contents) + return; + PaymentRequestWebContentsManager::GetOrCreateForWebContents(web_contents) + ->CreatePaymentCredential(std::move(receiver)); +} + +} // namespace payments
diff --git a/chrome/browser/payments/payment_credential_factory.h b/chrome/browser/payments/payment_credential_factory.h new file mode 100644 index 0000000..74697fc --- /dev/null +++ b/chrome/browser/payments/payment_credential_factory.h
@@ -0,0 +1,24 @@ +// Copyright 2020 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef CHROME_BROWSER_PAYMENTS_PAYMENT_CREDENTIAL_FACTORY_H_ +#define CHROME_BROWSER_PAYMENTS_PAYMENT_CREDENTIAL_FACTORY_H_ + +#include "mojo/public/cpp/bindings/pending_receiver.h" +#include "third_party/blink/public/mojom/payments/payment_credential.mojom-forward.h" + +namespace content { +class RenderFrameHost; +} + +namespace payments { + +// Connect a PaymentCredential receiver to handle payment credential creation. +void CreatePaymentCredential( + content::RenderFrameHost* render_frame_host, + mojo::PendingReceiver<mojom::PaymentCredential> receiver); + +} // namespace payments + +#endif // CHROME_BROWSER_PAYMENTS_PAYMENT_CREDENTIAL_FACTORY_H_
diff --git a/chrome/browser/payments/secure_payment_confirmation_browsertest.cc b/chrome/browser/payments/secure_payment_confirmation_browsertest.cc index b5925171..5b46baa 100644 --- a/chrome/browser/payments/secure_payment_confirmation_browsertest.cc +++ b/chrome/browser/payments/secure_payment_confirmation_browsertest.cc
@@ -6,9 +6,11 @@ #include "base/strings/stringprintf.h" #include "build/build_config.h" #include "chrome/test/payments/payment_request_platform_browsertest_base.h" +#include "content/public/browser/authenticator_environment.h" #include "content/public/common/content_switches.h" #include "content/public/test/browser_test.h" #include "content/public/test/browser_test_utils.h" +#include "device/fido/virtual_fido_device_factory.h" #include "testing/gtest/include/gtest/gtest.h" namespace payments { @@ -29,6 +31,33 @@ return base::StringPrintf("getStatusForMethodData(%s)", kTestMethodData); } +#if !defined(OS_ANDROID) +static constexpr char kCreatePaymentCredential[] = + "var PAYMENT_INSTRUMENT = {" + " displayName: 'display_name_for_instrument'," + " icon: 'https://pics.acme.com/00/p/aBjjjpqPb.png'" + "};" + "var PUBLIC_KEY_RP = {" + " id: 'a.com'," + " name: 'Acme'" + "};" + "var PUBLIC_KEY_PARAMETERS = [{" + " type: 'public-key'," + " alg: -7," + "},];" + "var PAYMENT_CREATION_OPTIONS = {" + " rp: PUBLIC_KEY_RP," + " instrument: PAYMENT_INSTRUMENT," + " challenge: new TextEncoder().encode('climb a mountain')," + " pubKeyCredParams: PUBLIC_KEY_PARAMETERS," + "};" + "navigator.credentials.create({ payment : PAYMENT_CREATION_OPTIONS })" + " .then(c => window.domAutomationController.send(" + " 'paymentCredential: OK')," + " e => window.domAutomationController.send(" + " 'paymentCredential: ' + e.toString()));"; +#endif + class SecurePaymentConfirmationTest : public PaymentRequestPlatformBrowserTestBase { public: @@ -155,5 +184,57 @@ } } +// Creation tests do not work on Android because there is not a way to +// override authenticator creation. +#if !defined(OS_ANDROID) +class SecurePaymentConfirmationCreationTest + : public SecurePaymentConfirmationTest { + public: + // PaymentCredential creation uses the normal Web Authentication code path + // for creating the public key credential, rather than using + // IntenralAuthenticator. This stubs out authenticator instantiation in + // content. + void ReplaceFidoDiscoveryFactory() { + auto owned_virtual_device_factory = + std::make_unique<device::test::VirtualFidoDeviceFactory>(); + auto* virtual_device_factory = owned_virtual_device_factory.get(); + content::AuthenticatorEnvironment::GetInstance() + ->ReplaceDefaultDiscoveryFactoryForTesting( + std::move(owned_virtual_device_factory)); + virtual_device_factory->SetTransport( + device::FidoTransportProtocol::kInternal); + virtual_device_factory->SetSupportedProtocol( + device::ProtocolVersion::kCtap2); + virtual_device_factory->mutable_state()->fingerprints_enrolled = true; + + // Currently this only supports tests relying on user-verifying platform + // authenticators. + device::VirtualCtap2Device::Config config; + config.is_platform_authenticator = true; + config.internal_uv_support = true; + virtual_device_factory->SetCtap2Config(config); + } +}; + +#if defined(OS_WIN) +// TODO(kenrb): This experiment is currently only available on Mac, but this +// test should work on all non-Android platforms. There is a Windows failure +// that still needs to be investigated. +#define MAYBE_CreatePaymentCredential DISABLED_CreatePaymentCredential +#else +#define MAYBE_CreatePaymentCredential CreatePaymentCredential +#endif +IN_PROC_BROWSER_TEST_F(SecurePaymentConfirmationCreationTest, + MAYBE_CreatePaymentCredential) { + ReplaceFidoDiscoveryFactory(); + NavigateTo("a.com", "/payment_handler_status.html"); + + std::string result; + EXPECT_TRUE(content::ExecuteScriptAndExtractString( + GetActiveWebContents(), kCreatePaymentCredential, &result)); + EXPECT_EQ(result, "paymentCredential: OK"); +} +#endif // !defined(OS_ANDROID) + } // namespace } // namespace payments
diff --git a/chrome/browser/pdf/pdf_extension_test.cc b/chrome/browser/pdf/pdf_extension_test.cc index ec83b79b..9e8f4b0 100644 --- a/chrome/browser/pdf/pdf_extension_test.cc +++ b/chrome/browser/pdf/pdf_extension_test.cc
@@ -97,6 +97,8 @@ #include "ui/accessibility/ax_tree.h" #include "ui/accessibility/platform/ax_platform_node_delegate_base.h" #include "ui/base/clipboard/clipboard.h" +#include "ui/base/clipboard/clipboard_monitor.h" +#include "ui/base/clipboard/clipboard_observer.h" #include "ui/base/clipboard/test/test_clipboard.h" #include "ui/base/resource/resource_bundle.h" #include "ui/gfx/geometry/point.h" @@ -1896,21 +1898,29 @@ EXPECT_EQ("page=2&zoom=100,0,200", url.ref()); } -class PDFExtensionClipboardTest : public PDFExtensionTest { +class PDFExtensionClipboardTest : public PDFExtensionTest, + public ui::ClipboardObserver { public: PDFExtensionClipboardTest() : guest_contents_(nullptr) {} ~PDFExtensionClipboardTest() override {} + // PDFExtensionTest: void SetUpOnMainThread() override { PDFExtensionTest::SetUpOnMainThread(); ui::TestClipboard::CreateForCurrentThread(); } - void TearDownOnMainThread() override { ui::Clipboard::DestroyClipboardForCurrentThread(); PDFExtensionTest::TearDownOnMainThread(); } + // ui::ClipboardObserver: + void OnClipboardDataChanged() override { + DCHECK(!clipboard_changed_); + clipboard_changed_ = true; + std::move(clipboard_quit_closure_).Run(); + } + void LoadTestComboBoxPdfGetGuestContents() { GURL test_pdf_url(embedded_test_server()->GetURL("/pdf/combobox_form.pdf")); guest_contents_ = LoadPdfGetGuestContents(test_pdf_url); @@ -2007,45 +2017,30 @@ } private: - // Waits and polls the clipboard of a given |clipboard_buffer| until its - // contents reaches the length of |expected|. Then checks and see if the - // clipboard contents matches |expected|. - // TODO(thestig): Change this to avoid polling after https://crbug.com/755826 - // has been fixed. void CheckClipboard(ui::ClipboardBuffer clipboard_buffer, const std::string& expected) { + ui::ClipboardMonitor::GetInstance()->AddObserver(this); + DCHECK(!clipboard_changed_); + DCHECK(!clipboard_quit_closure_); + + base::RunLoop run_loop; + clipboard_quit_closure_ = run_loop.QuitClosure(); + run_loop.Run(); + + EXPECT_TRUE(clipboard_changed_); + clipboard_changed_ = false; + ui::ClipboardMonitor::GetInstance()->RemoveObserver(this); + auto* clipboard = ui::Clipboard::GetForCurrentThread(); std::string clipboard_data; - const std::string& last_data = last_clipboard_data_[clipboard_buffer]; - if (last_data.size() == expected.size()) { - DCHECK_EQ(last_data, expected); - clipboard->ReadAsciiText(clipboard_buffer, /* data_dst = */ nullptr, - &clipboard_data); - EXPECT_EQ(expected, clipboard_data); - return; - } - - const bool expect_increase = last_data.size() < expected.size(); - while (true) { - clipboard->ReadAsciiText(clipboard_buffer, /* data_dst = */ nullptr, - &clipboard_data); - if (expect_increase) { - if (clipboard_data.size() >= expected.size()) - break; - } else { - if (clipboard_data.size() <= expected.size()) - break; - } - - content::RunAllPendingInMessageLoop(); - } + clipboard->ReadAsciiText(clipboard_buffer, /* data_dst=*/nullptr, + &clipboard_data); EXPECT_EQ(expected, clipboard_data); - - last_clipboard_data_[clipboard_buffer] = clipboard_data; } - std::map<ui::ClipboardBuffer, std::string> last_clipboard_data_; + base::RepeatingClosure clipboard_quit_closure_; WebContents* guest_contents_; + bool clipboard_changed_ = false; }; IN_PROC_BROWSER_TEST_F(PDFExtensionClipboardTest,
diff --git a/chrome/browser/performance_manager/DEPS b/chrome/browser/performance_manager/DEPS index fcdc543..c3147cc 100644 --- a/chrome/browser/performance_manager/DEPS +++ b/chrome/browser/performance_manager/DEPS
@@ -1,3 +1,4 @@ include_rules = [ "+components/performance_manager", -] \ No newline at end of file + "+chromeos/memory" +]
diff --git a/chrome/browser/performance_manager/mechanisms/userspace_swap_chromeos.cc b/chrome/browser/performance_manager/mechanisms/userspace_swap_chromeos.cc new file mode 100644 index 0000000..bf861b23 --- /dev/null +++ b/chrome/browser/performance_manager/mechanisms/userspace_swap_chromeos.cc
@@ -0,0 +1,195 @@ +// Copyright 2020 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "chrome/browser/performance_manager/mechanisms/userspace_swap_chromeos.h" + +#include "base/bind.h" +#include "base/callback_helpers.h" +#include "base/files/scoped_file.h" +#include "base/posix/safe_strerror.h" +#include "base/task/post_task.h" +#include "base/threading/scoped_blocking_call.h" +#include "chromeos/memory/userspace_swap/swap_storage.h" +#include "chromeos/memory/userspace_swap/userfaultfd.h" +#include "chromeos/memory/userspace_swap/userspace_swap.h" +#include "chromeos/memory/userspace_swap/userspace_swap.mojom.h" +#include "components/performance_manager/graph/node_attached_data.h" +#include "components/performance_manager/graph/process_node_impl.h" +#include "components/performance_manager/performance_manager_impl.h" +#include "components/performance_manager/process_node_source.h" +#include "components/performance_manager/public/graph/process_node.h" +#include "components/performance_manager/public/performance_manager.h" +#include "components/performance_manager/public/render_process_host_proxy.h" +#include "components/performance_manager/render_process_user_data.h" +#include "content/public/browser/browser_task_traits.h" +#include "content/public/browser/browser_thread.h" +#include "content/public/browser/render_process_host.h" +#include "mojo/public/cpp/bindings/self_owned_receiver.h" + +namespace performance_manager { +namespace mechanism { +namespace userspace_swap { + +namespace { +using chromeos::memory::userspace_swap::SwapFile; +using chromeos::memory::userspace_swap::UserfaultFD; +using chromeos::memory::userspace_swap::UserspaceSwapConfig; + +// The RendererSwapData structure contains all the state related to userspace +// swap for an individual renderer. +// +// TODO(bgeffon): This moves to a shared file later when the remainder of the +// code lands. +struct RendererSwapData { + int render_process_host_id; + bool setup_complete = false; + + std::unique_ptr<UserfaultFD> uffd; + std::unique_ptr<SwapFile> swap_file; +}; + +// UserspaceSwapMechanismData contains process node specific details and +// handles. +class UserspaceSwapMechanismData + : public ExternalNodeAttachedDataImpl<UserspaceSwapMechanismData> { + public: + explicit UserspaceSwapMechanismData(const ProcessNode* node) + : swap_data(new RendererSwapData) {} + ~UserspaceSwapMechanismData() override = default; + + // Note: This is a unique_ptr because it will be used with code that is added + // in a follow up CL. + std::unique_ptr<RendererSwapData> swap_data; +}; + +void InitializeProcessNodeOnGraph(int render_process_host_id, + base::ScopedFD uffd, + performance_manager::Graph* graph) { + // Now look up the ProcessNode so we can complete initialization. + DCHECK(graph); + DCHECK(uffd.is_valid()); + + const ProcessNode* process_node = nullptr; + for (const ProcessNode* proc : graph->GetAllProcessNodes()) { + if (proc->GetRenderProcessHostId().GetUnsafeValue() == + render_process_host_id) { + process_node = proc; + } + } + + if (!process_node) { + LOG(ERROR) << "Couldn't find process node for RPH: " + << render_process_host_id; + return; + } + + if (UserspaceSwapMechanismData::Destroy(process_node)) { + LOG(ERROR) << "ProcessNode contained UserspaceSwapMechanismData"; + return; + } + + auto* data = UserspaceSwapMechanismData::GetOrCreate(process_node); + auto& swap_data = data->swap_data; + + swap_data->render_process_host_id = render_process_host_id; + + // Finally wrap up the received userfaultfd into a UserfaultFD instance. + swap_data->uffd = UserfaultFD::WrapFD(std::move(uffd)); + + // The SwapFile is always encrypted but the compression layer is optional. + SwapFile::Type swap_type = SwapFile::Type::kEncrypted; + if (UserspaceSwapConfig::Get().use_compressed_swap_file) { + swap_type = + static_cast<SwapFile::Type>(swap_type | SwapFile::Type::kCompressed); + } + + swap_data->swap_file = SwapFile::Create(swap_type); + + if (!swap_data->swap_file) { + PLOG(ERROR) << "Unable to complete userspace swap initialization failure " + "creating swap file"; + + // If we can't create a swap file, then we will bail freeing our resources. + UserspaceSwapMechanismData::Destroy(process_node); + + return; + } + + swap_data->setup_complete = true; +} + +} // namespace + +bool IsEligibleToSwap(const ProcessNode* process_node) { + if (!process_node->GetProcess().IsValid()) { + return false; + } + + auto* data = UserspaceSwapMechanismData::Get(process_node); + if (!data) { + return false; + } + + auto& swap_data = data->swap_data; + if (!swap_data->setup_complete || !swap_data->swap_file || !swap_data->uffd) { + return false; + } + + return true; +} + +UserspaceSwapInitializationImpl::UserspaceSwapInitializationImpl( + int render_process_host_id) + : render_process_host_id_(render_process_host_id) { + CHECK(UserspaceSwapInitializationImpl::UserspaceSwapSupportedAndEnabled()); +} + +UserspaceSwapInitializationImpl::~UserspaceSwapInitializationImpl() = default; + +// static +bool UserspaceSwapInitializationImpl::UserspaceSwapSupportedAndEnabled() { + return chromeos::memory::userspace_swap::UserspaceSwapSupportedAndEnabled(); +} + +// static +void UserspaceSwapInitializationImpl::Create( + int render_process_host_id, + mojo::PendingReceiver<::userspace_swap::mojom::UserspaceSwapInitialization> + receiver) { + auto impl = + std::make_unique<UserspaceSwapInitializationImpl>(render_process_host_id); + mojo::MakeSelfOwnedReceiver(std::move(impl), std::move(receiver)); +} + +void UserspaceSwapInitializationImpl::TransferUserfaultFD( + uint64_t error, + mojo::PlatformHandle uffd_handle, + TransferUserfaultFDCallback cb) { + base::ScopedClosureRunner scr(std::move(cb)); + + if (received_transfer_cb_) { + return; + } + received_transfer_cb_ = true; + + if (error != 0) { + LOG(ERROR) << "Unable to create userfaultfd for renderer: " + << base::safe_strerror(error); + return; + } + + if (!uffd_handle.is_valid()) { + LOG(ERROR) << "FD received is invalid."; + return; + } + + // Make sure we're on the graph and complete the initialization. + PerformanceManager::CallOnGraph( + FROM_HERE, base::BindOnce(&InitializeProcessNodeOnGraph, + render_process_host_id_, uffd_handle.TakeFD())); +} + +} // namespace userspace_swap +} // namespace mechanism +} // namespace performance_manager
diff --git a/chrome/browser/performance_manager/mechanisms/userspace_swap_chromeos.h b/chrome/browser/performance_manager/mechanisms/userspace_swap_chromeos.h new file mode 100644 index 0000000..f148006b --- /dev/null +++ b/chrome/browser/performance_manager/mechanisms/userspace_swap_chromeos.h
@@ -0,0 +1,56 @@ +// Copyright 2020 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef CHROME_BROWSER_PERFORMANCE_MANAGER_MECHANISMS_USERSPACE_SWAP_CHROMEOS_H_ +#define CHROME_BROWSER_PERFORMANCE_MANAGER_MECHANISMS_USERSPACE_SWAP_CHROMEOS_H_ + +#include <map> +#include <string> + +#include "base/macros.h" +#include "chromeos/memory/userspace_swap/userspace_swap.mojom.h" +#include "mojo/public/cpp/bindings/pending_receiver.h" + +namespace performance_manager { + +class ProcessNode; + +namespace mechanism { +namespace userspace_swap { + +// The policy must query the mechanism IsEligibleToSwap because the mechanism +// knows things that the policy doesn't related to the swap file and +// userfaultfd, this method will return false if an unexpected event that +// prevents swapping occurred. +bool IsEligibleToSwap(const ProcessNode* process_node); + +class UserspaceSwapInitializationImpl + : public ::userspace_swap::mojom::UserspaceSwapInitialization { + public: + explicit UserspaceSwapInitializationImpl(int render_process_host_id); + ~UserspaceSwapInitializationImpl() override; + + static bool UserspaceSwapSupportedAndEnabled(); + static void Create( + int render_process_host_id, + mojo::PendingReceiver< + ::userspace_swap::mojom::UserspaceSwapInitialization> receiver); + + // UserspaceSwapInitialization impl: + void TransferUserfaultFD(uint64_t error, + mojo::PlatformHandle uffd_handle, + TransferUserfaultFDCallback cb) override; + + private: + int render_process_host_id_ = 0; + bool received_transfer_cb_ = false; + + DISALLOW_COPY_AND_ASSIGN(UserspaceSwapInitializationImpl); +}; + +} // namespace userspace_swap +} // namespace mechanism +} // namespace performance_manager + +#endif // CHROME_BROWSER_PERFORMANCE_MANAGER_MECHANISMS_USERSPACE_SWAP_CHROMEOS_H_
diff --git a/chrome/browser/performance_manager/policies/userspace_swap_policy_chromeos.cc b/chrome/browser/performance_manager/policies/userspace_swap_policy_chromeos.cc index 3aa2b6b..5a09f01 100644 --- a/chrome/browser/performance_manager/policies/userspace_swap_policy_chromeos.cc +++ b/chrome/browser/performance_manager/policies/userspace_swap_policy_chromeos.cc
@@ -4,7 +4,9 @@ #include "chrome/browser/performance_manager/policies/userspace_swap_policy_chromeos.h" +#include "base/system/sys_info.h" #include "base/time/time.h" +#include "chrome/browser/performance_manager/mechanisms/userspace_swap_chromeos.h" #include "chromeos/memory/userspace_swap/swap_storage.h" #include "chromeos/memory/userspace_swap/userspace_swap.h" #include "components/performance_manager/public/graph/frame_node.h" @@ -49,7 +51,11 @@ UserspaceSwapPolicy::UserspaceSwapPolicy(const UserspaceSwapConfig& config) : config_(config) { - DCHECK(config_.enabled); + // To avoid failures related to chromeos-linux, we validate that we're running + // on chromeos before enforcing the following check. + if (base::SysInfo::IsRunningOnChromeOS()) { + DCHECK(UserspaceSwapPolicy::UserspaceSwapSupportedAndEnabled()); + } #ifndef NDEBUG if (!metrics_timer_->IsRunning()) { metrics_timer_->Start( @@ -113,9 +119,9 @@ bool UserspaceSwapPolicy::InitializeProcessNode( const ProcessNode* process_node) { - // TODO(bgeffon): This will be dispatched to the userspace swap mechanism when - // it's committed. - return false; + // TODO(bgeffon): Add policy specific initialization or remove once final CLs + // land. + return true; } void UserspaceSwapPolicy::OnProcessLifetimeChange( @@ -131,6 +137,9 @@ // If this fails we don't attempt swap ever. data->process_initialized_ = InitializeProcessNode(process_node); + + LOG_IF(ERROR, !data->process_initialized_) + << "Unable to initialize process node"; } } @@ -267,7 +276,13 @@ auto* data = UserspaceSwapPolicyData::EnsureForProcess(process_node); if (!data->process_initialized_) { - LOG(ERROR) << "Process not initialized"; + return false; + } + + // Always check with the mechanism to make sure that it can still be swapped + // and that nothing unexpected has happened. + if (!performance_manager::mechanism::userspace_swap::IsEligibleToSwap( + process_node)) { return false; } @@ -335,10 +350,7 @@ // Static bool UserspaceSwapPolicy::UserspaceSwapSupportedAndEnabled() { - static bool enabled = UserspaceSwapConfig::Get().enabled; - static bool supported = - chromeos::memory::userspace_swap::KernelSupportsUserspaceSwap(); - return enabled && supported; + return chromeos::memory::userspace_swap::UserspaceSwapSupportedAndEnabled(); } } // namespace policies
diff --git a/chrome/browser/performance_manager/policies/userspace_swap_policy_chromeos_unittest.cc b/chrome/browser/performance_manager/policies/userspace_swap_policy_chromeos_unittest.cc index 4e88e715..8a9c690c 100644 --- a/chrome/browser/performance_manager/policies/userspace_swap_policy_chromeos_unittest.cc +++ b/chrome/browser/performance_manager/policies/userspace_swap_policy_chromeos_unittest.cc
@@ -5,6 +5,7 @@ #include "chrome/browser/performance_manager/policies/userspace_swap_policy_chromeos.h" #include "base/allocator/buildflags.h" +#include "base/system/sys_info.h" #include "base/task/post_task.h" #include "base/test/scoped_feature_list.h" #include "chrome/browser/performance_manager/policies/policy_features.h" @@ -103,6 +104,10 @@ ~UserspaceSwapPolicyTest() override {} void SetUp() override { + if (!base::SysInfo::IsRunningOnChromeOS()) { + GTEST_SKIP() << "Skip test on chromeos-linux"; + } + CreateAndPassMockPolicy(); // Create a simple graph.
diff --git a/chrome/browser/policy/messaging_layer/encryption/encryption_module.cc b/chrome/browser/policy/messaging_layer/encryption/encryption_module.cc index e93cd77..4be5d74 100644 --- a/chrome/browser/policy/messaging_layer/encryption/encryption_module.cc +++ b/chrome/browser/policy/messaging_layer/encryption/encryption_module.cc
@@ -5,18 +5,90 @@ #include "chrome/browser/policy/messaging_layer/encryption/encryption_module.h" #include "base/callback.h" +#include "base/feature_list.h" #include "base/strings/string_piece.h" +#include "base/test/task_environment.h" #include "chrome/browser/policy/messaging_layer/util/status.h" #include "chrome/browser/policy/messaging_layer/util/statusor.h" #include "components/policy/proto/record.pb.h" namespace reporting { +namespace { + +// Temporary: enable/disable encryption. +const base::Feature kEncryptedReportingFeature{ + EncryptionModule::kEncryptedReporting, base::FEATURE_DISABLED_BY_DEFAULT}; + +// Helper function for asynchronous encryption. +void AddToRecord(base::StringPiece record, + Encryptor::Handle* handle, + base::OnceCallback<void(StatusOr<EncryptedRecord>)> cb) { + handle->AddToRecord( + record, + base::BindOnce( + [](Encryptor::Handle* handle, + base::OnceCallback<void(StatusOr<EncryptedRecord>)> cb, + Status status) { + if (!status.ok()) { + std::move(cb).Run(status); + return; + } + base::ThreadPool::PostTask( + FROM_HERE, + base::BindOnce(&Encryptor::Handle::CloseRecord, + base::Unretained(handle), std::move(cb))); + }, + base::Unretained(handle), std::move(cb))); +} + +} // namespace + +const char EncryptionModule::kEncryptedReporting[] = "EncryptedReporting"; + +EncryptionModule::EncryptionModule() { + auto encryptor_result = Encryptor::Create(); + DCHECK(encryptor_result.ok()); + encryptor_ = std::move(encryptor_result.ValueOrDie()); +} + +EncryptionModule::~EncryptionModule() = default; + void EncryptionModule::EncryptRecord( base::StringPiece record, base::OnceCallback<void(StatusOr<EncryptedRecord>)> cb) const { - std::move(cb).Run( - Status(error::UNIMPLEMENTED, "EncryptRecord isn't implemented")); + if (!base::FeatureList::IsEnabled(kEncryptedReportingFeature)) { + // Encryptor disabled. + EncryptedRecord encrypted_record; + encrypted_record.mutable_encrypted_wrapped_record()->assign(record.begin(), + record.end()); + // encryption_info is not set. + std::move(cb).Run(encrypted_record); + return; + } + + // Encryptor enabled: start encryption of the record as a whole. + encryptor_->OpenRecord(base::BindOnce( + [](base::StringPiece record, + base::OnceCallback<void(StatusOr<EncryptedRecord>)> cb, + StatusOr<Encryptor::Handle*> handle_result) { + if (!handle_result.ok()) { + std::move(cb).Run(handle_result.status()); + return; + } + base::ThreadPool::PostTask( + FROM_HERE, + base::BindOnce(&AddToRecord, std::string(record), + base::Unretained(handle_result.ValueOrDie()), + std::move(cb))); + }, + std::string(record), std::move(cb))); +} + +void EncryptionModule::UpdateAsymmetricKey( + base::StringPiece new_key, + base::OnceCallback<void(Status)> response_cb) { + encryptor_->UpdateAsymmetricKey(new_key, std::move(response_cb)); } } // namespace reporting
diff --git a/chrome/browser/policy/messaging_layer/encryption/encryption_module.h b/chrome/browser/policy/messaging_layer/encryption/encryption_module.h index bbb1d48..2c9c841 100644 --- a/chrome/browser/policy/messaging_layer/encryption/encryption_module.h +++ b/chrome/browser/policy/messaging_layer/encryption/encryption_module.h
@@ -8,6 +8,7 @@ #include "base/callback.h" #include "base/memory/ref_counted.h" #include "base/strings/string_piece.h" +#include "chrome/browser/policy/messaging_layer/encryption/encryption.h" #include "chrome/browser/policy/messaging_layer/util/status.h" #include "chrome/browser/policy/messaging_layer/util/statusor.h" #include "components/policy/proto/record.pb.h" @@ -16,7 +17,10 @@ class EncryptionModule : public base::RefCountedThreadSafe<EncryptionModule> { public: - EncryptionModule() = default; + // Feature to enable/disable encryption. + // By default encryption is disabled, until server can support decryption. + static const char kEncryptedReporting[]; + EncryptionModule(); EncryptionModule(const EncryptionModule& other) = delete; EncryptionModule& operator=(const EncryptionModule& other) = delete; @@ -29,11 +33,19 @@ base::StringPiece record, base::OnceCallback<void(StatusOr<EncryptedRecord>)> cb) const; + // Records current public asymmetric key. + virtual void UpdateAsymmetricKey( + base::StringPiece new_key, + base::OnceCallback<void(Status)> response_cb); + protected: - virtual ~EncryptionModule() = default; + virtual ~EncryptionModule(); private: friend base::RefCountedThreadSafe<EncryptionModule>; + + // Encryptor. + scoped_refptr<Encryptor> encryptor_; }; } // namespace reporting
diff --git a/chrome/browser/policy/messaging_layer/encryption/encryption_module_unittest.cc b/chrome/browser/policy/messaging_layer/encryption/encryption_module_unittest.cc new file mode 100644 index 0000000..63e210e --- /dev/null +++ b/chrome/browser/policy/messaging_layer/encryption/encryption_module_unittest.cc
@@ -0,0 +1,566 @@ +// Copyright 2020 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "chrome/browser/policy/messaging_layer/encryption/encryption_module.h" + +#include "base/bind.h" +#include "base/containers/flat_map.h" +#include "base/hash/hash.h" +#include "base/rand_util.h" +#include "base/strings/strcat.h" +#include "base/synchronization/waitable_event.h" +#include "base/test/scoped_feature_list.h" +#include "base/test/task_environment.h" +#include "base/time/time.h" +#include "chrome/browser/policy/messaging_layer/encryption/decryption.h" +#include "chrome/browser/policy/messaging_layer/util/status.h" +#include "chrome/browser/policy/messaging_layer/util/status_macros.h" +#include "chrome/browser/policy/messaging_layer/util/statusor.h" +#include "components/policy/proto/record.pb.h" +#include "testing/gmock/include/gmock/gmock.h" +#include "testing/gtest/include/gtest/gtest.h" +#include "third_party/boringssl/src/include/openssl/curve25519.h" + +namespace reporting { +namespace { + +// Usage (in tests only): +// +// TestEvent<ResType> e; +// ... Do some async work passing e.cb() as a completion callback of +// base::OnceCallback<void(ResType* res)> type which also may perform +// some other action specified by |done| callback provided by the caller. +// ... = e.result(); // Will wait for e.cb() to be called and return the +// // collected result. +// +// Or, when the callback is not expected to be invoked: +// +// TestEvent<ResType> e(/*expected_to_complete=*/false); +// ... Start work passing e.cb() as a completion callback, +// which will not happen. +// +template <typename ResType> +class TestEvent { + public: + explicit TestEvent(bool expected_to_complete = true) + : expected_to_complete_(expected_to_complete), + completed_(base::WaitableEvent::ResetPolicy::MANUAL, + base::WaitableEvent::InitialState::NOT_SIGNALED) {} + ~TestEvent() { + if (expected_to_complete_) { + EXPECT_TRUE(completed_.IsSignaled()) << "Not responded"; + } else { + EXPECT_FALSE(completed_.IsSignaled()) << "Responded"; + } + } + TestEvent(const TestEvent& other) = delete; + TestEvent& operator=(const TestEvent& other) = delete; + ResType result() { + completed_.Wait(); + return std::forward<ResType>(result_); + } + + // Completion callback to hand over to the processing method. + base::OnceCallback<void(ResType res)> cb() { + DCHECK(!completed_.IsSignaled()); + return base::BindOnce( + [](base::WaitableEvent* completed, ResType* result, ResType res) { + *result = std::forward<ResType>(res); + completed->Signal(); + }, + base::Unretained(&completed_), base::Unretained(&result_)); + } + + private: + bool expected_to_complete_; + base::WaitableEvent completed_; + ResType result_; +}; + +class EncryptionModuleTest : public ::testing::Test { + protected: + EncryptionModuleTest() = default; + + void SetUp() override { + // Enable encryption. + scoped_feature_list_.InitFromCommandLine( + {EncryptionModule::kEncryptedReporting}, {}); + + encryption_module_ = base::MakeRefCounted<EncryptionModule>(); + + auto decryptor_result = Decryptor::Create(); + ASSERT_OK(decryptor_result.status()) << decryptor_result.status(); + decryptor_ = std::move(decryptor_result.ValueOrDie()); + } + + StatusOr<EncryptedRecord> EncryptSync(base::StringPiece data) { + TestEvent<StatusOr<EncryptedRecord>> encrypt_record; + encryption_module_->EncryptRecord(data, encrypt_record.cb()); + return encrypt_record.result(); + } + + StatusOr<std::string> DecryptSync( + std::pair<std::string /*shared_secret*/, std::string /*encrypted_data*/> + encrypted) { + TestEvent<StatusOr<Decryptor::Handle*>> open_decrypt; + decryptor_->OpenRecord(encrypted.first, open_decrypt.cb()); + auto open_decrypt_result = open_decrypt.result(); + RETURN_IF_ERROR(open_decrypt_result.status()); + Decryptor::Handle* const dec_handle = open_decrypt_result.ValueOrDie(); + + TestEvent<Status> add_decrypt; + dec_handle->AddToRecord(encrypted.second, add_decrypt.cb()); + RETURN_IF_ERROR(add_decrypt.result()); + + std::string decrypted_string; + TestEvent<Status> close_decrypt; + dec_handle->CloseRecord(base::BindOnce( + [](std::string* decrypted_string, + base::OnceCallback<void(Status)> close_cb, + StatusOr<base::StringPiece> result) { + if (!result.ok()) { + std::move(close_cb).Run(result.status()); + return; + } + *decrypted_string = std::string(result.ValueOrDie()); + std::move(close_cb).Run(Status::StatusOK()); + }, + base::Unretained(&decrypted_string), close_decrypt.cb())); + RETURN_IF_ERROR(close_decrypt.result()); + return decrypted_string; + } + + StatusOr<std::string> DecryptMatchingSecret(uint32_t public_key_id, + base::StringPiece encrypted_key) { + // Retrieve private key that matches public key hash. + TestEvent<StatusOr<std::string>> retrieve_private_key; + decryptor_->RetrieveMatchingPrivateKey(public_key_id, + retrieve_private_key.cb()); + ASSIGN_OR_RETURN(std::string private_key, retrieve_private_key.result()); + // Decrypt symmetric key with that private key and peer public key. + ASSIGN_OR_RETURN(std::string shared_secret, + decryptor_->DecryptSecret(private_key, encrypted_key)); + return shared_secret; + } + + Status AddNewKeyPair() { + // Generate new pair of private key and public value. + uint8_t out_public_value[X25519_PUBLIC_VALUE_LEN]; + uint8_t out_private_key[X25519_PRIVATE_KEY_LEN]; + X25519_keypair(out_public_value, out_private_key); + + TestEvent<Status> record_keys; + decryptor_->RecordKeyPair( + std::string(reinterpret_cast<const char*>(out_private_key), + X25519_PRIVATE_KEY_LEN), + std::string(reinterpret_cast<const char*>(out_public_value), + X25519_PUBLIC_VALUE_LEN), + record_keys.cb()); + RETURN_IF_ERROR(record_keys.result()); + TestEvent<Status> set_public_key; + encryption_module_->UpdateAsymmetricKey( + std::string(reinterpret_cast<const char*>(out_public_value), + X25519_PUBLIC_VALUE_LEN), + set_public_key.cb()); + RETURN_IF_ERROR(set_public_key.result()); + return Status::StatusOK(); + } + + scoped_refptr<EncryptionModule> encryption_module_; + scoped_refptr<Decryptor> decryptor_; + + private: + base::test::ScopedFeatureList scoped_feature_list_; + base::test::TaskEnvironment task_environment_{ + base::test::TaskEnvironment::TimeSource::MOCK_TIME}; +}; + +TEST_F(EncryptionModuleTest, EncryptAndDecrypt) { + constexpr char kTestString[] = "ABCDEF"; + + // Register new pair of private key and public value. + ASSERT_OK(AddNewKeyPair()); + + // Encrypt the test string using the last public value. + const auto encrypted_result = EncryptSync(kTestString); + ASSERT_OK(encrypted_result.status()) << encrypted_result.status(); + + // Decrypt shared secret with private asymmetric key. + auto decrypt_secret_result = DecryptMatchingSecret( + encrypted_result.ValueOrDie().encryption_info().public_key_id(), + encrypted_result.ValueOrDie().encryption_info().encryption_key()); + ASSERT_OK(decrypt_secret_result.status()) << decrypt_secret_result.status(); + + // Decrypt back. + const auto decrypted_result = DecryptSync( + std::make_pair(decrypt_secret_result.ValueOrDie(), + encrypted_result.ValueOrDie().encrypted_wrapped_record())); + ASSERT_OK(decrypted_result.status()) << decrypted_result.status(); + + EXPECT_THAT(decrypted_result.ValueOrDie(), ::testing::StrEq(kTestString)); +} + +TEST_F(EncryptionModuleTest, EncryptionDisabled) { + constexpr char kTestString[] = "ABCDEF"; + + // Disable encryption. + base::test::ScopedFeatureList scoped_feature_list; + scoped_feature_list.InitFromCommandLine( + {}, {EncryptionModule::kEncryptedReporting}); + + // Encrypt the test string. + const auto encrypted_result = EncryptSync(kTestString); + ASSERT_OK(encrypted_result.status()); + + // Expect the result to be identical to the original record, + // and have no encryption_info. + EXPECT_EQ(encrypted_result.ValueOrDie().encrypted_wrapped_record(), + kTestString); + EXPECT_FALSE(encrypted_result.ValueOrDie().has_encryption_info()); +} + +TEST_F(EncryptionModuleTest, NoPublicKey) { + constexpr char kTestString[] = "ABCDEF"; + + // Attempt to encrypt the test string. + const auto encrypted_result = EncryptSync(kTestString); + EXPECT_EQ(encrypted_result.status().error_code(), error::NOT_FOUND); +} + +TEST_F(EncryptionModuleTest, EncryptAndDecryptMultiple) { + constexpr const char* kTestStrings[] = {"Rec1", "Rec22", "Rec333", + "Rec4444", "Rec55555", "Rec666666"}; + // Encrypted records. + std::vector<EncryptedRecord> encrypted_records; + + // 1. Register first key pair. + ASSERT_OK(AddNewKeyPair()); + + // 2. Encrypt 3 test strings. + for (const char* test_string : + {kTestStrings[0], kTestStrings[1], kTestStrings[2]}) { + const auto encrypted_result = EncryptSync(test_string); + ASSERT_OK(encrypted_result.status()) << encrypted_result.status(); + encrypted_records.emplace_back(encrypted_result.ValueOrDie()); + } + + // 3. Register second key pair. + ASSERT_OK(AddNewKeyPair()); + + // 4. Encrypt 2 test strings. + for (const char* test_string : {kTestStrings[3], kTestStrings[4]}) { + const auto encrypted_result = EncryptSync(test_string); + ASSERT_OK(encrypted_result.status()) << encrypted_result.status(); + encrypted_records.emplace_back(encrypted_result.ValueOrDie()); + } + + // 3. Register third key pair. + ASSERT_OK(AddNewKeyPair()); + + // 4. Encrypt one more test strings. + for (const char* test_string : {kTestStrings[5]}) { + const auto encrypted_result = EncryptSync(test_string); + ASSERT_OK(encrypted_result.status()) << encrypted_result.status(); + encrypted_records.emplace_back(encrypted_result.ValueOrDie()); + } + + // For every encrypted record: + for (size_t i = 0; i < encrypted_records.size(); ++i) { + // Decrypt encrypted_key with private asymmetric key. + auto decrypt_secret_result = DecryptMatchingSecret( + encrypted_records[i].encryption_info().public_key_id(), + encrypted_records[i].encryption_info().encryption_key()); + ASSERT_OK(decrypt_secret_result.status()) << decrypt_secret_result.status(); + + // Decrypt back. + const auto decrypted_result = DecryptSync( + std::make_pair(decrypt_secret_result.ValueOrDie(), + encrypted_records[i].encrypted_wrapped_record())); + ASSERT_OK(decrypted_result.status()) << decrypted_result.status(); + + // Verify match. + EXPECT_THAT(decrypted_result.ValueOrDie(), + ::testing::StrEq(kTestStrings[i])); + } +} + +TEST_F(EncryptionModuleTest, EncryptAndDecryptMultipleParallel) { + // Context of single encryption. Self-destructs upon completion or failure. + class SingleEncryptionContext { + public: + SingleEncryptionContext( + base::StringPiece test_string, + base::StringPiece public_key, + scoped_refptr<EncryptionModule> encryption_module, + base::OnceCallback<void(StatusOr<EncryptedRecord>)> response) + : test_string_(test_string), + public_key_(public_key), + encryption_module_(encryption_module), + response_(std::move(response)) {} + + SingleEncryptionContext(const SingleEncryptionContext& other) = delete; + SingleEncryptionContext& operator=(const SingleEncryptionContext& other) = + delete; + + ~SingleEncryptionContext() { + DCHECK(!response_) << "Self-destruct without prior response"; + } + + void Start() { + base::ThreadPool::PostTask( + FROM_HERE, base::BindOnce(&SingleEncryptionContext::SetPublicKey, + base::Unretained(this))); + } + + private: + void Respond(StatusOr<EncryptedRecord> result) { + std::move(response_).Run(result); + delete this; + } + void SetPublicKey() { + encryption_module_->UpdateAsymmetricKey( + public_key_, + base::BindOnce( + [](SingleEncryptionContext* self, Status status) { + if (!status.ok()) { + self->Respond(status); + return; + } + base::ThreadPool::PostTask( + FROM_HERE, + base::BindOnce(&SingleEncryptionContext::EncryptRecord, + base::Unretained(self))); + }, + base::Unretained(this))); + } + void EncryptRecord() { + encryption_module_->EncryptRecord( + test_string_, + base::BindOnce( + [](SingleEncryptionContext* self, + StatusOr<EncryptedRecord> encryption_result) { + base::ThreadPool::PostTask( + FROM_HERE, + base::BindOnce(&SingleEncryptionContext::Respond, + base::Unretained(self), encryption_result)); + }, + base::Unretained(this))); + } + + private: + const std::string test_string_; + const std::string public_key_; + const scoped_refptr<EncryptionModule> encryption_module_; + base::OnceCallback<void(StatusOr<EncryptedRecord>)> response_; + }; + + // Context of single decryption. Self-destructs upon completion or failure. + class SingleDecryptionContext { + public: + SingleDecryptionContext( + const EncryptedRecord& encrypted_record, + scoped_refptr<Decryptor> decryptor, + base::OnceCallback<void(StatusOr<base::StringPiece>)> response) + : encrypted_record_(encrypted_record), + decryptor_(decryptor), + response_(std::move(response)) {} + + SingleDecryptionContext(const SingleDecryptionContext& other) = delete; + SingleDecryptionContext& operator=(const SingleDecryptionContext& other) = + delete; + + ~SingleDecryptionContext() { + DCHECK(!response_) << "Self-destruct without prior response"; + } + + void Start() { + base::ThreadPool::PostTask( + FROM_HERE, + base::BindOnce(&SingleDecryptionContext::RetrieveMatchingPrivateKey, + base::Unretained(this))); + } + + private: + void Respond(StatusOr<base::StringPiece> result) { + std::move(response_).Run(result); + delete this; + } + + void RetrieveMatchingPrivateKey() { + // Retrieve private key that matches public key hash. + decryptor_->RetrieveMatchingPrivateKey( + encrypted_record_.encryption_info().public_key_id(), + base::BindOnce( + [](SingleDecryptionContext* self, + StatusOr<std::string> private_key_result) { + if (!private_key_result.ok()) { + self->Respond(private_key_result.status()); + return; + } + base::ThreadPool::PostTask( + FROM_HERE, + base::BindOnce( + &SingleDecryptionContext::DecryptSharedSecret, + base::Unretained(self), + private_key_result.ValueOrDie())); + }, + base::Unretained(this))); + } + + void DecryptSharedSecret(base::StringPiece private_key) { + // Decrypt shared secret from private key and peer public key. + auto shared_secret_result = decryptor_->DecryptSecret( + private_key, encrypted_record_.encryption_info().encryption_key()); + if (!shared_secret_result.ok()) { + Respond(shared_secret_result.status()); + return; + } + base::ThreadPool::PostTask( + FROM_HERE, base::BindOnce(&SingleDecryptionContext::OpenRecord, + base::Unretained(this), + shared_secret_result.ValueOrDie())); + } + + void OpenRecord(base::StringPiece shared_secret) { + decryptor_->OpenRecord( + shared_secret, + base::BindOnce( + [](SingleDecryptionContext* self, + StatusOr<Decryptor::Handle*> handle_result) { + if (!handle_result.ok()) { + self->Respond(handle_result.status()); + return; + } + base::ThreadPool::PostTask( + FROM_HERE, + base::BindOnce( + &SingleDecryptionContext::AddToRecord, + base::Unretained(self), + base::Unretained(handle_result.ValueOrDie()))); + }, + base::Unretained(this))); + } + + void AddToRecord(Decryptor::Handle* handle) { + handle->AddToRecord( + encrypted_record_.encrypted_wrapped_record(), + base::BindOnce( + [](SingleDecryptionContext* self, Decryptor::Handle* handle, + Status status) { + if (!status.ok()) { + self->Respond(status); + return; + } + base::ThreadPool::PostTask( + FROM_HERE, + base::BindOnce(&SingleDecryptionContext::CloseRecord, + base::Unretained(self), + base::Unretained(handle))); + }, + base::Unretained(this), base::Unretained(handle))); + } + + void CloseRecord(Decryptor::Handle* handle) { + handle->CloseRecord(base::BindOnce( + [](SingleDecryptionContext* self, + StatusOr<base::StringPiece> decryption_result) { + self->Respond(decryption_result); + }, + base::Unretained(this))); + } + + private: + const EncryptedRecord encrypted_record_; + const scoped_refptr<Decryptor> decryptor_; + base::OnceCallback<void(StatusOr<base::StringPiece>)> response_; + }; + + constexpr std::array<const char*, 6> kTestStrings = { + "Rec1", "Rec22", "Rec333", "Rec4444", "Rec55555", "Rec666666"}; + + // Public and private key pairs in this test are reversed strings. + std::vector<std::string> private_key_strings; + std::vector<std::string> public_value_strings; + for (size_t i = 0; i < 3; ++i) { + // Generate new pair of private key and public value. + uint8_t out_public_value[X25519_PUBLIC_VALUE_LEN]; + uint8_t out_private_key[X25519_PRIVATE_KEY_LEN]; + X25519_keypair(out_public_value, out_private_key); + private_key_strings.emplace_back( + reinterpret_cast<const char*>(out_private_key), X25519_PRIVATE_KEY_LEN); + public_value_strings.emplace_back( + reinterpret_cast<const char*>(out_public_value), + X25519_PUBLIC_VALUE_LEN); + } + + // Encrypt all records in parallel. + std::vector<TestEvent<StatusOr<EncryptedRecord>>> results( + kTestStrings.size()); + for (size_t i = 0; i < kTestStrings.size(); ++i) { + // Choose random key pair. + size_t i_key_pair = base::RandInt(0, public_value_strings.size() - 1); + (new SingleEncryptionContext(kTestStrings[i], + public_value_strings[i_key_pair], + encryption_module_, results[i].cb())) + ->Start(); + } + + // Register all key pairs for decryption. + std::vector<TestEvent<Status>> record_results(public_value_strings.size()); + for (size_t i = 0; i < public_value_strings.size(); ++i) { + base::ThreadPool::PostTask( + FROM_HERE, base::BindOnce( + [](base::StringPiece private_key_string, + base::StringPiece public_key_string, + scoped_refptr<Decryptor> decryptor, + base::OnceCallback<void(Status)> done_cb) { + decryptor->RecordKeyPair(private_key_string, + public_key_string, + std::move(done_cb)); + }, + private_key_strings[i], public_value_strings[i], + decryptor_, record_results[i].cb())); + } + // Verify registration success. + for (auto& record_result : record_results) { + ASSERT_OK(record_result.result()) << record_result.result(); + } + + // Decrypt all records in parallel. + std::vector<TestEvent<StatusOr<std::string>>> decryption_results( + kTestStrings.size()); + for (size_t i = 0; i < results.size(); ++i) { + // Verify encryption success. + const auto result = results[i].result(); + ASSERT_OK(result.status()) << result.status(); + // Decrypt and compare encrypted_record. + (new SingleDecryptionContext( + result.ValueOrDie(), decryptor_, + base::BindOnce( + [](base::OnceCallback<void(StatusOr<std::string>)> + decryption_result, + StatusOr<base::StringPiece> result) { + if (!result.ok()) { + std::move(decryption_result).Run(result.status()); + return; + } + std::move(decryption_result) + .Run(std::string(result.ValueOrDie())); + }, + decryption_results[i].cb()))) + ->Start(); + } + + // Verify decryption results. + for (size_t i = 0; i < decryption_results.size(); ++i) { + const auto decryption_result = decryption_results[i].result(); + ASSERT_OK(decryption_result.status()) << decryption_result.status(); + // Verify data match. + EXPECT_THAT(decryption_result.ValueOrDie(), + ::testing::StrEq(kTestStrings[i])); + } +} + +} // namespace +} // namespace reporting
diff --git a/chrome/browser/policy/messaging_layer/encryption/test_encryption_module.cc b/chrome/browser/policy/messaging_layer/encryption/test_encryption_module.cc index 11aa328..5137c145 100644 --- a/chrome/browser/policy/messaging_layer/encryption/test_encryption_module.cc +++ b/chrome/browser/policy/messaging_layer/encryption/test_encryption_module.cc
@@ -26,6 +26,14 @@ })); } +void TestEncryptionModule::UpdateAsymmetricKey( + base::StringPiece new_key, + base::OnceCallback<void(Status)> response_cb) { + std::move(response_cb) + .Run(Status(error::UNIMPLEMENTED, + "Test Encryption Module does not accept any keys")); +} + TestEncryptionModule::~TestEncryptionModule() = default; } // namespace test
diff --git a/chrome/browser/policy/messaging_layer/encryption/test_encryption_module.h b/chrome/browser/policy/messaging_layer/encryption/test_encryption_module.h index 6b50c69..f299811 100644 --- a/chrome/browser/policy/messaging_layer/encryption/test_encryption_module.h +++ b/chrome/browser/policy/messaging_layer/encryption/test_encryption_module.h
@@ -27,6 +27,10 @@ base::OnceCallback<void(StatusOr<EncryptedRecord>)> cb), (const override)); + void UpdateAsymmetricKey( + base::StringPiece new_key, + base::OnceCallback<void(Status)> response_cb) override; + protected: ~TestEncryptionModule() override; };
diff --git a/chrome/browser/prerender/chrome_prerender_manager_delegate.cc b/chrome/browser/prerender/chrome_prerender_manager_delegate.cc index 9c0c501..d76343c6 100644 --- a/chrome/browser/prerender/chrome_prerender_manager_delegate.cc +++ b/chrome/browser/prerender/chrome_prerender_manager_delegate.cc
@@ -53,53 +53,14 @@ return std::make_unique<ChromePrerenderContentsDelegate>(); } -bool ChromePrerenderManagerDelegate::IsPredictionEnabled(Origin origin) { - return GetPredictionStatusForOrigin(origin) == +bool ChromePrerenderManagerDelegate::IsNetworkPredictionPreferenceEnabled() { + return GetPredictionStatus() == chrome_browser_net::NetworkPredictionStatus::ENABLED; } bool ChromePrerenderManagerDelegate::IsPredictionDisabledDueToNetwork( Origin origin) { - return GetPredictionStatusForOrigin(origin) == - chrome_browser_net::NetworkPredictionStatus::DISABLED_DUE_TO_NETWORK; -} - -bool ChromePrerenderManagerDelegate::IsPredictionEnabled() { - return GetPredictionStatus() == - chrome_browser_net::NetworkPredictionStatus::ENABLED; -} - -std::string ChromePrerenderManagerDelegate::GetReasonForDisablingPrediction() { - std::string disabled_note; - if (GetPredictionStatus() == - chrome_browser_net::NetworkPredictionStatus::DISABLED_ALWAYS) - disabled_note = "Disabled by user setting"; - if (GetPredictionStatus() == - chrome_browser_net::NetworkPredictionStatus::DISABLED_DUE_TO_NETWORK) - disabled_note = "Disabled on cellular connection by default"; - return disabled_note; -} - -chrome_browser_net::NetworkPredictionStatus -ChromePrerenderManagerDelegate::GetPredictionStatus() const { DCHECK_CURRENTLY_ON(content::BrowserThread::UI); - return chrome_browser_net::CanPrefetchAndPrerenderUI(profile_->GetPrefs()); -} - -chrome_browser_net::NetworkPredictionStatus -ChromePrerenderManagerDelegate::GetPredictionStatusForOrigin( - Origin origin) const { - DCHECK_CURRENTLY_ON(content::BrowserThread::UI); - - // <link rel=prerender> origins ignore the network state and the privacy - // settings. Web developers should be able prefetch with all possible privacy - // settings and with all possible network types. This would avoid web devs - // coming up with creative ways to prefetch in cases they are not allowed to - // do so. - if (origin == ORIGIN_LINK_REL_PRERENDER_SAMEDOMAIN || - origin == ORIGIN_LINK_REL_PRERENDER_CROSSDOMAIN) { - return chrome_browser_net::NetworkPredictionStatus::ENABLED; - } // Prerendering forced for cellular networks still prevents navigation with // the DISABLED_ALWAYS selected via privacy settings. @@ -108,9 +69,31 @@ if (origin == ORIGIN_EXTERNAL_REQUEST_FORCED_PRERENDER && prediction_status == chrome_browser_net::NetworkPredictionStatus:: DISABLED_DUE_TO_NETWORK) { - return chrome_browser_net::NetworkPredictionStatus::ENABLED; + return false; } - return prediction_status; + + return prediction_status == + chrome_browser_net::NetworkPredictionStatus::DISABLED_DUE_TO_NETWORK; } +std::string ChromePrerenderManagerDelegate::GetReasonForDisablingPrediction() { + auto prediction_status = GetPredictionStatus(); + if (prediction_status == + chrome_browser_net::NetworkPredictionStatus::DISABLED_ALWAYS) { + return "Disabled by user setting"; + } + if (prediction_status == + chrome_browser_net::NetworkPredictionStatus::DISABLED_DUE_TO_NETWORK) { + return "Disabled on cellular connection by default"; + } + return ""; +} + +chrome_browser_net::NetworkPredictionStatus +ChromePrerenderManagerDelegate::GetPredictionStatus() const { + DCHECK_CURRENTLY_ON(content::BrowserThread::UI); + return chrome_browser_net::CanPrefetchAndPrerenderUI(profile_->GetPrefs()); +} + + } // namespace prerender
diff --git a/chrome/browser/prerender/chrome_prerender_manager_delegate.h b/chrome/browser/prerender/chrome_prerender_manager_delegate.h index 6d8f2af..99e4808 100644 --- a/chrome/browser/prerender/chrome_prerender_manager_delegate.h +++ b/chrome/browser/prerender/chrome_prerender_manager_delegate.h
@@ -7,6 +7,7 @@ #include "chrome/browser/net/prediction_options.h" #include "components/prerender/browser/prerender_manager_delegate.h" +#include "components/prerender/common/prerender_origin.h" class Profile; @@ -26,15 +27,12 @@ void MaybePreconnect(const GURL& url) override; std::unique_ptr<PrerenderContentsDelegate> GetPrerenderContentsDelegate() override; - bool IsPredictionEnabled(Origin origin) override; - bool IsPredictionEnabled() override; + bool IsNetworkPredictionPreferenceEnabled() override; bool IsPredictionDisabledDueToNetwork(Origin origin) override; std::string GetReasonForDisablingPrediction() override; private: chrome_browser_net::NetworkPredictionStatus GetPredictionStatus() const; - chrome_browser_net::NetworkPredictionStatus GetPredictionStatusForOrigin( - Origin origin) const; Profile* profile_; };
diff --git a/chrome/browser/push_messaging/push_messaging_constants.h b/chrome/browser/push_messaging/push_messaging_constants.h index 41094fdc..586873e1 100644 --- a/chrome/browser/push_messaging/push_messaging_constants.h +++ b/chrome/browser/push_messaging/push_messaging_constants.h
@@ -19,4 +19,8 @@ constexpr base::TimeDelta kPushSubscriptionExpirationPeriodTimeDelta = base::TimeDelta::FromDays(90); +// TimeDelta for subscription refreshes to keep old subscriptions alive +constexpr base::TimeDelta kPushSubscriptionRefreshTimeDelta = + base::TimeDelta::FromMinutes(2); + #endif // CHROME_BROWSER_PUSH_MESSAGING_PUSH_MESSAGING_CONSTANTS_H_
diff --git a/chrome/browser/push_messaging/push_messaging_refresher.cc b/chrome/browser/push_messaging/push_messaging_refresher.cc new file mode 100644 index 0000000..caf5fb04 --- /dev/null +++ b/chrome/browser/push_messaging/push_messaging_refresher.cc
@@ -0,0 +1,117 @@ +// Copyright 2020 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "chrome/browser/push_messaging/push_messaging_refresher.h" + +#include "base/bind.h" +#include "base/bind_helpers.h" +#include "base/feature_list.h" +#include "chrome/browser/push_messaging/push_messaging_app_identifier.h" +#include "chrome/browser/push_messaging/push_messaging_constants.h" +#include "chrome/browser/push_messaging/push_messaging_service_impl.h" +#include "chrome/browser/push_messaging/push_messaging_utils.h" +#include "chrome/common/pref_names.h" +#include "content/public/browser/browser_context.h" +#include "content/public/browser/push_messaging_service.h" +#include "content/public/common/content_features.h" +#include "third_party/blink/public/mojom/push_messaging/push_messaging_status.mojom.h" +#include "url/gurl.h" + +PushMessagingRefresher::PushMessagingRefresher() = default; + +PushMessagingRefresher::~PushMessagingRefresher() = default; + +size_t PushMessagingRefresher::GetCount() const { + return old_subscriptions_.size(); +} + +void PushMessagingRefresher::Refresh( + PushMessagingAppIdentifier old_app_identifier, + const std::string& new_app_id, + const std::string& sender_id) { + RefreshObject refresh_object = {old_app_identifier, sender_id, + false /* is_valid */}; + // Insert is as current started refresh + old_subscriptions_.emplace(new_app_id, refresh_object); + refresh_map_.emplace(old_app_identifier.app_id(), new_app_id); + // TODO(viviy): Save old_subscription in a seperate map in preferences, so + // that in case of a browser shutdown the subscription is remembered. + // Unsubscribe on next startup. +} + +void PushMessagingRefresher::OnSubscriptionUpdated( + const std::string& new_app_id) { + RefreshInfo::iterator result = old_subscriptions_.find(new_app_id); + + if (result == old_subscriptions_.end()) + return; + + // Schedule a unsubscription event for the old subscription + base::ThreadTaskRunnerHandle::Get()->PostDelayedTask( + FROM_HERE, + base::BindOnce(&PushMessagingRefresher::NotifyOnOldSubscriptionExpired, + weak_factory_.GetWeakPtr(), + result->second.old_identifier.app_id(), + result->second.sender_id), + kPushSubscriptionRefreshTimeDelta); +} + +void PushMessagingRefresher::NotifyOnOldSubscriptionExpired( + const std::string& old_app_id, + const std::string& sender_id) { + for (Observer& obs : observers_) + obs.OnOldSubscriptionExpired(old_app_id, sender_id); +} + +void PushMessagingRefresher::OnUnsubscribed(const std::string& old_app_id) { + auto found_new_app_id = refresh_map_.find(old_app_id); + // Already unsubscribed + if (found_new_app_id == refresh_map_.end()) + return; + + std::string new_app_id = found_new_app_id->second; + refresh_map_.erase(found_new_app_id); + + RefreshInfo::iterator result = old_subscriptions_.find(new_app_id); + DCHECK(result != old_subscriptions_.end()); + + PushMessagingAppIdentifier old_identifier = result->second.old_identifier; + old_subscriptions_.erase(result); + + for (Observer& obs : observers_) + obs.OnRefreshFinished(old_identifier); +} + +void PushMessagingRefresher::GotMessageFrom(const std::string& app_id) { + RefreshInfo::iterator result = old_subscriptions_.find(app_id); + // If a message arrives that is part of the refresh, expire the old + // subscription immediately + if (result != old_subscriptions_.end() && !result->second.is_valid) { + NotifyOnOldSubscriptionExpired(result->second.old_identifier.app_id(), + result->second.sender_id); + result->second.is_valid = true; + } +} + +base::Optional<PushMessagingAppIdentifier> +PushMessagingRefresher::FindActiveAppIdentifier(const std::string& app_id) { + base::Optional<PushMessagingAppIdentifier> app_identifier; + RefreshMap::iterator refresh_map_it = refresh_map_.find(app_id); + if (refresh_map_it != refresh_map_.end()) { + RefreshInfo::iterator result = + old_subscriptions_.find(refresh_map_it->second); + if (result != old_subscriptions_.end() && !result->second.is_valid) { + app_identifier = result->second.old_identifier; + } + } + return app_identifier; +} + +void PushMessagingRefresher::AddObserver(Observer* observer) { + observers_.AddObserver(observer); +} + +void PushMessagingRefresher::RemoveObserver(Observer* observer) { + observers_.RemoveObserver(observer); +}
diff --git a/chrome/browser/push_messaging/push_messaging_refresher.h b/chrome/browser/push_messaging/push_messaging_refresher.h new file mode 100644 index 0000000..b56843e --- /dev/null +++ b/chrome/browser/push_messaging/push_messaging_refresher.h
@@ -0,0 +1,94 @@ +// Copyright 2020 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef CHROME_BROWSER_PUSH_MESSAGING_PUSH_MESSAGING_REFRESHER_H_ +#define CHROME_BROWSER_PUSH_MESSAGING_PUSH_MESSAGING_REFRESHER_H_ + +#include <map> +#include <vector> + +#include "base/memory/weak_ptr.h" +#include "base/observer_list.h" +#include "base/observer_list_types.h" +#include "base/optional.h" +#include "chrome/browser/push_messaging/push_messaging_app_identifier.h" +#include "content/public/browser/push_messaging_service.h" +#include "third_party/blink/public/mojom/push_messaging/push_messaging.mojom-forward.h" + +// This class enables push subscription refreshes as defined in the docs: +// https://w3c.github.io/push-api/#subscription-refreshes +// The idea is to keep the refresh information of both new and old subscription +// in memory during the refresh process to be still able to receive messages +// through the old subscription after it was replaced by the new subscription. +class PushMessagingRefresher { + public: + PushMessagingRefresher(); + ~PushMessagingRefresher(); + + // Return number of objects that are currently being refreshed + size_t GetCount() const; + + // Register a new refresh pair with relevant information. + void Refresh(PushMessagingAppIdentifier old_app_identifier, + const std::string& new_app_id, + const std::string& sender_id); + + // The subscription with the new app id was updated, new messages arriving + // through the new subscription should be accepted now. + void OnSubscriptionUpdated(const std::string& new_app_id); + + // Unsubscribe event happened for the old subscription. It is deleted in + // the RefreshMap and notify all observers that the refresh process for + // |app_id| has finished + void OnUnsubscribed(const std::string& app_id); + + // If a new message arrives through an |app_id| that is associated with a + // refresh, the old subscription needs to be deactivated. + void GotMessageFrom(const std::string& app_id); + + // If a subscription was refreshed, we accept the old subscription for + // a moment after refresh + base::Optional<PushMessagingAppIdentifier> FindActiveAppIdentifier( + const std::string& app_id); + + // Observer for Refresh status updates + class Observer : public base::CheckedObserver { + public: + virtual void OnOldSubscriptionExpired(const std::string& app_id, + const std::string& sender_id) = 0; + virtual void OnRefreshFinished( + const PushMessagingAppIdentifier& app_identifier) = 0; + }; + + void AddObserver(Observer* observer); + void RemoveObserver(Observer* observer); + + private: + // A RefreshObject carries subscription information that is needed to receive + // messages and to unsubscribe from the old subscription + struct RefreshObject { + PushMessagingAppIdentifier old_identifier; + std::string sender_id; + bool is_valid; + }; + + void NotifyOnOldSubscriptionExpired(const std::string& app_id, + const std::string& sender_id); + + base::ObserverList<Observer> observers_; + + // Maps from new app id to the refresh information of the old subscription + // that is needed to receive messages and unsubscribe + using RefreshInfo = std::map<std::string, RefreshObject>; + RefreshInfo old_subscriptions_; + + // Maps from old app id to new app id + using RefreshMap = std::map<std::string, std::string>; + RefreshMap refresh_map_; + + base::WeakPtrFactory<PushMessagingRefresher> weak_factory_{this}; + DISALLOW_COPY_AND_ASSIGN(PushMessagingRefresher); +}; + +#endif // CHROME_BROWSER_PUSH_MESSAGING_PUSH_MESSAGING_REFRESHER_H_
diff --git a/chrome/browser/push_messaging/push_messaging_refresher_unittest.cc b/chrome/browser/push_messaging/push_messaging_refresher_unittest.cc new file mode 100644 index 0000000..a9de350 --- /dev/null +++ b/chrome/browser/push_messaging/push_messaging_refresher_unittest.cc
@@ -0,0 +1,84 @@ +// Copyright 2020 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "chrome/browser/push_messaging/push_messaging_refresher.h" + +#include <stdint.h> + +#include "base/optional.h" +#include "base/time/time.h" +#include "chrome/browser/push_messaging/push_messaging_app_identifier.h" +#include "chrome/browser/push_messaging/push_messaging_refresher.h" +#include "chrome/test/base/testing_profile.h" +#include "content/public/test/browser_task_environment.h" +#include "testing/gtest/include/gtest/gtest.h" +#include "url/gurl.h" +namespace { + +void ExpectAppIdentifiersEqual(const PushMessagingAppIdentifier& a, + const PushMessagingAppIdentifier& b) { + EXPECT_EQ(a.app_id(), b.app_id()); + EXPECT_EQ(a.origin(), b.origin()); + EXPECT_EQ(a.service_worker_registration_id(), + b.service_worker_registration_id()); + EXPECT_EQ(a.expiration_time(), b.expiration_time()); +} + +constexpr char kTestOrigin[] = "https://example.com"; +constexpr char kTestSenderId[] = "1234567890"; +const int64_t kTestServiceWorkerId = 42; + +class PushMessagingRefresherTest : public testing::Test { + protected: + void SetUp() override { + old_app_identifier_ = PushMessagingAppIdentifier::Generate( + GURL(kTestOrigin), kTestServiceWorkerId); + new_app_identifier_ = PushMessagingAppIdentifier::Generate( + GURL(kTestOrigin), kTestServiceWorkerId); + } + + Profile* profile() { return &profile_; } + + PushMessagingRefresher* refresher() { return &refresher_; } + + base::Optional<PushMessagingAppIdentifier> old_app_identifier_; + base::Optional<PushMessagingAppIdentifier> new_app_identifier_; + + private: + content::BrowserTaskEnvironment task_environment_; + TestingProfile profile_; + PushMessagingRefresher refresher_; +}; + +TEST_F(PushMessagingRefresherTest, GotMessageThroughNewSubscription) { + refresher()->Refresh(old_app_identifier_.value(), + new_app_identifier_.value().app_id(), kTestSenderId); + refresher()->GotMessageFrom(new_app_identifier_.value().app_id()); + auto app_identifier = refresher()->FindActiveAppIdentifier( + old_app_identifier_.value().app_id()); + EXPECT_FALSE(app_identifier.has_value()); +} + +TEST_F(PushMessagingRefresherTest, LookupOldSubscription) { + refresher()->Refresh(old_app_identifier_.value(), + new_app_identifier_.value().app_id(), kTestSenderId); + { + base::Optional<PushMessagingAppIdentifier> found_old_app_identifier = + refresher()->FindActiveAppIdentifier( + old_app_identifier_.value().app_id()); + EXPECT_TRUE(found_old_app_identifier.has_value()); + ExpectAppIdentifiersEqual(old_app_identifier_.value(), + found_old_app_identifier.value()); + } + refresher()->OnUnsubscribed(old_app_identifier_.value().app_id()); + { + base::Optional<PushMessagingAppIdentifier> found_after_unsubscribe = + refresher()->FindActiveAppIdentifier( + old_app_identifier_.value().app_id()); + EXPECT_FALSE(found_after_unsubscribe.has_value()); + } + EXPECT_EQ(0u, refresher()->GetCount()); +} + +} // namespace
diff --git a/chrome/browser/renderer_preferences_util.cc b/chrome/browser/renderer_preferences_util.cc index 0acace5..71fdef9 100644 --- a/chrome/browser/renderer_preferences_util.cc +++ b/chrome/browser/renderer_preferences_util.cc
@@ -96,8 +96,12 @@ void UpdateFromSystemSettings(blink::mojom::RendererPreferences* prefs, Profile* profile) { const PrefService* pref_service = profile->GetPrefs(); - prefs->accept_languages = - pref_service->GetString(language::prefs::kAcceptLanguages); + if (profile->IsOffTheRecord()) { + prefs->accept_languages = g_browser_process->GetApplicationLocale(); + } else { + prefs->accept_languages = + pref_service->GetString(language::prefs::kAcceptLanguages); + } prefs->enable_referrers = pref_service->GetBoolean(prefs::kEnableReferrers); prefs->enable_do_not_track = pref_service->GetBoolean(prefs::kEnableDoNotTrack);
diff --git a/chrome/browser/resources/chromeos/accessibility/chromevox/background/background_test.js b/chrome/browser/resources/chromeos/accessibility/chromevox/background/background_test.js index 3c29ae2..4ff0a587 100644 --- a/chrome/browser/resources/chromeos/accessibility/chromevox/background/background_test.js +++ b/chrome/browser/resources/chromeos/accessibility/chromevox/background/background_test.js
@@ -285,7 +285,7 @@ }); }); -TEST_F('ChromeVoxBackgroundTest', 'SelectSingleBasic', function() { +TEST_F('ChromeVoxBackgroundTest', 'DISABLED_SelectSingleBasic', function() { const mockFeedback = this.createMockFeedback(); this.runWithLoadedTree(this.formsDoc, function() { mockFeedback.expectSpeech('apple', 'has pop up', 'Collapsed') @@ -726,7 +726,7 @@ }); }); -TEST_F('ChromeVoxBackgroundTest', 'SelectOptionSelected', function() { +TEST_F('ChromeVoxBackgroundTest', 'DISABLED_SelectOptionSelected', function() { const mockFeedback = this.createMockFeedback(); this.runWithLoadedTree( ` @@ -2814,7 +2814,7 @@ }); }); -TEST_F('ChromeVoxBackgroundTest', 'PopupButtonCollapsed', function() { +TEST_F('ChromeVoxBackgroundTest', 'DISABLED_PopupButtonCollapsed', function() { const mockFeedback = this.createMockFeedback(); this.runWithLoadedTree( ` @@ -2904,3 +2904,42 @@ .replay(); }); }); + +TEST_F('ChromeVoxBackgroundTest', 'AudioVideo', function() { + const mockFeedback = this.createMockFeedback(); + this.runWithLoadedTree( + ` + <button></button> + <button></button> + `, + function(root) { + const [audio, video] = root.findAll({role: RoleType.BUTTON}); + + assertNotNullNorUndefined(audio); + assertNotNullNorUndefined(video); + + assertEquals('', audio.name); + assertEquals('', video.name); + assertEquals(undefined, audio.firstChild); + assertEquals(undefined, video.firstChild); + + // Fake the roles. + Object.defineProperty(audio, 'role', { + get() { + return chrome.automation.RoleType.AUDIO; + } + }); + + Object.defineProperty(video, 'role', { + get() { + return chrome.automation.RoleType.VIDEO; + } + }); + + mockFeedback.call(doCmd('nextObject')) + .expectSpeech('Video') + .call(doCmd('previousObject')) + .expectSpeech('Audio') + .replay(); + }); +});
diff --git a/chrome/browser/resources/chromeos/accessibility/chromevox/background/output.js b/chrome/browser/resources/chromeos/accessibility/chromevox/background/output.js index 6765529..aaa2e71 100644 --- a/chrome/browser/resources/chromeos/accessibility/chromevox/background/output.js +++ b/chrome/browser/resources/chromeos/accessibility/chromevox/background/output.js
@@ -2169,6 +2169,7 @@ alertDialog: {msgId: 'role_alertdialog', outputContextFirst: true}, article: {msgId: 'role_article', inherits: 'abstractItem'}, application: {msgId: 'role_application', inherits: 'abstractContainer'}, + audio: {msgId: 'tag_audio', inherits: 'abstractContainer'}, banner: {msgId: 'role_banner', inherits: 'abstractContainer'}, button: {msgId: 'role_button', earconId: 'BUTTON', inherits: 'button'}, buttonDropDown: {msgId: 'role_button', earconId: 'BUTTON'}, @@ -2321,6 +2322,7 @@ toggleButton: {msgId: 'role_toggle_button', inherits: 'checkBox'}, tree: {msgId: 'role_tree'}, treeItem: {msgId: 'role_treeitem'}, + video: {msgId: 'tag_video', inherits: 'abstractContainer'}, window: {ignoreAncestry: true} };
diff --git a/chrome/browser/resources/chromeos/accessibility/chromevox/options/options_test.js b/chrome/browser/resources/chromeos/accessibility/chromevox/options/options_test.js index 0b528d1a..26efb0b 100644 --- a/chrome/browser/resources/chromeos/accessibility/chromevox/options/options_test.js +++ b/chrome/browser/resources/chromeos/accessibility/chromevox/options/options_test.js
@@ -51,7 +51,7 @@ } }; -TEST_F('ChromeVoxOptionsTest', 'NumberReadingStyleSelect', function() { +TEST_F('ChromeVoxOptionsTest', 'DISABLED_NumberReadingStyleSelect', function() { this.runOnOptionsPage((mockFeedback, evt) => { const numberStyleSelect = evt.target.find({ role: chrome.automation.RoleType.POP_UP_BUTTON, @@ -112,7 +112,7 @@ }); }); -TEST_F('ChromeVoxOptionsTest', 'UsePitchChanges', function() { +TEST_F('ChromeVoxOptionsTest', 'DISABLED_UsePitchChanges', function() { this.runOnOptionsPage((mockFeedback, evt) => { const pitchChangesCheckbox = evt.target.find({ role: chrome.automation.RoleType.CHECK_BOX,
diff --git a/chrome/browser/resources/chromeos/accessibility/switch_access/nodes/combo_box_node.js b/chrome/browser/resources/chromeos/accessibility/switch_access/nodes/combo_box_node.js index a086b7a..6cb92c3 100644 --- a/chrome/browser/resources/chromeos/accessibility/switch_access/nodes/combo_box_node.js +++ b/chrome/browser/resources/chromeos/accessibility/switch_access/nodes/combo_box_node.js
@@ -7,6 +7,17 @@ * TODO(anastasi): Add a test for this class. */ class ComboBoxNode extends NodeWrapper { + /** + * @param {!AutomationNode} baseNode + * @param {?SARootNode} parent + */ + constructor(baseNode, parent) { + super(baseNode, parent); + + /** @private {?RepeatedEventHandler} */ + this.childrenChangedHandler_; + } + /** @override */ get actions() { const actions = super.actions; @@ -20,13 +31,24 @@ /** @override */ onFocus() { + if (this.automationNode) { + this.childrenChangedHandler_ = new RepeatedEventHandler( + this.automationNode, chrome.automation.EventType.CHILDREN_CHANGED, + () => this.onChildrenChanged(), {exactMatch: true}); + } + super.onFocus(); this.automationNode.focus(); } /** @override */ - isGroup() { - return false; + onUnfocus() { + super.onUnfocus(); + + if (this.childrenChangedHandler_) { + this.childrenChangedHandler_.stopListening(); + this.childrenChangedHandler_ = null; + } } /** @override */ @@ -45,4 +67,13 @@ } return super.performAction(action); } + + onChildrenChanged() { + // TODO: figure out why a short timeout is needed here. + window.setTimeout(() => { + if (this.isGroup()) { + NavigationManager.enterGroup(); + } + }, 250); + } }
diff --git a/chrome/browser/resources/kaleidoscope/toolbar.html b/chrome/browser/resources/kaleidoscope/toolbar.html index 6f46adbd..2e9d1bb 100644 --- a/chrome/browser/resources/kaleidoscope/toolbar.html +++ b/chrome/browser/resources/kaleidoscope/toolbar.html
@@ -8,4 +8,4 @@ z-index: 1; } </style> -<cr-toolbar id="toolbar" show-menu show-search="[[showSearch]]"></cr-toolbar> +<cr-toolbar id="toolbar" show-menu show-search="[[showSearch]]" menu-label="[[menuLabel]]"></cr-toolbar>
diff --git a/chrome/browser/resources/kaleidoscope/toolbar.js b/chrome/browser/resources/kaleidoscope/toolbar.js index 1e465e5..62902269 100644 --- a/chrome/browser/resources/kaleidoscope/toolbar.js +++ b/chrome/browser/resources/kaleidoscope/toolbar.js
@@ -19,6 +19,9 @@ return { // Controls whether the search field is shown. showSearch: {type: Boolean, value: false}, + + // Sets the tooltip text displayed on the menu button. + menuLabel: {type: String, value: ''}, }; } }
diff --git a/chrome/browser/resources/nearby_share/app.js b/chrome/browser/resources/nearby_share/app.js index eb252ea17..c2f3ca4 100644 --- a/chrome/browser/resources/nearby_share/app.js +++ b/chrome/browser/resources/nearby_share/app.js
@@ -112,6 +112,6 @@ * @private */ onClose_(event) { - // TODO(vecore): handle closing when share sheet is hooked up + chrome.send('close'); } });
diff --git a/chrome/browser/resources/nearby_share/nearby_confirmation_page.js b/chrome/browser/resources/nearby_share/nearby_confirmation_page.js index de2d74c7..0b9ee9a4 100644 --- a/chrome/browser/resources/nearby_share/nearby_confirmation_page.js +++ b/chrome/browser/resources/nearby_share/nearby_confirmation_page.js
@@ -64,17 +64,15 @@ /** @private */ onAcceptTap_() { - this.confirmationManager.accept().then( - result => { - // TODO(knollr): Close dialog as send is now in progress. - }); + this.confirmationManager.accept().then(result => { + this.fire('close'); + }); }, /** @private */ onCancelTap_() { - this.confirmationManager.reject().then( - result => { - // TODO(knollr): Close dialog or go back to device discovery. - }); + this.confirmationManager.reject().then(result => { + this.fire('close'); + }); }, });
diff --git a/chrome/browser/resources/nearby_share/nearby_discovery_page.html b/chrome/browser/resources/nearby_share/nearby_discovery_page.html index 6c57f3e05..e3e6533 100644 --- a/chrome/browser/resources/nearby_share/nearby_discovery_page.html +++ b/chrome/browser/resources/nearby_share/nearby_discovery_page.html
@@ -114,7 +114,7 @@ </div> <div id="actions"> - <cr-button class="cancel-button"> + <cr-button class="cancel-button" on-click="onCancelTap_"> Cancel </cr-button> <cr-button id="next-button" class="action-button" on-click="onNextTap_"
diff --git a/chrome/browser/resources/nearby_share/nearby_discovery_page.js b/chrome/browser/resources/nearby_share/nearby_discovery_page.js index 62cea75..e920da6 100644 --- a/chrome/browser/resources/nearby_share/nearby_discovery_page.js +++ b/chrome/browser/resources/nearby_share/nearby_discovery_page.js
@@ -198,7 +198,7 @@ this.confirmationToken = token; this.fire('change-page', {page: 'confirmation'}); } else { - // TODO(knollr): Close dialog as send is now in progress. + this.fire('close'); } }); }, @@ -234,5 +234,10 @@ this.lastSelectedShareTarget_ = shareTarget; this.selectedShareTarget = shareTarget; } - } + }, + + /** @private */ + onCancelTap_() { + this.fire('close'); + }, });
diff --git a/chrome/browser/resources/new_tab_page/BUILD.gn b/chrome/browser/resources/new_tab_page/BUILD.gn index c83b365..5a69b32 100644 --- a/chrome/browser/resources/new_tab_page/BUILD.gn +++ b/chrome/browser/resources/new_tab_page/BUILD.gn
@@ -18,9 +18,6 @@ ":fakebox", ":iframe", ":logo", - ":module_descriptor", - ":module_registry", - ":modules", ":one_google_bar_api", ":promo_browser_command_proxy", ":realbox", @@ -31,6 +28,9 @@ ":theme_icon", ":utils", ":voice_search_overlay", + "modules:module_descriptor", + "modules:module_registry", + "modules:modules", ] } @@ -48,11 +48,11 @@ deps = [ ":background_manager", ":browser_proxy", - ":module_wrapper", - ":modules", ":most_visited", ":one_google_bar_api", ":promo_browser_command_proxy", + "modules:module_wrapper", + "modules:modules", "//third_party/polymer/v3_0/components-chromium/polymer:polymer_bundled", "//ui/webui/resources/js:event_tracker.m", "//ui/webui/resources/js:load_time_data.m", @@ -221,33 +221,6 @@ js_library("one_google_bar_api") { } -js_library("module_descriptor") { - sources = [ "modules/module_descriptor.js" ] -} - -js_library("modules") { - sources = [ "modules/modules.js" ] - deps = [ - ":module_registry", - "modules/dummy:module", - "modules/kaleidoscope:module", - ] -} - -js_library("module_wrapper") { - deps = [ - "//third_party/polymer/v3_0/components-chromium/polymer:polymer_bundled", - ] -} - -js_library("module_registry") { - sources = [ "modules/module_registry.js" ] - deps = [ - ":module_descriptor", - "//ui/webui/resources/js:cr.m", - ] -} - html_to_js("web_components_local") { js_files = [ "app.js", @@ -268,14 +241,13 @@ "theme_icon.js", "iframe.js", "voice_search_overlay.js", - "module_wrapper.js", ] } group("web_components") { public_deps = [ ":web_components_local", - "modules/dummy:web_components", + "modules:web_components", ] }
diff --git a/chrome/browser/resources/new_tab_page/app.js b/chrome/browser/resources/new_tab_page/app.js index e0f6989..53c8228 100644 --- a/chrome/browser/resources/new_tab_page/app.js +++ b/chrome/browser/resources/new_tab_page/app.js
@@ -10,7 +10,7 @@ import './fakebox.js'; import './realbox.js'; import './logo.js'; -import './module_wrapper.js'; +import './modules/module_wrapper.js'; import './modules/modules.js'; // Registers module descriptors. import 'chrome://resources/cr_elements/cr_button/cr_button.m.js'; import 'chrome://resources/cr_elements/shared_style_css.m.js';
diff --git a/chrome/browser/resources/new_tab_page/modules/BUILD.gn b/chrome/browser/resources/new_tab_page/modules/BUILD.gn new file mode 100644 index 0000000..3618ea2 --- /dev/null +++ b/chrome/browser/resources/new_tab_page/modules/BUILD.gn
@@ -0,0 +1,42 @@ +# Copyright 2020 The Chromium Authors. All rights reserved. +# Use of this source code is governed by a BSD-style license that can be +# found in the LICENSE file. + +import("//third_party/closure_compiler/compile_js.gni") +import("//tools/polymer/html_to_js.gni") + +js_library("module_descriptor") { +} + +js_library("modules") { + deps = [ + ":module_registry", + "dummy:module", + "kaleidoscope:module", + ] +} + +js_library("module_wrapper") { + deps = [ + ":module_descriptor", + "//third_party/polymer/v3_0/components-chromium/polymer:polymer_bundled", + ] +} + +js_library("module_registry") { + deps = [ + ":module_descriptor", + "//ui/webui/resources/js:cr.m", + ] +} + +html_to_js("web_components_local") { + js_files = [ "module_wrapper.js" ] +} + +group("web_components") { + public_deps = [ + ":web_components_local", + "dummy:web_components", + ] +}
diff --git a/chrome/browser/resources/new_tab_page/modules/dummy/BUILD.gn b/chrome/browser/resources/new_tab_page/modules/dummy/BUILD.gn index b20d7fb..0137665 100644 --- a/chrome/browser/resources/new_tab_page/modules/dummy/BUILD.gn +++ b/chrome/browser/resources/new_tab_page/modules/dummy/BUILD.gn
@@ -7,7 +7,7 @@ js_library("module") { deps = [ - "../..:module_descriptor", + "..:module_descriptor", "//third_party/polymer/v3_0/components-chromium/polymer:polymer_bundled", "//ui/webui/resources/cr_elements/cr_grid", ]
diff --git a/chrome/browser/resources/new_tab_page/modules/dummy/module.js b/chrome/browser/resources/new_tab_page/modules/dummy/module.js index 4416551..fa20fcb3 100644 --- a/chrome/browser/resources/new_tab_page/modules/dummy/module.js +++ b/chrome/browser/resources/new_tab_page/modules/dummy/module.js
@@ -41,15 +41,16 @@ /** @type {!ModuleDescriptor} */ export const dummyDescriptor = new ModuleDescriptor( - 'dummy', loadTimeData.getString('modulesDummyName'), () => Promise.resolve({ + /*id=*/ 'dummy', /*name=*/ loadTimeData.getString('modulesDummyName'), + /*heightPx=*/ 260, () => Promise.resolve({ element: new DummyModuleElement(), title: loadTimeData.getString('modulesDummyTitle'), })); /** @type {!ModuleDescriptor} */ export const dummyDescriptor2 = new ModuleDescriptor( - 'dummy2', loadTimeData.getString('modulesDummy2Name'), - () => Promise.resolve({ + /*id=*/ 'dummy2', /*name=*/ loadTimeData.getString('modulesDummy2Name'), + /*heightPx=*/ 260, () => Promise.resolve({ element: new DummyModuleElement(), title: loadTimeData.getString('modulesDummy2Title'), }));
diff --git a/chrome/browser/resources/new_tab_page/modules/kaleidoscope/BUILD.gn b/chrome/browser/resources/new_tab_page/modules/kaleidoscope/BUILD.gn index 67fb3b3e..abeb9aba 100644 --- a/chrome/browser/resources/new_tab_page/modules/kaleidoscope/BUILD.gn +++ b/chrome/browser/resources/new_tab_page/modules/kaleidoscope/BUILD.gn
@@ -1,5 +1,9 @@ +# Copyright 2020 The Chromium Authors. All rights reserved. +# Use of this source code is governed by a BSD-style license that can be +# found in the LICENSE file. + import("//third_party/closure_compiler/compile_js.gni") js_library("module") { - deps = [ "//chrome/browser/resources/new_tab_page:module_descriptor" ] + deps = [ "..:module_descriptor" ] }
diff --git a/chrome/browser/resources/new_tab_page/modules/kaleidoscope/module.js b/chrome/browser/resources/new_tab_page/modules/kaleidoscope/module.js index 669b542..5653a96 100644 --- a/chrome/browser/resources/new_tab_page/modules/kaleidoscope/module.js +++ b/chrome/browser/resources/new_tab_page/modules/kaleidoscope/module.js
@@ -56,8 +56,9 @@ /** @type {!ModuleDescriptor} */ export const kaleidoscopeDescriptor = new ModuleDescriptor( - 'kaleidoscope', - loadTimeData.getString('modulesKaleidoscopeName'), + /*id=*/ 'kaleidoscope', + /*name=*/ loadTimeData.getString('modulesKaleidoscopeName'), + /*heightPx=*/ 270, () => { // Load all the Kaleidoscope resources into the NTP and return the module // once the loading is complete.
diff --git a/chrome/browser/resources/new_tab_page/modules/module_descriptor.js b/chrome/browser/resources/new_tab_page/modules/module_descriptor.js index 169f19f..12b0f15 100644 --- a/chrome/browser/resources/new_tab_page/modules/module_descriptor.js +++ b/chrome/browser/resources/new_tab_page/modules/module_descriptor.js
@@ -19,28 +19,45 @@ /** * @param {string} id * @param {string} name + * @param {number} heightPx * @param {!InitializeModuleCallback} initializeCallback */ - constructor(id, name, initializeCallback) { + constructor(id, name, heightPx, initializeCallback) { + /** @private {string} */ this.id_ = id; + /** @private {string} */ this.name_ = name; + /** @private {number} */ + this.heightPx_ = heightPx; + /** @private {?string} */ this.title_ = null; + /** @private {HTMLElement} */ this.element_ = null; + /** @private {!InitializeModuleCallback} */ this.initializeCallback_ = initializeCallback; } + /** @return {string} */ get id() { return this.id_; } + /** @return {string} */ get name() { return this.name_; } + /** @return {number} */ + get heightPx() { + return this.heightPx_; + } + + /** @return {?string} */ get title() { return this.title_; } + /** @return {HTMLElement} */ get element() { return this.element_; }
diff --git a/chrome/browser/resources/new_tab_page/module_wrapper.html b/chrome/browser/resources/new_tab_page/modules/module_wrapper.html similarity index 84% rename from chrome/browser/resources/new_tab_page/module_wrapper.html rename to chrome/browser/resources/new_tab_page/modules/module_wrapper.html index 070fcf65..f2a02d9 100644 --- a/chrome/browser/resources/new_tab_page/module_wrapper.html +++ b/chrome/browser/resources/new_tab_page/modules/module_wrapper.html
@@ -6,7 +6,10 @@ } #header { - margin: 10px; + align-items: center; + display: flex; + height: 22px; + margin: 16px; } #title { @@ -15,12 +18,12 @@ #name { color: var(--cr-secondary-text-color); + white-space: pre; } #moduleElement { align-items: center; display: flex; - height: 330px; justify-content: center; overflow: hidden; }
diff --git a/chrome/browser/resources/new_tab_page/module_wrapper.js b/chrome/browser/resources/new_tab_page/modules/module_wrapper.js similarity index 87% rename from chrome/browser/resources/new_tab_page/module_wrapper.js rename to chrome/browser/resources/new_tab_page/modules/module_wrapper.js index 894efafe..c446285 100644 --- a/chrome/browser/resources/new_tab_page/module_wrapper.js +++ b/chrome/browser/resources/new_tab_page/modules/module_wrapper.js
@@ -3,7 +3,7 @@ // found in the LICENSE file. import {html, PolymerElement} from 'chrome://resources/polymer/v3_0/polymer/polymer_bundled.min.js'; -import {ModuleDescriptor} from './modules/module_descriptor.js'; +import {ModuleDescriptor} from './module_descriptor.js'; /** @fileoverview Element that implements the common module UI. */ @@ -30,6 +30,7 @@ onDescriptorChange_() { this.$.moduleElement.innerHTML = ''; this.$.moduleElement.appendChild(this.descriptor.element); + this.$.moduleElement.style.height = `${this.descriptor.heightPx}px`; } }
diff --git a/chrome/browser/resources/new_tab_page/modules/modules_resources.grdp b/chrome/browser/resources/new_tab_page/modules/modules_resources.grdp index 67c4e16c..d02a1174 100644 --- a/chrome/browser/resources/new_tab_page/modules/modules_resources.grdp +++ b/chrome/browser/resources/new_tab_page/modules/modules_resources.grdp
@@ -6,4 +6,13 @@ <include name="IDR_NEW_TAB_PAGE_MODULES_KALEIDOSCOPE_MODULE_JS" file="modules/kaleidoscope/module.js" type="BINDATA" compress="false" /> + <include name="IDR_NEW_TAB_PAGE_MODULES_MODULE_DESCRIPTOR_JS" + file="modules/module_descriptor.js" type="BINDATA" compress="false" /> + <include name="IDR_NEW_TAB_PAGE_MODULES_MODULES_JS" + file="modules/modules.js" type="BINDATA" compress="false" /> + <include name="IDR_NEW_TAB_PAGE_MODULES_MODULE_REGISTRY_JS" + file="modules/module_registry.js" type="BINDATA" compress="false" /> + <include name="IDR_NEW_TAB_PAGE_MODULE_WRAPPER_JS" + file="${root_gen_dir}/chrome/browser/resources/new_tab_page/modules/module_wrapper.js" + use_base_dir="false" type="BINDATA" compress="false" /> </grit-part>
diff --git a/chrome/browser/resources/new_tab_page/new_tab_page_resources.grd b/chrome/browser/resources/new_tab_page/new_tab_page_resources.grd index 871c434..6d754c3 100644 --- a/chrome/browser/resources/new_tab_page/new_tab_page_resources.grd +++ b/chrome/browser/resources/new_tab_page/new_tab_page_resources.grd
@@ -69,21 +69,12 @@ <include name="IDR_NEW_TAB_PAGE_REALBOX_MATCH_JS" file="${root_gen_dir}/chrome/browser/resources/new_tab_page/realbox_match.js" use_base_dir="false" type="BINDATA" compress="false" /> - <include name="IDR_NEW_TAB_PAGE_MODULE_WRAPPER_JS" - file="${root_gen_dir}/chrome/browser/resources/new_tab_page/module_wrapper.js" - use_base_dir="false" type="BINDATA" compress="false" /> <include name="IDR_NEW_TAB_PAGE_BROWSER_PROXY_JS" file="browser_proxy.js" type="BINDATA" compress="false" /> <include name="IDR_NEW_TAB_PAGE_UTILS_JS" file="utils.js" type="BINDATA" compress="false" /> <include name="IDR_NEW_TAB_PAGE_BACKGROUND_MANAGER_JS" file="background_manager.js" type="BINDATA" compress="false" /> - <include name="IDR_NEW_TAB_PAGE_MODULES_MODULE_DESCRIPTOR_JS" - file="modules/module_descriptor.js" type="BINDATA" compress="false" /> - <include name="IDR_NEW_TAB_PAGE_MODULES_MODULES_JS" - file="modules/modules.js" type="BINDATA" compress="false" /> - <include name="IDR_NEW_TAB_PAGE_MODULES_MODULE_REGISTRY_JS" - file="modules/module_registry.js" type="BINDATA" compress="false" /> <part file="new_tab_page_resources_common.grdp" /> <part file="modules/modules_resources.grdp" /> </includes>
diff --git a/chrome/browser/resources/print_preview/data/destination_match.js b/chrome/browser/resources/print_preview/data/destination_match.js index 30a00c8..e5404fe 100644 --- a/chrome/browser/resources/print_preview/data/destination_match.js +++ b/chrome/browser/resources/print_preview/data/destination_match.js
@@ -3,7 +3,7 @@ // found in the LICENSE file. import {assert} from 'chrome://resources/js/assert.m.js'; -import {CloudOrigins, Destination, DestinationOrigin} from './destination.js'; +import {CloudOrigins, Destination, DestinationOrigin, RecentDestination} from './destination.js'; /** * Printer types for capabilities and printer list requests. @@ -38,8 +38,8 @@ }; /** - * @param {!Destination} destination The destination to figure - * out the printer type of. + * @param {!Destination|!RecentDestination} destination The destination to + * figure out the printer type of. * @return {!PrinterType} Map the destination to a PrinterType. */ export function getPrinterTypeForDestination(destination) {
diff --git a/chrome/browser/resources/print_preview/data/destination_store.js b/chrome/browser/resources/print_preview/data/destination_store.js index 4304239e..874a1ad 100644 --- a/chrome/browser/resources/print_preview/data/destination_store.js +++ b/chrome/browser/resources/print_preview/data/destination_store.js
@@ -13,7 +13,7 @@ import {CapabilitiesResponse, LocalDestinationInfo, NativeLayer, NativeLayerImpl, PrinterSetupResponse, PrivetPrinterDescription, ProvisionalDestinationInfo} from '../native_layer.js'; import {Cdd, CloudOrigins, createDestinationKey, createRecentDestinationKey, Destination, DestinationConnectionStatus, DestinationOrigin, DestinationProvisionalType, DestinationType, RecentDestination} from './destination.js'; -import {DestinationMatch, originToType, PrinterType} from './destination_match.js'; +import {DestinationMatch, getPrinterTypeForDestination, originToType, PrinterType} from './destination_match.js'; import {parseDestination, parseExtensionDestination} from './local_parsers.js'; /** @@ -467,7 +467,7 @@ } let error = false; - const type = originToType(origin); + const type = getPrinterTypeForDestination(serializedDestination); switch (type) { case PrinterType.LOCAL_PRINTER: this.nativeLayer_.getPrinterCapabilities(id, type).then( @@ -740,7 +740,7 @@ // Request destination capabilities from backend, since they are not // known yet. if (destination.capabilities === null) { - const type = originToType(destination.origin); + const type = getPrinterTypeForDestination(destination); if (type !== PrinterType.CLOUD_PRINTER) { this.nativeLayer_.getPrinterCapabilities(destination.id, type) .then(
diff --git a/chrome/browser/resources/print_preview/native_layer.js b/chrome/browser/resources/print_preview/native_layer.js index f9dbfaf..97ce039 100644 --- a/chrome/browser/resources/print_preview/native_layer.js +++ b/chrome/browser/resources/print_preview/native_layer.js
@@ -320,11 +320,7 @@ /** @override */ getPrinterCapabilities(destinationId, type) { - return sendWithPromise( - 'getPrinterCapabilities', destinationId, - destinationId === Destination.GooglePromotedId.SAVE_AS_PDF ? - PrinterType.PDF_PRINTER : - type); + return sendWithPromise('getPrinterCapabilities', destinationId, type); } // <if expr="chromeos">
diff --git a/chrome/browser/resources/settings/basic_page/basic_page.html b/chrome/browser/resources/settings/basic_page/basic_page.html index 7deaab6b..ffa18b37 100644 --- a/chrome/browser/resources/settings/basic_page/basic_page.html +++ b/chrome/browser/resources/settings/basic_page/basic_page.html
@@ -25,7 +25,7 @@ } :host-context(.focus-outline-visible) #advancedToggle:focus { - font-weight: 600; + outline: auto 5px -webkit-focus-ring-color; } #osSettingsBanner {
diff --git a/chrome/browser/resources/settings/chromeos/ambient_mode_page/BUILD.gn b/chrome/browser/resources/settings/chromeos/ambient_mode_page/BUILD.gn index a3216314..1af112c6 100644 --- a/chrome/browser/resources/settings/chromeos/ambient_mode_page/BUILD.gn +++ b/chrome/browser/resources/settings/chromeos/ambient_mode_page/BUILD.gn
@@ -32,6 +32,7 @@ deps = [ ":ambient_mode_browser_proxy", ":constants", + "..:deep_linking_behavior", "..:os_route", "../..:router", "../../prefs:prefs_behavior", @@ -119,6 +120,7 @@ deps = [ ":ambient_mode_browser_proxy.m", ":constants.m", + "..:deep_linking_behavior.m", "..:os_route.m", "../..:router.m", "../../prefs:prefs_behavior.m",
diff --git a/chrome/browser/resources/settings/chromeos/ambient_mode_page/ambient_mode_page.html b/chrome/browser/resources/settings/chromeos/ambient_mode_page/ambient_mode_page.html index 49a9d1f6..d21fc725 100644 --- a/chrome/browser/resources/settings/chromeos/ambient_mode_page/ambient_mode_page.html +++ b/chrome/browser/resources/settings/chromeos/ambient_mode_page/ambient_mode_page.html
@@ -8,6 +8,7 @@ <link rel="import" href="chrome://resources/html/web_ui_listener_behavior.html"> <link rel="import" href="constants.html"> <link rel="import" href="topic_source_list.html"> +<link rel="import" href="../deep_linking_behavior.html"> <link rel="import" href="../os_route.html"> <link rel="import" href="../../router.html"> <link rel="import" href="../../prefs/prefs.html"> @@ -61,7 +62,8 @@ class="primary-toggle" pref="{{prefs.settings.ambient_mode.enabled}}" label="[[getAmbientModeOnOffLabel_( - prefs.settings.ambient_mode.enabled.value)]]"> + prefs.settings.ambient_mode.enabled.value)]]" + deep-link-focus-id$="[[Setting.kAmbientModeOnOff]]"> </settings-toggle-button> <template is="dom-if" if="[[prefs.settings.ambient_mode.enabled.value]]">
diff --git a/chrome/browser/resources/settings/chromeos/ambient_mode_page/ambient_mode_page.js b/chrome/browser/resources/settings/chromeos/ambient_mode_page/ambient_mode_page.js index 12bef93..898f743 100644 --- a/chrome/browser/resources/settings/chromeos/ambient_mode_page/ambient_mode_page.js +++ b/chrome/browser/resources/settings/chromeos/ambient_mode_page/ambient_mode_page.js
@@ -10,8 +10,8 @@ is: 'settings-ambient-mode-page', behaviors: [ - I18nBehavior, PrefsBehavior, settings.RouteObserverBehavior, - WebUIListenerBehavior + DeepLinkingBehavior, I18nBehavior, PrefsBehavior, + settings.RouteObserverBehavior, WebUIListenerBehavior ], properties: { @@ -57,6 +57,18 @@ value: AmbientModeTemperatureUnit.UNKNOWN, observer: 'onSelectedTemperatureUnitChanged_' }, + + /** + * Used by DeepLinkingBehavior to focus this page's deep links. + * @type {!Set<!chromeos.settings.mojom.Setting>} + */ + supportedSettingIds: { + type: Object, + value: () => new Set([ + chromeos.settings.mojom.Setting.kAmbientModeOnOff, + chromeos.settings.mojom.Setting.kAmbientModeSource, + ]), + }, }, listeners: { @@ -89,6 +101,33 @@ }, /** + * Overridden from DeepLinkingBehavior. + * @param {!chromeos.settings.mojom.Setting} settingId + */ + beforeDeepLinkAttempt(settingId) { + if (settingId !== chromeos.settings.mojom.Setting.kAmbientModeSource) { + // Continue with deep link attempt. + return true; + } + + // Wait for element to load. + Polymer.RenderStatus.afterNextRender(this, () => { + Polymer.dom.flush(); + + const topicList = this.$$('topic-source-list'); + const listItem = topicList && topicList.$$('topic-source-item'); + if (listItem) { + this.showDeepLinkElement(listItem); + return; + } + + console.warn(`Element with deep link id ${settingId} not focusable.`); + }); + // Stop deep link attempt since we completed it manually. + return false; + }, + + /** * RouteObserverBehavior * @param {!settings.Route} currentRoute * @protected @@ -99,6 +138,7 @@ } this.browserProxy_.requestSettings(); + this.attemptDeepLink(); }, /**
diff --git a/chrome/browser/resources/settings/chromeos/google_assistant_page/BUILD.gn b/chrome/browser/resources/settings/chromeos/google_assistant_page/BUILD.gn index e6ec1bb..75fb731 100644 --- a/chrome/browser/resources/settings/chromeos/google_assistant_page/BUILD.gn +++ b/chrome/browser/resources/settings/chromeos/google_assistant_page/BUILD.gn
@@ -19,7 +19,9 @@ js_library("google_assistant_page") { deps = [ ":google_assistant_browser_proxy", + "..:deep_linking_behavior", "..:metrics_recorder", + "..:os_route", "../../prefs:prefs_behavior", "//ui/webui/resources/js:cr", "//ui/webui/resources/js:i18n_behavior",
diff --git a/chrome/browser/resources/settings/chromeos/google_assistant_page/google_assistant_page.html b/chrome/browser/resources/settings/chromeos/google_assistant_page/google_assistant_page.html index 294fdc5..648dec4 100644 --- a/chrome/browser/resources/settings/chromeos/google_assistant_page/google_assistant_page.html +++ b/chrome/browser/resources/settings/chromeos/google_assistant_page/google_assistant_page.html
@@ -14,7 +14,10 @@ <link rel="import" href="../../prefs/prefs_behavior.html"> <link rel="import" href="../../settings_shared_css.html"> <link rel="import" href="../../prefs/pref_util.html"> +<link rel="import" href="../deep_linking_behavior.html"> <link rel="import" href="../metrics_recorder.html"> +<link rel="import" href="../os_route.html"> +<link rel="import" href="../../router.html"> <dom-module id="settings-google-assistant-page"> <template> @@ -44,7 +47,8 @@ pref="{{prefs.settings.voice_interaction.enabled}}" label="[[getAssistantOnOffLabel_( prefs.settings.voice_interaction.enabled.value)]]" - disabled="{{prefs.settings.assistant.disabled_by_policy.value}}"> + disabled="{{prefs.settings.assistant.disabled_by_policy.value}}" + deep-link-focus-id$="[[Setting.kAssistantOnOff]]"> </settings-toggle-button> <template is="dom-if" if="[[prefs.settings.voice_interaction.enabled.value]]"> @@ -52,7 +56,8 @@ class="hr" pref="{{prefs.settings.voice_interaction.context.enabled}}" label="$i18n{googleAssistantEnableContext}" - sub-label="$i18n{googleAssistantEnableContextDescription}"> + sub-label="$i18n{googleAssistantEnableContextDescription}" + deep-link-focus-id$="[[Setting.kAssistantRelatedInfo]]"> </settings-toggle-button> <template is="dom-if" if="[[quickAnswersAvailable_]]"> <div class="settings-box continuation embedded" @@ -61,7 +66,8 @@ id="google-assistant-quick-answers-enable" pref="{{prefs.settings.voice_interaction.quick_answers.enabled}}" label="$i18n{googleAssistantEnableQuickAnswers}" - sub-label="$i18n{googleAssistantEnableQuickAnswersDescription}"> + sub-label="$i18n{googleAssistantEnableQuickAnswersDescription}" + deep-link-focus-id$="[[Setting.kAssistantQuickAnswers]]"> </settings-toggle-button> </div> </template> @@ -71,7 +77,8 @@ label="$i18n{googleAssistantEnableHotword}" sub-label="$i18n{googleAssistantEnableHotwordDescription}" on-settings-boolean-control-change="onEnableHotwordChange_" - hidden="[[!hotwordDspAvailable_]]"> + hidden="[[!hotwordDspAvailable_]]" + deep-link-focus-id$="[[Setting.kAssistantOkGoogle]]"> </settings-toggle-button> <div class="settings-box" id="dsp-hotword-container" hidden="[[hotwordDspAvailable_]]"> @@ -119,7 +126,8 @@ <controlled-button id="retrain-voice-model" on-click="onRetrainVoiceModelTapped_" label="$i18n{googleAssistantVoiceSettingsRetrainButton}" - pref="{{prefs.settings.voice_interaction.hotword.enabled}}"> + pref="{{prefs.settings.voice_interaction.hotword.enabled}}" + deep-link-focus-id$="[[Setting.kTrainAssistantVoiceModel]]"> </controlled-button> </div> </template> @@ -127,13 +135,15 @@ class="hr" pref="{{prefs.settings.voice_interaction.notification.enabled}}" label="$i18n{googleAssistantEnableNotification}" - sub-label="$i18n{googleAssistantEnableNotificationDescription}"> + sub-label="$i18n{googleAssistantEnableNotificationDescription}" + deep-link-focus-id$="[[Setting.kAssistantNotifications]]"> </settings-toggle-button> <settings-toggle-button id="google-assistant-launch-with-mic-open" class="hr" pref="{{prefs.settings.voice_interaction.launch_with_mic_open}}" label="$i18n{googleAssistantLaunchWithMicOpen}" - sub-label="$i18n{googleAssistantLaunchWithMicOpenDescription}"> + sub-label="$i18n{googleAssistantLaunchWithMicOpenDescription}" + deep-link-focus-id$="[[Setting.kAssistantVoiceInput]]"> </settings-toggle-button> <cr-link-row id="google-assistant-settings" class="hr" on-click="onGoogleAssistantSettingsTapped_"
diff --git a/chrome/browser/resources/settings/chromeos/google_assistant_page/google_assistant_page.js b/chrome/browser/resources/settings/chromeos/google_assistant_page/google_assistant_page.js index e4fa72b..b68d106 100644 --- a/chrome/browser/resources/settings/chromeos/google_assistant_page/google_assistant_page.js +++ b/chrome/browser/resources/settings/chromeos/google_assistant_page/google_assistant_page.js
@@ -41,7 +41,10 @@ Polymer({ is: 'settings-google-assistant-page', - behaviors: [I18nBehavior, PrefsBehavior, WebUIListenerBehavior], + behaviors: [ + DeepLinkingBehavior, I18nBehavior, PrefsBehavior, + settings.RouteObserverBehavior, WebUIListenerBehavior + ], properties: { /** @private */ @@ -96,6 +99,23 @@ type: Boolean, value: false, }, + + /** + * Used by DeepLinkingBehavior to focus this page's deep links. + * @type {!Set<!chromeos.settings.mojom.Setting>} + */ + supportedSettingIds: { + type: Object, + value: () => new Set([ + chromeos.settings.mojom.Setting.kAssistantOnOff, + chromeos.settings.mojom.Setting.kAssistantRelatedInfo, + chromeos.settings.mojom.Setting.kAssistantQuickAnswers, + chromeos.settings.mojom.Setting.kAssistantOkGoogle, + chromeos.settings.mojom.Setting.kAssistantNotifications, + chromeos.settings.mojom.Setting.kAssistantVoiceInput, + chromeos.settings.mojom.Setting.kTrainAssistantVoiceModel, + ]), + }, }, observers: [ @@ -126,6 +146,19 @@ }, /** + * @param {!settings.Route} route + * @param {!settings.Route} oldRoute + */ + currentRouteChanged(route, oldRoute) { + // Does not apply to this page. + if (route !== settings.routes.GOOGLE_ASSISTANT) { + return; + } + + this.attemptDeepLink(); + }, + + /** * @param {boolean} toggleValue * @return {string} * @private
diff --git a/chrome/browser/resources/settings/chromeos/os_languages_page/BUILD.gn b/chrome/browser/resources/settings/chromeos/os_languages_page/BUILD.gn index 24422d5..7ad92e27 100644 --- a/chrome/browser/resources/settings/chromeos/os_languages_page/BUILD.gn +++ b/chrome/browser/resources/settings/chromeos/os_languages_page/BUILD.gn
@@ -8,6 +8,7 @@ js_type_check("closure_compile") { deps = [ + ":change_device_language_dialog", ":input_method_options_page", ":input_method_util", ":input_page", @@ -24,6 +25,9 @@ ] } +js_library("change_device_language_dialog") { +} + js_library("input_method_options_page") { deps = [ ":input_method_util", @@ -139,6 +143,7 @@ js_type_check("closure_compile_module") { is_polymer3 = true deps = [ + ":change_device_language_dialog.m", ":input_method_options_page.m", ":input_method_util.m", ":input_page.m", @@ -152,6 +157,11 @@ ] } +js_library("change_device_language_dialog.m") { + sources = [ "$root_gen_dir/chrome/browser/resources/settings/chromeos/os_languages_page/change_device_language_dialog.m.js" ] + extra_deps = [ ":change_device_language_dialog_module" ] +} + js_library("input_method_util.m") { sources = [ "$root_gen_dir/chrome/browser/resources/settings/chromeos/os_languages_page/input_method_util.m.js" ] deps = [ "//ui/webui/resources/js:cr.m" ] @@ -282,6 +292,7 @@ group("polymer3_elements") { public_deps = [ + ":change_device_language_dialog_module", ":input_method_options_page_module", ":input_page_module", ":manage_input_methods_page_module", @@ -296,6 +307,15 @@ ] } +polymer_modulizer("change_device_language_dialog") { + js_file = "change_device_language_dialog.js" + html_file = "change_device_language_dialog.html" + html_type = "dom-module" + migrated_imports = settings_migrated_imports + namespace_rewrites = os_settings_namespace_rewrites + auto_imports = os_settings_auto_imports +} + polymer_modulizer("manage_input_methods_page") { js_file = "manage_input_methods_page.js" html_file = "manage_input_methods_page.html"
diff --git a/chrome/browser/resources/settings/chromeos/os_languages_page/change_device_language_dialog.html b/chrome/browser/resources/settings/chromeos/os_languages_page/change_device_language_dialog.html new file mode 100644 index 0000000..6b1e557 --- /dev/null +++ b/chrome/browser/resources/settings/chromeos/os_languages_page/change_device_language_dialog.html
@@ -0,0 +1,22 @@ +<link rel="import" href="chrome://resources/html/polymer.html"> + +<link rel="import" href="chrome://resources/cr_elements/cr_button/cr_button.html"> +<link rel="import" href="chrome://resources/cr_elements/cr_dialog/cr_dialog.html"> + +<dom-module id="os-settings-change-device-language-dialog"> + <template> + <cr-dialog id="dialog" close-text="$i18n{close}" show-on-attach> + <div slot="title">$i18n{changeDeviceLanguageDialogTitle}</div> + <div slot="button-container"> + <cr-button class="cancel-button" on-click="onCancelButtonTap_"> + $i18n{cancel} + </cr-button> + <cr-button class="action-button" on-click="onActionButtonTap_" + disabled="[[disableActionButton_]]"> + $i18n{changeDeviceLanguageConfirmButtonLabel} + </cr-button> + </div> + </cr-dialog> + </template> + <script src="change_device_language_dialog.js"></script> +</dom-module>
diff --git a/chrome/browser/resources/settings/chromeos/os_languages_page/change_device_language_dialog.js b/chrome/browser/resources/settings/chromeos/os_languages_page/change_device_language_dialog.js new file mode 100644 index 0000000..de84d993 --- /dev/null +++ b/chrome/browser/resources/settings/chromeos/os_languages_page/change_device_language_dialog.js
@@ -0,0 +1,29 @@ +// Copyright 2020 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +/** + * @fileoverview 'os-settings-change-device-language-dialog' is a dialog for + * changing device language. + */ +Polymer({ + is: 'os-settings-change-device-language-dialog', + + properties: { + /** @private */ + disableActionButton_: { + type: Boolean, + value: true, + }, + }, + + /** @private */ + onCancelButtonTap_() { + this.$.dialog.close(); + }, + + /** @private */ + onActionButtonTap_() { + this.$.dialog.close(); + }, +});
diff --git a/chrome/browser/resources/settings/chromeos/os_languages_page/os_languages_page_v2.html b/chrome/browser/resources/settings/chromeos/os_languages_page/os_languages_page_v2.html index fca6fdd..f043077 100644 --- a/chrome/browser/resources/settings/chromeos/os_languages_page/os_languages_page_v2.html +++ b/chrome/browser/resources/settings/chromeos/os_languages_page/os_languages_page_v2.html
@@ -11,6 +11,7 @@ <link rel="import" href="chrome://resources/polymer/v1_0/iron-icon/iron-icon.html"> <link rel="import" href="chrome://resources/cr_elements/cr_action_menu/cr_action_menu.html"> <link rel="import" href="chrome://resources/cr_elements/cr_lazy_render/cr_lazy_render.html"> +<link rel="import" href="change_device_language_dialog.html"> <link rel="import" href="languages_metrics_proxy.html"> <link rel="import" href="os_add_languages_dialog.html"> <link rel="import" href="../localized_link/localized_link.html"> @@ -128,6 +129,12 @@ </cr-lazy-render> </div> + <template is="dom-if" if="[[showChangeDeviceLanguageDialog_]]" restamp> + <os-settings-change-device-language-dialog + on-close="onChangeDeviceLanguageDialogClose_"> + </os-settings-change-device-language-dialog> + </template> + <template is="dom-if" if="[[showAddLanguagesDialog_]]" restamp> <os-settings-add-languages-dialog languages="{{languages}}" language-helper="[[languageHelper]]"
diff --git a/chrome/browser/resources/settings/chromeos/os_languages_page/os_languages_page_v2.js b/chrome/browser/resources/settings/chromeos/os_languages_page/os_languages_page_v2.js index 8ba9ab7..dbe08d1 100644 --- a/chrome/browser/resources/settings/chromeos/os_languages_page/os_languages_page_v2.js +++ b/chrome/browser/resources/settings/chromeos/os_languages_page/os_languages_page_v2.js
@@ -46,6 +46,12 @@ /** @private */ showAddLanguagesDialog_: Boolean, + + /** @private */ + showChangeDeviceLanguageDialog_: { + type: Boolean, + value: false, + }, }, /** @private {?settings.LanguagesMetricsProxy} */ @@ -68,7 +74,13 @@ /** @private */ onChangeSystemLanguageClick_() { - // TODO(crbug/1113439): Implement change system language dialog. + this.showChangeDeviceLanguageDialog_ = true; + }, + + /** @private */ + onChangeDeviceLanguageDialogClose_() { + this.showChangeDeviceLanguageDialog_ = false; + cr.ui.focusWithoutInk(assert(this.$.changeSystemLanguage)); }, /**
diff --git a/chrome/browser/resources/settings/chromeos/os_search_page/BUILD.gn b/chrome/browser/resources/settings/chromeos/os_search_page/BUILD.gn index c48a50c..bbeb82c7 100644 --- a/chrome/browser/resources/settings/chromeos/os_search_page/BUILD.gn +++ b/chrome/browser/resources/settings/chromeos/os_search_page/BUILD.gn
@@ -10,6 +10,7 @@ js_library("os_search_page") { deps = [ + "..:deep_linking_behavior", "..:os_route", "../..:router", "../../prefs",
diff --git a/chrome/browser/resources/settings/chromeos/os_search_page/os_search_page.html b/chrome/browser/resources/settings/chromeos/os_search_page/os_search_page.html index 0372886..916964c 100644 --- a/chrome/browser/resources/settings/chromeos/os_search_page/os_search_page.html +++ b/chrome/browser/resources/settings/chromeos/os_search_page/os_search_page.html
@@ -13,6 +13,7 @@ <link rel="import" href="../../controls/extension_controlled_indicator.html"> <link rel="import" href="../google_assistant_page/google_assistant_page.html"> <link rel="import" href="../../i18n_setup.html"> +<link rel="import" href="../deep_linking_behavior.html"> <link rel="import" href="../os_route.html"> <link rel="import" href="../../router.html"> <link rel="import" href="../../search_engines_page/search_engines_browser_proxy.html"> @@ -68,7 +69,8 @@ <select class="md-select" on-change="onChange_" aria-labelledby="searchExplanation" disabled$="[[isDefaultSearchEngineEnforced_( - prefs.default_search_provider_data.template_url_data)]]"> + prefs.default_search_provider_data.template_url_data)]]" + deep-link-focus-id$="[[Setting.kPreferredSearchEngine]]"> <template is="dom-repeat" items="[[searchEngines_]]"> <option selected="[[item.default]]">[[item.name]]</option> </template>
diff --git a/chrome/browser/resources/settings/chromeos/os_search_page/os_search_page.js b/chrome/browser/resources/settings/chromeos/os_search_page/os_search_page.js index ac39644..1220e26 100644 --- a/chrome/browser/resources/settings/chromeos/os_search_page/os_search_page.js +++ b/chrome/browser/resources/settings/chromeos/os_search_page/os_search_page.js
@@ -9,7 +9,11 @@ Polymer({ is: 'os-settings-search-page', - behaviors: [I18nBehavior], + behaviors: [ + DeepLinkingBehavior, + I18nBehavior, + settings.RouteObserverBehavior, + ], properties: { prefs: Object, @@ -38,6 +42,16 @@ return loadTimeData.getBoolean('isAssistantAllowed'); }, }, + + /** + * Used by DeepLinkingBehavior to focus this page's deep links. + * @type {!Set<!chromeos.settings.mojom.Setting>} + */ + supportedSettingIds: { + type: Object, + value: () => + new Set([chromeos.settings.mojom.Setting.kPreferredSearchEngine]), + }, }, /** @private {?settings.SearchEnginesBrowserProxy} */ @@ -63,6 +77,19 @@ } }, + /** + * @param {!settings.Route} route + * @param {!settings.Route} oldRoute + */ + currentRouteChanged(route, oldRoute) { + // Does not apply to this page. + if (route !== settings.routes.OS_SEARCH) { + return; + } + + this.attemptDeepLink(); + }, + /** @private */ onChange_() { const select = /** @type {!HTMLSelectElement} */ (this.$$('select'));
diff --git a/chrome/browser/resources/settings/chromeos/os_settings_resources_v3.grdp b/chrome/browser/resources/settings/chromeos/os_settings_resources_v3.grdp index b972b63..aaf988a 100644 --- a/chrome/browser/resources/settings/chromeos/os_settings_resources_v3.grdp +++ b/chrome/browser/resources/settings/chromeos/os_settings_resources_v3.grdp
@@ -89,6 +89,11 @@ compress="false" preprocess="true" type="BINDATA" /> + <include name="IDR_OS_SETTINGS_LANGUAGES_PAGE_CHANGE_DEVICE_LANGUAGE_DIALOG_M_JS" + file="${root_gen_dir}/chrome/browser/resources/settings/chromeos/os_languages_page/change_device_language_dialog.m.js" + use_base_dir="false" + compress="false" + type="BINDATA" /> <include name="IDR_OS_SETTINGS_LANGUAGES_PAGE_OS_ADD_LANGUAGES_DIALOG_M_JS" file="${root_gen_dir}/chrome/browser/resources/settings/chromeos/os_languages_page/os_add_languages_dialog.m.js" use_base_dir="false"
diff --git a/chrome/browser/resources/settings/chromeos/personalization_page/BUILD.gn b/chrome/browser/resources/settings/chromeos/personalization_page/BUILD.gn index dddafc3..8e3b695fd 100644 --- a/chrome/browser/resources/settings/chromeos/personalization_page/BUILD.gn +++ b/chrome/browser/resources/settings/chromeos/personalization_page/BUILD.gn
@@ -18,6 +18,7 @@ js_library("change_picture") { deps = [ ":change_picture_browser_proxy", + "..:deep_linking_behavior", "..:metrics_recorder", "..:os_route", "//third_party/polymer/v1_0/components-chromium/iron-a11y-announcer:iron-a11y-announcer-extracted", @@ -40,6 +41,7 @@ js_library("personalization_page") { deps = [ ":wallpaper_browser_proxy", + "..:deep_linking_behavior", "..:os_route", "../..:router", "../../prefs", @@ -68,6 +70,7 @@ sources = [ "$root_gen_dir/chrome/browser/resources/settings/chromeos/personalization_page/change_picture.m.js" ] deps = [ ":change_picture_browser_proxy.m", + "..:deep_linking_behavior.m", "..:metrics_recorder.m", "..:os_route.m", "../..:router.m", @@ -96,6 +99,7 @@ sources = [ "$root_gen_dir/chrome/browser/resources/settings/chromeos/personalization_page/personalization_page.m.js" ] deps = [ ":wallpaper_browser_proxy.m", + "..:deep_linking_behavior.m", "..:os_route.m", "../..:router.m", "../../prefs:prefs.m", @@ -129,7 +133,7 @@ namespace_rewrites = os_settings_namespace_rewrites + [ "Polymer.IronA11yAnnouncer|IronA11yAnnouncer" ] auto_imports = os_settings_auto_imports + [ - "ui/webui/resources/html/assert.html|assertNotReached", + "ui/webui/resources/html/assert.html|assert,assertNotReached", "ui/webui/resources/polymer/v3_0/iron-a11y-announcer/iron-a11y-announcer.html|IronA11yAnnouncer", ] }
diff --git a/chrome/browser/resources/settings/chromeos/personalization_page/change_picture.html b/chrome/browser/resources/settings/chromeos/personalization_page/change_picture.html index 5f18549..e82d07a 100644 --- a/chrome/browser/resources/settings/chromeos/personalization_page/change_picture.html +++ b/chrome/browser/resources/settings/chromeos/personalization_page/change_picture.html
@@ -9,6 +9,7 @@ <link rel="import" href="chrome://resources/html/web_ui_listener_behavior.html"> <link rel="import" href="chrome://resources/html/assert.html"> <link rel="import" href="../../i18n_setup.html"> +<link rel="import" href="../deep_linking_behavior.html"> <link rel="import" href="../os_route.html"> <link rel="import" href="../../router.html"> <link rel="import" href="../../settings_shared_css.html">
diff --git a/chrome/browser/resources/settings/chromeos/personalization_page/change_picture.js b/chrome/browser/resources/settings/chromeos/personalization_page/change_picture.js index 3fd0f2d..b6d63f5 100644 --- a/chrome/browser/resources/settings/chromeos/personalization_page/change_picture.js +++ b/chrome/browser/resources/settings/chromeos/personalization_page/change_picture.js
@@ -11,6 +11,7 @@ is: 'settings-change-picture', behaviors: [ + DeepLinkingBehavior, settings.RouteObserverBehavior, I18nBehavior, WebUIListenerBehavior, @@ -66,6 +67,16 @@ /** @private */ oldImageLabel_: String, + + /** + * Used by DeepLinkingBehavior to focus this page's deep links. + * @type {!Set<!chromeos.settings.mojom.Setting>} + */ + supportedSettingIds: { + type: Object, + value: () => + new Set([chromeos.settings.mojom.Setting.kChangeDeviceAccountImage]), + }, }, listeners: { @@ -109,6 +120,20 @@ Polymer.IronA11yAnnouncer.requestAvailability(); }, + /** + * Overridden from DeepLinkingBehavior. + * @param {!chromeos.settings.mojom.Setting} settingId + * @return {boolean} + */ + beforeDeepLinkAttempt(settingId) { + assert( + settingId === + chromeos.settings.mojom.Setting.kChangeDeviceAccountImage); + + this.pictureList_.setFocus(); + return false; + }, + /** @protected */ currentRouteChanged(newRoute) { @@ -116,6 +141,7 @@ this.browserProxy_.initialize(); this.browserProxy_.requestSelectedImage(); this.pictureList_.setFocus(); + this.attemptDeepLink(); } else { // Ensure we deactivate the camera when we navigate away. this.selectedItem_ = null;
diff --git a/chrome/browser/resources/settings/chromeos/personalization_page/personalization_page.html b/chrome/browser/resources/settings/chromeos/personalization_page/personalization_page.html index 1597b4c9..65a24021 100644 --- a/chrome/browser/resources/settings/chromeos/personalization_page/personalization_page.html +++ b/chrome/browser/resources/settings/chromeos/personalization_page/personalization_page.html
@@ -5,6 +5,7 @@ <link rel="import" href="chrome://resources/cr_elements/cr_link_row/cr_link_row.html"> <link rel="import" href="chrome://resources/html/i18n_behavior.html"> <link rel="import" href="change_picture.html"> +<link rel="import" href="../deep_linking_behavior.html"> <link rel="import" href="../os_route.html"> <link rel="import" href="../../router.html"> <link rel="import" href="../../i18n_setup.html"> @@ -28,7 +29,8 @@ hidden="[[!showWallpaperRow_]]" on-click="openWallpaperManager_" label="$i18n{setWallpaper}" sub-label="$i18n{openWallpaperApp}" - disabled="[[isWallpaperPolicyControlled_]]" external> + disabled="[[isWallpaperPolicyControlled_]]" external + deep-link-focus-id$="[[Setting.kOpenWallpaper]]"> <template is="dom-if" if="[[isWallpaperPolicyControlled_]]"> <cr-policy-indicator id="wallpaperPolicyIndicator" indicator-type="devicePolicy">
diff --git a/chrome/browser/resources/settings/chromeos/personalization_page/personalization_page.js b/chrome/browser/resources/settings/chromeos/personalization_page/personalization_page.js index da8c0b1..42288a50 100644 --- a/chrome/browser/resources/settings/chromeos/personalization_page/personalization_page.js +++ b/chrome/browser/resources/settings/chromeos/personalization_page/personalization_page.js
@@ -9,7 +9,11 @@ Polymer({ is: 'settings-personalization-page', - behaviors: [I18nBehavior], + behaviors: [ + DeepLinkingBehavior, + I18nBehavior, + settings.RouteObserverBehavior, + ], properties: { /** @@ -46,6 +50,15 @@ return map; } }, + + /** + * Used by DeepLinkingBehavior to focus this page's deep links. + * @type {!Set<!chromeos.settings.mojom.Setting>} + */ + supportedSettingIds: { + type: Object, + value: () => new Set([chromeos.settings.mojom.Setting.kOpenWallpaper]), + }, }, /** @private {?settings.WallpaperBrowserProxy} */ @@ -69,6 +82,19 @@ }, /** + * @param {!settings.Route} route + * @param {!settings.Route} oldRoute + */ + currentRouteChanged(route, oldRoute) { + // Does not apply to this page. + if (route !== settings.routes.PERSONALIZATION) { + return; + } + + this.attemptDeepLink(); + }, + + /** * @private */ openWallpaperManager_() {
diff --git a/chrome/browser/resources/settings/os_settings_resources.grd b/chrome/browser/resources/settings/os_settings_resources.grd index 9d581f57..8462938 100644 --- a/chrome/browser/resources/settings/os_settings_resources.grd +++ b/chrome/browser/resources/settings/os_settings_resources.grd
@@ -689,6 +689,12 @@ <structure name="IDR_OS_SETTINGS_LANGUAGES_ADD_LANGUAGES_DIALOG_JS" file="chromeos/os_languages_page/os_add_languages_dialog.js" compress="false" type="chrome_html" /> + <structure name="IDR_OS_SETTINGS_LANGUAGES_CHANGE_DEVICE_LANGUAGE_DIALOG_HTML" + file="chromeos/os_languages_page/change_device_language_dialog.html" + compress="false" type="chrome_html" /> + <structure name="IDR_OS_SETTINGS_LANGUAGES_CHANGE_DEVICE_LANGUAGE_DIALOG_JS" + file="chromeos/os_languages_page/change_device_language_dialog.js" + compress="false" type="chrome_html" /> <structure name="IDR_OS_SETTINGS_LANGUAGES_METRICS_PROXY_HTML" file="chromeos/os_languages_page/languages_metrics_proxy.html" compress="false" type="chrome_html" />
diff --git a/chrome/browser/resources/settings/search_page/search_page.html b/chrome/browser/resources/settings/search_page/search_page.html index f57d0c8..0304c49 100644 --- a/chrome/browser/resources/settings/search_page/search_page.html +++ b/chrome/browser/resources/settings/search_page/search_page.html
@@ -11,7 +11,11 @@ <!-- Omnibox search engine --> <div class="cr-row first"> <div id="searchExplanation" class="flex cr-padded-text"> - $i18nRaw{searchExplanation} + $i18n{searchExplanation} + <a href="$i18n{searchExplanationLearnMoreURL}" + target="_blank"> + $i18n{learnMore} + </a> </div> <template is="dom-if" if="[[isDefaultSearchControlledByPolicy_( prefs.default_search_provider_data.template_url_data)]]">
diff --git a/chrome/browser/sharesheet/sharesheet_action_cache.cc b/chrome/browser/sharesheet/sharesheet_action_cache.cc index a0f0c04..f7dc43f 100644 --- a/chrome/browser/sharesheet/sharesheet_action_cache.cc +++ b/chrome/browser/sharesheet/sharesheet_action_cache.cc
@@ -4,13 +4,24 @@ #include "chrome/browser/sharesheet/sharesheet_action_cache.h" +#include "chrome/browser/browser_features.h" #include "chrome/browser/sharesheet/share_action.h" #include "chrome/browser/sharesheet/sharesheet_types.h" +#if defined(OS_CHROMEOS) +#include "chrome/browser/nearby_sharing/sharesheet/nearby_share_action.h" +#endif + namespace sharesheet { -SharesheetActionCache::SharesheetActionCache() = default; -// ShareActions will be initialised here by calling AddShareAction. +SharesheetActionCache::SharesheetActionCache() { + // ShareActions will be initialised here by calling AddShareAction. +#if defined(OS_CHROMEOS) + if (base::FeatureList::IsEnabled(features::kNearbySharing)) { + AddShareAction(std::make_unique<NearbyShareAction>()); + } +#endif +} SharesheetActionCache::~SharesheetActionCache() = default;
diff --git a/chrome/browser/tabmodel/BUILD.gn b/chrome/browser/tabmodel/BUILD.gn index 56642f60..067bb5a9 100644 --- a/chrome/browser/tabmodel/BUILD.gn +++ b/chrome/browser/tabmodel/BUILD.gn
@@ -14,8 +14,6 @@ "android/java/src/org/chromium/chrome/browser/tabmodel/EmptyTabModelSelectorObserver.java", "android/java/src/org/chromium/chrome/browser/tabmodel/IncognitoTabHost.java", "android/java/src/org/chromium/chrome/browser/tabmodel/IncognitoTabHostRegistry.java", - "android/java/src/org/chromium/chrome/browser/tabmodel/IncognitoTabModel.java", - "android/java/src/org/chromium/chrome/browser/tabmodel/IncognitoTabModelObserver.java", "android/java/src/org/chromium/chrome/browser/tabmodel/NextTabPolicy.java", "android/java/src/org/chromium/chrome/browser/tabmodel/TabCreator.java", "android/java/src/org/chromium/chrome/browser/tabmodel/TabCreatorManager.java",
diff --git a/chrome/browser/tabmodel/android/java/src/org/chromium/chrome/browser/tabmodel/IncognitoTabModel.java b/chrome/browser/tabmodel/android/java/src/org/chromium/chrome/browser/tabmodel/IncognitoTabModel.java deleted file mode 100644 index c205778..0000000 --- a/chrome/browser/tabmodel/android/java/src/org/chromium/chrome/browser/tabmodel/IncognitoTabModel.java +++ /dev/null
@@ -1,22 +0,0 @@ -// Copyright 2020 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package org.chromium.chrome.browser.tabmodel; - -/** - * A {@link TabModel} which also emits events relevant to incognito tabs. - */ -public interface IncognitoTabModel extends TabModel { - /** - * Subscribes an {@link IncognitoTabModelObserver} to be notified about incognito events. - * @param observer The observer to be subscribed. - */ - void addIncognitoObserver(IncognitoTabModelObserver observer); - - /** - * Unsubscribes an {@link IncognitoTabModelObserver}. - * @param observer The observer to be unsubscribed. - */ - void removeIncognitoObserver(IncognitoTabModelObserver observer); -}
diff --git a/chrome/browser/tabmodel/android/java/src/org/chromium/chrome/browser/tabmodel/IncognitoTabModelObserver.java b/chrome/browser/tabmodel/android/java/src/org/chromium/chrome/browser/tabmodel/IncognitoTabModelObserver.java deleted file mode 100644 index 843664f..0000000 --- a/chrome/browser/tabmodel/android/java/src/org/chromium/chrome/browser/tabmodel/IncognitoTabModelObserver.java +++ /dev/null
@@ -1,20 +0,0 @@ -// Copyright 2020 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package org.chromium.chrome.browser.tabmodel; - -/** - * An observer of {@link IncognitoTabModel} that receives events relevant to incognito tabs. - */ -public interface IncognitoTabModelObserver { - /** - * Called when the first tab of the {@link IncognitoTabModel} is created. - */ - default void wasFirstTabCreated() {} - - /** - * Called when the last tab of the {@link IncognitoTabModel} is closed. - */ - default void didBecomeEmpty() {} -}
diff --git a/chrome/browser/tabmodel/android/java/src/org/chromium/chrome/browser/tabmodel/TabModelSelector.java b/chrome/browser/tabmodel/android/java/src/org/chromium/chrome/browser/tabmodel/TabModelSelector.java index 269d06e..20b25289 100644 --- a/chrome/browser/tabmodel/android/java/src/org/chromium/chrome/browser/tabmodel/TabModelSelector.java +++ b/chrome/browser/tabmodel/android/java/src/org/chromium/chrome/browser/tabmodel/TabModelSelector.java
@@ -180,14 +180,6 @@ boolean isReparentingInProgress(); /** - * Subscribe an {@link IncognitoTabModelObserver} to events that the {@link IncognitoTabModel} - * in this selector emits. The model could be observed directly, but observing the - * selector allows an observer to subscribe itself before the model is created. - * @param incognitoObserver The observer to subscribe. - */ - void addIncognitoTabModelObserver(IncognitoTabModelObserver incognitoObserver); - - /** * Destroy all owned {@link TabModel}s and {@link Tab}s referenced by this selector. */ void destroy();
diff --git a/chrome/browser/ui/BUILD.gn b/chrome/browser/ui/BUILD.gn index 4ba5a50..9f2cc66c 100644 --- a/chrome/browser/ui/BUILD.gn +++ b/chrome/browser/ui/BUILD.gn
@@ -1725,8 +1725,6 @@ "app_list/search/assistant_search_provider.h", "app_list/search/chrome_search_result.cc", "app_list/search/chrome_search_result.h", - "app_list/search/common/file_icon_util.cc", - "app_list/search/common/file_icon_util.h", "app_list/search/common/url_icon_source.cc", "app_list/search/common/url_icon_source.h", "app_list/search/cros_action_history/cros_action_recorder.cc", @@ -1869,6 +1867,8 @@ "ash/clipboard_image_model_factory_impl.h", "ash/clipboard_util.cc", "ash/clipboard_util.h", + "ash/holding_space/holding_space_client_impl.cc", + "ash/holding_space/holding_space_client_impl.h", "ash/holding_space/holding_space_keyed_service.cc", "ash/holding_space/holding_space_keyed_service.h", "ash/holding_space/holding_space_keyed_service_factory.cc", @@ -3494,11 +3494,11 @@ "views/global_media_controls/media_dialog_view.cc", "views/global_media_controls/media_dialog_view.h", "views/global_media_controls/media_dialog_view_observer.h", - "views/global_media_controls/media_notification_audio_device_selector_view.cc", - "views/global_media_controls/media_notification_audio_device_selector_view.h", - "views/global_media_controls/media_notification_audio_device_selector_view_delegate.h", "views/global_media_controls/media_notification_container_impl_view.cc", "views/global_media_controls/media_notification_container_impl_view.h", + "views/global_media_controls/media_notification_device_selector_view.cc", + "views/global_media_controls/media_notification_device_selector_view.h", + "views/global_media_controls/media_notification_device_selector_view_delegate.h", "views/global_media_controls/media_notification_list_view.cc", "views/global_media_controls/media_notification_list_view.h", "views/global_media_controls/media_toolbar_button_view.cc", @@ -3874,8 +3874,6 @@ "views/tabs/tab_group_underline.h", "views/tabs/tab_group_views.cc", "views/tabs/tab_group_views.h", - "views/tabs/tab_groups_iph_controller.cc", - "views/tabs/tab_groups_iph_controller.h", "views/tabs/tab_hover_card_bubble_view.cc", "views/tabs/tab_hover_card_bubble_view.h", "views/tabs/tab_icon.cc", @@ -4307,8 +4305,8 @@ if (use_aura) { sources += [ "views/chrome_javascript_app_modal_view_factory_views.cc", - "views/javascript_app_modal_event_blocker_x11.cc", - "views/javascript_app_modal_event_blocker_x11.h", + "views/javascript_app_modal_event_blocker.cc", + "views/javascript_app_modal_event_blocker.h", ] deps += [ "//ui/wm/public" ] }
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 a30065b..9aebb7f 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
@@ -102,6 +102,7 @@ <translation id="1810845389119482123">إعداد المزامنة الأولية لم يكتمل</translation> <translation id="1821253160463689938">يستخدم ملفات تعريف الارتباط لتذكّر الإعدادات المُفضّلة حتى إذا لم تزُر تلك الصفحات.</translation> <translation id="1829244130665387512">البحث في الصفحة</translation> +<translation id="1843805151597803366">للحصول على ترجمات أفضل، يُرجى السماح لمحرك "بحث Google" باستخدام الصفحة الحالية.</translation> <translation id="1853692000353488670">علامة تبويب جديدة للتصفح المتخفي</translation> <translation id="1856325424225101786">هل ترغب في إعادة ضبط الوضع البسيط؟</translation> <translation id="1868024384445905608">يُنزِّل Chrome الآن الملفات بشكلٍ أسرع.</translation> @@ -477,6 +478,7 @@ لتغيير هذا الإعداد، يُرجى <ph name="BEGIN_LINK" />إعادة ضبط المزامنة<ph name="END_LINK" /></translation> <translation id="4807098396393229769">الاسم كما على البطاقة</translation> +<translation id="4818017973810341238">تعذَّر التحقُّق من روابط تنقل إلى مواد عرض رقمية على <ph name="VIOLATED_URL" />.</translation> <translation id="4824958205181053313">هل تريد إلغاء المزامنة؟</translation> <translation id="4835385943915508971">لا تتوفر لمتصفح Chrome إمكانية الوصول إلى المورد المطلوب.</translation> <translation id="4837753911714442426">فتح الخيارات لطباعة الصفحة</translation> @@ -911,6 +913,7 @@ <translation id="7981313251711023384">التحميل المُسبق للصفحات للحصول على أداء أسرع أثناء التصفّح والبحث</translation> <translation id="79859296434321399">لعرض محتوى الواقع المُعزَّز، يُرجى تثبيت ARCore</translation> <translation id="7986741934819883144">اختيار جهة اتصال</translation> +<translation id="799806351373751710">إلغاء إعداد المزامنة</translation> <translation id="7998918019931843664">إعادة فتح علامة التبويب المغلقة</translation> <translation id="8004582292198964060">المتصفّح</translation> <translation id="8013372441983637696">محو بيانات Chrome من هذا الجهاز أيضًا</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_az.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_az.xtb index 9416c55..6d32e52 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_az.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_az.xtb
@@ -102,6 +102,7 @@ <translation id="1810845389119482123">İlkin sinxronizasiya ayarlanması tamamlanmayıb</translation> <translation id="1821253160463689938">Həmin səhifələrə daxil olmasanız belə, tərcihlərinizi yadda saxlamaq üçün kukilərdən istifadə edilir</translation> <translation id="1829244130665387512">Səhifədə tapın</translation> +<translation id="1843805151597803366">Daha yaxşı tərcümələr üçün Google Axtarışın bu səhifəni istifadə etməsinə icazə verin</translation> <translation id="1853692000353488670">Yeni gizli panel</translation> <translation id="1856325424225101786">Layt rejimi sıfırlansın?</translation> <translation id="1868024384445905608">Chrome artıq faylları sürətlə endirir</translation> @@ -477,6 +478,7 @@ Ayarı dəyişmək üçün <ph name="BEGIN_LINK" />sinxronizasiyanı sıfırlayın<ph name="END_LINK" /></translation> <translation id="4807098396393229769">Kart Adı</translation> +<translation id="4818017973810341238">Rəqəmsal aktiv keçidlərinin doğrulanması <ph name="VIOLATED_URL" /> ünvanında alınmadı</translation> <translation id="4824958205181053313">Sinxronizasiya ləğv edilsin?</translation> <translation id="4835385943915508971">Chrome'un sorğulanan mənbəyə girişi yoxdur.</translation> <translation id="4837753911714442426">Səhifəni çap etmək üçün seçimləri açın</translation> @@ -909,6 +911,7 @@ <translation id="7981313251711023384">Sürətli axtarış üçün səhifələri əvvəlcədən yükləyin</translation> <translation id="79859296434321399">Təkmilləşdirilmiş virtual reallıq kontentinə baxmaq üçün ARCore'u quraşdırın</translation> <translation id="7986741934819883144">Kontakt seçin</translation> +<translation id="799806351373751710">Sinxronizasiya ayarlanmasını ləğv edin</translation> <translation id="7998918019931843664">Qapalı nişanı yenidən</translation> <translation id="8004582292198964060">Brauzer</translation> <translation id="8013372441983637696">Həmçinin Chrome datanızı bu cihazdan silin</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_be.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_be.xtb index 40027078..c9ad1fed 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_be.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_be.xtb
@@ -102,6 +102,7 @@ <translation id="1810845389119482123">Першапачатковая наладка сінхранізацыі не завершана</translation> <translation id="1821253160463689938">Выкарыстоўваць файлы cookie для захавання параметраў, нават калі вы не адкрываеце гэтыя старонкі</translation> <translation id="1829244130665387512">Пошук на старонцы</translation> +<translation id="1843805151597803366">Дазвольце Google Пошуку выкарыстаць бягучую старонку для паляпшэння перакладу</translation> <translation id="1853692000353488670">Новая ўкладка інкогніта</translation> <translation id="1856325424225101786">Скінуць налады лёгкага рэжыму?</translation> <translation id="1868024384445905608">Chrome цяпер спампоўвае файлы хутчэй</translation> @@ -477,6 +478,7 @@ Каб змяніць гэту наладу, <ph name="BEGIN_LINK" />скіньце налады сінхранізацыі<ph name="END_LINK" /></translation> <translation id="4807098396393229769">Імя на картцы</translation> +<translation id="4818017973810341238">Памылка праверкі Digital Asset Links па адрасе <ph name="VIOLATED_URL" /></translation> <translation id="4824958205181053313">Скасаваць сінхранізацыю?</translation> <translation id="4835385943915508971">Chrome не мае доступу да запытанай крыніцы.</translation> <translation id="4837753911714442426">Адкрыць параметры друку старонкі</translation> @@ -911,6 +913,7 @@ <translation id="7981313251711023384">Папярэдне загружаць старонкі для больш хуткага прагляду і пошуку</translation> <translation id="79859296434321399">Каб праглядаць змесціва ў рэжыме дапоўненай рэальнасці, усталюйце ARCore</translation> <translation id="7986741934819883144">Выберыце кантакт</translation> +<translation id="799806351373751710">Скасаваць наладжванне сінхранізацыі</translation> <translation id="7998918019931843664">Паўторна адкрыць закрытую ўкладку</translation> <translation id="8004582292198964060">Браўзер</translation> <translation id="8013372441983637696">Таксама выдаліць даныя Chrome з гэтай прылады</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_bg.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_bg.xtb index f0866af0..8c907532 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_bg.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_bg.xtb
@@ -102,6 +102,7 @@ <translation id="1810845389119482123">Първоначалното настройване на синхронизирането не завърши</translation> <translation id="1821253160463689938">Използва „бисквитки“ за запомняне на предпочитанията ви дори ако не посещавате тези страници</translation> <translation id="1829244130665387512">Търсене в страницата</translation> +<translation id="1843805151597803366">За да получите по-добри преводи, позволете на Google Търсене да използва текущата страница</translation> <translation id="1853692000353488670">Нов раздел „инкогнито“</translation> <translation id="1856325424225101786">Да се нулира ли олекотеният режим?</translation> <translation id="1868024384445905608">Изтеглянето на файлове в Chrome вече е по-бързо</translation> @@ -477,6 +478,7 @@ За да промените тази настройка, <ph name="BEGIN_LINK" />нулирайте синхронизирането<ph name="END_LINK" /></translation> <translation id="4807098396393229769">Име върху картата</translation> +<translation id="4818017973810341238">Потвърждаването на връзките към дигитални активи на адрес <ph name="VIOLATED_URL" /> не бе успешно</translation> <translation id="4824958205181053313">Да се анулира ли синхронизирането?</translation> <translation id="4835385943915508971">Chrome няма достъп до заявения ресурс.</translation> <translation id="4837753911714442426">Отваряне на опциите за отпечатване на страницата</translation> @@ -911,6 +913,7 @@ <translation id="7981313251711023384">Предварително зареждане на страниците с цел по-бързо сърфиране и търсене</translation> <translation id="79859296434321399">За да гледате съдържание с обогатена реалност, инсталирайте ARCore</translation> <translation id="7986741934819883144">Изберете контакт</translation> +<translation id="799806351373751710">Анулиране на настройването на синхронизирането</translation> <translation id="7998918019931843664">Повторно отваряне на затворения раздел</translation> <translation id="8004582292198964060">Браузър</translation> <translation id="8013372441983637696">Изчистване на данните ви в Chrome и от това устройство</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_bn.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_bn.xtb index eec86268..00d32663 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_bn.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_bn.xtb
@@ -7,6 +7,7 @@ <translation id="1036727731225946849"><ph name="WEBAPK_NAME" /> যোগ করা হচ্ছে...</translation> <translation id="1041308826830691739">ওয়েবসাইট থেকে</translation> <translation id="1045899828449635435">এই সাইটগুলির ডেটাও কি মুছে ফলতে চান?</translation> +<translation id="1047303875618851375">Chrome আপনার তথ্য যাচাই করতে পারেনি</translation> <translation id="1049743911850919806">ছদ্মবেশী</translation> <translation id="10614374240317010">কখনও সংরক্ষিত হয়নি</translation> <translation id="1067922213147265141">Google-এর অন্যান্য পরিষেবা</translation> @@ -101,6 +102,7 @@ <translation id="1810845389119482123">প্রারম্ভিক সিঙ্ক সেট-আপ করা সম্পূর্ণ হয়নি</translation> <translation id="1821253160463689938">আপনার পছন্দগুলি মনে রাখার জন্য কুকি ব্যবহার করে। আপনি সেই সমস্ত পৃষ্ঠায় না গেলেও তা করে থাকে</translation> <translation id="1829244130665387512">পৃষ্ঠাতে খুঁজুন</translation> +<translation id="1843805151597803366">আরও ভাল অনুবাদের জন্য, Google Search আপনার থেকে বর্তমান পৃষ্ঠা ব্যবহার করার অনুমতি চাইতে পারে</translation> <translation id="1853692000353488670">নতুন ছদ্মবেশী ট্যাব</translation> <translation id="1856325424225101786">লাইট মোড রিসেট করবেন?</translation> <translation id="1868024384445905608">Chrome এখন আরও দ্রুত ফাইল ডাউনলোড করে</translation> @@ -451,6 +453,7 @@ <translation id="4650364565596261010">সিস্টেম ডিফল্ট</translation> <translation id="465657074423018424">Safe Browsing প্রতাণামূলক ওয়েবসাইট থেকে আপনাকে নিরাপদে রাখে। এটি বন্ধ করা থাকলে, ব্রাউজ করার সময় (বিশেষ করে পাসওয়ার্ড লেখার আগে) অতিরিক্ত সতর্কতা অবলম্বন করুন।</translation> <translation id="4662373422909645029">ডাকনামে সংখ্যা থাকবে না</translation> +<translation id="4663499661119906179">আপনার জন্যই বেছে নেওয়া সেরা সাইট ও খবর দেখুন</translation> <translation id="4663756553811254707"><ph name="NUMBER_OF_BOOKMARKS" />টি বুকমার্ক মোছা হয়েছে</translation> <translation id="4665282149850138822">আপনার হোম স্ক্রীনে <ph name="NAME" /> কে যোগ করা হয়েছে</translation> <translation id="4668347365065281350">কুকি ও স্থানীয়ভাবে সেভ করা ডেটা সহ সাইটের সেভ করা সব ডেটা</translation> @@ -463,6 +466,7 @@ <translation id="4719927025381752090">অনুবাদ করুন</translation> <translation id="4720023427747327413"><ph name="PRODUCT_NAME" /> এ খুলুন</translation> <translation id="4720982865791209136">Chrome উন্নত করতে সাহায্য করুন। <ph name="BEGIN_LINK" />সমীক্ষায় অংশ নিন।<ph name="END_LINK" /></translation> +<translation id="47217992755561375">আপনার জন্য বেছে নেওয়া সেরা সাইট দেখুন</translation> <translation id="4732120983431207637">স্ট্যাক আনউইন্ডার</translation> <translation id="473775607612524610">আপডেট করুন</translation> <translation id="4738836084190194332">সর্বশেষ সিঙ্ক হয়েছে: <ph name="WHEN" /></translation> @@ -476,6 +480,7 @@ <ph name="BEGIN_LINK" />রিসেট সিঙ্ক<ph name="END_LINK" /> থেকে এই সেটিং পরিবর্তন করুন</translation> <translation id="4807098396393229769">কার্ডে থাকা নাম</translation> +<translation id="4818017973810341238"><ph name="VIOLATED_URL" />-এ Digital Asset Links যাচাই করা যায়নি</translation> <translation id="4824958205181053313">সিঙ্ক বাতিল করতে চান?</translation> <translation id="4835385943915508971">অনুরোধকৃত সম্পদে Chrome এর অ্যাক্সেস নেই।</translation> <translation id="4837753911714442426">‘পৃষ্ঠা প্রিন্ট করুন’-এর বিকল্পগুলি খুলুন</translation> @@ -560,6 +565,7 @@ <translation id="5433691172869980887">ইউজারনেম কপি করা হয়েছে</translation> <translation id="543509235395288790"><ph name="COUNT" />টি ফাইল ডাউনলোড হচ্ছে (<ph name="MEGABYTES" />)।</translation> <translation id="5441522332038954058">অ্যাড্রেস বারে চলে যান</translation> +<translation id="544776284582297024">ট্যাব খুলে বিভিন্ন পৃষ্ঠা একইসাথে ব্রাউজ করার জন্য 'ট্যাব খুলুন' বোতাম টিপুন</translation> <translation id="545042621069398927">আপনার ডাউনলোডের স্পিড বাড়ানো হচ্ছে।</translation> <translation id="5456381639095306749">পৃষ্ঠা ডাউনলোড করুন</translation> <translation id="548278423535722844">ম্যাপ অ্যাপ্লিকেশানে খুলুন</translation> @@ -635,6 +641,7 @@ <translation id="5942872142862698679">সার্চের জন্য Google কে ব্যবহার করছে</translation> <translation id="5952764234151283551">যে পৃষ্ঠাটি দেখার চেষ্টা করছেন Google-কে সেটির ইউআরএল পাঠায়</translation> <translation id="5956665950594638604">Chrome সহায়তা কেন্দ্রকে একটি নতুন ট্যাবে খুলুন</translation> +<translation id="5957442310066583693">আপনার জন্য বেছে নেওয়া সেরা সাইট দেখতে 'হোম' বোতাম টিপুন</translation> <translation id="5958275228015807058">ডাউনলোড ফোল্ডার থেকে আপনার সমস্ত ফাইল ও পৃষ্ঠাগুলি খুঁজে নিন</translation> <translation id="5962718611393537961">সঙ্কুচিত করতে আলতো চাপুন</translation> <translation id="5964805880140440652">এই পৃষ্ঠাটিকে অন্য ডিভাইসের সাথে শেয়ার করার জন্য, Chrome সেটিংস থেকে সিঙ্ক চালু করুন</translation> @@ -726,10 +733,12 @@ <translation id="6583199322650523874">বর্তমান পৃষ্ঠাটি বুকমার্ক করুন</translation> <translation id="6588043302623806746">নিরাপদ ডিএনএস ব্যবহার করুন</translation> <translation id="6590471736817333463">সর্বাধিক ৬০ শতাংশ ডেটা সাশ্রয় করুন</translation> +<translation id="6590680911007613645">আপনি যে পাসওয়ার্ড সেভ করছেন, সেটি <ph name="SITE" /> সাইটে লেখা আপনার পাসওয়ার্ডের সাথে মিলছে কিনা দেখুন</translation> <translation id="6593061639179217415">ডেস্কটপ সাইট</translation> <translation id="6597891566292541626">এই ফ্রেমের মধ্যে QR/বার কোড বসান।</translation> <translation id="6600954340915313787">Chrome-এ প্রতিলিপি করা হয়েছে</translation> <translation id="661266467055912436">ওয়েবে আপনার এবং সকলের জন্য নিরাপত্তা আরও উন্নত করুন।</translation> +<translation id="6618554661997243500">আপনার জন্য বেছে নেওয়া সেরা সাইট ও খবর দেখতে 'হোম' বোতাম টিপুন</translation> <translation id="6627583120233659107">ফোল্ডার সম্পাদনা করুন</translation> <translation id="6643016212128521049">সাফ করুন</translation> <translation id="6643649862576733715">সেভ করা ডেটার পরিমাণ অনুযায়ী সাজান</translation> @@ -790,6 +799,7 @@ <translation id="7077143737582773186">এসডি কার্ড</translation> <translation id="7080806333218412752">Safe Browsing-এ ইউআরএল চেক করতে পাঠানো হয়। তাছাড়া, নতুন কোনও ঝুঁকি খুঁজে পেতে সাহায্য করার জন্য পৃষ্ঠার ছোট নমুনা, ডাউনলোড, এক্সটেনশন অ্যাক্টিভিটি এবং সিস্টেম সংক্রান্ত তথ্যও পাঠানো হয়। সমস্ত Google অ্যাপ জুড়ে আপনাকে সুরক্ষিত রাখতে, যখন আপনি সাইন-ইন করেন, তখন আপনার Google অ্যাকাউন্টে অস্থায়ীভাবে এই ডেটাকে লিঙ্ক করানো হয়।</translation> <translation id="7088681679121566888">Chrome আপ-টু-ডেট আছে</translation> +<translation id="7106762743910369165">আপনার সংস্থা ব্রাউজার ম্যানেজ করছে</translation> <translation id="7121362699166175603">অ্যাড্রেস বারের ইতিহাস এবং অটোকমপ্লিট তথ্য মুছে ফেলে। <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" />-এ আপনার Google অ্যাকাউন্টের অন্যান্য ধরনের ব্রাউজিংয়ের ইতিহাস থাকতে পারে।</translation> <translation id="7128355412245153445">বেশি ব্যবহার করেন এমন সাইট ও সাম্প্রতিক খবরগুলি যখন খুশি হোম বোতামে ট্যাপ করে দেখে নিন</translation> <translation id="7138678301420049075">অন্যান্য</translation> @@ -905,6 +915,7 @@ <translation id="7981313251711023384">আরও দ্রুত ব্রাউজ করা এবং খোঁজার জন্য পৃষ্ঠা আগে লোড করুন</translation> <translation id="79859296434321399">অগমেন্টেড রিয়েলিটি কন্টেন্ট দেখার জন্য ARCore ইনস্টল করুন</translation> <translation id="7986741934819883144">একটি পরিচিতি বেছে নিন</translation> +<translation id="799806351373751710">সিঙ্ক করার সেট-আপ বাতিল করুন</translation> <translation id="7998918019931843664">বন্ধ হওয়া ট্যাব আবার খুলুন</translation> <translation id="8004582292198964060">ব্রাউজার</translation> <translation id="8013372441983637696">এছাড়া এই ডিভাইস থেকে Chrome ডেটা সরিয়ে ফেলুন</translation> @@ -1032,6 +1043,7 @@ <translation id="8993760627012879038">ছদ্মবেশী মোডে একটি নতুন ট্যাব খুলুন</translation> <translation id="8996847606757455498">অন্য একটি পরিষেবা প্রদানকারী বেছে নিন</translation> <translation id="8998729206196772491">আপনি <ph name="MANAGED_DOMAIN" /> দ্বারা পরিচালিত একটি অ্যাকাউন্টের মাধ্যমে সাইন-ইন করছেন এবং এর অ্যাডমিনিস্ট্রেটরকে আপনার Chrome ডেটা নিয়ন্ত্রণ করতে দিচ্ছেন৷ আপনার ডেটা এই অ্যাকাউন্টের সাথে স্থায়ীভাবে আবদ্ধ হবে৷ Chrome থেকে সাইন-আউট করলে এই ডিভাইস থেকে আপনার ডেটা মুছে ফেলা হবে, কিন্তু এটা আপনার Google অ্যাকাউন্টে সঞ্চিত থাকবে।</translation> +<translation id="9022774213089566801">আপনি প্রায়ই দেখেন</translation> <translation id="9028914725102941583">বিভিন্ন ডিভাইসের জুড়ে শেয়ার করার জন্য সিঙ্ক ফিচার চালু করুন</translation> <translation id="9040142327097499898">বিজ্ঞপ্তির অনুমতি দেওয়া আছে। এই ডিভাইসে লোকেশন বন্ধ করা আছে।</translation> <translation id="9041669420854607037">{FILE_COUNT,plural, =1{#টি ভিডিও}one{#টি ভিডিও}other{#টি ভিডিও}}</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_bs.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_bs.xtb index 6e2df64..8a85c85 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_bs.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_bs.xtb
@@ -102,7 +102,7 @@ <translation id="1810845389119482123">Početno postavljanje sinhronizacije nije završeno</translation> <translation id="1821253160463689938">Kolačići se koriste kako bi se zapamtile vaše postavke čak i ako ne posjećujete te stranice</translation> <translation id="1829244130665387512">Pronađi na stranici</translation> -<translation id="1843805151597803366">Omogućite Googleu da upotrebljava trenutačnu stranicu radi boljih prijevoda</translation> +<translation id="1843805151597803366">Da dobijete bolje prijevode, omogućite Google Pretraživanju da koristi trenutnu stranicu</translation> <translation id="1853692000353488670">Nova anonimna kartica</translation> <translation id="1856325424225101786">Želite li poništiti Jednostavni način?</translation> <translation id="1868024384445905608">Chrome sada brže preuzima fajlove</translation> @@ -478,7 +478,7 @@ Da biste promijenili tu postavku, <ph name="BEGIN_LINK" />poništite sinkronizaciju<ph name="END_LINK" /></translation> <translation id="4807098396393229769">Ime i prezime na kartici</translation> -<translation id="4818017973810341238">Potvrda veze na digitalne materijale nije uspjela za <ph name="VIOLATED_URL" /></translation> +<translation id="4818017973810341238">Potvrda linkova za digitalne materijale nije uspjela za <ph name="VIOLATED_URL" /></translation> <translation id="4824958205181053313">Otkazati sinhroniziranje?</translation> <translation id="4835385943915508971">Chrome nema pristup traženom resursu.</translation> <translation id="4837753911714442426">Otvorite opcije za štampanje stranice</translation> @@ -913,7 +913,7 @@ <translation id="7981313251711023384">Prethodno učitaj stranice za brže pregledavanje i pretraživanje</translation> <translation id="79859296434321399">Instalirajte ARCore da vidite sadržaj proširene realnosti</translation> <translation id="7986741934819883144">Odaberite kontakt</translation> -<translation id="799806351373751710">Otkaži postavljanje sinkronizacije</translation> +<translation id="799806351373751710">Otkaži postavljanje sinhronizacije</translation> <translation id="7998918019931843664">Ponovono otvaranje zatvorenih kartica</translation> <translation id="8004582292198964060">Preglednik</translation> <translation id="8013372441983637696">Također obriši Chrome podatke s ovog uređaja</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_cs.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_cs.xtb index 19d6a821..fb49c84b 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_cs.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_cs.xtb
@@ -102,6 +102,7 @@ <translation id="1810845389119482123">Počáteční nastavení synchronizace nebylo dokončeno</translation> <translation id="1821253160463689938">Používá soubory cookie k uložení vašeho nastavení i v případě, že stránky nenavštívíte</translation> <translation id="1829244130665387512">Najít na stránce</translation> +<translation id="1843805151597803366">Za účelem zvýšení kvality překladů umožněte Vyhledávání Google použít tuto stránku</translation> <translation id="1853692000353488670">Nová anonymní karta</translation> <translation id="1856325424225101786">Resetovat zjednodušený režim?</translation> <translation id="1868024384445905608">Chrome teď stahuje soubory rychleji</translation> @@ -477,6 +478,7 @@ Chcete-toto nastavení změnit, <ph name="BEGIN_LINK" />resetujte synchronizaci<ph name="END_LINK" />.</translation> <translation id="4807098396393229769">Jméno na kartě</translation> +<translation id="4818017973810341238">Ověření protokolu Digital Asset Links na adrese <ph name="VIOLATED_URL" /> se nezdařilo</translation> <translation id="4824958205181053313">Zrušit synchronizaci?</translation> <translation id="4835385943915508971">Chrome k požadovanému zdroji nemá přístup.</translation> <translation id="4837753911714442426">Otevřít možnosti tisku stránky</translation> @@ -911,6 +913,7 @@ <translation id="7981313251711023384">Předběžně načítat stránky pro rychlejší procházení a vyhledávání</translation> <translation id="79859296434321399">Chcete-li zobrazit obsah pro rozšířenou realitu, nainstalujte ARCore</translation> <translation id="7986741934819883144">Výběr kontaktu</translation> +<translation id="799806351373751710">Zrušit nastavení synchronizace</translation> <translation id="7998918019931843664">Znovu otevřít zavřenou kartu</translation> <translation id="8004582292198964060">Prohlížeč</translation> <translation id="8013372441983637696">Vymazat data prohlížeče Chrome také z tohoto zařízení</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 e2117f0..87d77f7 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
@@ -102,6 +102,7 @@ <translation id="1810845389119482123">Indledende konfiguration af synkronisering er ikke afsluttet</translation> <translation id="1821253160463689938">Anvender cookies til at huske dine præferencer, også selvom du ikke besøger siderne</translation> <translation id="1829244130665387512">Find på siden</translation> +<translation id="1843805151597803366">Du kan få bedre oversættelser ved at lade Google Søgning bruge den aktuelle side</translation> <translation id="1853692000353488670">Ny inkognitofane</translation> <translation id="1856325424225101786">Vil du nulstille Lite-tilstand?</translation> <translation id="1868024384445905608">Chrome downloader nu filer endnu hurtigere</translation> @@ -477,6 +478,7 @@ Hvis du vil ændre denne indstilling, skal du <ph name="BEGIN_LINK" />nulstille synkronisering<ph name="END_LINK" /></translation> <translation id="4807098396393229769">Navn på kort</translation> +<translation id="4818017973810341238">Digital Asset Links kunne ikke bekræftes på <ph name="VIOLATED_URL" /></translation> <translation id="4824958205181053313">Vil du annullere synkroniseringen?</translation> <translation id="4835385943915508971">Chrome har ikke adgang til den ressource, du anmoder om.</translation> <translation id="4837753911714442426">Åbn valgmuligheder for udskrivning af siden</translation> @@ -911,6 +913,7 @@ <translation id="7981313251711023384">Forudindlæs sider, så du kan browse og søge hurtigere</translation> <translation id="79859296434321399">Installer ARCore for at se augmented reality-indhold</translation> <translation id="7986741934819883144">Vælg en kontakt</translation> +<translation id="799806351373751710">Annuller konfigurationen af synkronisering</translation> <translation id="7998918019931843664">Åbn lukket fane igen</translation> <translation id="8004582292198964060">Browser</translation> <translation id="8013372441983637696">Ryd også dine Chrome-data fra enheden</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_de.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_de.xtb index 452bfe4..fe0922c8 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_de.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_de.xtb
@@ -102,6 +102,7 @@ <translation id="1810845389119482123">Erste Einrichtung der Synchronisierung nicht abgeschlossen</translation> <translation id="1821253160463689938">Zum Speichern Ihrer Einstellungen werden Cookies verwendet, auch wenn Sie diese Seiten nicht besuchen</translation> <translation id="1829244130665387512">Auf Seite suchen</translation> +<translation id="1843805151597803366">Lassen Sie die Google Suche auf die aktuelle Seite zugreifen, um bessere Übersetzungen zu bekommen</translation> <translation id="1853692000353488670">Neuer Inkognitotab</translation> <translation id="1856325424225101786">Lite-Modus zurücksetzen?</translation> <translation id="1868024384445905608">In Chrome sind Downloads jetzt noch schneller</translation> @@ -477,6 +478,7 @@ Wenn Sie diese Einstellung ändern möchten, <ph name="BEGIN_LINK" />setzen Sie die Synchronisierung zurück<ph name="END_LINK" /></translation> <translation id="4807098396393229769">Name auf Karte</translation> +<translation id="4818017973810341238">Verifizierung der Digital Asset Links unter <ph name="VIOLATED_URL" /> fehlgeschlagen</translation> <translation id="4824958205181053313">Synchronisierung abbrechen?</translation> <translation id="4835385943915508971">Chrome hat keinen Zugriff auf die angeforderte Ressource.</translation> <translation id="4837753911714442426">Optionen zum Drucken einer Seite öffnen</translation> @@ -911,6 +913,7 @@ <translation id="7981313251711023384">Seiten vorab laden, um das Surfen und die Suche zu beschleunigen</translation> <translation id="79859296434321399">ARCore installieren, um Augmented-Reality-Inhalte zu sehen</translation> <translation id="7986741934819883144">Kontakt auswählen</translation> +<translation id="799806351373751710">Einrichtung der Synchronisierung abbrechen</translation> <translation id="7998918019931843664">Geschlossenen Tab wieder öffnen</translation> <translation id="8004582292198964060">Browser</translation> <translation id="8013372441983637696">Meine Chrome-Daten auch von diesem Gerät löschen</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 5512933..55f361e7 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
@@ -102,6 +102,7 @@ <translation id="1810845389119482123">La configuración de sincronización inicial no ha terminado</translation> <translation id="1821253160463689938">Usa cookies para recordar tus preferencias aunque no visites esas páginas</translation> <translation id="1829244130665387512">Buscar en la página</translation> +<translation id="1843805151597803366">Para obtener mejores traducciones, permite que la Búsqueda de Google use la página actual</translation> <translation id="1853692000353488670">Nueva pestaña de incógnito</translation> <translation id="1856325424225101786">¿Restablecer el modo básico?</translation> <translation id="1868024384445905608">Ahora Chrome descarga los archivos más rápido</translation> @@ -477,6 +478,7 @@ Para cambiar esta opción, <ph name="BEGIN_LINK" />restablece la sincronización<ph name="END_LINK" />.</translation> <translation id="4807098396393229769">Titular de la tarjeta</translation> +<translation id="4818017973810341238">No se han podido verificar Digital Asset Links en <ph name="VIOLATED_URL" /></translation> <translation id="4824958205181053313">¿Quieres cancelar la sincronización?</translation> <translation id="4835385943915508971">Chrome no tiene acceso al recurso solicitado.</translation> <translation id="4837753911714442426">Abre las opciones para imprimir la página</translation> @@ -911,6 +913,7 @@ <translation id="7981313251711023384">Cargar previamente las páginas para que la navegación y las búsquedas sean más rápidas</translation> <translation id="79859296434321399">Instala ARCore para visualizar contenido de realidad aumentada</translation> <translation id="7986741934819883144">Selecciona un contacto</translation> +<translation id="799806351373751710">Cancelar configuración de sincronización</translation> <translation id="7998918019931843664">Volver a abrir pestaña cerrada</translation> <translation id="8004582292198964060">Navegador</translation> <translation id="8013372441983637696">Borrar también los datos de Chrome de este dispositivo</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 3f1f964a..2b80765 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
@@ -101,6 +101,7 @@ <translation id="1810845389119482123">Ez da amaitu hasierako sinkronizazioa konfiguratzen</translation> <translation id="1821253160463689938">Cookieak erabiltzen ditu zure hobespenak gogoratzeko, orri horietara joaten ez bazara ere</translation> <translation id="1829244130665387512">Bilatu orrian</translation> +<translation id="1843805151597803366">Itzulpen hobeak lortzeko, eman baimena Google Bilaketa zerbitzuari uneko orria erabil dezan</translation> <translation id="1853692000353488670">Ezkutuko moduko fitxa berria</translation> <translation id="1856325424225101786">Oinarrizko modua berrezarri nahi duzu?</translation> <translation id="1868024384445905608">Chrome-k orain bizkorrago deskargatzen ditu fitxategiak</translation> @@ -474,6 +475,7 @@ Ezarpena aldatzeko, <ph name="BEGIN_LINK" />berrezarri sinkronizazioa<ph name="END_LINK" />.</translation> <translation id="4807098396393229769">Txartelean ageri den izena</translation> +<translation id="4818017973810341238">Huts egin du gai digitalen esteken egiaztapenak helbide honetan: <ph name="VIOLATED_URL" /></translation> <translation id="4824958205181053313">Sinkronizazioa bertan behera utzi nahi duzu?</translation> <translation id="4835385943915508971">Chrome-k ez du eskatutako baliabiderako sarbiderik.</translation> <translation id="4837753911714442426">Ireki orria inprimatzeko aukerak</translation> @@ -903,6 +905,7 @@ <translation id="7981313251711023384">Aurrekargatu orriak azkarrago arakatzeko eta bilatzeko</translation> <translation id="79859296434321399">Errealitate areagotuko edukia ikusteko, instalatu ARCore</translation> <translation id="7986741934819883144">Hautatu kontaktu bat</translation> +<translation id="799806351373751710">Utzi sinkronizazioa konfiguratzen</translation> <translation id="7998918019931843664">Ireki berriro itxitako fitxa</translation> <translation id="8004582292198964060">Arakatzailea</translation> <translation id="8013372441983637696">Garbitu Chrome-ren datuak gailu honetatik ere</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_fa.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_fa.xtb index bf50fdf..69883b6 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_fa.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_fa.xtb
@@ -102,6 +102,7 @@ <translation id="1810845389119482123">همگامسازی اولیه کامل نشد</translation> <translation id="1821253160463689938">از کوکیها برای به خاطر سپردن تنظیمات برگزیدهتان استفاده میکند، حتی اگر از آن صفحهها بازدید نکنید</translation> <translation id="1829244130665387512">یافتن در صفحه</translation> +<translation id="1843805151597803366">برای دریافت ترجمههای بهتر، به «جستجوی Google» اجازه دهید از صفحه کنونی استفاده کند</translation> <translation id="1853692000353488670">برگه جدید ناشناس</translation> <translation id="1856325424225101786">«حالت ساده» بازنشانی شود؟</translation> <translation id="1868024384445905608">اکنون Chrome فایلها را سریعتر بارگیری میکند</translation> @@ -477,6 +478,7 @@ برای تغییر این تنظیم، <ph name="BEGIN_LINK" />همگامسازی را بازنشانی کنید<ph name="END_LINK" /></translation> <translation id="4807098396393229769">نام روی کارت</translation> +<translation id="4818017973810341238">راستیآزمایی پیوندهای دارایی دیجیتال در <ph name="VIOLATED_URL" /> انجام نشد</translation> <translation id="4824958205181053313">همگامسازی لغو شود؟</translation> <translation id="4835385943915508971">Chrome به منبع درخواستی دسترسی ندارد.</translation> <translation id="4837753911714442426">باز کردن گزینههای چاپ صفحه</translation> @@ -911,6 +913,7 @@ <translation id="7981313251711023384">پیشبارگیری صفحهها برای مرور و جستجوی سریعتر</translation> <translation id="79859296434321399">برای مشاهده محتوای واقعیت افزوده، ARCore را نصب کنید</translation> <translation id="7986741934819883144">مخاطبی انتخاب کنید</translation> +<translation id="799806351373751710">لغو راهاندازی همگامسازی</translation> <translation id="7998918019931843664">بازکردن مجدد برگههای بسته شده</translation> <translation id="8004582292198964060">مرورگر</translation> <translation id="8013372441983637696">دادههای این Chrome هم از این دستگاه پاک شود</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 cb2f54f6..85177679 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
@@ -102,6 +102,7 @@ <translation id="1810845389119482123">Hindi natapos ang paunang pag-set up ng pag-sync</translation> <translation id="1821253160463689938">Gumamit ng mga cookie para matandaan ang iyong mga kagustuhan, kahit na hindi mo binibisita ang mga page na iyon</translation> <translation id="1829244130665387512">Hanapin sa page</translation> +<translation id="1843805151597803366">Para makakuha ng mas mahuhusay na pagsasalin, payagan ang Google Search na gamitin ang kasalukuyang page</translation> <translation id="1853692000353488670">Bagong tab na incognito</translation> <translation id="1856325424225101786">I-reset ang Lite mode?</translation> <translation id="1868024384445905608">Mas mabilis nang mag-download ng mga file ang Chrome</translation> @@ -477,6 +478,7 @@ Para baguhin ang setting na ito, <ph name="BEGIN_LINK" />i-reset ang pag-sync<ph name="END_LINK" /></translation> <translation id="4807098396393229769">Pangalang makikita sa card</translation> +<translation id="4818017973810341238">Hindi na-verify ang mga link ng digital asset sa <ph name="VIOLATED_URL" /></translation> <translation id="4824958205181053313">Kanselahin ang pag-sync?</translation> <translation id="4835385943915508971">Walang access ang Chrome sa hiniling na mapagkukunan.</translation> <translation id="4837753911714442426">Buksan ang mga opsyon sa pag-print ng page</translation> @@ -911,6 +913,7 @@ <translation id="7981313251711023384">I-preload ang mga page para sa mas mabilis na pag-browse at paghahanap</translation> <translation id="79859296434321399">Para matingnan ang augmented reality na content, i-install ang ARCore</translation> <translation id="7986741934819883144">Pumili ng contact</translation> +<translation id="799806351373751710">Kanselahin ang pag-set up ng pag-sync</translation> <translation id="7998918019931843664">Muling buksan ang isinarang tab</translation> <translation id="8004582292198964060">Browser</translation> <translation id="8013372441983637696">I-clear din ang iyong data ng Chrome sa device na ito</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_fr-CA.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_fr-CA.xtb index 05be585..7c4579c 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_fr-CA.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_fr-CA.xtb
@@ -102,6 +102,7 @@ <translation id="1810845389119482123">La configuration de la synchro. initiale n'est pas terminée</translation> <translation id="1821253160463689938">Utilise des témoins pour mémoriser vos préférences, même si vous ne consultez pas ces pages</translation> <translation id="1829244130665387512">Rechercher sur la page</translation> +<translation id="1843805151597803366">Pour obtenir des traductions de meilleure qualité, autorisez la recherche Google à utiliser la page actuelle</translation> <translation id="1853692000353488670">Nouvel onglet de navigation privée</translation> <translation id="1856325424225101786">Réinitialiser le mode simplifié?</translation> <translation id="1868024384445905608">Chrome télécharge maintenant les fichiers plus rapidement</translation> @@ -477,6 +478,7 @@ Pour modifier ce paramètre, <ph name="BEGIN_LINK" />réinitialisez la synchronisation<ph name="END_LINK" /></translation> <translation id="4807098396393229769">Nom du titulaire de la carte</translation> +<translation id="4818017973810341238">Échec de la vérification des liens de ressource numérique sur la page <ph name="VIOLATED_URL" /></translation> <translation id="4824958205181053313">Annuler la synchronisation?</translation> <translation id="4835385943915508971">Chrome n'a pas accès à la ressource demandée.</translation> <translation id="4837753911714442426">Ouvrir les options d'impression de la page</translation> @@ -637,7 +639,7 @@ <translation id="5942872142862698679">Google est utilisé pour la recherche</translation> <translation id="5952764234151283551">Envoie l'URL d'une page que vous essayez d'atteindre à Google</translation> <translation id="5956665950594638604">Centre d'aide de Chrome : nouvel onglet</translation> -<translation id="5957442310066583693">Pour consulter vos sites les plus fréquentés, touchez la touche d'accueil</translation> +<translation id="5957442310066583693">Pour consulter vos sites les plus fréquentés, touchez le bouton Accueil</translation> <translation id="5958275228015807058">Trouvez vos fichiers et vos pages dans Téléchargements</translation> <translation id="5962718611393537961">Toucher pour réduire</translation> <translation id="5964805880140440652">Pour partager cette page avec un autre appareil, activez la synchronisation dans les paramètres de Chrome</translation> @@ -911,6 +913,7 @@ <translation id="7981313251711023384">Précharger les pages pour une navigation et une recherche plus rapides</translation> <translation id="79859296434321399">Pour regarder du contenu de réalité augmentée, installez ARCore</translation> <translation id="7986741934819883144">Sélectionner un contact</translation> +<translation id="799806351373751710">Annuler la configuration de la synchronisation</translation> <translation id="7998918019931843664">Rouvrir l'onglet fermé</translation> <translation id="8004582292198964060">Navigateur</translation> <translation id="8013372441983637696">Aussi effacer vos données de Chrome de cet appareil</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_fr.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_fr.xtb index 7a1f7607..1fa3903 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_fr.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_fr.xtb
@@ -7,6 +7,7 @@ <translation id="1036727731225946849">Ajout de <ph name="WEBAPK_NAME" />…</translation> <translation id="1041308826830691739">À partir de sites Web</translation> <translation id="1045899828449635435">Effacer ces données ?</translation> +<translation id="1047303875618851375">Chrome n'a pas pu valider vos informations</translation> <translation id="1049743911850919806">Navigation privée</translation> <translation id="10614374240317010">Jamais enregistrés</translation> <translation id="1067922213147265141">Autres services Google</translation> @@ -101,6 +102,7 @@ <translation id="1810845389119482123">Configuration de la synchronisation initiale non terminée</translation> <translation id="1821253160463689938">Utilise des cookies pour mémoriser vos préférences, même si vous n'accédez pas à ces pages</translation> <translation id="1829244130665387512">Rechercher sur la page</translation> +<translation id="1843805151597803366">Pour obtenir de meilleures traductions, autorisez la recherche Google à accéder au contenu de la page actuelle</translation> <translation id="1853692000353488670">Nouvel onglet de navigation privée</translation> <translation id="1856325424225101786">Réinitialiser le mode simplifié ?</translation> <translation id="1868024384445905608">Chrome permet désormais de télécharger des fichiers plus vite</translation> @@ -449,6 +451,7 @@ <translation id="4650364565596261010">Paramètre par défaut du système</translation> <translation id="465657074423018424">La navigation sécurisée vous protège contre les sites Web trompeurs. Si vous la désactivez, faites preuve d'une grande vigilance en ligne, surtout lorsque vous saisissez des mots de passe.</translation> <translation id="4662373422909645029">Le pseudo ne doit pas contenir de chiffres</translation> +<translation id="4663499661119906179">Retrouvez les meilleurs sites et articles pour vous</translation> <translation id="4663756553811254707"><ph name="NUMBER_OF_BOOKMARKS" /> favoris ont été supprimés.</translation> <translation id="4665282149850138822">Le site "<ph name="NAME" />" a bien été ajouté à votre écran d'accueil.</translation> <translation id="4668347365065281350">Toutes les données stockées par les sites, y compris les cookies et autres données stockées en local</translation> @@ -461,6 +464,7 @@ <translation id="4719927025381752090">Proposer de traduire</translation> <translation id="4720023427747327413">Ouvrir dans <ph name="PRODUCT_NAME" /></translation> <translation id="4720982865791209136">Aidez-nous à améliorer Chrome. <ph name="BEGIN_LINK" />Répondez à notre enquête<ph name="END_LINK" /></translation> +<translation id="47217992755561375">Retrouvez les meilleurs sites pour vous</translation> <translation id="4732120983431207637">Dérouleur de pile</translation> <translation id="473775607612524610">Mettre à jour</translation> <translation id="4738836084190194332">Dernière synchronisation : <ph name="WHEN" /></translation> @@ -474,6 +478,7 @@ Pour modifier ce paramètre, <ph name="BEGIN_LINK" />réinitialisez la synchronisation<ph name="END_LINK" /></translation> <translation id="4807098396393229769">Titulaire de la carte</translation> +<translation id="4818017973810341238">Échec de la validation Digital Asset Links sur <ph name="VIOLATED_URL" /></translation> <translation id="4824958205181053313">Annuler la synchronisation ?</translation> <translation id="4835385943915508971">Chrome n'a pas accès à la ressource demandée.</translation> <translation id="4837753911714442426">Afficher les options d'impression de la page</translation> @@ -558,6 +563,7 @@ <translation id="5433691172869980887">Nom d'utilisateur copié</translation> <translation id="543509235395288790">Téléchargement de <ph name="COUNT" /> fichiers (<ph name="MEGABYTES" />)…</translation> <translation id="5441522332038954058">Accéder à la barre d'adresse</translation> +<translation id="544776284582297024">Pour ouvrir des onglets et consulter plusieurs pages en même temps, appuyez sur le bouton "Onglets ouverts"</translation> <translation id="545042621069398927">Accélération du téléchargement…</translation> <translation id="5456381639095306749">Télécharger la page</translation> <translation id="548278423535722844">Ouvrir dans une application de plans</translation> @@ -633,6 +639,7 @@ <translation id="5942872142862698679">Utilisation de Google pour les recherches</translation> <translation id="5952764234151283551">Envoie l'URL de la page que vous essayez d'ouvrir à Google</translation> <translation id="5956665950594638604">Ouvrir le centre d'aide dans un nouvel onglet</translation> +<translation id="5957442310066583693">Appuyez sur le bouton d'accueil pour retrouver les sites que vous consultez le plus</translation> <translation id="5958275228015807058">Recherchez vos fichiers et vos pages dans la section "Téléchargements"</translation> <translation id="5962718611393537961">Appuyer pour réduire</translation> <translation id="5964805880140440652">Pour partager cette page avec un autre appareil, activez la synchronisation dans les paramètres Chrome</translation> @@ -724,10 +731,12 @@ <translation id="6583199322650523874">Marquer la page actuelle en tant que favori</translation> <translation id="6588043302623806746">Utiliser un DNS sécurisé</translation> <translation id="6590471736817333463">Économisez jusqu'à 60 % de données mobiles</translation> +<translation id="6590680911007613645">Assurez-vous que le mot de passe que vous enregistrez correspond bien à celui que vous utilisez pour accéder à <ph name="SITE" /></translation> <translation id="6593061639179217415">Version pour ordinateur</translation> <translation id="6597891566292541626">Positionnez le code-barres/code QR dans ce cadre.</translation> <translation id="6600954340915313787">Copiée dans Chrome</translation> <translation id="661266467055912436">Il renforce votre sécurité et celle de tous les utilisateurs sur le Web.</translation> +<translation id="6618554661997243500">Appuyez sur le bouton d'accueil pour retrouver les meilleurs sites et articles pour vous.</translation> <translation id="6627583120233659107">Modifier le dossier</translation> <translation id="6643016212128521049">Effacer</translation> <translation id="6643649862576733715">Trier en fonction de la quantité de données économisées</translation> @@ -788,6 +797,7 @@ <translation id="7077143737582773186">Carte SD</translation> <translation id="7080806333218412752">Il envoie des URL à la navigation sécurisée pour les vérifier. Il transmet également un petit échantillon de pages, de téléchargements, d'informations système et de l'activité des extensions afin d'identifier de nouvelles menaces. De même, pour vous protéger dans l'ensemble des applications Google, il associe temporairement ces données à votre compte Google lorsque vous êtes connecté.</translation> <translation id="7088681679121566888">Chrome est à jour</translation> +<translation id="7106762743910369165">Votre navigateur est géré par votre organisation</translation> <translation id="7121362699166175603">Efface l'historique et les saisies semi-automatiques dans la barre d'adresse. Votre compte Google conserve peut-être d'autres formes d'historique de navigation sur la page <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" />.</translation> <translation id="7128355412245153445">Appuyez sur le bouton d'accueil pour retrouver les sites que vous consultez le plus et les articles que vous avez récemment lus</translation> <translation id="7138678301420049075">Autre</translation> @@ -903,6 +913,7 @@ <translation id="7981313251711023384">Précharger les pages pour accélérer la navigation et la recherche</translation> <translation id="79859296434321399">Pour afficher des contenus en réalité augmentée, installez ARCore</translation> <translation id="7986741934819883144">Sélectionner un contact</translation> +<translation id="799806351373751710">Annuler la configuration de la synchronisation</translation> <translation id="7998918019931843664">Rouvrir un onglet fermé</translation> <translation id="8004582292198964060">Navigateur</translation> <translation id="8013372441983637696">Supprimer également vos données Chrome sur cet appareil</translation> @@ -1030,6 +1041,7 @@ <translation id="8993760627012879038">Ouvrir un nouvel onglet en mode navigation privée</translation> <translation id="8996847606757455498">Sélectionner un autre fournisseur</translation> <translation id="8998729206196772491">Vous vous connectez avec un compte géré par <ph name="MANAGED_DOMAIN" />, ce qui permettra à son administrateur de contrôler vos données Chrome. Celles-ci seront définitivement associées à ce compte. Si vous vous déconnectez de Chrome, vos données seront supprimées de cet appareil, mais elles seront conservées dans votre compte Google.</translation> +<translation id="9022774213089566801">Consultés régulièrement</translation> <translation id="9028914725102941583">Activer la synchronisation pour partager des contenus entre des appareils</translation> <translation id="9040142327097499898">Les notifications sont autorisées. La localisation est désactivée pour cet appareil.</translation> <translation id="9041669420854607037">{FILE_COUNT,plural, =1{# vidéo}one{# vidéo}other{# vidéos}}</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_gl.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_gl.xtb index 058cda8..606faab 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_gl.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_gl.xtb
@@ -7,6 +7,7 @@ <translation id="1036727731225946849">Engadindo <ph name="WEBAPK_NAME" />...</translation> <translation id="1041308826830691739">De sitios web</translation> <translation id="1045899828449635435">Queres borrar tamén os datos destes sitios?</translation> +<translation id="1047303875618851375">Chrome non puido verificar a túa información</translation> <translation id="1049743911850919806">Modo de incógnito</translation> <translation id="10614374240317010">Contrasinais que non se gardan nunca</translation> <translation id="1067922213147265141">Outros servizos de Google</translation> @@ -101,6 +102,7 @@ <translation id="1810845389119482123">Non se completou a configuración de sincronización inicial</translation> <translation id="1821253160463689938">Utiliza cookies para lembrar as túas preferencias, mesmo se non visitas esas páxinas</translation> <translation id="1829244130665387512">Buscar na páxina</translation> +<translation id="1843805151597803366">Para obter mellores traducións, deixa que a Busca de Google utilice a páxina actual</translation> <translation id="1853692000353488670">Nova pestana de incógnito</translation> <translation id="1856325424225101786">Queres restablecer o modo básico?</translation> <translation id="1868024384445905608">Chrome agora descarga os ficheiros máis rápido</translation> @@ -449,6 +451,7 @@ <translation id="4650364565596261010">Opción predeterminada do sistema</translation> <translation id="465657074423018424">A función Navegación segura protéxete contra os sitios web enganosos. Se a desactivas, ten moito coidado ao navegar, sobre todo antes de escribir contrasinais.</translation> <translation id="4662373422909645029">O alcume non pode ter números</translation> +<translation id="4663499661119906179">Ver os principais sitios e historias recomendados para ti</translation> <translation id="4663756553811254707">Elimináronse <ph name="NUMBER_OF_BOOKMARKS" /> marcadores</translation> <translation id="4665282149850138822"><ph name="NAME" /> engadiuse á túa pantalla de inicio</translation> <translation id="4668347365065281350">Todos os datos que almacenasen os sitios, como as cookies e outros datos gardados localmente</translation> @@ -461,6 +464,7 @@ <translation id="4719927025381752090">Ofrecer a tradución</translation> <translation id="4720023427747327413">Abrir en <ph name="PRODUCT_NAME" /></translation> <translation id="4720982865791209136">Axuda a mellorar Chrome. <ph name="BEGIN_LINK" />Responder enquisa<ph name="END_LINK" /></translation> +<translation id="47217992755561375">Ver os teus sitios favoritos</translation> <translation id="4732120983431207637">Recuperador de pillas</translation> <translation id="473775607612524610">Actualizar</translation> <translation id="4738836084190194332">Última sincronización: <ph name="WHEN" /></translation> @@ -474,6 +478,7 @@ Para cambiar esta opción de configuración, deberás <ph name="BEGIN_LINK" />restablecer a sincronización<ph name="END_LINK" /></translation> <translation id="4807098396393229769">Nome que aparece na tarxeta</translation> +<translation id="4818017973810341238">Non se puido realizar a verificación de Digital Asset Links en <ph name="VIOLATED_URL" /></translation> <translation id="4824958205181053313">Queres cancelar a sincronización?</translation> <translation id="4835385943915508971">Chrome non ten acceso ao recurso solicitado.</translation> <translation id="4837753911714442426">Abrir opcións para imprimir a páxina</translation> @@ -558,6 +563,7 @@ <translation id="5433691172869980887">Copiouse o nome de usuario</translation> <translation id="543509235395288790">Descargando <ph name="COUNT" /> ficheiros (<ph name="MEGABYTES" />).</translation> <translation id="5441522332038954058">Saltar á barra de enderezos</translation> +<translation id="544776284582297024">Para abrir pestanas e visitar distintas páxinas ao mesmo tempo, toca o botón de pestanas abertas</translation> <translation id="545042621069398927">Estase acelerando a descarga.</translation> <translation id="5456381639095306749">Descargar páxina</translation> <translation id="548278423535722844">Abrir na aplicación de mapas</translation> @@ -633,6 +639,7 @@ <translation id="5942872142862698679">Uso de Google para a busca</translation> <translation id="5952764234151283551">Envía a Google o URL dunha páxina á que tentas acceder</translation> <translation id="5956665950594638604">Abrir o Centro de Axuda de Chrome nunha nova pestana</translation> +<translation id="5957442310066583693">Tocar o botón Inicio para ver os teus sitios favoritos</translation> <translation id="5958275228015807058">Atopa os ficheiros e as páxinas que descargaches na sección Descargas</translation> <translation id="5962718611393537961">Toca para contraer</translation> <translation id="5964805880140440652">Para compartir esta páxina con outro dispositivo, activa a sincronización na configuración de Chrome</translation> @@ -724,10 +731,12 @@ <translation id="6583199322650523874">Engadir aos marcadores a páxina actual</translation> <translation id="6588043302623806746">Usar DNS seguro</translation> <translation id="6590471736817333463">Aforra ata un 60 % de datos</translation> +<translation id="6590680911007613645">Asegúrate de que o contrasinal que gardas coincida co de <ph name="SITE" /></translation> <translation id="6593061639179217415">Sitio para ordenadores</translation> <translation id="6597891566292541626">Coloca o código QR ou o código de barras neste marco.</translation> <translation id="6600954340915313787">Copiouse en Chrome</translation> <translation id="661266467055912436">Mellora a túa seguranza e a do resto dos usuarios da Web.</translation> +<translation id="6618554661997243500">Tocar o botón Inicio para ver os principais sitios e historias recomendados para ti</translation> <translation id="6627583120233659107">Editar cartafol</translation> <translation id="6643016212128521049">Borrar</translation> <translation id="6643649862576733715">Ordenar por cantidade de datos aforrados</translation> @@ -788,6 +797,7 @@ <translation id="7077143737582773186">Tarxeta SD</translation> <translation id="7080806333218412752">Envía enderezos URL á función Navegación segura para comprobalos. Tamén envía unha pequena mostra da información do sistema, da actividade das extensións, das páxinas e das descargas para axudar a descubrir novas ameazas. Vincula temporalmente estes datos coa túa Conta de Google cando inicies sesión para protexerte nas aplicacións de Google.</translation> <translation id="7088681679121566888">Chrome está actualizado</translation> +<translation id="7106762743910369165">A túa organización xestiona o teu navegador</translation> <translation id="7121362699166175603">Borra o historial e os completados automáticos na barra de enderezos. É posible que a túa conta de Google teña outras formas do historial de navegación en <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" />.</translation> <translation id="7128355412245153445">Consulta os teus sitios principais e as túas historias recentes sempre que toques o botón de inicio</translation> <translation id="7138678301420049075">Outros</translation> @@ -903,6 +913,7 @@ <translation id="7981313251711023384">Cargar previamente as páxinas para que a navegación e as buscas sexan máis rápidas</translation> <translation id="79859296434321399">Para ver contido de realidade aumentada, instala ARCore</translation> <translation id="7986741934819883144">Seleccionar contacto</translation> +<translation id="799806351373751710">Cancelar configuración da sincronización</translation> <translation id="7998918019931843664">Abre de novo a pestana pechada</translation> <translation id="8004582292198964060">Navegador</translation> <translation id="8013372441983637696">Borrar tamén deste dispositivo os teus datos de Chrome</translation> @@ -1030,6 +1041,7 @@ <translation id="8993760627012879038">Abrir unha nova pestana no modo de incógnito</translation> <translation id="8996847606757455498">Escoller outro provedor</translation> <translation id="8998729206196772491">Estás iniciando sesión cunha conta xestionada por <ph name="MANAGED_DOMAIN" /> e proporcionándolle ao seu administrador o control dos teus datos de Chrome, que quedarán ligados permanentemente a esta conta. Se pechas sesión en Chrome, eliminaranse os teus datos deste dispositivo, pero seguirán almacenados na túa conta de Google.</translation> +<translation id="9022774213089566801">Visitas frecuentes</translation> <translation id="9028914725102941583">Activa a sincronización para compartir contido entre varios dispositivos</translation> <translation id="9040142327097499898">Pódense mostrar notificacións. A localización está desactivada neste dispositivo.</translation> <translation id="9041669420854607037">{FILE_COUNT,plural, =1{# vídeo}other{# vídeos}}</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_gu.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_gu.xtb index 5cfb0917..9e1a09a 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_gu.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_gu.xtb
@@ -7,6 +7,7 @@ <translation id="1036727731225946849"><ph name="WEBAPK_NAME" /> ઉમેરી રહ્યાં છીએ…</translation> <translation id="1041308826830691739">વેબસાઇટ પરથી</translation> <translation id="1045899828449635435">આ સાઇટમાંથી પણ ડેટા સાફ કરીએ?</translation> +<translation id="1047303875618851375">Chrome તમારી માહિતી ચકાસી શક્યું નથી</translation> <translation id="1049743911850919806">છૂપી</translation> <translation id="10614374240317010">ક્યારેય ન સચવાયેલું</translation> <translation id="1067922213147265141">અન્ય Google સેવાઓ</translation> @@ -449,6 +450,7 @@ <translation id="4650364565596261010">સિસ્ટમ ડિફૉલ્ટ</translation> <translation id="465657074423018424">Safe Browsing તમારું છેતરામણી વેબસાઇટથી રક્ષણ કરે છે. જો તમે તેને બંધ કરો, તો બ્રાઉઝ કરતી વખતે વધુ સાવધાન રહેજો, ખાસ કરીને પાસવર્ડ દાખલ કરતા પહેલાં.</translation> <translation id="4662373422909645029">ઉપનામમાં સંખ્યા ન હોઈ શકે</translation> +<translation id="4663499661119906179">તમારા માટે શ્રેષ્ઠ હોય તેવી સાઇટ અને સ્ટોરી જુઓ</translation> <translation id="4663756553811254707"><ph name="NUMBER_OF_BOOKMARKS" /> બુકમાર્ક્સ કાઢી નાખ્યાં</translation> <translation id="4665282149850138822"><ph name="NAME" /> ને તમારા હોમ સ્ક્રીન પર ઉમેરવામાં આવ્યું હતું</translation> <translation id="4668347365065281350">સાઇટ દ્વારા સ્ટોર કરવામાં આવેલો બધો ડેટા, જેમાં કુકી અને સ્થાનિક સ્તરે સ્ટોર થયેલા અન્ય ડેટાનો સમાવેશ થાય છે</translation> @@ -461,6 +463,7 @@ <translation id="4719927025381752090">અનુવાદ કરવાની ઑફર કરો</translation> <translation id="4720023427747327413"><ph name="PRODUCT_NAME" /> માં ખોલો</translation> <translation id="4720982865791209136">Chromeને બહેતર બનાવવામાં સહાય કરો. <ph name="BEGIN_LINK" />સર્વેક્ષણમાં ભાગ લો<ph name="END_LINK" /></translation> +<translation id="47217992755561375">તમારા માટે શ્રેષ્ઠ હોય તેવી સાઇટ જુઓ</translation> <translation id="4732120983431207637">સ્ટૅક અનવાઇન્ડર</translation> <translation id="473775607612524610">અપડેટ કરો</translation> <translation id="4738836084190194332">છેલ્લે સમન્વયિત: <ph name="WHEN" /></translation> @@ -558,6 +561,7 @@ <translation id="5433691172869980887">વપરાશકર્તાનામ કૉપિ કર્યું</translation> <translation id="543509235395288790"><ph name="COUNT" /> ફાઇલ (<ph name="MEGABYTES" />) ડાઉનલોડ કરી રહ્યાં છીએ.</translation> <translation id="5441522332038954058">સરનામાં બાર પર જાઓ</translation> +<translation id="544776284582297024">ટૅબ ખોલી અને વિવિધ પેજની એક સાથે મુલાકાત લેવા માટે, ટૅબ ખોલો બટન પર ટૅપ કરો</translation> <translation id="545042621069398927">તમારા ડાઉનલોડની ગતિ વધારી રહ્યાં છીએ.</translation> <translation id="5456381639095306749">પૃષ્ઠ ડાઉનલોડ કરો</translation> <translation id="548278423535722844">નકશા અૅપ્લિકેશનમાં ખોલો</translation> @@ -633,6 +637,7 @@ <translation id="5942872142862698679">શોધ માટે Google નો ઉપયોગ કરી રહ્યાં છે</translation> <translation id="5952764234151283551">તમે જેના પર પહોંચવાનો પ્રયાસ કરતા હોય તે પેજનું URL Googleને મોકલાવે છે</translation> <translation id="5956665950594638604">Chrome સહાયતા કેન્દ્રમાં એક નવું ટૅબ ખોલો</translation> +<translation id="5957442310066583693">તમારા માટે શ્રેષ્ઠ હોય તેવી સાઇટ જોવા માટે હોમ બટન પર ટૅપ કરો</translation> <translation id="5958275228015807058">ડાઉનલોડ કરેલમાંથી તમારી ફાઇલો અને પેજ શોધો</translation> <translation id="5962718611393537961">સંકુચિત કરવા માટે ટૅપ કરો</translation> <translation id="5964805880140440652">આ પેજને બીજા ડિવાઇસ પર શેર કરવા માટે, Chrome સેટિંગમાં સિંક ચાલુ કરો</translation> @@ -724,10 +729,12 @@ <translation id="6583199322650523874">વર્તમાન પૃષ્ઠને બુકમાર્ક કરો</translation> <translation id="6588043302623806746">સુરક્ષિત DNSનો ઉપયોગ કરો</translation> <translation id="6590471736817333463">60% જેટલો ડેટા બચાવો</translation> +<translation id="6590680911007613645">તમે સાચવી રહ્યા છો તે પાસવર્ડ <ph name="SITE" /> માટેના તમારા પાસવર્ડ સાથે મેળ ખાતો હોવાની ખાતરી કરો</translation> <translation id="6593061639179217415">ડેસ્કટૉપ સાઇટ</translation> <translation id="6597891566292541626">QR/બારકોડને આ ફ્રેમમાં મૂકો.</translation> <translation id="6600954340915313787">Chrome માં કોપી કરાયું</translation> <translation id="661266467055912436">વેબ પર તમારા માટે તેમજ પ્રત્યેક માટે સુરક્ષાને બહેતર બનાવે છે.</translation> +<translation id="6618554661997243500">તમારા માટે શ્રેષ્ઠ હોય તેવી સાઇટ અને સ્ટોરી જોવા માટે હોમ બટન પર ટૅપ કરો</translation> <translation id="6627583120233659107">ફોલ્ડરમાં ફેરફાર કરો</translation> <translation id="6643016212128521049">સાફ કરો</translation> <translation id="6643649862576733715">બચાવાયેલ ડેટાના પ્રમાણ અનુસાર સૉર્ટ કરો</translation> @@ -788,6 +795,7 @@ <translation id="7077143737582773186">SD કાર્ડ</translation> <translation id="7080806333218412752">URLs ચેક કરવા માટે તેમને Safe Browsing પર મોકલે છે. નવા જોખમો શોધવામાં સહાય કરવા માટે પેજના નાના નમૂના, ડાઉનલોડ, એક્સ્ટેન્શનની પ્રવૃત્તિ અને સિસ્ટમની માહિતી પણ મોકલે છે. તમે સાઇન ઇન કરેલું હોય ત્યારે સમગ્ર Google ઍપ પર તમારું રક્ષણ કરવા માટે, આ ડેટાને હંગામી રૂપે તમારા Google એકાઉન્ટ સાથે લિંક કરે છે.</translation> <translation id="7088681679121566888">Chrome અપ ટૂ ડેટ છે</translation> +<translation id="7106762743910369165">તમારી સંસ્થા દ્વારા તમારું બ્રાઉઝર મેનેજ કરવામાં આવે છે</translation> <translation id="7121362699166175603">ઍડ્રેસ બારમાં ઇતિહાસ અને ઑટોમૅટિક રીતે પૂર્ણતા સાફ કરે છે. તમારા Google એકાઉન્ટમાં <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" /> પર બ્રાઉઝિંગ ઇતિહાસના બીજા સ્વરૂપો હોય શકે.</translation> <translation id="7128355412245153445">જ્યારે પણ તમે હોમ બટન પર ટૅપ કરો ત્યારે તમારી શ્રેષ્ઠ અને એકદમ નવી સ્ટોરી જુઓ</translation> <translation id="7138678301420049075">અન્ય</translation> @@ -1030,6 +1038,7 @@ <translation id="8993760627012879038">છુપા મોડમાં એક નવું ટૅબ ખોલો</translation> <translation id="8996847606757455498">કોઈ અન્ય પ્રદાતા પસંદ કરો</translation> <translation id="8998729206196772491">તમે <ph name="MANAGED_DOMAIN" /> દ્વારા મેનેજ એકાઉન્ટમાં સાઇન ઇન કરી રહ્યાં છો અને તમારા Chrome ડેટા પર એનું એડમિન નિયંત્રણ આપી રહ્યાં છો. તમારો ડેટા આ એકાઉન્ટ સાથે કાયમીરૂપે જોડાયેલું રહેશે. Chromeમાંથી સાઇન આઉટ કરવું આ ડિવાઇસ પરથી તમારો ડેટા ડિલીટ કરશે, પરંતુ એ તમારા Google એકાઉન્ટમાં સ્ટોર રહેશે.</translation> +<translation id="9022774213089566801">વારંવાર મુલાકાત લેવાયેલ</translation> <translation id="9028914725102941583">બધા ડિવાઇસ પર શેર કરવા માટે 'સિંક કરો'ની સુવિધા ચાલુ કરો</translation> <translation id="9040142327097499898">નોટિફિકેશનની મંજૂરી છે. આ ઉપકરણ માટે સ્થાન ઍક્સેસ બંધ છે.</translation> <translation id="9041669420854607037">{FILE_COUNT,plural, =1{# વીડિયો}one{# વીડિયો}other{# વીડિયો}}</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_hi.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_hi.xtb index ea270744b..ff1c4c5 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_hi.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_hi.xtb
@@ -102,6 +102,7 @@ <translation id="1810845389119482123">शुरुआती सिंक सेट अप पूरा नहीं हुआ</translation> <translation id="1821253160463689938">आपकी पसंद याद रखने के लिए कुकी का इस्तेमाल करती है, भले ही आप उन पेजों पर नहीं जाते</translation> <translation id="1829244130665387512">पेज में ढूंढें</translation> +<translation id="1843805151597803366">बेहतर अनुवाद पाने के लिए, Google Search को मौजूदा पेज इस्तेमाल करने दें</translation> <translation id="1853692000353488670">नया गुप्त टैब</translation> <translation id="1856325424225101786">लाइट मोड रीसेट करें?</translation> <translation id="1868024384445905608">Chrome अब ज़्यादा तेज़ी से फ़ाइलें डाउनलोड करता है</translation> @@ -477,6 +478,7 @@ यह सेटिंग बदलने के लिए, <ph name="BEGIN_LINK" />सिंक रीसेट करें<ph name="END_LINK" /></translation> <translation id="4807098396393229769">कार्ड पर नाम</translation> +<translation id="4818017973810341238"><ph name="VIOLATED_URL" /> पर डिजिटल एसेट लिंक की पुष्टि नहीं हो सकी</translation> <translation id="4824958205181053313">सिंक करना रद्द करें?</translation> <translation id="4835385943915508971">Chrome के पास अनुरोध किए गए संसाधन का एक्सेस नहीं है.</translation> <translation id="4837753911714442426">पेज प्रिंट करने के विकल्प खोलें</translation> @@ -911,6 +913,7 @@ <translation id="7981313251711023384">ज़्यादा तेज़ी से ब्राउज़ करने और खोजने के लिए पेज पहले से लोड करें</translation> <translation id="79859296434321399">'बढ़ी हुई वास्तविकता' की सामग्री देखने के लिए, ARCore इंस्टॉल करें</translation> <translation id="7986741934819883144">कोई संपर्क चुनें</translation> +<translation id="799806351373751710">सिंक के लिए सेट अप करना रद्द करें</translation> <translation id="7998918019931843664">बंद टैब फिर से खोलें</translation> <translation id="8004582292198964060">ब्राउज़र</translation> <translation id="8013372441983637696">इस डिवाइस से अपना Chrome डेटा भी हटाएं</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_hu.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_hu.xtb index 1ae115e..3454ed5 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_hu.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_hu.xtb
@@ -102,6 +102,7 @@ <translation id="1810845389119482123">A szinkronizálás kezdeti beállítása nem fejeződött be</translation> <translation id="1821253160463689938">Cookie-kat használ a preferenciák megjegyzésére még akkor is, ha Ön nem keresi fel az adott oldalakat</translation> <translation id="1829244130665387512">Keresés ezen az oldalon</translation> +<translation id="1843805151597803366">A jobb fordítások érdekében engedélyezze a Google Keresőnek a jelenlegi oldal használatát</translation> <translation id="1853692000353488670">Új inkognitó lap</translation> <translation id="1856325424225101786">Visszaállítja az Egyszerűsített módot?</translation> <translation id="1868024384445905608">Mostantól a Chrome gyorsabban tölti le a fájlokat</translation> @@ -477,6 +478,7 @@ A beállítás módosításához <ph name="BEGIN_LINK" />állítsa vissza a szinkronizálást<ph name="END_LINK" /></translation> <translation id="4807098396393229769">A kártyán feltüntetett név</translation> +<translation id="4818017973810341238">A Digital Asset Links ellenőrzése sikertelen volt itt: <ph name="VIOLATED_URL" /></translation> <translation id="4824958205181053313">Megszakítja a szinkronizálást?</translation> <translation id="4835385943915508971">A Chrome nem fér hozzá a kért forráshoz.</translation> <translation id="4837753911714442426">Oldalnyomtatási lehetőségek megnyitása</translation> @@ -911,6 +913,7 @@ <translation id="7981313251711023384">Oldalak előtöltése a gyorsabb böngészés és keresés érdekében</translation> <translation id="79859296434321399">A kiterjesztett valósággal kapcsolatos tartalmak megtekintéséhez telepítse az ARCore-t</translation> <translation id="7986741934819883144">Válasszon ki egy névjegyet</translation> +<translation id="799806351373751710">Szinkronizálás beállításának megszakítása</translation> <translation id="7998918019931843664">Bezárt lap megnyitása</translation> <translation id="8004582292198964060">Böngésző</translation> <translation id="8013372441983637696">Az Ön Chrome-adatai is törlődjenek erről az eszközről</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_hy.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_hy.xtb index ac153865..da891f8 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_hy.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_hy.xtb
@@ -102,6 +102,7 @@ <translation id="1810845389119482123">Համաժամացման սկզբնական կարգավորումը չի ավարտվել</translation> <translation id="1821253160463689938">Օգտագործում է քուքիները՝ ձեր նախընտրանքները հիշելու համար, նույնիսկ եթե չեք այցելում այդ կայքեր</translation> <translation id="1829244130665387512">Գտնել էջում</translation> +<translation id="1843805151597803366">Ավելի լավ թարգմանությունների համար թույլատրեք, որ Google Որոնումն օգտագործի այս էջը</translation> <translation id="1853692000353488670">Նոր ինկոգնիտո ներդիր</translation> <translation id="1856325424225101786">Վերակայե՞լ Lite ռեժիմը</translation> <translation id="1868024384445905608">Chrome-ն այժմ ավելի արագ է ֆայլեր ներբեռնում</translation> @@ -477,6 +478,7 @@ Այս կարգավորումը փոփոխելու համար <ph name="BEGIN_LINK" />վերակայեք համաժամացումը<ph name="END_LINK" /></translation> <translation id="4807098396393229769">Քարտապանի անունը</translation> +<translation id="4818017973810341238">Չհաջողվեց հաստատել թվային օբյեկտների հղումները <ph name="VIOLATED_URL" /> էջում</translation> <translation id="4824958205181053313">Չեղարկե՞լ համաժամացումը</translation> <translation id="4835385943915508971">Հարցված ռեսուրսը հասանելի չէ Chrome-ին:</translation> <translation id="4837753911714442426">Բացել էջը տպելու տարբերակները</translation> @@ -911,6 +913,7 @@ <translation id="7981313251711023384">Նախաբեռնել էջերը ավելի արագ դիտարկման և որոնման համար</translation> <translation id="79859296434321399">Լրացված իրականության ռեժիմում բովանդակությունը դիտելու համար տեղադրեք ARCore հավելվածը</translation> <translation id="7986741934819883144">Ընտրեք կոնտակտ</translation> +<translation id="799806351373751710">Չեղարկել համաժամացման կարգավորումը</translation> <translation id="7998918019931843664">Նորից բացել փակված ներդիրը</translation> <translation id="8004582292198964060">Դիտարկիչ</translation> <translation id="8013372441983637696">Նաև մաքրել Chrome-ի ձեր տվյալներն այս սարքից</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 a201758c..b80b9e5 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
@@ -102,6 +102,7 @@ <translation id="1810845389119482123">Penyiapan sinkronisasi awal belum selesai</translation> <translation id="1821253160463689938">Menggunakan cookie untuk mengingat preferensi, meski Anda tidak membuka halaman tersebut</translation> <translation id="1829244130665387512">Cari di halaman</translation> +<translation id="1843805151597803366">Untuk mendapatkan terjemahan yang lebih baik, izinkan Google Penelusuran menggunakan halaman saat ini</translation> <translation id="1853692000353488670">Tab samaran baru</translation> <translation id="1856325424225101786">Reset Mode Ringan?</translation> <translation id="1868024384445905608">Chrome sekarang mendownload file lebih cepat</translation> @@ -477,6 +478,7 @@ Untuk mengubah setelan ini, <ph name="BEGIN_LINK" />reset sinkronisasi<ph name="END_LINK" /></translation> <translation id="4807098396393229769">Nama di kartu</translation> +<translation id="4818017973810341238">Verifikasi Digital Asset Links gagal di <ph name="VIOLATED_URL" /></translation> <translation id="4824958205181053313">Batalkan sinkronisasi?</translation> <translation id="4835385943915508971">Chrome tidak memiliki akses ke sumber daya yang diminta.</translation> <translation id="4837753911714442426">Membuka opsi untuk mencetak halaman</translation> @@ -911,6 +913,7 @@ <translation id="7981313251711023384">Pramuat halaman agar browsing dan menelusuri lebih cepat</translation> <translation id="79859296434321399">Untuk melihat konten augmented reality, instal ARCore</translation> <translation id="7986741934819883144">Pilih kontak</translation> +<translation id="799806351373751710">Batalkan penyiapan sinkronisasi</translation> <translation id="7998918019931843664">Buka kembali tab yang ditutup</translation> <translation id="8004582292198964060">Browser</translation> <translation id="8013372441983637696">Hapus juga data Chrome Anda dari perangkat ini</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_is.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_is.xtb index a3eb42b2..1641216a 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_is.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_is.xtb
@@ -102,6 +102,7 @@ <translation id="1810845389119482123">Fyrstu uppsetningu samstillingar ekki lokið</translation> <translation id="1821253160463689938">Notar fótspor til að muna kjörstillingarnar þínar, jafnvel þótt þú heimsækir ekki þessar síður</translation> <translation id="1829244130665387512">Finna á síðu</translation> +<translation id="1843805151597803366">Til að fá betri þýðingar skaltu leyfa Google leit að nota núverandi síðu</translation> <translation id="1853692000353488670">Nýr huliðsflipi</translation> <translation id="1856325424225101786">Viltu endurstilla léttútgáfu?</translation> <translation id="1868024384445905608">Chrome er nú fljótara að sækja skrár</translation> @@ -477,6 +478,7 @@ Til að breyta þessari stillingu skaltu <ph name="BEGIN_LINK" />endurstilla samstillingu<ph name="END_LINK" /></translation> <translation id="4807098396393229769">Nafn á korti</translation> +<translation id="4818017973810341238">Staðfesting tengla stafrænna eigna mistókst á <ph name="VIOLATED_URL" /></translation> <translation id="4824958205181053313">Hætta við samstillingu?</translation> <translation id="4835385943915508971">Chrome hefur ekki aðgang að umbeðnu tilfangi.</translation> <translation id="4837753911714442426">Opna valkosti fyrir prentun síðunnar</translation> @@ -911,6 +913,7 @@ <translation id="7981313251711023384">Forhlaða síðum til að geta leitað hraðar á netinu</translation> <translation id="79859296434321399">Til að skoða efni aukins veruleika skaltu setja upp ARCore</translation> <translation id="7986741934819883144">Velja tengilið</translation> +<translation id="799806351373751710">Hætta við uppsetningu samstillingar</translation> <translation id="7998918019931843664">Opna aftur flipa sem var lokað</translation> <translation id="8004582292198964060">Vafri</translation> <translation id="8013372441983637696">Hreinsa líka Chrome gögn úr þessu tæki</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_it.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_it.xtb index 8c235a1..052ce6b7 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_it.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_it.xtb
@@ -102,6 +102,7 @@ <translation id="1810845389119482123">Configurazione iniziale della sincronizzazione non terminata</translation> <translation id="1821253160463689938">Utilizza i cookie per memorizzare le tue preferenze, anche se non visiti quelle pagine</translation> <translation id="1829244130665387512">Trova nella pagina</translation> +<translation id="1843805151597803366">Consenti alla Ricerca Google di accedere alla pagina corrente per ricevere traduzioni migliori</translation> <translation id="1853692000353488670">Nuova scheda in incognito</translation> <translation id="1856325424225101786">Reimpostare la modalità Lite?</translation> <translation id="1868024384445905608">Ora Chrome scarica i file più velocemente</translation> @@ -477,6 +478,7 @@ Per cambiare questa impostazione, <ph name="BEGIN_LINK" />reimposta la sincronizzazione<ph name="END_LINK" />.</translation> <translation id="4807098396393229769">Nome sulla carta di credito</translation> +<translation id="4818017973810341238">La verifica di Digital Asset Links non è riuscita in <ph name="VIOLATED_URL" /></translation> <translation id="4824958205181053313">Vuoi annullare la sincronizzazione?</translation> <translation id="4835385943915508971">Chrome non ha accesso alla risorsa richiesta.</translation> <translation id="4837753911714442426">Apri la pagina delle opzioni di stampa</translation> @@ -911,6 +913,7 @@ <translation id="7981313251711023384">Le pagine vengono precaricate per velocizzare la navigazione e la ricerca</translation> <translation id="79859296434321399">Per visualizzare i contenuti di realtà aumentata, installa ARCore</translation> <translation id="7986741934819883144">Seleziona un contatto</translation> +<translation id="799806351373751710">Annulla configurazione della sincronizzazione</translation> <translation id="7998918019931843664">Riapri la scheda chiusa</translation> <translation id="8004582292198964060">Browser</translation> <translation id="8013372441983637696">Cancella i tuoi dati di Chrome anche da questo dispositivo</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_iw.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_iw.xtb index c56d1e00d..173f8cc 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_iw.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_iw.xtb
@@ -102,6 +102,7 @@ <translation id="1810845389119482123">ההגדרה הראשונית של הסנכרון לא הושלמה</translation> <translation id="1821253160463689938">שימוש בקובצי cookie כדי לשמור את ההעדפות שלך, גם אם לא נכנסת אל הדפים האלה</translation> <translation id="1829244130665387512">חיפוש בדף</translation> +<translation id="1843805151597803366">כדי לשפר את התרגומים, יש לאפשר לחיפוש Google להשתמש בעמוד הנוכחי</translation> <translation id="1853692000353488670">כרטיסייה חדשה לגלישה בסתר</translation> <translation id="1856325424225101786">לאפס את מצב הטעינה המהירה?</translation> <translation id="1868024384445905608">הורדת קבצים ב-Chrome מתבצעת עכשיו מהר יותר</translation> @@ -477,6 +478,7 @@ כדי לשנות את ההגדרה הזו צריך <ph name="BEGIN_LINK" />לאפס את הסנכרון<ph name="END_LINK" /></translation> <translation id="4807098396393229769">שם על הכרטיס</translation> +<translation id="4818017973810341238">אימות Digital Asset Links נכשל בכתובת <ph name="VIOLATED_URL" /></translation> <translation id="4824958205181053313">לבטל את הסנכרון?</translation> <translation id="4835385943915508971">ל-Chrome אין גישה למשאב המבוקש.</translation> <translation id="4837753911714442426">פתח אפשרויות להדפסת דפים</translation> @@ -911,6 +913,7 @@ <translation id="7981313251711023384">טעינה מראש של דפים כדי לאפשר גלישה וחיפוש מהירים יותר</translation> <translation id="79859296434321399">כדי להציג תוכן של מציאות רבודה, צריך להתקין את ARCore</translation> <translation id="7986741934819883144">בחירת איש קשר</translation> +<translation id="799806351373751710">ביטול הגדרת הסנכרון</translation> <translation id="7998918019931843664">פתח מחדש כרטיסייה שנסגרה</translation> <translation id="8004582292198964060">דפדפן</translation> <translation id="8013372441983637696">יש לנקות גם את נתוני Chrome מהמכשיר הזה</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_ja.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_ja.xtb index 56565256..d06b4ce 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_ja.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_ja.xtb
@@ -102,6 +102,7 @@ <translation id="1810845389119482123">最初の同期設定が終了していません</translation> <translation id="1821253160463689938">Cookie を使って設定を保存します(これらのページにアクセスしない場合も Cookie が保持されます)</translation> <translation id="1829244130665387512">ページ内検索</translation> +<translation id="1843805151597803366">翻訳を改善するには、Google 検索に現在のページへのアクセスを許可してください</translation> <translation id="1853692000353488670">新しいシークレット タブ</translation> <translation id="1856325424225101786">ライトモードをリセットしますか?</translation> <translation id="1868024384445905608">Chrome でのファイルのダウンロードがさらに速くなりました</translation> @@ -477,6 +478,7 @@ この設定を変更する場合は<ph name="BEGIN_LINK" />同期をリセット<ph name="END_LINK" />してください</translation> <translation id="4807098396393229769">カード名義人(半角英文字)</translation> +<translation id="4818017973810341238"><ph name="VIOLATED_URL" /> でデジタル アセットリンクをチェックできませんでした</translation> <translation id="4824958205181053313">同期をキャンセルしますか?</translation> <translation id="4835385943915508971">Chrome はリクエストされたリソースにアクセスできません。</translation> <translation id="4837753911714442426">ページの印刷オプションを開く</translation> @@ -911,6 +913,7 @@ <translation id="7981313251711023384">ページをプリロードして、閲覧と検索をすばやく行えるようにする</translation> <translation id="79859296434321399">拡張現実(AR)コンテンツを表示するには ARCore をインストールしてください</translation> <translation id="7986741934819883144">連絡先の選択</translation> +<translation id="799806351373751710">同期設定をキャンセル</translation> <translation id="7998918019931843664">閉じたタブを開く</translation> <translation id="8004582292198964060">ブラウザ</translation> <translation id="8013372441983637696">Chrome データもこのデバイスから削除する</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_ka.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_ka.xtb index 67f4db5..3fd21ad 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_ka.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_ka.xtb
@@ -102,6 +102,7 @@ <translation id="1810845389119482123">სინქრონიზაციის თავდაპირველი დაყენება არ დასრულებულა</translation> <translation id="1821253160463689938">იყენებს ქუქი-ჩანაწერებს თქვენთვის სასურველი პარამეტრების დასამახსოვრებლად, მაშინაც კი, როცა ამ გვერდებს არ სტუმრობთ</translation> <translation id="1829244130665387512">გვერდზე ძებნა</translation> +<translation id="1843805151597803366">უკეთესი თარგმანებისთვის Google Search-ს მიეცით საშუალება, გამოიყენოს მიმდინარე გვერდი</translation> <translation id="1853692000353488670">ახალი ინკოგნიტო ჩანართი</translation> <translation id="1856325424225101786">გსურთ Lite რეჟიმის გადაყენება?</translation> <translation id="1868024384445905608">Chrome ახლა უფრო სწრაფად ჩამოტვირთავს ფაილებს</translation> @@ -477,6 +478,7 @@ ამ პარამეტრის შესაცვლელად საჭიროა <ph name="BEGIN_LINK" />სინქრონიზაციის გადაყენება<ph name="END_LINK" /></translation> <translation id="4807098396393229769">სახელი ბარათზე</translation> +<translation id="4818017973810341238"><ph name="VIOLATED_URL" />-ისთვის ციფრულ ობიექტებზე ბმულების შემოწმება ვერ მოხერხდა</translation> <translation id="4824958205181053313">გსურთ სინქრონიზაციის გაუქმება?</translation> <translation id="4835385943915508971">Chrome-ს მოთხოვნილ რესურსზე წვდომა არ აქვს.</translation> <translation id="4837753911714442426">გვერდის ბეჭდვის ვარიანტების გახსნა</translation> @@ -911,6 +913,7 @@ <translation id="7981313251711023384">გვერდების წინასწარ ჩატვირთვა დათვალიერებისა და ძიების პროცესების დასაჩქარებლად</translation> <translation id="79859296434321399">აუგმენტური რეალობის კონტენტის სანახავად დააინსტალირეთ ARCore</translation> <translation id="7986741934819883144">აირჩიეთ კონტაქტი</translation> +<translation id="799806351373751710">სინქრონიზაციის დაყენების გაუქმება</translation> <translation id="7998918019931843664">დახურული ჩანართის ხელახლა გახსნა</translation> <translation id="8004582292198964060">ბრაუზერი</translation> <translation id="8013372441983637696">თქვენი Chrome მონაცემების გასუფთავება ამ მოწყობილობიდანაც</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_kk.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_kk.xtb index 07ee9ca..591d339 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_kk.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_kk.xtb
@@ -102,6 +102,7 @@ <translation id="1810845389119482123">Синхронизация параметрлері орнатылмады</translation> <translation id="1821253160463689938">Бұл беттерді ашпасаңыз да, cookie файлдарының көмегімен параметрлерді сақтап қалады</translation> <translation id="1829244130665387512">Беттен табу</translation> +<translation id="1843805151597803366">Жақсырақ аудармалар алу үшін Google Search қызметіне ағымдағы бетті пайдалануға рұқсат етіңіз.</translation> <translation id="1853692000353488670">Жаңа жасырын қойынды</translation> <translation id="1856325424225101786">Lite режимі бастапқы күйге қайтарылсын ба?</translation> <translation id="1868024384445905608">Chrome енді файлдарды жылдам жүктеп алады</translation> @@ -477,6 +478,7 @@ Бұл параметрді өзгерту үшін <ph name="BEGIN_LINK" />синхрондауды бастапқы күйіне қайтарыңыз<ph name="END_LINK" /></translation> <translation id="4807098396393229769">Картадағы ат</translation> +<translation id="4818017973810341238"><ph name="VIOLATED_URL" /> бойынша цифрлық актив сілтемелерін тексеру орындалмады.</translation> <translation id="4824958205181053313">Синхрондауды тоқтату қажет пе?</translation> <translation id="4835385943915508971">Chrome браузері сұралған ресурсқа кіре алмайды.</translation> <translation id="4837753911714442426">Бетті басып шығару үшін опцияларды ашу</translation> @@ -911,6 +913,7 @@ <translation id="7981313251711023384">Интернетте жылдамырақ шарлау және іздеу үшін беттерді алдын ала жүктеу</translation> <translation id="79859296434321399">Толықтырылған шындық мазмұнын көру үшін ARCore платформасын орнатыңыз</translation> <translation id="7986741934819883144">Контактіні таңдау</translation> +<translation id="799806351373751710">Синхрондауды реттеуді бас тарту</translation> <translation id="7998918019931843664">Жабық қойындыны қайта ашу</translation> <translation id="8004582292198964060">Браузер</translation> <translation id="8013372441983637696">Бұл құрылғыдан Chrome браузерінің деректерін де өшіру</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_km.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_km.xtb index 5392535..89fc1e6a 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_km.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_km.xtb
@@ -102,6 +102,7 @@ <translation id="1810845389119482123">ការរៀបចំសមកាលកម្មដំបូងមិនបានបញ្ចប់ទេ</translation> <translation id="1821253160463689938">ប្រើខូគីដើម្បីចងចាំចំណូលចិត្តរបស់អ្នក បើទោះបីជាអ្នកមិនចូលមើលទំព័រទាំងនោះក៏ដោយ</translation> <translation id="1829244130665387512">ស្វែងរកក្នុងទំព័រ</translation> +<translation id="1843805151597803366">ដើម្បីទទួលបានការបកប្រែប្រសើរជាងមុន សូមអនុញ្ញាតឱ្យកម្មវិធីស្វែងរកនៅលើ Google ប្រើទំព័របច្ចុប្បន្ន</translation> <translation id="1853692000353488670">ផ្ទាំងឯកជនថ្មី</translation> <translation id="1856325424225101786">កំណត់មុខងារស្រាលឡើងវិញឬ?</translation> <translation id="1868024384445905608">ឥឡូវនេះ Chrome ទាញយកឯកសារបានរហ័សជាងមុន</translation> @@ -477,6 +478,7 @@ ដើម្បីផ្លាស់ប្ដូរការកំណត់នេះ <ph name="BEGIN_LINK" />សូមកំណត់សមកាលកម្មឡើងវិញ<ph name="END_LINK" /></translation> <translation id="4807098396393229769">ឈ្មោះនៅលើកាត</translation> +<translation id="4818017973810341238">ការផ្ទៀងផ្ទាត់ "Digital Asset Links" នៅលើ <ph name="VIOLATED_URL" /> មិនបានសម្រេចទេ</translation> <translation id="4824958205181053313">បោះបង់ការធ្វើសមកាលកម្ម?</translation> <translation id="4835385943915508971">Chrome មិនអាចចូលប្រើធនធានដែលបានស្នើនេះទេ។</translation> <translation id="4837753911714442426">បើកជម្រើសដើម្បីបោះពុម្ពទំព័រ</translation> @@ -911,6 +913,7 @@ <translation id="7981313251711023384">ផ្ទុកទំព័រជាមុនដើម្បីឱ្យការរុករក និងការស្វែងរកកាន់តែលឿនជាងមុន</translation> <translation id="79859296434321399">ដើម្បីមើលខ្លឹមសារ AR សូមដំឡើង ARCore</translation> <translation id="7986741934819883144">ជ្រើសរើសទំនាក់ទំនង</translation> +<translation id="799806351373751710">បោះបង់ការរៀបចំសមកាលកម្ម</translation> <translation id="7998918019931843664">បើកផ្ទាំងដែលបានបិទឡើងវិញ</translation> <translation id="8004582292198964060">កម្មវិធីរុករក</translation> <translation id="8013372441983637696">ក៏សម្អាតទិន្នន័យ Chrome របស់អ្នកពីឧបករណ៍នេះផងដែរ</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_kn.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_kn.xtb index 107b06c..0397a44e 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_kn.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_kn.xtb
@@ -103,6 +103,7 @@ <translation id="1810845389119482123">ಆರಂಭಿಕ ಸಿಂಕ್ ಸೆಟಪ್ ಪೂರ್ಣಗೊಂಡಿಲ್ಲ</translation> <translation id="1821253160463689938">ನೀವು ಆ ಪುಟಗಳಿಗೆ ಭೇಟಿ ನೀಡದಿದ್ದರೂ, ನಿಮ್ಮ ಆದ್ಯತೆಗಳನ್ನು ನೆನಪಿಟ್ಟುಕೊಳ್ಳಲು ಕುಕೀಗಳನ್ನು ಬಳಸುತ್ತದೆ</translation> <translation id="1829244130665387512">ಪುಟದಲ್ಲಿ ಹುಡುಕಿ</translation> +<translation id="1843805151597803366">ಉತ್ತಮ ಅನುವಾದಗಳನ್ನು ಪಡೆದುಕೊಳ್ಳಲು, ಪ್ರಸ್ತುತ ಪುಟವನ್ನು ಬಳಸಲು Google Search ಗೆ ಅವಕಾಶ ಮಾಡಿಕೊಡಿ</translation> <translation id="1853692000353488670">ಹೊಸ ಅದೃಶ್ಯ ವಿಂಡೋ</translation> <translation id="1856325424225101786">ಲೈಟ್ ಮೋಡ್ ಅನ್ನು ಮರುಹೊಂದಿಸಬೇಕೇ?</translation> <translation id="1868024384445905608">Chrome ಈಗ ಫೈಲ್ಗಳನ್ನು ವೇಗವಾಗಿ ಡೌನ್ಲೋಡ್ ಮಾಡುತ್ತದೆ</translation> @@ -477,6 +478,7 @@ ಈ ಸೆಟ್ಟಿಂಗ್ ಅನ್ನು ಬದಲಾಯಿಸಲು, <ph name="BEGIN_LINK" />ಸಿಂಕ್ ಅನ್ನು ಮರುಹೊಂದಿಸಿ<ph name="END_LINK" /></translation> <translation id="4807098396393229769">ಕಾರ್ಡ್ನಲ್ಲಿರುವ ಹೆಸರು</translation> +<translation id="4818017973810341238"><ph name="VIOLATED_URL" /> ನಲ್ಲಿ ಡಿಜಿಟಲ್ ಸ್ವತ್ತಿನ ಲಿಂಕ್ಗಳ ಪರಿಶೀಲನೆ ವಿಫಲವಾಗಿದೆ</translation> <translation id="4824958205181053313">ಸಿಂಕ್ ರದ್ದುಗೊಳಿಸುವುದೇ?</translation> <translation id="4835385943915508971">ವಿನಂತಿಸಿದ ಸಂಪನ್ಮೂಲದಲ್ಲಿ Chrome ಪ್ರವೇಶವನ್ನು ಹೊಂದಿಲ್ಲ.</translation> <translation id="4837753911714442426">ಪುಟವನ್ನು ಮುದ್ರಿಸಲು ಆಯ್ಕೆಗಳನ್ನು ತೆರೆಯಿರಿ</translation> @@ -911,6 +913,7 @@ <translation id="7981313251711023384">ವೇಗವಾದ ಬ್ರೌಸಿಂಗ್ ಮತ್ತು ಹುಡುಕಾಟಕ್ಕಾಗಿ ಪುಟಗಳನ್ನು ಮುಂಚಿತವಾಗಿ ಲೋಡ್ ಮಾಡಿ</translation> <translation id="79859296434321399">ವರ್ಧಿತ ನೈಜತೆಯ ವಿಷಯವನ್ನು ವೀಕ್ಷಿಸಲು, ARCore ಅನ್ನು ಇನ್ಸ್ಟಾಲ್ ಮಾಡಿ</translation> <translation id="7986741934819883144">ಸಂಪರ್ಕವನ್ನು ಆಯ್ಕೆಮಾಡಿ</translation> +<translation id="799806351373751710">ಸಿಂಕ್ ಸೆಟಪ್ ಅನ್ನು ರದ್ದುಮಾಡಿ</translation> <translation id="7998918019931843664">ಮುಚ್ಚಿದ ಟ್ಯಾಬ್ ಮತ್ತೆ ತೆರೆಯಿರಿ</translation> <translation id="8004582292198964060">ಬ್ರೌಸರ್</translation> <translation id="8013372441983637696">ಈ ಸಾಧನದಿಂದ ನಿಮ್ಮ Chrome ಡೇಟಾವನ್ನು ಸಹ ತೆರವುಗೊಳಿಸಿ</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 d5b0cad8..da57a5e 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
@@ -102,6 +102,7 @@ <translation id="1810845389119482123">초기 동기화 설정이 완료되지 않음</translation> <translation id="1821253160463689938">페이지를 방문하지 않더라도 쿠키를 사용하여 환경설정 저장</translation> <translation id="1829244130665387512">페이지에서 찾기</translation> +<translation id="1843805151597803366">번역을 개선하려면 Google 검색을 통해 현재 페이지를 사용하세요.</translation> <translation id="1853692000353488670">새 시크릿 탭</translation> <translation id="1856325424225101786">라이트 모드를 재설정하시겠습니까?</translation> <translation id="1868024384445905608">이제 Chrome에서 파일을 더 빠르게 다운로드합니다.</translation> @@ -477,6 +478,7 @@ 이 설정을 변경하려면 <ph name="BEGIN_LINK" />동기화를 재설정<ph name="END_LINK" />하세요.</translation> <translation id="4807098396393229769">카드 명의</translation> +<translation id="4818017973810341238"><ph name="VIOLATED_URL" />에서 디지털 애셋 링크 확인에 실패함</translation> <translation id="4824958205181053313">동기화를 취소하시겠습니까?</translation> <translation id="4835385943915508971">Chrome에서 요청된 리소스에 액세스할 권한이 없습니다.</translation> <translation id="4837753911714442426">옵션을 열어 페이지 인쇄</translation> @@ -911,6 +913,7 @@ <translation id="7981313251711023384">더 빠른 인터넷 사용과 검색을 위해 페이지 미리 로드</translation> <translation id="79859296434321399">증강 현실 콘텐츠를 보려면 ARCore를 설치하세요.</translation> <translation id="7986741934819883144">연락처 선택</translation> +<translation id="799806351373751710">동기화 설정 취소</translation> <translation id="7998918019931843664">닫은 탭 다시 열기</translation> <translation id="8004582292198964060">브라우저</translation> <translation id="8013372441983637696">이 기기에서 내 Chrome 데이터 삭제</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_ky.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_ky.xtb index b0b4024..0f2ee78 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_ky.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_ky.xtb
@@ -102,6 +102,7 @@ <translation id="1810845389119482123">Шайкештирүү аягына чейин жөндөлгөн жок</translation> <translation id="1821253160463689938">Ал барактарга кирбесеңиз да, жеке тандоолоруңузду эстеп калуу үчүн cookie файлдарын колдонот</translation> <translation id="1829244130665387512">Ушул беттен табыңыз</translation> +<translation id="1843805151597803366">Сапаттуу котормо үчүн Google Издөөгө учурдагы баракты колдонууга урусат бериңиз</translation> <translation id="1853692000353488670">Жаңы жашыруун өтмөк</translation> <translation id="1856325424225101786">Жөнөкөй режим кайра коюлсунбу?</translation> <translation id="1868024384445905608">Chrome эми файлдарды ылдамыраак жүктөп баштады</translation> @@ -477,6 +478,7 @@ Бул жөндөөнү өзгөртүү үчүн <ph name="BEGIN_LINK" />шайкештирүүнү баштапкы абалга келтириңиз<ph name="END_LINK" /></translation> <translation id="4807098396393229769">Картадагы ысым</translation> +<translation id="4818017973810341238"><ph name="VIOLATED_URL" /> сайтындагы шилтемелердеги санарип активдерди текшерүү ишке ашкан жок</translation> <translation id="4824958205181053313">Шайкештештирүү жокко чыгарылсынбы?</translation> <translation id="4835385943915508971">Суралган булакка Chrome’дун кирүү мүмкүнчүлүгү жок.</translation> <translation id="4837753911714442426">Баракты басып чыгаруу параметрлерин ачуу</translation> @@ -911,6 +913,7 @@ <translation id="7981313251711023384">Тезирээк серептөө жана издөө үчүн барактарды алдын ала жүктөп алыңыз</translation> <translation id="79859296434321399">Кошумчаланган чындыкты көрүү үчүн ARCore кызматын орнотуңуз</translation> <translation id="7986741934819883144">Байланышты тандоо</translation> +<translation id="799806351373751710">Шайкештирүүнү жөндөөнү жокко чыгаруу</translation> <translation id="7998918019931843664">Жабылган кыстырманы кайра ачуу</translation> <translation id="8004582292198964060">Серепчи</translation> <translation id="8013372441983637696">Ошондой эле Chrome дайындары бул түзмөктөн өчүрүлсүн</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_lo.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_lo.xtb index bafa89c..59cc4f9a 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_lo.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_lo.xtb
@@ -102,6 +102,7 @@ <translation id="1810845389119482123">ບໍ່ສຳເລັດການຕັ້ງຄ່າການຊິ້ງຂໍ້ມູນເບື້ອງຕົ້ນ</translation> <translation id="1821253160463689938">ໃຊ້ຄຸກກີ້ເພື່ອຈື່ການຕັ້ງຄ່າຂອງທ່ານ, ເຖິງແມ່ນວ່າທ່ານບໍ່ໄດ້ເຂົ້າເບິ່ງໜ້າເຫຼົ່ານັ້ນກໍຕາມ</translation> <translation id="1829244130665387512">ຊອກຫາຢູ່ໃນຫນ້າ</translation> +<translation id="1843805151597803366">ເພື່ອຮັບຄຳແປທີ່ດີກວ່າ, ກະລຸນາອະນຸຍາດໃຫ້ Google ຊອກຫາ ໃຊ້ໜ້າປັດຈຸບັນ</translation> <translation id="1853692000353488670">ແຖບບໍ່ເຜີຍຕົວຕົນໃໝ່</translation> <translation id="1856325424225101786">ຣີເຊັດໂໝດ Lite ບໍ?</translation> <translation id="1868024384445905608">ດຽວນີ້ Chrome ດາວໂຫຼດໄຟລ໌ໄດ້ໄວກວ່າເກົ່າ</translation> @@ -477,6 +478,7 @@ ເພື່ອປ່ຽນການຕັ້ງຄ່ານີ້, ກະລຸນາ <ph name="BEGIN_LINK" />ຣີເຊັດການຊິິ້ງຂໍ້ມູນ<ph name="END_LINK" /></translation> <translation id="4807098396393229769">ຊື່ຢູ່ໃນບັດ</translation> +<translation id="4818017973810341238">ການຢັ້ງຢືນລິ້ງເນື້ອຫາດິຈິຕອນໃນ <ph name="VIOLATED_URL" /> ບໍ່ສຳເລັດ</translation> <translation id="4824958205181053313">ຍົກເລີກການຊິ້ງຂໍ້ມູນບໍ?</translation> <translation id="4835385943915508971">Chrome ບໍ່ມີການເຂົ້າເຖິງຊັບພະຍາກອນທີ່ຮ້ອງຂໍ.</translation> <translation id="4837753911714442426">ເປີດຕົວເລືອກຕໍ່ກັບໜ້າການພິມ</translation> @@ -911,6 +913,7 @@ <translation id="7981313251711023384">ໂຫຼດໜ້າກ່ອນສຳລັບການທ່ອງເວັບ ແລະ ການຊອກຫາທີ່ໄວກວ່າ</translation> <translation id="79859296434321399">ເພື່ອເບິ່ງເນື້ອຫາອາກິວເມັນ ຣີອາລິຕີ, ກະລຸນາຕິດຕັ້ງ ARCore ກ່ອນ</translation> <translation id="7986741934819883144">ເລືອກລາຍຊື່ຜູ້ຕິດຕໍ່</translation> +<translation id="799806351373751710">ຍົກເລີກການຕັ້ງຄ່າການຊິ້ງຂໍ້ມູນ</translation> <translation id="7998918019931843664">ເປີດແຖບປິດຄືນໃໝ່</translation> <translation id="8004582292198964060">ບຣາວເຊີ</translation> <translation id="8013372441983637696">ລຶບຂໍ້ມູນ Chrome ຂອງທ່ານອອກຈາກອຸປະກອນນີ້ນຳ</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 5de9ea2..3f35f45 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
@@ -102,6 +102,7 @@ <translation id="1810845389119482123">Pradinė sinchronizavimo sąranka nebaigta</translation> <translation id="1821253160463689938">Naudojami slapukai, siekiant įsiminti jūsų nuostatas, net jei nesilankote tuose puslapiuose</translation> <translation id="1829244130665387512">Surasti puslapyje</translation> +<translation id="1843805151597803366">Kad gautumėte geresnių vertimų, leiskite „Google“ paieškai naudoti dabartinį puslapį</translation> <translation id="1853692000353488670">Naujas inkognito skirtukas</translation> <translation id="1856325424225101786">Nustatyti supaprastintąjį režimą iš naujo?</translation> <translation id="1868024384445905608">Dabar „Chrome“ failus atsisiunčia greičiau</translation> @@ -477,6 +478,7 @@ Jei norite pakeisti šį nustatymą, <ph name="BEGIN_LINK" />iš naujo nustatykite sinchronizavimą<ph name="END_LINK" /></translation> <translation id="4807098396393229769">Kortelėje nurodytas vardas ir pavardė</translation> +<translation id="4818017973810341238">Nepavyko patvirtinti <ph name="VIOLATED_URL" /> skaitmeninių išteklių nuorodų</translation> <translation id="4824958205181053313">Atšaukti sinchronizavimą?</translation> <translation id="4835385943915508971">„Chrome“ negali pasiekti pageidaujamo ištekliaus.</translation> <translation id="4837753911714442426">Atidaryti puslapio spausdinimo parinktis</translation> @@ -911,6 +913,7 @@ <translation id="7981313251711023384">Iš anksto įkelti puslapius, kad naršymo ir paieškos procesai vyktų greičiau</translation> <translation id="79859296434321399">Norėdami peržiūrėti išplėstosios realybės turinį įdiekite „ARCore“</translation> <translation id="7986741934819883144">Pasirinkite kontaktą</translation> +<translation id="799806351373751710">Atšaukti sinchronizavimo sąranką</translation> <translation id="7998918019931843664">Iš naujo atidarykite uždarytą skirtuko lapą</translation> <translation id="8004582292198964060">Naršyklė</translation> <translation id="8013372441983637696">Taip pat išvalyti jūsų „Chrome“ duomenis iš šio įrenginio</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 68f85f29..afbf89e2 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
@@ -102,6 +102,7 @@ <translation id="1810845389119482123">Синк хийх эхний тохируулга дуусаагүй байна</translation> <translation id="1821253160463689938">Таны сонголтыг таныг тэдгээр хуудсанд зочлоогүй байсан ч санахын тулд күүки ашигладаг</translation> <translation id="1829244130665387512">Хуудаснаас хайх</translation> +<translation id="1843805151597803366">Илүү сайн орчуулга авахын тулд одоогийн хуудсыг ашиглах боломжийг Google Хайлтад олгоно уу</translation> <translation id="1853692000353488670">Нууцлал бүхий шинэ таб</translation> <translation id="1856325424225101786">Lite горимыг шинэчлэх үү?</translation> <translation id="1868024384445905608">Chrome одоо файлыг хурдан татдаг боллоо</translation> @@ -476,6 +477,7 @@ <translation id="4802417911091824046">Нэвтрэх үгийн шифрлэлтэд Google Pay-н төлбөрийн хэрэгслүүд болон хаягуудыг агуулдаггүй. Энэ тохиргоог өөрчлөхийн тулд <ph name="BEGIN_LINK" />синкийг шинэчилнэ үү<ph name="END_LINK" /></translation> <translation id="4807098396393229769">Картан дээрх нэр</translation> +<translation id="4818017973810341238">Дижитал өмчийн холбоосыг <ph name="VIOLATED_URL" /> дээр баталгаажуулж чадсангүй</translation> <translation id="4824958205181053313">Синкийг цуцлах уу?</translation> <translation id="4835385943915508971">Chrome хүсэлт тавьсан нөөцөд хандах эрхгүй.</translation> <translation id="4837753911714442426">Хуудас хэвлэхийн тулд сонголтыг нээнэ үү</translation> @@ -910,6 +912,7 @@ <translation id="7981313251711023384">Хурдан хөтлөх болон хайхын тулд хуудсыг урьдчилан ачаалах</translation> <translation id="79859296434321399">Өргөтгөсөн бодит орчны (АR) агуулга харахын тулд ARCore-г суулгана уу</translation> <translation id="7986741934819883144">Харилцагч сонгох</translation> +<translation id="799806351373751710">Синкийн тохируулгыг цуцлах</translation> <translation id="7998918019931843664">Хаагдсан цонхыг дахин нээх</translation> <translation id="8004582292198964060">Хөтөч</translation> <translation id="8013372441983637696">Энэ төхөөрөмжөөс Chrome-н өгөгдлийг мөн адил устгах</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_mr.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_mr.xtb index c67341e..c87c29a5 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_mr.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_mr.xtb
@@ -102,6 +102,7 @@ <translation id="1810845389119482123">सुरुवातीचे सिंक सेट करणे पूर्ण झाले नाही</translation> <translation id="1821253160463689938">तुम्ही त्या पेजना भेट दिली नसली तरीही, तुमची प्राधान्ये लक्षात ठेवण्यासाठी कुकीचा वापर करते</translation> <translation id="1829244130665387512">या पृष्ठामध्ये शोधा</translation> +<translation id="1843805151597803366">आणखी चांगली भाषांतरे मिळवण्यासाठी, Google Search ला सध्याचे पेज वापरू द्या</translation> <translation id="1853692000353488670">नवीन गुप्त टॅब</translation> <translation id="1856325424225101786">लाइट मोड रीसेट करायचा?</translation> <translation id="1868024384445905608">Chrome आता फाइल वेगाने डाउनलोड करते</translation> @@ -477,6 +478,7 @@ हे सेटिंग बदलण्यासाठी, <ph name="BEGIN_LINK" />सिंक रीसेट करा<ph name="END_LINK" /></translation> <translation id="4807098396393229769">कार्डवरील नाव</translation> +<translation id="4818017973810341238"><ph name="VIOLATED_URL" /> वर डिजिटल मालमत्तेची पडताळणी करता आली नाही</translation> <translation id="4824958205181053313">सिंक रद्द करायचे?</translation> <translation id="4835385943915508971">Chrome ला विनंती केलेल्या संसाधनांचा ॲक्सेस नाही.</translation> <translation id="4837753911714442426">पेज प्रिंट करण्यासाठी पर्याय उघडा</translation> @@ -911,6 +913,7 @@ <translation id="7981313251711023384">जलद ब्राउझिंग आणि शोधाकरता पेज आधीच लोड करा</translation> <translation id="79859296434321399">ऑगमेंटेड रीअॅलिटी आशय पाहण्यासाठी, ARCore इंस्टॉल करा</translation> <translation id="7986741934819883144">संपर्क निवडा</translation> +<translation id="799806351373751710">सिंक सेटअप रद्द करा</translation> <translation id="7998918019931843664">बंद केलेले टॅब पुन्हा उघडा</translation> <translation id="8004582292198964060">ब्राउझर</translation> <translation id="8013372441983637696">तुमचा या डिव्हाइसवरील Chrome डेटा देखील साफ करा</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 e8ce5f8..002c53a8 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
@@ -102,6 +102,7 @@ <translation id="1810845389119482123">Penyediaan penyegerakan permulaan belum selesai</translation> <translation id="1821253160463689938">Menggunakan kuki untuk mengingati pilihan anda, walaupun anda tidak melawati halaman tersebut</translation> <translation id="1829244130665387512">Cari dalam halaman</translation> +<translation id="1843805151597803366">Untuk mendapatkan terjemahan yang lebih baik, benarkan Carian Google menggunakan halaman semasa</translation> <translation id="1853692000353488670">Tab inkognito baharu</translation> <translation id="1856325424225101786">Tetapkan semula mod Ringkas?</translation> <translation id="1868024384445905608">Chrome kini memuat turun fail dengan lebih pantas</translation> @@ -463,7 +464,7 @@ <translation id="4719927025381752090">Tawaran untuk menterjemah</translation> <translation id="4720023427747327413">Buka dalam <ph name="PRODUCT_NAME" /></translation> <translation id="4720982865791209136">Bantu meningkatkan Chrome. <ph name="BEGIN_LINK" />Jawab tinjauan<ph name="END_LINK" /></translation> -<translation id="47217992755561375">Lihat tapak web paling kerap dilawat anda</translation> +<translation id="47217992755561375">Lihat tapak web yang paling kerap anda lawati</translation> <translation id="4732120983431207637">Pengurai Tindanan</translation> <translation id="473775607612524610">Kemas kini</translation> <translation id="4738836084190194332">Kali terakhir disegerakkan: <ph name="WHEN" /></translation> @@ -477,6 +478,7 @@ Untuk menukar tetapan ini, <ph name="BEGIN_LINK" />tetapkan semula penyegerakan<ph name="END_LINK" /></translation> <translation id="4807098396393229769">Nama pada kad</translation> +<translation id="4818017973810341238">Pengesahan pautan aset digital gagal di <ph name="VIOLATED_URL" /></translation> <translation id="4824958205181053313">Batalkan penyegerakan?</translation> <translation id="4835385943915508971">Chrome tidak boleh mengakses sumber yang diminta.</translation> <translation id="4837753911714442426">Buka pilihan untuk mencetak halaman</translation> @@ -637,7 +639,7 @@ <translation id="5942872142862698679">Menggunakan Google untuk carian</translation> <translation id="5952764234151283551">Menghantar URL halaman yang cuba anda capai kepada Google</translation> <translation id="5956665950594638604">Buka Pusat Bantuan Chrome dalam tab baharu</translation> -<translation id="5957442310066583693">Untuk melihat tapak web paling kerap dilawat anda, ketik butang Skrin Utama</translation> +<translation id="5957442310066583693">Untuk melihat tapak web yang paling kerap anda lawati, ketik butang Skrin Utama</translation> <translation id="5958275228015807058">Cari fail dan halaman anda dalam Muat Turun</translation> <translation id="5962718611393537961">Ketik untuk runtuhkan</translation> <translation id="5964805880140440652">Untuk berkongsi halaman ini dengan peranti lain, hidupkan penyegerakan dalam tetapan Chrome</translation> @@ -734,7 +736,7 @@ <translation id="6597891566292541626">Pastikan kod QR/kod bar berada dalam bingkai ini.</translation> <translation id="6600954340915313787">Disalin ke Chrome</translation> <translation id="661266467055912436">Meningkatkan keselamatan untuk anda dan semua orang yang melayari web.</translation> -<translation id="6618554661997243500">Untuk melihat tapak web dan cerita paling kerap dilawat untuk anda, ketik butang Skrin Utama</translation> +<translation id="6618554661997243500">Untuk melihat tapak web dan cerita yang paling kerap anda lawati, ketik butang Skrin Utama</translation> <translation id="6627583120233659107">Edit folder</translation> <translation id="6643016212128521049">Kosongkan</translation> <translation id="6643649862576733715">Isih mengikut jumlah penjimatan data</translation> @@ -911,6 +913,7 @@ <translation id="7981313251711023384">Pramuat halaman untuk penyemakan imbas dan pencarian yang lebih cepat</translation> <translation id="79859296434321399">Untuk melihat kandungan realiti tambahan, pasang ARCore</translation> <translation id="7986741934819883144">Pilih kenalan</translation> +<translation id="799806351373751710">Batalkan penyediaan penyegerakan</translation> <translation id="7998918019931843664">Buka semula tab yang ditutup</translation> <translation id="8004582292198964060">Penyemak Imbas</translation> <translation id="8013372441983637696">Selain itu, kosongkan data Chrome anda daripada peranti ini</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 9b6ba2b9..0b041841 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
@@ -102,6 +102,7 @@ <translation id="1810845389119482123">စင့်ခ်စတင်လုပ်ရန် စနစ်ထည့်သွင်းခြင်းကို အပြီးသတ်မထားပါ</translation> <translation id="1821253160463689938">အဆိုပါ စာမျက်နှာများကို ဝင်ကြည့်မထားလျှင်ပင် သင့်ဦးစားပေးများကို မှတ်သားရန် ကွတ်ကီးများအား အသုံးပြုသည်</translation> <translation id="1829244130665387512">စာမျက်နှာတွင် ရှာရန်</translation> +<translation id="1843805151597803366">ပိုမိုကောင်းမွန်သော ဘာသာပြန်များရယူရန် လက်ရှိစာမျက်နှာအား Google Search ကို သုံးခွင့်ပြုပါ</translation> <translation id="1853692000353488670">ကိုယ်ပျောက် တဘ်အသစ်</translation> <translation id="1856325424225101786">'အပေါ့စားမုဒ်' ပြန်လည်သတ်မှတ်မလား။</translation> <translation id="1868024384445905608">ယခုအခါ Chrome သည် ဖိုင်များကို ပိုမိုလျင်မြန်စွာ ဒေါင်းလုဒ်လုပ်ပါသည်</translation> @@ -477,6 +478,7 @@ ဤဆက်တင်ကို ပြောင်းရန် <ph name="BEGIN_LINK" />စင့်ခ်လုပ်ခြင်းကို ပြင်ဆင်သတ်မှတ်ပါ<ph name="END_LINK" /></translation> <translation id="4807098396393229769">ကတ် အပေါ်က အမည်</translation> +<translation id="4818017973810341238"><ph name="VIOLATED_URL" /> တွင် Digital Asset links စစ်ဆေးခြင်း မအောင်မြင်ပါ</translation> <translation id="4824958205181053313">စင့်ခ်လုပ်ခြင်းကို ပယ်ဖျက်လိုပါသလား။</translation> <translation id="4835385943915508971">တောင်းဆိုထားသည့် အရင်းမြစ်ကို Chrome သည် အသုံးပြုခွင့်မရှိပါ။</translation> <translation id="4837753911714442426">စာမျက်နှာကို ပုံနှိပ်ဖို့ နည်းလမ်း အားဖွင့်ရန်</translation> @@ -910,6 +912,7 @@ <translation id="7981313251711023384">ပိုမိုမြန်ဆန်စွာဖွင့်ခြင်းနှင့် ရှာဖွေခြင်းအတွက် စာမျက်နှာများကို ကြိုဖွင့်ရန်</translation> <translation id="79859296434321399">လွန်ကဲပကတိအသွင်ကို ကြည့်ရန် ARCore ကို ထည့်ပါ</translation> <translation id="7986741934819883144">အဆက်အသွယ်တစ်ခုကို ရွေးပါ</translation> +<translation id="799806351373751710">စင့်ခ် စနစ်ထည့်သွင်းခြင်းကို ပယ်ဖျက်ရန်</translation> <translation id="7998918019931843664">ပိတ်ထားသည့် တဲဘ်ကို ပြန်ဖွင့်ရန်</translation> <translation id="8004582292198964060">ဘရောင်ဇာ</translation> <translation id="8013372441983637696">ဤကိရိယာမှ သင်၏ Chrome ဒေတာများကိုလည်း ရှင်းလင်းရန်</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 39384b1..c9272d1 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
@@ -7,6 +7,7 @@ <translation id="1036727731225946849"><ph name="WEBAPK_NAME" /> थप्दै...</translation> <translation id="1041308826830691739">वेबसाइटहरूबाट</translation> <translation id="1045899828449635435">यी साइटहरूको डेटा पनि मेटाउने हो?</translation> +<translation id="1047303875618851375">Chrome ले तपाईंको जानकारी पुष्टि गर्न सकेन</translation> <translation id="1049743911850919806">इन्कोग्निटो</translation> <translation id="10614374240317010">कहिले पनि बचत नगर्नुहोस्</translation> <translation id="1067922213147265141">Google का अन्य सेवाहरू</translation> @@ -448,6 +449,7 @@ <translation id="4650364565596261010">प्रणालीको पूर्वनिर्धारित सेटिङ</translation> <translation id="465657074423018424">Safe Browsing नामक सुविधाको सहयोगले तपाईं भ्रामक वेबसाइटहरूबाट सुरक्षित रहनुहुन्छ। तपाईंले यो सेटिङ अफ गर्नुभएको छ भने ब्राउजिङ गर्दा र त्यसमा पनि विशेष गरी पासवर्ड प्रविष्टि गर्दा अझ सतर्क रहनुहोला।</translation> <translation id="4662373422909645029">उपनाममा अङ्क प्रयोग गर्न पाइँदैन</translation> +<translation id="4663499661119906179">तपाईंका लागि सिफारिस गरिएका शीर्ष साइट र समाचारहरू हेर्नुहोस्</translation> <translation id="4663756553811254707"><ph name="NUMBER_OF_BOOKMARKS" /> पुस्तक चिन्हहरू मेटाइयो</translation> <translation id="4665282149850138822"><ph name="NAME" /> लाई तपाईँको गृहपृष्ठ स्क्रिनमा थपियो</translation> <translation id="4668347365065281350">कुकी तथा यन्त्रमा भण्डारण गरिएका अन्य डेटासहित साइटहरूले भण्डारण गरेका सबै डेटा</translation> @@ -460,6 +462,7 @@ <translation id="4719927025381752090">अनुवादको गर्न प्रस्ताव गर्नुहोस्</translation> <translation id="4720023427747327413"><ph name="PRODUCT_NAME" />मा खोल्नुहोस्</translation> <translation id="4720982865791209136">Chrome लाई सुधार्न मद्दत गर्नुहोस्। <ph name="BEGIN_LINK" />सर्वेक्षणमा भाग लिनुहोस्।<ph name="END_LINK" /></translation> +<translation id="47217992755561375">तपाईंका लागि सिफारिस गरिएका शीर्ष साइटहरू हेर्नुहोस्</translation> <translation id="4732120983431207637">स्ट्याक Unwinder</translation> <translation id="473775607612524610">अपडेट गर्नुहोस्</translation> <translation id="4738836084190194332">अन्तिम पटक सिंक गरिएको: <ph name="WHEN" /></translation> @@ -557,6 +560,7 @@ <translation id="5433691172869980887">प्रयोगकर्ताको नाम प्रतिलिपि गरियो</translation> <translation id="543509235395288790"><ph name="COUNT" /> फाइलहरू डाउनलोड गर्दै (<ph name="MEGABYTES" />)।</translation> <translation id="5441522332038954058">ठेगाना पट्टीमा जानुहोस्</translation> +<translation id="544776284582297024">एकै पटक ट्याबहरू खोल्न र विभिन्न पृष्ठहरूमा जान 'ट्याबहरू खोल्नुहोस्' बटनमा ट्याप गर्नुहोस्</translation> <translation id="545042621069398927">तपाईंको डाउनलोडको गति बढाउँदै।</translation> <translation id="5456381639095306749">पृष्ठ डाउनलोड गर्नुहोस्</translation> <translation id="548278423535722844">नक्सा अनुप्रयोगमा खोल्नुहोस्</translation> @@ -632,6 +636,7 @@ <translation id="5942872142862698679">खोजीका लागि Google प्रयोग गर्दै</translation> <translation id="5952764234151283551">तपाईंले पहुँच राख्न खोजिरहनुभएको पृष्ठको URL Google मा पठाउँछ</translation> <translation id="5956665950594638604">Chrome को मद्दत केन्द्र एउटा नयाँ ट्याबमा खोल्नुहोस्</translation> +<translation id="5957442310066583693">तपाईंका लागि सिफारिस गरिएका शीर्ष साइटहरू हेर्न होम बटनमा ट्याप गर्नुहोस्</translation> <translation id="5958275228015807058">डाउनलोडरू नामक फोल्डरमा भएका आफ्ना फाइल र पृष्ठहरू भेट्टाउनुहोस्</translation> <translation id="5962718611393537961">संक्षिप्त गर्न ट्याप गर्नुहोस्</translation> <translation id="5964805880140440652">यो पृष्ठ अर्को यन्त्रसँग आदान प्रदान गर्न Chrome ब्राउजरको सेटिङमा गई सिंक गर्ने सुविधा सक्रिय गर्नुहोस्</translation> @@ -723,10 +728,12 @@ <translation id="6583199322650523874">हालको पृष्ठलाई पुस्तक चिन्ह लगाउनुहोस्</translation> <translation id="6588043302623806746">सुरक्षित DNS प्रयोग गर्नुहोस्</translation> <translation id="6590471736817333463">६०% सम्म डेटा बचत गर्नुहोस्</translation> +<translation id="6590680911007613645">तपाईंले सुरक्षित गर्न लाग्नुभएको पासवर्ड तपाईंको <ph name="SITE" /> को पासवर्डसँग मेल खान्छ भन्ने कुरा सुनिश्चित गर्नुहोस्</translation> <translation id="6593061639179217415">डेस्कटप साइट</translation> <translation id="6597891566292541626">QR/बार कोडलाई यस फ्रेमभित्र पार्नुहोस्।</translation> <translation id="6600954340915313787">Chrome मा प्रतिलिपि गरियो</translation> <translation id="661266467055912436">तपाईं र वेब प्रयोग गर्ने सम्पूर्ण प्रयोगकर्ताहरूलाई झन् सुरक्षित पार्छ।</translation> +<translation id="6618554661997243500">तपाईं आफ्ना लागि सिफारिस गरिएका शीर्ष साइट तथा समाचारहरू हेर्न चाहनुहुन्न भने होम बटनमा ट्याप गर्नुहोस्</translation> <translation id="6627583120233659107">फोल्डर सम्पादन गर्नुहोस्</translation> <translation id="6643016212128521049">खालि गर्नुहोस्</translation> <translation id="6643649862576733715">बचत गरिएको डेटाको मात्राद्वारा क्रमबद्ध गर्नुहोस्</translation> @@ -787,6 +794,7 @@ <translation id="7077143737582773186">SD कार्ड</translation> <translation id="7080806333218412752">यस सुविधाले URL हरूको जाँच गर्नका निम्ति तिनलाई सुरक्षित ब्राउजिङमा पठाउँछ। यस सुविधाले नयाँ जोखिमहरू पत्ता लगाउन पृष्ठ, डाउनलोड, एक्स्टेन्सनसम्बन्धी गतिविधि र प्रणालीसम्बन्धी जानकारीको सानो नमुना पनि सुरक्षित ब्राउजिङमा पठाउँछ। यस सुविधाले तपाईं साइन इन भएका बेला यो डेटा केही समयका लागि तपाईंको Google खातामा लिंक गर्छ। यसो गर्नुको उद्देश्य Google का एपहरूमा तपाईंको डेटा सुरक्षित राख्नु हो।</translation> <translation id="7088681679121566888">Chrome अपडेट छ</translation> +<translation id="7106762743910369165">तपाईंको संगठनले तपाईंको ब्राउजर व्यवस्थापन गर्छ</translation> <translation id="7121362699166175603">ठेगाना पट्टीका इतिहास र स्वतः पूर्णताहरूलाई खाली गर्छ। तपाईंको Google खाताको <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" /> मा अन्य किसिमका ब्राउजिङ इतिहास रहेका हुन सक्छन्।</translation> <translation id="7128355412245153445">होम बटनमा ट्याप गर्ने बित्तिकै आफ्ना शीर्ष साइट तथा ताजा समाचार देखिने बनाउनुहोस्</translation> <translation id="7138678301420049075">अन्य</translation> @@ -1029,6 +1037,7 @@ <translation id="8993760627012879038">इनकोग्निटो मोडमा एउटा नयाँ ट्याब खोल्नुहोस्</translation> <translation id="8996847606757455498">अर्को सेवा प्रदायक छनौट गर्नुहोस्</translation> <translation id="8998729206196772491">तपाईं <ph name="MANAGED_DOMAIN" /> द्वारा व्यवस्थापन गरिएको खाता मार्फत साइन इन गर्दै हुनुहुन्छ र त्यसको प्रशासकलाई तपाईंको Chrome को डेटालाई नियन्त्रण गर्न दिँदै हुनुहुन्छ। तपाईंको डेटा सदाका लागि यस खातामा बाँधिनेछ। Chrome बाट साइन आउट गर्नाले तपाईंको डेटा यस यन्त्रबाट मेटिनेछ तर यो तपाईंको Google खातामा भण्डारण गरिएको अवस्थामा रहनेछ।</translation> +<translation id="9022774213089566801">बारम्बार हेरिएका</translation> <translation id="9028914725102941583">यन्त्रहरूभरि आदान प्रदान गर्न सिंक गर्ने सुविधा सक्रिय गर्नुहोस्</translation> <translation id="9040142327097499898">सूचनाहरूलाई अनुमति दिइएको छ। यो यन्त्रमा स्थानसम्बन्धी सुविधा निष्क्रिय पारिएको छ।</translation> <translation id="9041669420854607037">{FILE_COUNT,plural, =1{# भिडियो}other{# भिडियोहरू}}</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 d61363f..a7a9e0b 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
@@ -102,6 +102,7 @@ <translation id="1810845389119482123">Eerste synchronisatieconfiguratie niet voltooid</translation> <translation id="1821253160463689938">Maakt gebruik van cookies om je voorkeuren te onthouden, zelfs als je deze pagina's niet bezoekt</translation> <translation id="1829244130665387512">Zoeken op pagina</translation> +<translation id="1843805151597803366">Sta Google Zoeken toe de huidige pagina te gebruiken om betere vertalingen te krijgen</translation> <translation id="1853692000353488670">Nieuw incognitotabblad</translation> <translation id="1856325424225101786">Lite-versie resetten?</translation> <translation id="1868024384445905608">Chrome downloadt bestanden nu sneller</translation> @@ -477,6 +478,7 @@ <ph name="BEGIN_LINK" />Reset de synchronisatie<ph name="END_LINK" /> als je deze instelling wilt wijzigen.</translation> <translation id="4807098396393229769">Naam op pas</translation> +<translation id="4818017973810341238">Verificatie van Digital Asset Links mislukt voor <ph name="VIOLATED_URL" /></translation> <translation id="4824958205181053313">Synchronisatie annuleren?</translation> <translation id="4835385943915508971">Chrome heeft geen toegang tot de gevraagde bron.</translation> <translation id="4837753911714442426">Afdrukopties voor de pagina openen</translation> @@ -911,6 +913,7 @@ <translation id="7981313251711023384">Pagina's vooraf laden voor sneller browsen en zoeken</translation> <translation id="79859296434321399">Installeer ARCore om augmented reality-content te bekijken</translation> <translation id="7986741934819883144">Een contact selecteren</translation> +<translation id="799806351373751710">Synchronisatie instellen annuleren</translation> <translation id="7998918019931843664">Gesloten tabblad opnieuw openen</translation> <translation id="8004582292198964060">Browser</translation> <translation id="8013372441983637696">Je Chrome-gegevens ook wissen op dit apparaat</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_no.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_no.xtb index c475f48d..3c49733 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_no.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_no.xtb
@@ -102,6 +102,7 @@ <translation id="1810845389119482123">Det innledende synkroniseringsoppsettet er ikke fullført</translation> <translation id="1821253160463689938">Bruker informasjonskapsler til å huske preferansene dine, selv om du ikke går til de sidene</translation> <translation id="1829244130665387512">Finn på side</translation> +<translation id="1843805151597803366">For å få bedre oversettelser, la Google Søk bruke den nåværende siden</translation> <translation id="1853692000353488670">Ny inkognitofane</translation> <translation id="1856325424225101786">Vil du tilbakestille forenklet modus?</translation> <translation id="1868024384445905608">Chrome laster ned filer raskere nå</translation> @@ -477,6 +478,7 @@ For å endre denne innstillingen, <ph name="BEGIN_LINK" />tilbakestill synkroniseringen<ph name="END_LINK" /></translation> <translation id="4807098396393229769">Navn som er oppført på kortet</translation> +<translation id="4818017973810341238">Verifisering av linker til digitale ressurser mislyktes på <ph name="VIOLATED_URL" /></translation> <translation id="4824958205181053313">Vil du avbryte synkroniseringen?</translation> <translation id="4835385943915508971">Chrome har ikke tilgang til den forespurte ressursen.</translation> <translation id="4837753911714442426">Åpne alternativene for å skrive ut siden</translation> @@ -911,6 +913,7 @@ <translation id="7981313251711023384">Last inn sider på forhånd for raskere nettlesing og søk</translation> <translation id="79859296434321399">Du må installere ARCore for å se innhold med utvidet virkelighet</translation> <translation id="7986741934819883144">Velg en kontakt</translation> +<translation id="799806351373751710">Avbryt konfigurering av synkronisering</translation> <translation id="7998918019931843664">Åpne lukkede faner igjen</translation> <translation id="8004582292198964060">Nettleser</translation> <translation id="8013372441983637696">Fjern også Chrome-dataene dine fra denne enheten</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_or.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_or.xtb index 3e126a6..72cc2806 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_or.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_or.xtb
@@ -7,6 +7,7 @@ <translation id="1036727731225946849"><ph name="WEBAPK_NAME" /> ଯୋଗ କରାଯାଉଛି...</translation> <translation id="1041308826830691739">ୱେବ୍ସାଇଟ୍ରୁ</translation> <translation id="1045899828449635435">ଏଇ ସାଇଟ ଡାଟା ବି କାଢ଼ିବେ?</translation> +<translation id="1047303875618851375">Chrome ଆପଣଙ୍କ ସୂଚନା ଯାଞ୍ଚ କରିପାରିଲା ନାହିଁ</translation> <translation id="1049743911850919806">ଇନ୍କଗ୍ନିଟୋ</translation> <translation id="10614374240317010">ଆଦୌ ସେଭ୍ କରାଯାଇନାହିଁ</translation> <translation id="1067922213147265141">ଅନ୍ୟାନ୍ୟ Google ସେବା</translation> @@ -449,6 +450,7 @@ <translation id="4650364565596261010">ସିଷ୍ଟମ୍ ଡିଫଲ୍ଟ</translation> <translation id="465657074423018424">ସୁରକ୍ଷିତ ବ୍ରାଉଜିଂ ଆପଣଙ୍କୁ ପ୍ରତାରଣାମୂଳକ ୱେବସାଇଟଗୁଡ଼ିକ ଠାରୁ ରକ୍ଷା କରିଥାଏ। ଯଦି ଆପଣ ଏହାକୁ ବନ୍ଦ କରନ୍ତି, ତେବେ ବ୍ରାଉଜିଂ କରିବା ବେଳେ ଅଧିକ ସତର୍କ ରୁହନ୍ତୁ, ବିଶେଷ କରି ପାସୱାର୍ଡ ଲେଖିବା ପୂର୍ବରୁ।</translation> <translation id="4662373422909645029">ଡାକନାମରେ ନମ୍ବର ରହିପାରିବନି</translation> +<translation id="4663499661119906179">ଆପଣଙ୍କ ପାଇଁ ଶ୍ରେଷ୍ଠ ସାଇଟ୍ ଏବଂ ଷ୍ଟୋରୀଗୁଡ଼ିକୁ ଦେଖନ୍ତୁ</translation> <translation id="4663756553811254707"><ph name="NUMBER_OF_BOOKMARKS" />ଟି ବୁକ୍ମାର୍କ ଡିଲିଟ୍ କରାଗଲା</translation> <translation id="4665282149850138822">ଆପଣଙ୍କ ମୂଳ ସ୍କ୍ରିନ୍ରେ <ph name="NAME" />କୁ ଯୋଗ କରାଯାଇଥିଲା</translation> <translation id="4668347365065281350">କୁକୀ ଏବଂ ଡିଭାଇସରେ ଷ୍ଟୋର୍ ଥିବା ଅନ୍ୟ ଡାଟା ସମେତ ସମସ୍ତ ଡାଟା ସାଇଟଗୁଡ଼ିକ ଦ୍ୱାରା ଷ୍ଟୋର୍ କରାଯାଇଛି</translation> @@ -461,6 +463,7 @@ <translation id="4719927025381752090">ଅନୁବାଦ କରିବାକୁ ପ୍ରସ୍ତାବ ଦିଅନ୍ତୁ</translation> <translation id="4720023427747327413"><ph name="PRODUCT_NAME" />ରେ ଖୋଲନ୍ତୁ</translation> <translation id="4720982865791209136">Chromeକୁ ଉନ୍ନତ କରିବାରେ ସହାୟତା କରନ୍ତୁ। <ph name="BEGIN_LINK" />ସର୍ବେକ୍ଷଣରେ ଭାଗ ନିଅନ୍ତୁ<ph name="END_LINK" /></translation> +<translation id="47217992755561375">ଆପଣଙ୍କ ଶ୍ରେଷ୍ଠ ସାଇଟଗୁଡ଼ିକୁ ଦେଖନ୍ତୁ</translation> <translation id="4732120983431207637">ଷ୍ଟାକ୍ ଅନ୍ୱାଇଣ୍ଡର୍</translation> <translation id="473775607612524610">ଅପ୍ଡେଟ୍</translation> <translation id="4738836084190194332">ଶେଷଥର ସିଙ୍କ ହୋଇଥିଲା: <ph name="WHEN" /></translation> @@ -558,6 +561,7 @@ <translation id="5433691172869980887">ଉପଯୋଗକର୍ତ୍ତାଙ୍କର ନାମ କପି କରାଗଲା</translation> <translation id="543509235395288790"><ph name="COUNT" />ଟି ଫାଇଲ୍ (<ph name="MEGABYTES" />) ଡାଉନଲୋଡ୍ ହେଉଛି।</translation> <translation id="5441522332038954058">ଆଡ୍ରେସ୍ ବାର୍କୁ ଯାଆନ୍ତୁ</translation> +<translation id="544776284582297024">ଟାବଗୁଡ଼ିକୁ ଖୋଲିବାକୁ ଏବଂ ଏକା ସମୟରେ ବିଭିନ୍ନ ପୃଷ୍ଠାକୁ ଭିଜିଟ୍ କରିବାକୁ, "ଟାବଗୁଡ଼ିକ ଖୋଲନ୍ତୁ" ବଟନରେ ଟାପ୍ କରନ୍ତୁ</translation> <translation id="545042621069398927">ଆପଣଙ୍କ ଡାଇନ୍ଲୋଡ୍ର ଗତି ବଢ଼ାଯାଉଛି।</translation> <translation id="5456381639095306749">ପୃଷ୍ଠା ଡାଉନ୍ଲୋଡ୍ କରନ୍ତୁ</translation> <translation id="548278423535722844">ମ୍ୟାପ୍ସ ଆପ୍ରେ ଖୋଲନ୍ତୁ</translation> @@ -633,6 +637,7 @@ <translation id="5942872142862698679">ସନ୍ଧାନ ପାଇଁ Google ବ୍ୟବହାର କରାଯାଉଛି</translation> <translation id="5952764234151283551">Googleରେ ପହଞ୍ଚିବା ପାଇଁ ଆପଣ ଚେଷ୍ଟା କରୁଥିବା ଗୋଟିଏ ପୃଷ୍ଠାର URLକୁ ପଠାଇଥାଏ</translation> <translation id="5956665950594638604">ଏକ ନୂଆ ଟାବ୍ରେ Chrome ସାହାଯ୍ୟ କେନ୍ଦ୍ର ଖୋଲନ୍ତୁ</translation> +<translation id="5957442310066583693">ଆପଣଙ୍କ ଶ୍ରେଷ୍ଠ ସାଇଟଗୁଡ଼ିକୁ ଦେଖିବା ପାଇଁ, ହୋମ୍ ବଟନରେ ଟାପ୍ କରନ୍ତୁ</translation> <translation id="5958275228015807058">ଡାଉନ୍ଲୋଡ୍ରେ ଆପଣଙ୍କର ଫାଇଲ୍ ଏବଂ ପୃଷ୍ଠାଗୁଡ଼ିକ ଖୋଜନ୍ତୁ</translation> <translation id="5962718611393537961">ସଙ୍କୁଚିତ କରିବା ପାଇଁ ଟାପ୍ କରନ୍ତୁ</translation> <translation id="5964805880140440652">ଅନ୍ୟ ଏକ ଡିଭାଇସ୍ ସହ ଏହି ପୃଷ୍ଠା ସେୟାର୍ କରିବା ପାଇଁ Chrome ସେଟିଂସରେ ସିଙ୍କ ଚାଲୁ କରନ୍ତୁ</translation> @@ -724,10 +729,12 @@ <translation id="6583199322650523874">ସାମ୍ପ୍ରତିକ ପୃଷ୍ଠାକୁ ବୁକ୍ମାର୍କ କରନ୍ତୁ</translation> <translation id="6588043302623806746">ସୁରକ୍ଷିତ DNS ବ୍ୟବହାର କରନ୍ତୁ</translation> <translation id="6590471736817333463">60% ପର୍ଯ୍ୟନ୍ତ ଡାଟା ସେଭ୍ କରନ୍ତୁ</translation> +<translation id="6590680911007613645">ଆପଣ ସେଭ୍ କରୁଥିବା ପାସୱାର୍ଡ <ph name="SITE" /> ପାଇଁ ଆପଣଙ୍କ ପାସୱାର୍ଡ ସହ ମେଳ ହେଉଥିବା ସୁନିଶ୍ଚିତ କରନ୍ତୁ</translation> <translation id="6593061639179217415">ଡେସ୍କଟପ୍ ସାଇଟ୍</translation> <translation id="6597891566292541626">ଏହି ଫ୍ରେମରେ QR/ବାରକୋଡର ସ୍ଥିତି।</translation> <translation id="6600954340915313787">କପି କରାଯାଇ Chromeକୁ ନିଆଗଲା</translation> <translation id="661266467055912436">ଆପଣ ଏବଂ ୱେବରେ ଥିବା ପ୍ରତ୍ୟେକ ବ୍ୟକ୍ତିଙ୍କ ପାଇଁ ସୁରକ୍ଷାକୁ ଉନ୍ନତ କରେ।</translation> +<translation id="6618554661997243500">ଆପଣଙ୍କ ପାଇଁ ଶ୍ରେଷ୍ଠ ସାଇଟ୍ ଏବଂ ଷ୍ଟୋରୀଗୁଡ଼ିକୁ ଦେଖିବାକୁ, ହୋମ୍ ବଟନରେ ଟାପ୍ କରନ୍ତୁ</translation> <translation id="6627583120233659107">ଫୋଲ୍ଡର୍ ଏଡିଟ୍ କରନ୍ତୁ</translation> <translation id="6643016212128521049">ଖାଲି କରନ୍ତୁ</translation> <translation id="6643649862576733715">ସେଭ୍ କରାଯାଇଥିବା ଡାଟାର ପରିଣାମ ଅନୁଯାୟୀ କ୍ରମବଦ୍ଧ କରାଯାଇଛି</translation> @@ -788,6 +795,7 @@ <translation id="7077143737582773186">SD କାର୍ଡ</translation> <translation id="7080806333218412752">URLଗୁଡ଼ିକ ଯାଞ୍ଚ କରିବା ପାଇଁ ସେଗୁଡ଼ିକୁ ସୁରକ୍ଷିତ ବ୍ରାଉଜିଂକୁ ପଠାଏ। ନୂଆ ବିପଦଗୁଡ଼ିକୁ ଖୋଜି ପାଇବାରେ ସାହାଯ୍ୟ କରିବାକୁ ପୃଷ୍ଠାଗୁଡ଼ିକର ଏକ ଛୋଟ ନମୁନା, ଡାଉନଲୋଡ୍, ଏକ୍ସଟେନସନ୍ କାର୍ଯ୍ୟକଳାପ ଏବଂ ସିଷ୍ଟମ୍ ସୂଚନା ମଧ୍ୟ ପଠାଏ। ସମଗ୍ର Google ଆପରେ ଆପଣଙ୍କୁ ସୁରକ୍ଷା ଦେବା ପାଇଁ, ଆପଣ ସାଇନ୍ ଇନ୍ ହେଲେ ଏହି ଡାଟାକୁ ଆପଣଙ୍କ Google ଆକାଉଣ୍ଟରେ ଅସ୍ଥାୟୀ ଭାବରେ ଲିଙ୍କ୍ କରେ।</translation> <translation id="7088681679121566888">Chrome ଅପ୍ ଟୁ ଡେଟ୍ ଅଛି</translation> +<translation id="7106762743910369165">ଆପଣଙ୍କ ସଂସ୍ଥା ଦ୍ୱାରା ଆପଣଙ୍କର ବ୍ରାଉଜର୍ ପରିଚାଳିତ ହୋଇଥାଏ</translation> <translation id="7121362699166175603">ଠିକଣା ବାର୍ରେ ଥିବା ଇତିବୃତ୍ତି ଓ ସ୍ୱତଃପୂରଣଗୁଡ଼ିକୁ ଖାଲି କରେ। ଆପଣଙ୍କର Google ଆକାଉଣ୍ଟର ବାଉଜିଂ ଇତିବୃତ୍ତି <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" />ରେ ଅନ୍ୟ ଫର୍ମରେ ଥାଇପାରେ।</translation> <translation id="7128355412245153445">ଯେତେବେଳେ ବି ଆପଣ ହୋମ୍ ବଟନ୍ ଟାପ୍ କରନ୍ତି, ଆପଣଙ୍କ ଶ୍ରେଷ୍ଠ ସାଇଟ୍ ଏବଂ ବର୍ତ୍ତମାନର କାହାଣୀଗୁଡ଼ିକ ଦେଖନ୍ତି</translation> <translation id="7138678301420049075">ଅନ୍ୟ</translation> @@ -1030,6 +1038,7 @@ <translation id="8993760627012879038">ଇନ୍କଗ୍ନିଟୋ ମୋଡ୍ରେ ଏକ ନୂଆ ଟାବ୍ ଖୋଲନ୍ତୁ</translation> <translation id="8996847606757455498">ଅନ୍ୟ ଏକ ପ୍ରଦାନକାରୀ ବାଛନ୍ତୁ</translation> <translation id="8998729206196772491"><ph name="MANAGED_DOMAIN" />ଙ୍କ ଦ୍ୱାରା ପରିଚାଳିତ ଏକ ଆକାଉଣ୍ଟ ମାଧ୍ୟମରେ ଆପଣ ସାଇନ୍ ଇନ୍ କରିଛନ୍ତି ଏବଂ ଏହାର ଆଡ୍ମିନିଷ୍ଟ୍ରେଟର୍ଙ୍କୁ ଆପଣଙ୍କ Chrome ଡାଟାର ନିୟନ୍ତ୍ରଣ ଦେଇଛନ୍ତି। ଆପଣଙ୍କର ଡାଟା ସ୍ଥାୟୀ ରୂପେ ଏହି ଆକାଉଣ୍ଟ ସହିତ ଯୋଡ଼ି ହୋଇଯିବ। Chromeରୁ ସାଇନ୍-ଆଉଟ୍ କରିବା ଦ୍ଵାରା ଏହି ଡିଭାଇସ୍ରୁ ଆପଣଙ୍କ ଡାଟା ଡିଲିଟ୍ ହୋଇଯିବ କିନ୍ତୁ ଏହା ଆପଣଙ୍କ Google ଆକାଉଣ୍ଟରେ ଷ୍ଟୋର୍ ହୋଇ ରହିଥିବ।</translation> +<translation id="9022774213089566801">ବାରମ୍ବାର ଭିଜିଟ୍ କରାଯାଉଥିବା</translation> <translation id="9028914725102941583">ସମସ୍ତ ଡିଭାଇସ୍ରେ ସେୟାର୍ କରିବା ପାଇଁ ସିଙ୍କ୍ ଚାଲୁ କରନ୍ତୁ</translation> <translation id="9040142327097499898">ବିଜ୍ଞପ୍ତିଗୁଡ଼ିକୁ ଅନୁମତି ଦିଆଯାଏ। ଏହି ଡିଭାଇସ୍ ପାଇଁ ଲୋକେସନ୍ ବନ୍ଦ ଅଛି।</translation> <translation id="9041669420854607037">{FILE_COUNT,plural, =1{#ଟି ଭିଡିଓ}other{#ଟି ଭିଡିଓ}}</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_pa.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_pa.xtb index 67f12c8..b0f17ed 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_pa.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_pa.xtb
@@ -102,6 +102,7 @@ <translation id="1810845389119482123">ਸ਼ੁਰੂਆਤੀ ਸਮਕਾਲੀਕਰਨ ਸੈੱਟਅੱਪ ਪੂਰਾ ਨਹੀਂ ਹੋਇਆ</translation> <translation id="1821253160463689938">ਤੁਹਾਡੀਆਂ ਤਰਜੀਹਾਂ ਨੂੰ ਯਾਦ ਰੱਖਣ ਲਈ ਕੁਕੀਜ਼ ਦੀ ਵਰਤੋਂ ਕਰਦੀ ਹੈ, ਭਾਵੇਂ ਤੁਸੀਂ ਉਹ ਪੰਨੇ ਨਹੀਂ ਦੇਖਦੇ</translation> <translation id="1829244130665387512">ਸਫ਼ੇ ਵਿੱਚ ਲੱਭੋ</translation> +<translation id="1843805151597803366">ਬਿਹਤਰ ਅਨੁਵਾਦ ਪ੍ਰਾਪਤ ਕਰਨ ਲਈ, Google Search ਨੂੰ ਮੌਜੂਦਾ ਪੰਨੇ ਦੀ ਵਰਤੋਂ ਕਰਨ ਦਿਓ</translation> <translation id="1853692000353488670">ਨਵੀਂ ਇਨਕੋਗਨਿਟੋ ਟੈਬ</translation> <translation id="1856325424225101786">ਕੀ ਲਾਈਟ ਮੋਡ ਰੀਸੈੱਟ ਕਰਨਾ ਹੈ?</translation> <translation id="1868024384445905608">Chrome ਹੁਣ ਫ਼ਾਈਲਾਂ ਵਧੇਰੇ ਤੇਜ਼ੀ ਨਾਲ ਡਾਊਨਲੋਡ ਕਰਦਾ ਹੈ</translation> @@ -477,6 +478,7 @@ ਇਸ ਸੈਟਿੰਗ ਨੂੰ ਬਦਲਣ ਲਈ, <ph name="BEGIN_LINK" />ਸਮਕਾਲੀਕਰਨ ਨੂੰ ਰੀਸੈੱਟ ਕਰੋ<ph name="END_LINK" /></translation> <translation id="4807098396393229769">ਕਾਰਡ ਤੇ ਨਾਮ</translation> +<translation id="4818017973810341238"><ph name="VIOLATED_URL" /> 'ਤੇ ਡਿਜੀਟਲ ਸੰਪਤੀ ਵਾਲੇ ਲਿੰਕਾਂ ਦੀ ਪੁਸ਼ਟੀ ਅਸਫਲ ਹੋਈ</translation> <translation id="4824958205181053313">ਕੀ ਸਮਕਾਲੀਕਰਨ ਰੱਦ ਕਰਨਾ ਹੈ?</translation> <translation id="4835385943915508971">Chrome ਦੀ ਬੇਨਤੀ ਕੀਤੇ ਸਰੋਤ 'ਤੇ ਪਹੁੰਚ ਨਹੀਂ ਹੈ।</translation> <translation id="4837753911714442426">ਪੰਨਾ ਪ੍ਰਿੰਟ ਕਰਨ ਲਈ ਵਿਕਲਪਾਂ ਨੂੰ ਖੋਲ੍ਹੋ</translation> @@ -911,6 +913,7 @@ <translation id="7981313251711023384">ਵਧੇਰੇ ਤੇਜ਼ੀ ਨਾਲ ਬ੍ਰਾਊਜ਼ਿੰਗ ਅਤੇ ਖੋਜ ਕਰਨ ਲਈ ਪੰਨੇ ਪਹਿਲਾਂ ਤੋਂ ਲੋਡ ਕਰੋ</translation> <translation id="79859296434321399">ਸੰਵਰਧਿਤ ਵਾਸਤਵਿਕਤਾ ਵਾਲੀ ਸਮੱਗਰੀ ਦੇਖਣ ਲਈ, ARCore ਸਥਾਪਤ ਕਰੋ</translation> <translation id="7986741934819883144">ਇੱਕ ਸੰਪਰਕ ਚੁਣੋ</translation> +<translation id="799806351373751710">ਸਮਕਾਲੀਕਰਨ ਸੈੱਟਅੱਪ ਰੱਦ ਕਰੋ</translation> <translation id="7998918019931843664">ਬੰਦ ਕੀਤੀ ਟੈਬ ਦੁਬਾਰਾ ਖੋਲ੍ਹੋ</translation> <translation id="8004582292198964060">ਬ੍ਰਾਊਜ਼ਰ</translation> <translation id="8013372441983637696">ਇਸ ਡੀਵਾਈਸ ਤੋਂ ਤੁਹਾਡਾ Chrome ਡਾਟਾ ਵੀ ਕਲੀਅਰ ਕਰੋ</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_pt-PT.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_pt-PT.xtb index a6cfe67..b62a1e6 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_pt-PT.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_pt-PT.xtb
@@ -102,6 +102,7 @@ <translation id="1810845389119482123">A configuração da sincronização inicial não está concluída</translation> <translation id="1821253160463689938">Utiliza cookies para memorizar as suas preferências, mesmo que não visite essas páginas.</translation> <translation id="1829244130665387512">Localizar na página</translation> +<translation id="1843805151597803366">Para obter melhores traduções, permita que a Pesquisa Google utilize a página atual.</translation> <translation id="1853692000353488670">Novo separador anónimo</translation> <translation id="1856325424225101786">Pretende repor o Modo Lite?</translation> <translation id="1868024384445905608">O Chrome agora transfere os ficheiros mais rapidamente.</translation> @@ -477,6 +478,7 @@ Para alterar esta definição, <ph name="BEGIN_LINK" />reponha a sincronização<ph name="END_LINK" />.</translation> <translation id="4807098396393229769">Nome no cartão</translation> +<translation id="4818017973810341238">Falha ao validar os Digital Asset Links em <ph name="VIOLATED_URL" /></translation> <translation id="4824958205181053313">Pretende cancelar a sincronização?</translation> <translation id="4835385943915508971">O Chrome não tem acesso ao recurso solicitado.</translation> <translation id="4837753911714442426">Abrir opções para imprimir página</translation> @@ -911,6 +913,7 @@ <translation id="7981313251711023384">Pré-carregar as páginas para uma navegação e uma pesquisa mais rápidas</translation> <translation id="79859296434321399">Para ver conteúdo de realidade aumentada, instale o ARCore.</translation> <translation id="7986741934819883144">Selecionar um contacto</translation> +<translation id="799806351373751710">Cancelar configuração da sincronização</translation> <translation id="7998918019931843664">Reabrir separador fechado</translation> <translation id="8004582292198964060">Navegador</translation> <translation id="8013372441983637696">Limpar também os dados do Chrome deste dispositivo</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 be28ddd..8ec9542 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
@@ -102,6 +102,7 @@ <translation id="1810845389119482123">Configurarea inițială a sincronizării nu este finalizată</translation> <translation id="1821253160463689938">Folosește cookie-uri pentru a-ți reține preferințele, chiar dacă nu accesezi paginile respective</translation> <translation id="1829244130665387512">Găsește în pagină</translation> +<translation id="1843805151597803366">Pentru traduceri mai bune, lasă Căutarea Google să folosească pagina actuală</translation> <translation id="1853692000353488670">Filă incognito nouă</translation> <translation id="1856325424225101786">Resetezi modul Lite?</translation> <translation id="1868024384445905608">Acum Chrome descarcă mai rapid fișierele</translation> @@ -477,6 +478,7 @@ Pentru a modifica această setare, <ph name="BEGIN_LINK" />resetează sincronizarea<ph name="END_LINK" /></translation> <translation id="4807098396393229769">Numele de pe card</translation> +<translation id="4818017973810341238">Nu s-a verificat Digital Asset Links pentru <ph name="VIOLATED_URL" /></translation> <translation id="4824958205181053313">Anulezi sincronizarea?</translation> <translation id="4835385943915508971">Chrome nu are acces la resursa solicitată.</translation> <translation id="4837753911714442426">Deschide opțiunile pentru a printa pagina</translation> @@ -911,6 +913,7 @@ <translation id="7981313251711023384">Preîncarcă paginile pentru navigare și căutare mai rapide</translation> <translation id="79859296434321399">Pentru a vedea conținut din realitatea augmentată, instalează ARCore</translation> <translation id="7986741934819883144">Selectează o persoană de contact</translation> +<translation id="799806351373751710">Anulează configurarea sincronizării</translation> <translation id="7998918019931843664">Redeschideți fila închisă</translation> <translation id="8004582292198964060">Browser</translation> <translation id="8013372441983637696">Șterge și datele Chrome de pe acest dispozitiv</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_ru.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_ru.xtb index d31f38d..7da0d7f1 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_ru.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_ru.xtb
@@ -7,6 +7,7 @@ <translation id="1036727731225946849">Добавление файла "<ph name="WEBAPK_NAME" />"…</translation> <translation id="1041308826830691739">От сайтов</translation> <translation id="1045899828449635435">Удалить эти данные?</translation> +<translation id="1047303875618851375">Браузеру Chrome не удалось проверить ваши данные.</translation> <translation id="1049743911850919806">Инкогнито</translation> <translation id="10614374240317010">Сайты, пароли для которых не сохраняются</translation> <translation id="1067922213147265141">Другие сервисы Google</translation> @@ -449,6 +450,7 @@ <translation id="4650364565596261010">По умолчанию</translation> <translation id="465657074423018424">Функция "Безопасный просмотр" защищает вас от вводящих в заблуждение сайтов. После ее отключения будьте особенно осторожны, посещая сайты, прежде всего когда вводите пароли.</translation> <translation id="4662373422909645029">Название не должно содержать цифры.</translation> +<translation id="4663499661119906179">Интересные сайты и новости для вас</translation> <translation id="4663756553811254707">Удалено закладок: <ph name="NUMBER_OF_BOOKMARKS" /></translation> <translation id="4665282149850138822">Сайт <ph name="NAME" /> добавлен на главный экран</translation> <translation id="4668347365065281350">Все данные, хранимые на устройстве сайтами, включая файлы cookie.</translation> @@ -461,6 +463,7 @@ <translation id="4719927025381752090">Предлагать перевести</translation> <translation id="4720023427747327413">Открыть в <ph name="PRODUCT_NAME" /></translation> <translation id="4720982865791209136">Помогите улучшить Chrome. <ph name="BEGIN_LINK" />Пройти опрос<ph name="END_LINK" /></translation> +<translation id="47217992755561375">Интересные вам сайты</translation> <translation id="4732120983431207637">Stack Unwinder</translation> <translation id="473775607612524610">Обновить</translation> <translation id="4738836084190194332">Последняя синхронизация: <ph name="WHEN" /></translation> @@ -558,6 +561,7 @@ <translation id="5433691172869980887">Имя пользователя скопировано</translation> <translation id="543509235395288790">Скачивание файлов: <ph name="COUNT" /> (<ph name="MEGABYTES" /> МБ).</translation> <translation id="5441522332038954058">Перейти к адресной строке</translation> +<translation id="544776284582297024">Нажмите эту кнопку, чтобы открыть новую вкладку или переключиться на другую.</translation> <translation id="545042621069398927">Ускорение скачивания…</translation> <translation id="5456381639095306749">Скачать страницу</translation> <translation id="548278423535722844">Показать на карте</translation> @@ -633,6 +637,7 @@ <translation id="5942872142862698679">Google используется как поисковая система по умолчанию</translation> <translation id="5952764234151283551">Отправлять в Google URL страниц, которые вы пытаетесь открыть</translation> <translation id="5956665950594638604">Открыть Справочный центр Chrome в новой вкладке</translation> +<translation id="5957442310066583693">Нажмите эту кнопку, чтобы увидеть интересные вам сайты</translation> <translation id="5958275228015807058">Скачанные файлы и веб-страницы хранятся в одноименном разделе.</translation> <translation id="5962718611393537961">Нажмите, чтобы свернуть</translation> <translation id="5964805880140440652">Чтобы открыть доступ к этой странице другому устройству, откройте настройки Chrome и включите синхронизацию.</translation> @@ -724,10 +729,12 @@ <translation id="6583199322650523874">Добавить страницу в закладки</translation> <translation id="6588043302623806746">Использовать безопасный DNS-сервер</translation> <translation id="6590471736817333463">Экономьте до 60 % трафика</translation> +<translation id="6590680911007613645">Убедитесь, что пароль, который вы сохраняете, совпадает с паролем для сайта <ph name="SITE" />.</translation> <translation id="6593061639179217415">Версия для ПК</translation> <translation id="6597891566292541626">Поместите QR-код или штрихкод в эту рамку.</translation> <translation id="6600954340915313787">Скопировано в Chrome</translation> <translation id="661266467055912436">Делает Интернет безопаснее для вас и других пользователей.</translation> +<translation id="6618554661997243500">Нажмите эту кнопку, чтобы увидеть интересные вам сайты и новости</translation> <translation id="6627583120233659107">Изменить папку</translation> <translation id="6643016212128521049">Удалить</translation> <translation id="6643649862576733715">Сортировать по объему сохраненного трафика</translation> @@ -788,6 +795,7 @@ <translation id="7077143737582773186">SD-карта</translation> <translation id="7080806333218412752">Обеспечивает отправку URL на проверку по критериям Безопасного просмотра. Кроме того с целью выявления новых угроз отправляется на анализ небольшая выборка страниц, скачанных файлов и сведений об использовании расширений, а также информация о системе. Когда выполнен вход в аккаунт Google, между этими данными и аккаунтом временно устанавливается связь, чтобы вы были защищены во время работы с различными приложениями Google.</translation> <translation id="7088681679121566888">У вас установлена новейшая версия Chrome.</translation> +<translation id="7106762743910369165">Этим браузером управляет ваша организация.</translation> <translation id="7121362699166175603">Удаление истории и вариантов автозаполнения в адресной строке. Информация о других ваших действиях в Интернете может также храниться на странице <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" />.</translation> <translation id="7128355412245153445">Нужные сайты и недавние статьи – одним нажатием кнопки.</translation> <translation id="7138678301420049075">Другое</translation> @@ -1030,6 +1038,7 @@ <translation id="8993760627012879038">Открыть новое окно в режиме инкогнито</translation> <translation id="8996847606757455498">Выбрать другого поставщика</translation> <translation id="8998729206196772491">Вы входите в аккаунт, которым управляет администратор домена <ph name="MANAGED_DOMAIN" />. Он может контролировать ваши данные Chrome, которые теперь будут связаны с управляемым аккаунтом. При выходе из системы все данные Chrome, хранящиеся на этом устройстве, будут удалены, но останутся в вашем аккаунте Google.</translation> +<translation id="9022774213089566801">Часто посещаемые</translation> <translation id="9028914725102941583">Включите синхронизацию</translation> <translation id="9040142327097499898">Отправка уведомлений разрешена, но определение местоположения отключено.</translation> <translation id="9041669420854607037">{FILE_COUNT,plural, =1{# видеофайл}one{# видеофайл}few{# видеофайла}many{# видеофайлов}other{# видеофайла}}</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 c4997b1..baebbc7 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
@@ -102,6 +102,7 @@ <translation id="1810845389119482123">Úvodné nastavenie synchronizácie nebolo dokončené</translation> <translation id="1821253160463689938">Používa súbory cookie na zapamätanie si predvolieb, dokonca aj keď dané stránky nenavštívite</translation> <translation id="1829244130665387512">Nájsť na stránke</translation> +<translation id="1843805151597803366">V záujme lepších prekladov umožnite Vyhľadávaniu Google používať aktuálnu stránku</translation> <translation id="1853692000353488670">Nová karta inkognito</translation> <translation id="1856325424225101786">Chcete zjednodušený režim obnoviť?</translation> <translation id="1868024384445905608">Chrome teraz sťahuje súbory rýchlejšie</translation> @@ -477,6 +478,7 @@ Ak chcete toto nastavenie zmeniť, <ph name="BEGIN_LINK" />resetujte synchronizáciu<ph name="END_LINK" /></translation> <translation id="4807098396393229769">Meno na karte</translation> +<translation id="4818017973810341238">Overenie odkazov na digitálne aktíva na <ph name="VIOLATED_URL" /> bolo neúspešné</translation> <translation id="4824958205181053313">Chcete zrušiť synchronizáciu?</translation> <translation id="4835385943915508971">Chrome nemá prístup k požadovanému zdroju.</translation> <translation id="4837753911714442426">Otvorenie možností tlače stránky</translation> @@ -911,6 +913,7 @@ <translation id="7981313251711023384">Vopred načítavať stránky na zrýchlenie prehliadania a vyhľadávania</translation> <translation id="79859296434321399">Ak chcete zobraziť obsah v rozšírenej realite, nainštalujte si ARCore</translation> <translation id="7986741934819883144">Výber kontaktu</translation> +<translation id="799806351373751710">Zrušiť nastavenie synchronizácie</translation> <translation id="7998918019931843664">Znova otvoriť zavretú kartu</translation> <translation id="8004582292198964060">Prehliadač</translation> <translation id="8013372441983637696">Tiež vymazať údaje Chromu z tohto zariadenia</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_sq.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_sq.xtb index 575ef7f..a8e4b1d 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_sq.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_sq.xtb
@@ -102,6 +102,7 @@ <translation id="1810845389119482123">Konfigurimi i sinkronizimit fillestar nuk ka përfunduar</translation> <translation id="1821253160463689938">Përdor kuki për të kujtuar preferencat e tua, edhe nëse nuk i viziton ato faqe</translation> <translation id="1829244130665387512">Gjej në faqe</translation> +<translation id="1843805151597803366">Për të marrë përkthime më të mira, lejo që "Kërko në Google" të përdorë faqen aktuale</translation> <translation id="1853692000353488670">Skedë e re e fshehtë</translation> <translation id="1856325424225101786">Të rivendoset "Modaliteti i lehtë"?</translation> <translation id="1868024384445905608">Chrome tani i shkarkon skedarët më shpejt</translation> @@ -477,6 +478,7 @@ Për të ndryshuar këtë cilësim, <ph name="BEGIN_LINK" />rivendos sinkronizimin<ph name="END_LINK" /></translation> <translation id="4807098396393229769">Emri në kartë</translation> +<translation id="4818017973810341238">Dështoi verifikimi i Digital Asset Links në <ph name="VIOLATED_URL" /></translation> <translation id="4824958205181053313">Të anulohet sinkronizimi?</translation> <translation id="4835385943915508971">Chrome nuk ka qasje te burimi i kërkuar.</translation> <translation id="4837753911714442426">Hap opsionet për të printuar faqen</translation> @@ -911,6 +913,7 @@ <translation id="7981313251711023384">Ngarkoji paraprakisht faqet për shfletim dhe kërkim më të shpejtë</translation> <translation id="79859296434321399">Për të parë përmbajtje realiteti të zgjeruar, instalo ARCore</translation> <translation id="7986741934819883144">Zgjidh një kontakt</translation> +<translation id="799806351373751710">Anulo konfigurimin e sinkronizimit</translation> <translation id="7998918019931843664">Rihap skedën e mbyllur</translation> <translation id="8004582292198964060">Shfletuesi</translation> <translation id="8013372441983637696">Pastro po ashtu të dhënat e tua të Chrome nga kjo pajisje</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_sv.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_sv.xtb index 89e7850..15a9e4a 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_sv.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_sv.xtb
@@ -102,6 +102,7 @@ <translation id="1810845389119482123">Konfigurationen av synkronisering har inte slutförts</translation> <translation id="1821253160463689938">Kommer ihåg med hjälp av cookies vad du brukar välja även om du inte besöker sidorna i fråga</translation> <translation id="1829244130665387512">Hitta på sida</translation> +<translation id="1843805151597803366">Låt Google Sök använda den aktuella sidan så att du får bättre översättningar</translation> <translation id="1853692000353488670">Ny inkognitoflik</translation> <translation id="1856325424225101786">Vill du återställa begränsat läge?</translation> <translation id="1868024384445905608">Nu laddas filer ned snabbare i Chrome</translation> @@ -477,6 +478,7 @@ <ph name="BEGIN_LINK" />Återställ synkroniseringen<ph name="END_LINK" /> om du vill ändra den här inställningen.</translation> <translation id="4807098396393229769">Namn på kort</translation> +<translation id="4818017973810341238">Verifieringen av länkar till digitala tillgångar misslyckades för <ph name="VIOLATED_URL" /></translation> <translation id="4824958205181053313">Vill du avbryta synkroniseringen?</translation> <translation id="4835385943915508971">Chrome har inte tillgång till den begärda resursen.</translation> <translation id="4837753911714442426">Öppna utskriftsalternativ</translation> @@ -911,6 +913,7 @@ <translation id="7981313251711023384">Läs in sidor i förväg så att det går snabbare att surfa och söka</translation> <translation id="79859296434321399">Installera ARCore om du vill visa innehåll med förstärkt verklighet</translation> <translation id="7986741934819883144">Välj en kontakt</translation> +<translation id="799806351373751710">Avbryt och konfigurera inte synkronisering</translation> <translation id="7998918019931843664">Öppna en stängd flik på nytt</translation> <translation id="8004582292198964060">Webbläsare</translation> <translation id="8013372441983637696">Rensa även Chrome-data från enheten</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_ta.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_ta.xtb index aa823c0..51fa5c24 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_ta.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_ta.xtb
@@ -7,6 +7,7 @@ <translation id="1036727731225946849"><ph name="WEBAPK_NAME" />ஐச் சேர்க்கிறது...</translation> <translation id="1041308826830691739">இணையதளங்களிலிருந்து</translation> <translation id="1045899828449635435">இந்தத் தளங்களில் இருந்தும் தரவை அழிக்க வேண்டுமா?</translation> +<translation id="1047303875618851375">Chromeமால் உங்கள் தகவல்களைச் சரிபார்க்க முடியவில்லை</translation> <translation id="1049743911850919806">மறைநிலை</translation> <translation id="10614374240317010">எப்போதும் சேமிக்காதவை</translation> <translation id="1067922213147265141">பிற Google சேவைகள்</translation> @@ -449,6 +450,7 @@ <translation id="4650364565596261010">சிஸ்டத்தின் இயல்புநிலை</translation> <translation id="465657074423018424">பாதுகாப்பு உலாவல் ஏமாற்றும் வகையிலான இணையதளங்களிலிருந்து உங்களைப் பாதுகாக்கிறது. இதை முடக்கினால் உலாவும்போது, அதிலும் குறிப்பாகக் கடவுச்சொற்களை உள்ளிடும்போது அதிகக் கவனத்துடன் இருப்பது அவசியம்.</translation> <translation id="4662373422909645029">புனைப்பெயரில் எண்கள் இருக்கக்கூடாது</translation> +<translation id="4663499661119906179">நீங்கள் அடிக்கடிப் பயன்படுத்தும் தளங்களையும் செய்திகளையும் பார்க்கலாம்</translation> <translation id="4663756553811254707"><ph name="NUMBER_OF_BOOKMARKS" /> புக்மார்க்குகள் நீக்கப்பட்டன</translation> <translation id="4665282149850138822"><ph name="NAME" /> உங்கள் முகப்புத் திரையில் சேர்க்கப்பட்டது</translation> <translation id="4668347365065281350">குக்கீகள், சாதனத்தில் சேமிக்கப்பட்ட பிற தரவுகள் உட்பட தளங்கள் மூலம் சேமிக்கப்பட்ட தரவுகள் அனைத்தும்</translation> @@ -461,6 +463,7 @@ <translation id="4719927025381752090">மொழிபெயர்ப்பதற்கான சலுகை</translation> <translation id="4720023427747327413"><ph name="PRODUCT_NAME" />இல் திற</translation> <translation id="4720982865791209136">Chromeஐ மேம்படுத்த உதவவும். <ph name="BEGIN_LINK" />கருத்துக்கணிப்பில் பங்கேற்கவும்<ph name="END_LINK" /></translation> +<translation id="47217992755561375">நீங்கள் அடிக்கடிப் பயன்படுத்தும் தளங்களைப் பார்க்கலாம்</translation> <translation id="4732120983431207637">ஸ்டேக் அன்வைண்டர்</translation> <translation id="473775607612524610">புதுப்பி</translation> <translation id="4738836084190194332">கடைசியாக ஒத்திசைத்தது: <ph name="WHEN" /></translation> @@ -558,6 +561,7 @@ <translation id="5433691172869980887">பயனர்பெயர் நகலெடுக்கப்பட்டது</translation> <translation id="543509235395288790"><ph name="COUNT" /> கோப்புகளைப் பதிவிறக்குகிறது (<ph name="MEGABYTES" />).</translation> <translation id="5441522332038954058">முகவரிப் பட்டிக்குச் செல்லும்</translation> +<translation id="544776284582297024">ஒரே நேரத்தில் தாவல்களைத் திறந்து வெவ்வேறு பக்கங்களைப் பார்வையிட, 'திறக்கப்பட்டுள்ள தாவல்கள்' பட்டனைத் தட்டவும்</translation> <translation id="545042621069398927">பதிவிறக்கத்தின் வேகத்தை அதிகப்படுத்துகிறது.</translation> <translation id="5456381639095306749">பக்கத்தைப் பதிவிறக்குக</translation> <translation id="548278423535722844">வரைபடப் பயன்பாட்டில் திற</translation> @@ -633,6 +637,7 @@ <translation id="5942872142862698679">தேடலுக்கு Googleளைப் பயன்படுத்துகிறீர்கள்</translation> <translation id="5952764234151283551">நீங்கள் செல்ல முயலும் பக்கத்தின் URLலை Googleளுக்கு அனுப்பும்</translation> <translation id="5956665950594638604">Chrome உதவி மையத்தைப் புதிய தாவலில் திறக்கும்</translation> +<translation id="5957442310066583693">நீங்கள் அடிக்கடிப் பயன்படுத்தும் தளங்களைப் பார்க்க, முகப்புப் பட்டனைத் தட்டவும்</translation> <translation id="5958275228015807058">பதிவிறக்கங்கள் என்பதில் கோப்புகளையும் பக்கங்களையும் கண்டறியலாம்</translation> <translation id="5962718611393537961">சுருக்க, தட்டவும்</translation> <translation id="5964805880140440652">வேறொரு சாதனத்திற்கு இந்தப் பக்கத்தைப் பகிர, Chrome அமைப்புகளில் உள்ள 'ஒத்திசை' என்பதை இயக்கவும்</translation> @@ -724,10 +729,12 @@ <translation id="6583199322650523874">தற்போதைய பக்கத்தைப் புத்தகக்குறியிடும்</translation> <translation id="6588043302623806746">பாதுகாப்பான DNSஸைப் பயன்படுத்து</translation> <translation id="6590471736817333463">60% வரை டேட்டாவைச் சேமியுங்கள்</translation> +<translation id="6590680911007613645">நீங்கள் சேமிக்கும் கடவுச்சொல் <ph name="SITE" /> தளத்திற்கான கடவுச்சொல்லுடன் பொருந்துவதை உறுதிசெய்துகொள்ளவும்</translation> <translation id="6593061639179217415">டெஸ்க்டாப் தளம்</translation> <translation id="6597891566292541626">இந்த ஃப்ரேமில் QR/பார்கோடு தெரியுமாறு வைக்கவும்.</translation> <translation id="6600954340915313787">Chromeக்கு நகலெடுக்கப்பட்டது</translation> <translation id="661266467055912436">வலையில் உள்ள உங்களுக்கும் அனைவருக்கும் பாதுகாப்பை மேம்படுத்தும்.</translation> +<translation id="6618554661997243500">நீங்கள் அடிக்கடிப் பயன்படுத்தும் தளங்களையும் செய்திகளையும் பார்க்க, முகப்புப் பட்டனைத் தட்டவும்</translation> <translation id="6627583120233659107">கோப்புறையைத் திருத்து</translation> <translation id="6643016212128521049">அழி</translation> <translation id="6643649862576733715">சேமித்த தரவு அளவின்படி வரிசைப்படுத்தும்</translation> @@ -788,6 +795,7 @@ <translation id="7077143737582773186">SD கார்டு</translation> <translation id="7080806333218412752">URLகளைச் சரிபார்க்கும் வகையில் அவற்றைப் பாதுகாப்பு உலாவலுக்கு அனுப்பும். புதிய அச்சுறுத்தல்களைக் கண்டறிவதற்கு உதவ பக்கங்கள், பதிவிறக்கங்கள், நீட்டிப்புச் செயல்பாடு, சிஸ்டம் தகவல் போன்ற சிலவற்றையும் அனுப்பும். Google ஆப்ஸ் முழுவதும் உங்களைப் பாதுகாக்க நீங்கள் உள்நுழைந்திருக்கும்போது இந்தத் தரவை உங்கள் Google கணக்கில் தற்காலிகமாக இணைக்கும்.</translation> <translation id="7088681679121566888">Chrome சமீபத்திய பதிப்பில் உள்ளது</translation> +<translation id="7106762743910369165">உங்கள் உலாவியை உங்கள் நிறுவனம் நிர்வகிக்கிறது</translation> <translation id="7121362699166175603">முகவரிப் பட்டியில் வரலாற்றையும் தானே நிரப்புதலையும் அழிக்கும். உங்கள் Google கணக்கு, <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" /> என்ற இணைப்பில் உலாவல் வரலாறு தொடர்பான பிற தகவல்களைக் கொண்டிருக்கக்கூடும்.</translation> <translation id="7128355412245153445">முகப்புப் பட்டனைத் தட்டும்போது நீங்கள் அடிக்கடிப் பயன்படுத்தும் தளங்களையும் சமீபத்திய செய்திகளையும் காட்டும்</translation> <translation id="7138678301420049075">மற்றவை</translation> @@ -1030,6 +1038,7 @@ <translation id="8993760627012879038">புதிய தாவலை மறைநிலையில் திறக்கும்</translation> <translation id="8996847606757455498">மற்றொரு வழங்குநரைத் தேர்வுசெய்க</translation> <translation id="8998729206196772491"><ph name="MANAGED_DOMAIN" /> நிர்வகிக்கும் கணக்கில் உள்நுழைந்து, உங்கள் Chrome தரவு மீதான கட்டுப்பாட்டை அதன் நிர்வாகிக்கு வழங்குகிறீர்கள். இந்தக் கணக்குடன் தரவு நிரந்தரமாக இணைக்கப்படும். Chromeமிலிருந்து வெளியேறினால், இந்தச் சாதனத்திலிருந்து தரவு நீக்கப்படும், எனினும் உங்கள் Google கணக்கில் தரவு தொடர்ந்து இருக்கும்.</translation> +<translation id="9022774213089566801">அடிக்கடிப் பார்வையிட்டவை</translation> <translation id="9028914725102941583">பல சாதனங்களுக்கிடையில் பகிர ஒத்திசைவை ஆன் செய்யவும்</translation> <translation id="9040142327097499898">அறிவிப்புகள் அனுமதிக்கப்படுகின்றன. இந்தச் சாதனத்திற்கான இருப்பிடம் முடக்கப்பட்டுள்ளது.</translation> <translation id="9041669420854607037">{FILE_COUNT,plural, =1{# வீடியோ}other{# வீடியோக்கள்}}</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 3e1a070..cba5202 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
@@ -102,6 +102,7 @@ <translation id="1810845389119482123">ప్రారంభ సింక్ సెటప్ పూర్తి కాలేదు</translation> <translation id="1821253160463689938">మీ ప్రాధాన్యతలను గుర్తుంచుకోవడానికి కుక్కీలను ఉపయోగిస్తుంది, మీరు ఆ పేజీలను సందర్శించకపోయినా కూడా అది అమలవుతుంది</translation> <translation id="1829244130665387512">పేజీలో కనుగొను</translation> +<translation id="1843805151597803366">మెరుగైన అనువాదాలను పొందడానికి, Google Searchను ప్రస్తుత పేజీని ఉపయోగించడానికి అనుమతించండి</translation> <translation id="1853692000353488670">కొత్త అజ్ఞాత ట్యాబ్</translation> <translation id="1856325424225101786">లైట్ మోడ్ని రీసెట్ చేయాలా?</translation> <translation id="1868024384445905608">Chrome ఇప్పుడు ఫైల్లను మరింత వేగంగా డౌన్లోడ్ చేస్తుంది</translation> @@ -477,6 +478,7 @@ ఈ సెట్టింగ్ని మార్చడం కోసం, <ph name="BEGIN_LINK" />సమకాలీకరణను రీసెట్ చేయండి<ph name="END_LINK" /></translation> <translation id="4807098396393229769">కార్డ్పై పేరు</translation> +<translation id="4818017973810341238">డిజిటల్ అస్సెట్ లింక్ల వెరిఫికేషన్ <ph name="VIOLATED_URL" /> వద్ద విఫలమైంది</translation> <translation id="4824958205181053313">సింక్ను రద్దు చేయాలా?</translation> <translation id="4835385943915508971">Chrome అభ్యర్థించిన వనరుకు యాక్సెస్ కలిగి లేదు.</translation> <translation id="4837753911714442426">పేజీని ముద్రించడానికి ఎంపికలను తెరవండి</translation> @@ -911,6 +913,7 @@ <translation id="7981313251711023384">వేగవంతమైన బ్రౌజింగ్ మరియు శోధన కోసం పేజీలను ముందస్తుగా లోడ్ చేస్తుంది</translation> <translation id="79859296434321399">మెరుగైన వాస్తవిక అనుభవ కంటెంట్ను చూడడానికి, ARCoreని ఇన్స్టాల్ చేయండి</translation> <translation id="7986741934819883144">పరిచయాన్ని ఎంచుకోండి</translation> +<translation id="799806351373751710">సెటప్ సింక్ను రద్దు చేయి</translation> <translation id="7998918019931843664">మూసిన ట్యాబ్ను మళ్లీ తెరువు</translation> <translation id="8004582292198964060">బ్రౌజర్</translation> <translation id="8013372441983637696">అలాగే, ఈ పరికరం నుండి మీ Chrome డేటాను కూడా తీసివేయండి</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 e5d7ade..b1ec1e42 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
@@ -102,6 +102,7 @@ <translation id="1810845389119482123">ตั้งค่าการซิงค์เริ่มต้นไม่สำเร็จ</translation> <translation id="1821253160463689938">ใช้คุกกี้เพื่อให้จดจำค่ากำหนดของคุณ แม้ว่าคุณไม่ได้เข้าชมหน้าเว็บเหล่านั้น</translation> <translation id="1829244130665387512">ค้นหาในหน้าเว็บ</translation> +<translation id="1843805151597803366">ให้ Google Search ใช้งานหน้าปัจจุบันเพื่อรับการแปลที่ดีขึ้น</translation> <translation id="1853692000353488670">แท็บใหม่ที่ไม่ระบุตัวตน</translation> <translation id="1856325424225101786">รีเซ็ตโหมด Lite ไหม</translation> <translation id="1868024384445905608">ตอนนี้ Chrome ดาวน์โหลดไฟล์ได้เร็วขึ้นแล้ว</translation> @@ -477,6 +478,7 @@ หากต้องการเปลี่ยนแปลงการตั้งค่านี้ ให้<ph name="BEGIN_LINK" />รีเซ็ตการซิงค์<ph name="END_LINK" /></translation> <translation id="4807098396393229769">ชื่อบนบัตร</translation> +<translation id="4818017973810341238">ยืนยันลิงก์เนื้อหาดิจิทัลบน <ph name="VIOLATED_URL" /> ไม่สำเร็จ</translation> <translation id="4824958205181053313">ยกเลิกการซิงค์ใช่ไหม</translation> <translation id="4835385943915508971">Chrome ไม่มีสิทธิ์เข้าถึงทรัพยากรที่ขอ</translation> <translation id="4837753911714442426">เปิดตัวเลือกในการพิมพ์หน้า</translation> @@ -911,6 +913,7 @@ <translation id="7981313251711023384">โหลดหน้าเว็บล่วงหน้าเพื่อให้เรียกดูและค้นหาได้เร็วขึ้น</translation> <translation id="79859296434321399">ติดตั้ง ARCore เพื่อดูเนื้อหา Augmented Reality</translation> <translation id="7986741934819883144">เลือกรายชื่อติดต่อ</translation> +<translation id="799806351373751710">ยกเลิกการตั้งค่าซิงค์</translation> <translation id="7998918019931843664">เปิดแท็บที่ปิดไปแล้วขึ้นใหม่</translation> <translation id="8004582292198964060">เบราว์เซอร์</translation> <translation id="8013372441983637696">ล้างข้อมูล Chrome ของคุณออกจากอุปกรณ์นี้ด้วย</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_uk.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_uk.xtb index 35e272f..bb411a1 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_uk.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_uk.xtb
@@ -102,6 +102,7 @@ <translation id="1810845389119482123">Початкове налаштування синхронізації не завершено</translation> <translation id="1821253160463689938">Використовує файли cookie, щоб зберігати налаштування, навіть якщо ви не відвідуєте ці сторінки</translation> <translation id="1829244130665387512">Знайти на сторінці</translation> +<translation id="1843805151597803366">Щоб отримати кращий переклад, надайте Пошуку Google доступ до поточної сторінки</translation> <translation id="1853692000353488670">Нова анонімна вкладка</translation> <translation id="1856325424225101786">Скинути спрощений режим?</translation> <translation id="1868024384445905608">Тепер Chrome завантажує файли швидше</translation> @@ -477,6 +478,7 @@ Щоб змінити це налаштування, <ph name="BEGIN_LINK" />скиньте параметри синхронізації<ph name="END_LINK" /></translation> <translation id="4807098396393229769">Ім'я на картці</translation> +<translation id="4818017973810341238">Не вдалося підтвердити Digital Asset Links на сторінці <ph name="VIOLATED_URL" /></translation> <translation id="4824958205181053313">Скасувати синхронізацію?</translation> <translation id="4835385943915508971">Chrome не має доступу до потрібного ресурсу.</translation> <translation id="4837753911714442426">Відкрити налаштування друку сторінки</translation> @@ -911,6 +913,7 @@ <translation id="7981313251711023384">Попередньо завантажувати сторінки, щоб швидше переглядати та шукати</translation> <translation id="79859296434321399">Щоб переглядати вміст у режимі доповненої реальності, установіть ARCore</translation> <translation id="7986741934819883144">Виберіть контакт</translation> +<translation id="799806351373751710">Скасувати синхронізацію налаштувань</translation> <translation id="7998918019931843664">Знову відкрити закриту вкладку</translation> <translation id="8004582292198964060">Переглядач</translation> <translation id="8013372441983637696">Також видалити дані Chrome із цього пристрою</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_ur.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_ur.xtb index d939f34..ddd8189a71 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_ur.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_ur.xtb
@@ -102,6 +102,7 @@ <translation id="1810845389119482123">مطابقت پذیر بنانے کا ابتدائی سیٹ اپ مکمل نہیں ہوا</translation> <translation id="1821253160463689938">چاہے آپ وہ صفحات ملاحظہ نہ کریں، تب بھی آپ کی ترجیحات یاد رکھنے کے لیے کوکیز استعمال کرتی ہے</translation> <translation id="1829244130665387512">صفحہ پر تلاش کریں</translation> +<translation id="1843805151597803366">بہتر ترجمے حاصل کرنے کے لیے، Google تلاش کو موجودہ صفحہ استعمال کرنے دیں</translation> <translation id="1853692000353488670">نیا پوشیدگی ٹیب</translation> <translation id="1856325424225101786">لائٹ موڈ ری سیٹ کریں؟</translation> <translation id="1868024384445905608">Chrome اب فائلز کو مزید تیزی سے ڈاؤن لوڈ کرتا ہے</translation> @@ -477,6 +478,7 @@ اس ترتیب کو تبدیل کرنے کیلئے، <ph name="BEGIN_LINK" />مطابقت پذیری کو دوبارہ ترتیب دیں<ph name="END_LINK" /></translation> <translation id="4807098396393229769">کارڈ پر نام</translation> +<translation id="4818017973810341238"><ph name="VIOLATED_URL" /> پر ڈیجیٹل اثاثہ لنکس کی توثیق ناکام ہوگئی</translation> <translation id="4824958205181053313">مطابقت پذیری منسوخ کریں؟</translation> <translation id="4835385943915508971">Chrome کو درخواست کردہ وسیلہ تک رسائی حاصل نہیں ہے۔</translation> <translation id="4837753911714442426">صفحہ پرنٹ کرنے کیلئے اختیارات کھولیں</translation> @@ -911,6 +913,7 @@ <translation id="7981313251711023384">زیادہ تیز براؤزنگ اور تلاش کرنے کے لیے صفحات پہلے سے لوڈ کر لیں</translation> <translation id="79859296434321399">افزودہ حقیقت کا مواد دیکھنے کیلئے، ARCore کو انسٹال کریں</translation> <translation id="7986741934819883144">رابطہ منتخب کریں</translation> +<translation id="799806351373751710">مطابقت پذیری کا سیٹ اپ منسوخ کریں</translation> <translation id="7998918019931843664">بند ٹیب دوبارہ کھولیں</translation> <translation id="8004582292198964060">براؤزر</translation> <translation id="8013372441983637696">اس آلہ سے اپنا Chrome ڈیٹا بھی صاف کریں</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_vi.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_vi.xtb index 9d50e9e..7e4fce26 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_vi.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_vi.xtb
@@ -102,6 +102,7 @@ <translation id="1810845389119482123">Chưa hoàn tất quá trình thiết lập đồng bộ hóa ban đầu</translation> <translation id="1821253160463689938">Sử dụng cookie để ghi nhớ tùy chọn của bạn, ngay cả khi bạn không truy cập vào các trang đó</translation> <translation id="1829244130665387512">Tìm trong trang</translation> +<translation id="1843805151597803366">Để có bản dịch chính xác hơn, hãy cho phép Google Tìm kiếm sử dụng trang hiện tại</translation> <translation id="1853692000353488670">Thẻ ẩn danh mới</translation> <translation id="1856325424225101786">Đặt lại Chế độ thu gọn?</translation> <translation id="1868024384445905608">Giờ đây, Chrome tải tệp xuống còn nhanh hơn nữa</translation> @@ -477,6 +478,7 @@ Để thay đổi tùy chọn 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" /></translation> <translation id="4807098396393229769">Tên trên thẻ</translation> +<translation id="4818017973810341238">Không xác minh được Digital asset links (Đường liên kết đến tài sản kỹ thuật số) trên <ph name="VIOLATED_URL" /></translation> <translation id="4824958205181053313">Bạn muốn hủy đồng bộ hóa?</translation> <translation id="4835385943915508971">Chrome không có quyền truy cập vào tài nguyên đã yêu cầu.</translation> <translation id="4837753911714442426">Mở tùy chọn để in trang</translation> @@ -911,6 +913,7 @@ <translation id="7981313251711023384">Tải trước các trang để tìm kiếm và duyệt web nhanh hơn</translation> <translation id="79859296434321399">Để xem nội dung thực tế tăng cường, hãy cài đặt bộ công cụ ARCore</translation> <translation id="7986741934819883144">Chọn một người liên hệ</translation> +<translation id="799806351373751710">Hủy quá trình thiết lập đồng bộ hóa</translation> <translation id="7998918019931843664">Mở lại thẻ đã đóng</translation> <translation id="8004582292198964060">Trình duyệt</translation> <translation id="8013372441983637696">Xóa cả dữ liệu của bạn trên Chrome khỏi thiết bị này</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 2116ac5..1dd3915 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
@@ -7,6 +7,7 @@ <translation id="1036727731225946849">正在添加<ph name="WEBAPK_NAME" />…</translation> <translation id="1041308826830691739">来自网站</translation> <translation id="1045899828449635435">一并清除以下网站内的数据?</translation> +<translation id="1047303875618851375">Chrome 无法验证您的信息</translation> <translation id="1049743911850919806">无痕</translation> <translation id="10614374240317010">一律不保存</translation> <translation id="1067922213147265141">其他 Google 服务</translation> @@ -449,6 +450,7 @@ <translation id="4650364565596261010">系统默认设置</translation> <translation id="465657074423018424">“安全浏览”功能会保护您免受诈骗网站的侵害。如果您关闭此功能,当浏览网站时(特别是在输入密码之前),请一定多加小心。</translation> <translation id="4662373422909645029">昵称不能包含数字</translation> +<translation id="4663499661119906179">查看为您推荐的热门网站和报道</translation> <translation id="4663756553811254707">已删除 <ph name="NUMBER_OF_BOOKMARKS" /> 个书签</translation> <translation id="4665282149850138822"><ph name="NAME" />已添加到您的主屏幕</translation> <translation id="4668347365065281350">网站存储的所有数据,包括 Cookie 及其他本地存储的数据</translation> @@ -461,6 +463,7 @@ <translation id="4719927025381752090">提供翻译</translation> <translation id="4720023427747327413">在<ph name="PRODUCT_NAME" />中打开</translation> <translation id="4720982865791209136">欢迎帮助我们改进 Chrome。<ph name="BEGIN_LINK" />参与调查<ph name="END_LINK" /></translation> +<translation id="47217992755561375">查看为您推荐的热门网站</translation> <translation id="4732120983431207637">堆栈展开程序</translation> <translation id="473775607612524610">更新</translation> <translation id="4738836084190194332">上次同步时间:<ph name="WHEN" /></translation> @@ -558,6 +561,7 @@ <translation id="5433691172869980887">已复制用户名</translation> <translation id="543509235395288790">正在下载 <ph name="COUNT" /> 个文件(共 <ph name="MEGABYTES" />)。</translation> <translation id="5441522332038954058">跳转到地址栏</translation> +<translation id="544776284582297024">若要打开多个标签页并同时访问不同网页,请点按“打开的标签页”按钮</translation> <translation id="545042621069398927">正在加快您的下载速度。</translation> <translation id="5456381639095306749">下载网页</translation> <translation id="548278423535722844">在地图应用中打开</translation> @@ -633,6 +637,7 @@ <translation id="5942872142862698679">目前使用的搜索引擎是 Google</translation> <translation id="5952764234151283551">将您尝试访问的网页的网址发送给 Google</translation> <translation id="5956665950594638604">在新标签页中打开 Chrome 帮助中心</translation> +<translation id="5957442310066583693">若要查看为您推荐的热门网站,请点按“主屏幕”按钮</translation> <translation id="5958275228015807058">在“下载内容”中查找您的文件和网页</translation> <translation id="5962718611393537961">点按即可收起</translation> <translation id="5964805880140440652">如果想将此页分享到其他设备,请在 Chrome 设置中开启同步</translation> @@ -724,10 +729,12 @@ <translation id="6583199322650523874">为当前网页添加书签</translation> <translation id="6588043302623806746">使用安全 DNS</translation> <translation id="6590471736817333463">节省高达 60% 的数据流量</translation> +<translation id="6590680911007613645">请确保您要保存的密码与您用来登录 <ph name="SITE" /> 的密码相符</translation> <translation id="6593061639179217415">桌面版网站</translation> <translation id="6597891566292541626">将二维码/条形码放到框内。</translation> <translation id="6600954340915313787">已复制到 Chrome</translation> <translation id="661266467055912436">为您以及网络上的所有人提供更好的安全保障。</translation> +<translation id="6618554661997243500">若要查看为您推荐的热门网站和报道,请点按“主屏幕”按钮</translation> <translation id="6627583120233659107">修改文件夹</translation> <translation id="6643016212128521049">清除</translation> <translation id="6643649862576733715">按已节省的数据流量排序</translation> @@ -788,6 +795,7 @@ <translation id="7077143737582773186">SD 卡</translation> <translation id="7080806333218412752">会将网址发送给“安全浏览”功能进行检查。还会发送网页、下载内容、扩展程序活动和系统信息的少量样本,以帮助发现新威胁。而且,会在您登录后暂时将这些数据关联到您的 Google 帐号,以便在各个 Google 应用中为您提供保护。</translation> <translation id="7088681679121566888">Chrome 已是最新版本</translation> +<translation id="7106762743910369165">您的浏览器由贵单位管理</translation> <translation id="7121362699166175603">清除历史记录和地址栏中的自动填充项。您的 Google 帐号在 <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" /> 上可能有其他形式的浏览记录。</translation> <translation id="7128355412245153445">只需点击“主页”按钮,即可查看您所在国家/地区的热门网站和近期报道</translation> <translation id="7138678301420049075">其他</translation> @@ -1030,6 +1038,7 @@ <translation id="8993760627012879038">在无痕模式下打开新标签页</translation> <translation id="8996847606757455498">另选一个提供商</translation> <translation id="8998729206196772491">您正要登录由 <ph name="MANAGED_DOMAIN" /> 管理的帐号,并要授权其管理员控制您的 Chrome 数据。您的数据将与此帐号永久关联。退出 Chrome 后,您的数据将从这台设备上删除,但仍会保留在您的 Google 帐号中。</translation> +<translation id="9022774213089566801">经常访问</translation> <translation id="9028914725102941583">开启同步功能以跨设备分享内容</translation> <translation id="9040142327097499898">允许显示通知。但此设备的位置信息功能已关闭。</translation> <translation id="9041669420854607037">{FILE_COUNT,plural, =1{# 个视频}other{# 个视频}}</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 f1b89d8..4fcd402 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
@@ -102,6 +102,7 @@ <translation id="1810845389119482123">未完成初始同步處理設定</translation> <translation id="1821253160463689938">使用 Cookie 記住您的偏好設定 (即使您沒有瀏覽這些網頁)</translation> <translation id="1829244130665387512">在網頁中尋找</translation> +<translation id="1843805151597803366">如要獲得更佳的翻譯,請允許「Google 搜尋」使用目前的網頁</translation> <translation id="1853692000353488670">新增無痕式分頁</translation> <translation id="1856325424225101786">要重設精簡模式嗎?</translation> <translation id="1868024384445905608">Chrome 現在的檔案下載速度更快了</translation> @@ -477,6 +478,7 @@ 如要變更此設定,請<ph name="BEGIN_LINK" />重設同步功能<ph name="END_LINK" /></translation> <translation id="4807098396393229769">信用卡持有人姓名</translation> +<translation id="4818017973810341238"><ph name="VIOLATED_URL" /> 上的 Digital Asset Links 驗證失敗</translation> <translation id="4824958205181053313">要取消同步功能嗎?</translation> <translation id="4835385943915508971">Chrome 沒有要求資源的存取權。</translation> <translation id="4837753911714442426">開啟列印網頁選項</translation> @@ -911,6 +913,7 @@ <translation id="7981313251711023384">預先載入網頁,以加快瀏覽和搜尋速度</translation> <translation id="79859296434321399">如要觀看擴張實境內容,請先安裝 ARCore</translation> <translation id="7986741934819883144">選取聯絡人</translation> +<translation id="799806351373751710">取消同步設定</translation> <translation id="7998918019931843664">重新開啟先前關閉的分頁</translation> <translation id="8004582292198964060">瀏覽器</translation> <translation id="8013372441983637696">一併清除您在此裝置上的 Chrome 資料</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 6fc6da1..e331b49 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
@@ -102,6 +102,7 @@ <translation id="1810845389119482123">尚未完成初始同步處理設定</translation> <translation id="1821253160463689938">使用 Cookie 記住你的偏好設定 (即使你沒有造訪這些網頁)</translation> <translation id="1829244130665387512">在網頁中尋找</translation> +<translation id="1843805151597803366">如要取得更佳的翻譯,請允許 Google 搜尋使用目前的網頁</translation> <translation id="1853692000353488670">新增無痕式分頁</translation> <translation id="1856325424225101786">要重設精簡模式嗎?</translation> <translation id="1868024384445905608">Chrome 現在的檔案下載速度更快了</translation> @@ -477,6 +478,7 @@ 如要變更這項設定,請<ph name="BEGIN_LINK" />重設同步功能<ph name="END_LINK" /></translation> <translation id="4807098396393229769">持卡人姓名</translation> +<translation id="4818017973810341238"><ph name="VIOLATED_URL" /> 上的 Digital Asset Links 驗證失敗</translation> <translation id="4824958205181053313">取消同步處理?</translation> <translation id="4835385943915508971">Chrome 無法存取要求的資源。</translation> <translation id="4837753911714442426">開啟列印網頁的選項</translation> @@ -911,6 +913,7 @@ <translation id="7981313251711023384">預先載入網頁,以加快瀏覽及搜尋速度</translation> <translation id="79859296434321399">如要查看擴增實境內容,請安裝 ARCore</translation> <translation id="7986741934819883144">選取聯絡人</translation> +<translation id="799806351373751710">取消同步處理設定</translation> <translation id="7998918019931843664">重新開啟先前關閉的分頁</translation> <translation id="8004582292198964060">瀏覽器</translation> <translation id="8013372441983637696">一併清除你在這個裝置上的 Chrome 資料</translation>
diff --git a/chrome/browser/ui/app_list/search/common/file_icon_util.cc b/chrome/browser/ui/app_list/search/common/file_icon_util.cc deleted file mode 100644 index 7433ebb..0000000 --- a/chrome/browser/ui/app_list/search/common/file_icon_util.cc +++ /dev/null
@@ -1,297 +0,0 @@ -// Copyright 2019 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#include "chrome/browser/ui/app_list/search/common/file_icon_util.h" - -#include <string> -#include <utility> - -#include "ash/public/cpp/app_list/vector_icons/vector_icons.h" -#include "base/files/file_path.h" -#include "base/no_destructor.h" -#include "base/strings/string_util.h" -#include "base/strings/utf_string_conversions.h" -#include "third_party/skia/include/core/SkColor.h" -#include "ui/base/resource/resource_bundle.h" -#include "ui/chromeos/resources/grit/ui_chromeos_resources.h" -#include "ui/file_manager/file_manager_resource_util.h" -#include "ui/file_manager/grit/file_manager_resources.h" -#include "ui/gfx/color_palette.h" -#include "ui/gfx/image/image.h" -#include "ui/gfx/image/image_skia.h" -#include "ui/gfx/image/image_skia_operations.h" -#include "ui/gfx/paint_vector_icon.h" - -namespace { - -// Hex color: #796EEE -constexpr SkColor kFiletypeGsiteColor = SkColorSetRGB(121, 110, 238); - -// Hex color: #FF7537 -constexpr SkColor kFiletypePptColor = SkColorSetRGB(255, 117, 55); - -// Hex color: #796EEE -constexpr SkColor kFiletypeSitesColor = SkColorSetRGB(121, 110, 238); - -constexpr SkColor kWhiteBackgroundColor = SkColorSetRGB(255, 255, 255); - -constexpr int kIconDipSize = 20; - -} // namespace - -namespace app_list { -namespace internal { - -IconType GetIconTypeForPath(const base::FilePath& filepath) { - static const base::NoDestructor<base::flat_map<std::string, IconType>> - // Changes to this map should be reflected in - // ui/file_manager/file_manager/common/js/file_type.js. - extension_to_icon({ - // Image - {".JPEG", IconType::IMAGE}, - {".JPG", IconType::IMAGE}, - {".BMP", IconType::IMAGE}, - {".GIF", IconType::IMAGE}, - {".ICO", IconType::IMAGE}, - {".PNG", IconType::IMAGE}, - {".WEBP", IconType::IMAGE}, - {".TIFF", IconType::IMAGE}, - {".TIF", IconType::IMAGE}, - {".SVG", IconType::IMAGE}, - - // Raw - {".ARW", IconType::IMAGE}, - {".CR2", IconType::IMAGE}, - {".DNG", IconType::IMAGE}, - {".NEF", IconType::IMAGE}, - {".NRW", IconType::IMAGE}, - {".ORF", IconType::IMAGE}, - {".RAF", IconType::IMAGE}, - {".RW2", IconType::IMAGE}, - - // Video - {".3GP", IconType::VIDEO}, - {".3GPP", IconType::VIDEO}, - {".AVI", IconType::VIDEO}, - {".MOV", IconType::VIDEO}, - {".MKV", IconType::VIDEO}, - {".MP4", IconType::VIDEO}, - {".M4V", IconType::VIDEO}, - {".MPG", IconType::VIDEO}, - {".MPEG", IconType::VIDEO}, - {".MPG4", IconType::VIDEO}, - {".MPEG4", IconType::VIDEO}, - {".OGM", IconType::VIDEO}, - {".OGV", IconType::VIDEO}, - {".OGX", IconType::VIDEO}, - {".WEBM", IconType::VIDEO}, - - // Audio - {".AMR", IconType::AUDIO}, - {".FLAC", IconType::AUDIO}, - {".MP3", IconType::AUDIO}, - {".M4A", IconType::AUDIO}, - {".OGA", IconType::AUDIO}, - {".OGG", IconType::AUDIO}, - {".WAV", IconType::AUDIO}, - - // Text - {".TXT", IconType::GENERIC}, - - // Archive - {".ZIP", IconType::ARCHIVE}, - {".RAR", IconType::ARCHIVE}, - {".TAR", IconType::ARCHIVE}, - {".TAR.BZ2", IconType::ARCHIVE}, - {".TBZ", IconType::ARCHIVE}, - {".TBZ2", IconType::ARCHIVE}, - {".TAR.GZ", IconType::ARCHIVE}, - {".TGZ", IconType::ARCHIVE}, - - // Hosted doc - {".GDOC", IconType::GDOC}, - {".GSHEET", IconType::GSHEET}, - {".GSLIDES", IconType::GSLIDE}, - {".GDRAW", IconType::GDRAW}, - {".GTABLE", IconType::GTABLE}, - {".GLINK", IconType::GENERIC}, - {".GFORM", IconType::GFORM}, - {".GMAPS", IconType::GMAP}, - {".GSITE", IconType::GSITE}, - - // Other - {".PDF", IconType::PDF}, - {".HTM", IconType::GENERIC}, - {".HTML", IconType::GENERIC}, - {".MHT", IconType::GENERIC}, - {".MHTM", IconType::GENERIC}, - {".MHTML", IconType::GENERIC}, - {".SHTML", IconType::GENERIC}, - {".XHT", IconType::GENERIC}, - {".XHTM", IconType::GENERIC}, - {".XHTML", IconType::GENERIC}, - {".DOC", IconType::WORD}, - {".DOCX", IconType::WORD}, - {".PPT", IconType::PPT}, - {".PPTX", IconType::PPT}, - {".XLS", IconType::EXCEL}, - {".XLSX", IconType::EXCEL}, - {".TINI", IconType::TINI}, - }); - - const auto& icon_it = - extension_to_icon->find(base::ToUpperASCII(filepath.Extension())); - if (icon_it != extension_to_icon->end()) { - return icon_it->second; - } else { - return IconType::GENERIC; - } -} - -IconType GetIconTypeFromString(const std::string& icon_type_string) { - static const base::NoDestructor<std::map<std::string, IconType>> - type_string_to_icon_type({{"archive", IconType::ARCHIVE}, - {"audio", IconType::AUDIO}, - {"chart", IconType::CHART}, - {"excel", IconType::EXCEL}, - {"drive", IconType::DRIVE}, - {"folder", IconType::FOLDER}, - {"gdoc", IconType::GDOC}, - {"gdraw", IconType::GDRAW}, - {"generic", IconType::GENERIC}, - {"gform", IconType::GFORM}, - {"gmap", IconType::GMAP}, - {"gsheet", IconType::GSHEET}, - {"gsite", IconType::GSITE}, - {"gslides", IconType::GSLIDE}, - {"gtable", IconType::GTABLE}, - {"image", IconType::IMAGE}, - {"linux", IconType::LINUX}, - {"pdf", IconType::PDF}, - {"ppt", IconType::PPT}, - {"script", IconType::SCRIPT}, - {"shared", IconType::FOLDER_SHARED}, - {"sites", IconType::SITES}, - {"tini", IconType::TINI}, - {"video", IconType::VIDEO}, - {"word", IconType::WORD}}); - - const auto& icon_it = type_string_to_icon_type->find(icon_type_string); - if (icon_it != type_string_to_icon_type->end()) - return icon_it->second; - return IconType::GENERIC; -} - -gfx::ImageSkia GetVectorIconFromIconType(IconType icon, bool is_chip_icon) { - // Changes to this map should be reflected in - // ui/file_manager/file_manager/common/js/file_type.js. - static const base::NoDestructor<std::map<IconType, gfx::IconDescription>> - icon_type_to_icon_description( - {{IconType::ARCHIVE, - gfx::IconDescription(ash::kFiletypeArchiveIcon, kIconDipSize, - gfx::kGoogleGrey700)}, - {IconType::AUDIO, - gfx::IconDescription(ash::kFiletypeAudioIcon, kIconDipSize, - gfx::kGoogleRed500)}, - {IconType::CHART, - gfx::IconDescription(ash::kFiletypeChartIcon, kIconDipSize, - gfx::kGoogleGreen500)}, - {IconType::DRIVE, - gfx::IconDescription(ash::kFiletypeTeamDriveIcon, kIconDipSize, - gfx::kGoogleGrey700)}, - {IconType::EXCEL, - gfx::IconDescription(ash::kFiletypeExcelIcon, kIconDipSize, - gfx::kGoogleGreen500)}, - {IconType::FOLDER, - gfx::IconDescription(ash::kFiletypeFolderIcon, kIconDipSize, - gfx::kGoogleGrey700)}, - {IconType::FOLDER_SHARED, - gfx::IconDescription(ash::kFiletypeSharedIcon, kIconDipSize, - gfx::kGoogleGrey700)}, - {IconType::GDOC, - gfx::IconDescription(ash::kFiletypeGdocIcon, kIconDipSize, - gfx::kGoogleBlue500)}, - {IconType::GDRAW, - gfx::IconDescription(ash::kFiletypeGdrawIcon, kIconDipSize, - gfx::kGoogleRed500)}, - {IconType::GENERIC, - gfx::IconDescription(ash::kFiletypeGenericIcon, kIconDipSize, - gfx::kGoogleGrey700)}, - {IconType::GFORM, - gfx::IconDescription(ash::kFiletypeGformIcon, kIconDipSize, - gfx::kGoogleGreen500)}, - {IconType::GMAP, - gfx::IconDescription(ash::kFiletypeGmapIcon, kIconDipSize, - gfx::kGoogleRed500)}, - {IconType::GSHEET, - gfx::IconDescription(ash::kFiletypeGsheetIcon, kIconDipSize, - gfx::kGoogleGreen500)}, - {IconType::GSITE, - gfx::IconDescription(ash::kFiletypeGsiteIcon, kIconDipSize, - kFiletypeGsiteColor)}, - {IconType::GSLIDE, - gfx::IconDescription(ash::kFiletypeGslidesIcon, kIconDipSize, - gfx::kGoogleYellow500)}, - {IconType::GTABLE, - gfx::IconDescription(ash::kFiletypeGtableIcon, kIconDipSize, - gfx::kGoogleGreen500)}, - {IconType::IMAGE, - gfx::IconDescription(ash::kFiletypeImageIcon, kIconDipSize, - gfx::kGoogleRed500)}, - {IconType::LINUX, - gfx::IconDescription(ash::kFiletypeLinuxIcon, kIconDipSize, - gfx::kGoogleGrey700)}, - {IconType::PDF, - gfx::IconDescription(ash::kFiletypePdfIcon, kIconDipSize, - gfx::kGoogleRed500)}, - {IconType::PPT, - gfx::IconDescription(ash::kFiletypePptIcon, kIconDipSize, - kFiletypePptColor)}, - {IconType::SCRIPT, - gfx::IconDescription(ash::kFiletypeScriptIcon, kIconDipSize, - gfx::kGoogleBlue500)}, - {IconType::SITES, - gfx::IconDescription(ash::kFiletypeSitesIcon, kIconDipSize, - kFiletypeSitesColor)}, - {IconType::TINI, - gfx::IconDescription(ash::kFiletypeTiniIcon, kIconDipSize, - gfx::kGoogleBlue500)}, - {IconType::VIDEO, - gfx::IconDescription(ash::kFiletypeVideoIcon, kIconDipSize, - gfx::kGoogleRed500)}, - {IconType::WORD, - gfx::IconDescription(ash::kFiletypeWordIcon, kIconDipSize, - gfx::kGoogleBlue500)}}); - - const auto& id_it = icon_type_to_icon_description->find(icon); - DCHECK(id_it != icon_type_to_icon_description->end()); - - // If it is a launcher chip icon, we need to draw 2 icons: a white circle - // background icon (kFiletypeChipBackgroundIcon) and the icon of the file. - if (is_chip_icon) { - return gfx::ImageSkiaOperations::CreateSuperimposedImage( - gfx::CreateVectorIcon(ash::kFiletypeChipBackgroundIcon, kIconDipSize, - kWhiteBackgroundColor), - gfx::CreateVectorIcon(id_it->second)); - } - return gfx::CreateVectorIcon(id_it->second); -} - -} // namespace internal - -gfx::ImageSkia GetIconForPath(const base::FilePath& filepath) { - return internal::GetVectorIconFromIconType( - internal::GetIconTypeForPath(filepath)); -} - -gfx::ImageSkia GetChipIconForPath(const base::FilePath& filepath) { - return internal::GetVectorIconFromIconType( - internal::GetIconTypeForPath(filepath), /*is_chip_icon=*/true); -} - -gfx::ImageSkia GetIconFromType(const std::string& icon_type) { - return GetVectorIconFromIconType(internal::GetIconTypeFromString(icon_type)); -} - -} // namespace app_list
diff --git a/chrome/browser/ui/app_list/search/common/file_icon_util.h b/chrome/browser/ui/app_list/search/common/file_icon_util.h deleted file mode 100644 index 5b1d0e1..0000000 --- a/chrome/browser/ui/app_list/search/common/file_icon_util.h +++ /dev/null
@@ -1,56 +0,0 @@ -// Copyright 2019 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#ifndef CHROME_BROWSER_UI_APP_LIST_SEARCH_COMMON_FILE_ICON_UTIL_H_ -#define CHROME_BROWSER_UI_APP_LIST_SEARCH_COMMON_FILE_ICON_UTIL_H_ - -#include "base/files/file_path.h" -#include "base/macros.h" -#include "ui/gfx/image/image_skia.h" - -namespace app_list { -namespace internal { - -enum class IconType { - AUDIO, - ARCHIVE, - CHART, - DRIVE, - EXCEL, - FOLDER, - FOLDER_SHARED, - GDOC, - GDRAW, - GENERIC, - GFORM, - GMAP, - GSHEET, - GSITE, - GSLIDE, - GTABLE, - LINUX, - IMAGE, - PDF, - PPT, - SCRIPT, - SITES, - TINI, - VIDEO, - WORD, -}; - -IconType GetIconTypeFromString(const std::string& icon_type_string); -IconType GetIconTypeForPath(const base::FilePath& filepath); -gfx::ImageSkia GetVectorIconFromIconType(IconType icon, - bool is_chip_icon = false); -int GetChipResourceIdForIconType(IconType icon); -} // namespace internal - -gfx::ImageSkia GetIconForPath(const base::FilePath& filepath); -gfx::ImageSkia GetChipIconForPath(const base::FilePath& filepath); -gfx::ImageSkia GetIconFromType(const std::string& icon_type); - -} // namespace app_list - -#endif // CHROME_BROWSER_UI_APP_LIST_SEARCH_COMMON_FILE_ICON_UTIL_H_
diff --git a/chrome/browser/ui/app_list/search/common/file_icon_util_unittest.cc b/chrome/browser/ui/app_list/search/common/file_icon_util_unittest.cc deleted file mode 100644 index 16f21c4d..0000000 --- a/chrome/browser/ui/app_list/search/common/file_icon_util_unittest.cc +++ /dev/null
@@ -1,39 +0,0 @@ -// Copyright 2019 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#include "chrome/browser/ui/app_list/search/common/file_icon_util.h" - -#include <string> -#include <utility> -#include <vector> - -#include "base/files/file_path.h" -#include "base/files/file_util.h" -#include "base/strings/utf_string_conversions.h" -#include "base/test/scoped_feature_list.h" -#include "chrome/browser/profiles/profile.h" -#include "testing/gmock/include/gmock/gmock.h" -#include "testing/gtest/include/gtest/gtest.h" -#include "ui/chromeos/resources/grit/ui_chromeos_resources.h" -#include "ui/file_manager/grit/file_manager_resources.h" - -namespace app_list { - -TEST(AppListFileIconUtilTest, GetIconTypeForPath) { - const std::vector<std::pair<std::string, internal::IconType>> - file_path_to_icon_type = { - {"/my/test/file.pdf", internal::IconType::PDF}, - {"/my/test/file.Pdf", internal::IconType::PDF}, - {"/my/test/file.tar.gz", internal::IconType::ARCHIVE}, - {"/my/test/.gslides", internal::IconType::GSLIDE}, - {"/my/test/noextension", internal::IconType::GENERIC}, - {"/my/test/file.missing", internal::IconType::GENERIC}}; - - for (const auto& pair : file_path_to_icon_type) { - EXPECT_EQ(internal::GetIconTypeForPath(base::FilePath(pair.first)), - pair.second); - } -} - -} // namespace app_list
diff --git a/chrome/browser/ui/app_list/search/launcher_search/launcher_search_result.cc b/chrome/browser/ui/app_list/search/launcher_search/launcher_search_result.cc index 7f6f71f..8bef6c2 100644 --- a/chrome/browser/ui/app_list/search/launcher_search/launcher_search_result.cc +++ b/chrome/browser/ui/app_list/search/launcher_search/launcher_search_result.cc
@@ -8,10 +8,10 @@ #include "ash/public/cpp/app_list/app_list_config.h" #include "ash/public/cpp/app_list/app_list_metrics.h" +#include "ash/public/cpp/file_icon_util.h" #include "base/memory/ptr_util.h" #include "base/strings/utf_string_conversions.h" #include "chrome/browser/chromeos/launcher_search_provider/launcher_search_provider_service.h" -#include "chrome/browser/ui/app_list/search/common/file_icon_util.h" using chromeos::launcher_search_provider::Service; @@ -79,7 +79,7 @@ SetResultType(ResultType::kLauncher); SetMetricsType(ash::LAUNCHER_SEARCH_PROVIDER_RESULT); - SetIcon(GetIconFromType(icon_type_)); + SetIcon(ash::GetIconFromType(icon_type_)); } std::string LauncherSearchResult::GetSearchResultId() {
diff --git a/chrome/browser/ui/app_list/search/zero_state_file_result.cc b/chrome/browser/ui/app_list/search/zero_state_file_result.cc index 3163f59..6a5bd34e 100644 --- a/chrome/browser/ui/app_list/search/zero_state_file_result.cc +++ b/chrome/browser/ui/app_list/search/zero_state_file_result.cc
@@ -9,6 +9,7 @@ #include <vector> #include "ash/public/cpp/app_list/app_list_types.h" +#include "ash/public/cpp/file_icon_util.h" #include "base/bind.h" #include "base/files/file_path.h" #include "base/i18n/rtl.h" @@ -16,7 +17,6 @@ #include "base/strings/string_util.h" #include "base/strings/utf_string_conversions.h" #include "chrome/browser/platform_util.h" -#include "chrome/browser/ui/app_list/search/common/file_icon_util.h" #include "chrome/grit/generated_resources.h" #include "ui/base/l10n/l10n_util.h" @@ -62,8 +62,8 @@ l10n_util::GetStringUTF16(IDS_FILEMANAGER_APP_NAME), true); base::i18n::SanitizeUserSuppliedString(&sanitized_name); SetDetails(sanitized_name); - SetIcon(GetIconForPath(filepath)); - SetChipIcon(GetChipIconForPath(filepath)); + SetIcon(ash::GetIconForPath(filepath)); + SetChipIcon(ash::GetChipIconForPath(filepath)); } ZeroStateFileResult::~ZeroStateFileResult() = default;
diff --git a/chrome/browser/ui/ash/holding_space/OWNERS b/chrome/browser/ui/ash/holding_space/OWNERS index 1cd83a6..729c02b1 100644 --- a/chrome/browser/ui/ash/holding_space/OWNERS +++ b/chrome/browser/ui/ash/holding_space/OWNERS
@@ -1,3 +1,3 @@ -file://ash/holding_space/OWNERS +file://ash/public/cpp/holding_space/OWNERS # COMPONENT: UI>Shell>HoldingSpace
diff --git a/chrome/browser/ui/ash/holding_space/holding_space_client_impl.cc b/chrome/browser/ui/ash/holding_space/holding_space_client_impl.cc new file mode 100644 index 0000000..28d51497 --- /dev/null +++ b/chrome/browser/ui/ash/holding_space/holding_space_client_impl.cc
@@ -0,0 +1,31 @@ +// Copyright 2020 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "chrome/browser/ui/ash/holding_space/holding_space_client_impl.h" + +#include "ash/public/cpp/holding_space/holding_space_item.h" +#include "base/bind.h" +#include "chrome/browser/chromeos/file_manager/open_util.h" + +HoldingSpaceClientImpl::HoldingSpaceClientImpl(Profile* profile) + : profile_(profile) {} + +HoldingSpaceClientImpl::~HoldingSpaceClientImpl() = default; + +void HoldingSpaceClientImpl::OpenItem(const ash::HoldingSpaceItem& item, + OpenItemCallback callback) { + if (item.file_path().empty()) { + std::move(callback).Run(/*success=*/false); + return; + } + file_manager::util::OpenItem( + profile_, item.file_path(), platform_util::OPEN_FILE, + base::BindOnce( + [](OpenItemCallback callback, + platform_util::OpenOperationResult result) { + const bool success = result == platform_util::OPEN_SUCCEEDED; + std::move(callback).Run(success); + }, + std::move(callback))); +}
diff --git a/chrome/browser/ui/ash/holding_space/holding_space_client_impl.h b/chrome/browser/ui/ash/holding_space/holding_space_client_impl.h new file mode 100644 index 0000000..92e65c9 --- /dev/null +++ b/chrome/browser/ui/ash/holding_space/holding_space_client_impl.h
@@ -0,0 +1,30 @@ +// Copyright 2020 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef CHROME_BROWSER_UI_ASH_HOLDING_SPACE_HOLDING_SPACE_CLIENT_IMPL_H_ +#define CHROME_BROWSER_UI_ASH_HOLDING_SPACE_HOLDING_SPACE_CLIENT_IMPL_H_ + +#include "ash/public/cpp/holding_space/holding_space_client.h" + +class Profile; + +// Implementation of the holding space browser client. +class ASH_PUBLIC_EXPORT HoldingSpaceClientImpl + : public ash::HoldingSpaceClient { + public: + explicit HoldingSpaceClientImpl(Profile* profile); + HoldingSpaceClientImpl(const HoldingSpaceClientImpl& other) = delete; + HoldingSpaceClientImpl& operator=(const HoldingSpaceClientImpl& other) = + delete; + ~HoldingSpaceClientImpl() override; + + // ash::HoldingSpaceClient: + void OpenItem(const ash::HoldingSpaceItem& item, + OpenItemCallback callback) override; + + private: + Profile* const profile_; +}; + +#endif // CHROME_BROWSER_UI_ASH_HOLDING_SPACE_HOLDING_SPACE_CLIENT_IMPL_H_
diff --git a/chrome/browser/ui/ash/holding_space/holding_space_client_impl_browsertest.cc b/chrome/browser/ui/ash/holding_space/holding_space_client_impl_browsertest.cc new file mode 100644 index 0000000..ee4221a --- /dev/null +++ b/chrome/browser/ui/ash/holding_space/holding_space_client_impl_browsertest.cc
@@ -0,0 +1,118 @@ +// Copyright 2020 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "chrome/browser/ui/ash/holding_space/holding_space_client_impl.h" + +#include "ash/public/cpp/ash_features.h" +#include "ash/public/cpp/holding_space/holding_space_controller.h" +#include "ash/public/cpp/holding_space/holding_space_item.h" +#include "base/files/file_path.h" +#include "base/run_loop.h" +#include "base/test/bind_test_util.h" +#include "base/test/scoped_feature_list.h" +#include "base/unguessable_token.h" +#include "chrome/browser/chromeos/file_manager/path_util.h" +#include "chrome/browser/extensions/component_loader.h" +#include "chrome/browser/profiles/profile_manager.h" +#include "chrome/browser/ui/browser.h" +#include "chrome/test/base/in_process_browser_test.h" +#include "content/public/test/browser_test.h" +#include "storage/browser/file_system/external_mount_points.h" +#include "ui/gfx/image/image_skia.h" + +namespace { + +// Returns the path of the downloads mount point for the given `profile`. +base::FilePath GetDownloadsPath(Profile* profile) { + base::FilePath result; + EXPECT_TRUE( + storage::ExternalMountPoints::GetSystemInstance()->GetRegisteredPath( + file_manager::util::GetDownloadsMountPointName(profile), &result)); + return result; +} + +// Creates a txt file at the path of the downloads mount point for `profile`. +base::FilePath CreateTextFile(Profile* profile) { + const std::string relative_path = base::StringPrintf( + "%s.txt", base::UnguessableToken::Create().ToString().c_str()); + const base::FilePath path = GetDownloadsPath(profile).Append(relative_path); + + base::ScopedAllowBlockingForTesting allow_blocking; + if (!base::CreateDirectory(path.DirName())) + return base::FilePath(); + if (!base::WriteFile(path, /*content=*/std::string())) + return base::FilePath(); + + return path; +} + +} // namespace + +class HoldingSpaceClientImplTest : public InProcessBrowserTest { + public: + HoldingSpaceClientImplTest() { + scoped_feature_list_.InitAndEnableFeature( + ash::features::kTemporaryHoldingSpace); + } + + HoldingSpaceClientImplTest(const HoldingSpaceClientImplTest& other) = delete; + HoldingSpaceClientImplTest& operator=( + const HoldingSpaceClientImplTest& other) = delete; + ~HoldingSpaceClientImplTest() override = default; + + // InProcessBrowserTest: + void SetUpInProcessBrowserTestFixture() override { + InProcessBrowserTest::SetUpInProcessBrowserTestFixture(); + extensions::ComponentLoader::EnableBackgroundExtensionsForTesting(); + } + + private: + base::test::ScopedFeatureList scoped_feature_list_; +}; + +// Verifies that `ash::HoldingSpaceClient::OpenItem()` works as intended when +// attempting to open holding space items backed by both non-existing and +// existing files. +IN_PROC_BROWSER_TEST_F(HoldingSpaceClientImplTest, OpenItem) { + ASSERT_TRUE(ash::HoldingSpaceController::Get()); + + auto* holding_space_client = ash::HoldingSpaceController::Get()->client(); + ASSERT_TRUE(holding_space_client); + + // Create a holding space item backed by a non-existing file. + auto holding_space_item = ash::HoldingSpaceItem::CreateFileBackedItem( + ash::HoldingSpaceItem::Type::kDownload, base::FilePath("foo"), GURL(), + gfx::ImageSkia()); + + { + // We expect `ash::HoldingSpaceClient::OpenItem()` to fail when the backing + // file for `holding_space_item` does not exist. + base::RunLoop run_loop; + holding_space_client->OpenItem( + *holding_space_item, + base::BindLambdaForTesting([&run_loop](bool success) { + EXPECT_FALSE(success); + run_loop.Quit(); + })); + run_loop.Run(); + } + + // Create a holding space item backed by a newly created txt file. + holding_space_item = ash::HoldingSpaceItem::CreateFileBackedItem( + ash::HoldingSpaceItem::Type::kDownload, + CreateTextFile(browser()->profile()), GURL(), gfx::ImageSkia()); + + { + // We expect `ash::HoldingSpaceClient::OpenItem()` to succeed when the + // backing file for `holding_space_item` exists. + base::RunLoop run_loop; + holding_space_client->OpenItem( + *holding_space_item, + base::BindLambdaForTesting([&run_loop](bool success) { + EXPECT_TRUE(success); + run_loop.Quit(); + })); + run_loop.Run(); + } +}
diff --git a/chrome/browser/ui/ash/holding_space/holding_space_keyed_service.cc b/chrome/browser/ui/ash/holding_space/holding_space_keyed_service.cc index 29d4bc41..ce1f094 100644 --- a/chrome/browser/ui/ash/holding_space/holding_space_keyed_service.cc +++ b/chrome/browser/ui/ash/holding_space/holding_space_keyed_service.cc
@@ -4,6 +4,7 @@ #include "chrome/browser/ui/ash/holding_space/holding_space_keyed_service.h" +#include "ash/public/cpp/file_icon_util.h" #include "ash/public/cpp/holding_space/holding_space_controller.h" #include "ash/public/cpp/holding_space/holding_space_item.h" #include "base/files/file_path.h" @@ -33,11 +34,12 @@ HoldingSpaceKeyedService::HoldingSpaceKeyedService( content::BrowserContext* context, const AccountId& account_id) - : browser_context_(context) { + : browser_context_(context), + holding_space_client_(Profile::FromBrowserContext(context)) { RestoreModel(); holding_space_model_observer_.Add(&holding_space_model_); - HoldingSpaceController::Get()->RegisterModelForUser(account_id, - &holding_space_model_); + HoldingSpaceController::Get()->RegisterClientAndModelForUser( + account_id, &holding_space_client_, &holding_space_model_); } HoldingSpaceKeyedService::~HoldingSpaceKeyedService() = default; @@ -112,10 +114,10 @@ return file_system_url; } -// TODO(dmblack): Implement. +// TODO(dmblack): Use thumbnail service to asynchronously replace placeholders. gfx::ImageSkia HoldingSpaceKeyedService::ResolveImage( const base::FilePath& file_path) const { - return gfx::ImageSkia(); + return GetIconForPath(file_path); } } // namespace ash
diff --git a/chrome/browser/ui/ash/holding_space/holding_space_keyed_service.h b/chrome/browser/ui/ash/holding_space/holding_space_keyed_service.h index 4c4c0c2..237e916 100644 --- a/chrome/browser/ui/ash/holding_space/holding_space_keyed_service.h +++ b/chrome/browser/ui/ash/holding_space/holding_space_keyed_service.h
@@ -9,6 +9,7 @@ #include "ash/public/cpp/holding_space/holding_space_model_observer.h" #include "base/scoped_observer.h" #include "base/strings/string16.h" +#include "chrome/browser/ui/ash/holding_space/holding_space_client_impl.h" #include "components/account_id/account_id.h" #include "components/keyed_service/core/keyed_service.h" @@ -58,6 +59,10 @@ void AddScreenshot(const base::FilePath& screenshot_path, const gfx::ImageSkia& image); + const HoldingSpaceClient* client_for_testing() const { + return &holding_space_client_; + } + const HoldingSpaceModel* model_for_testing() const { return &holding_space_model_; } @@ -75,6 +80,7 @@ gfx::ImageSkia ResolveImage(const base::FilePath& file_path) const; content::BrowserContext* const browser_context_; + HoldingSpaceClientImpl holding_space_client_; HoldingSpaceModel holding_space_model_; ScopedObserver<HoldingSpaceModel, HoldingSpaceModelObserver>
diff --git a/chrome/browser/ui/ash/holding_space/holding_space_keyed_service_unittest.cc b/chrome/browser/ui/ash/holding_space/holding_space_keyed_service_unittest.cc index 82e29a7e..875bebc6f 100644 --- a/chrome/browser/ui/ash/holding_space/holding_space_keyed_service_unittest.cc +++ b/chrome/browser/ui/ash/holding_space/holding_space_keyed_service_unittest.cc
@@ -7,6 +7,7 @@ #include <vector> #include "ash/public/cpp/ash_features.h" +#include "ash/public/cpp/file_icon_util.h" #include "ash/public/cpp/holding_space/holding_space_controller.h" #include "ash/public/cpp/holding_space/holding_space_item.h" #include "ash/public/cpp/holding_space/holding_space_model.h" @@ -315,13 +316,17 @@ HoldingSpaceKeyedServiceFactory::GetInstance()->GetService( second_profile); - // Just creating a secondary profile should not change the active model. + // Just creating a secondary profile shouldn't change the active client/model. + EXPECT_EQ(HoldingSpaceController::Get()->client(), + primary_holding_space_service->client_for_testing()); EXPECT_EQ(HoldingSpaceController::Get()->model(), primary_holding_space_service->model_for_testing()); - // Switching the active user should change the active model (multi user - // support) + // Switching the active user should change the active client/model (multi-user + // support). ActivateSecondaryProfile(); + EXPECT_EQ(HoldingSpaceController::Get()->client(), + secondary_holding_space_service->client_for_testing()); EXPECT_EQ(HoldingSpaceController::Get()->model(), secondary_holding_space_service->model_for_testing()); } @@ -401,11 +406,8 @@ const base::FilePath file = CreateArbitraryFile(downloads_mount); const GURL file_system_url = GetFileSystemUrl(GetProfile(), file); - // NOTE: We use an empty `gfx::ImageSkia` here because the logic - // to restore holding space item images from persistence has not yet - // been implemented in `HoldingSpaceKeyedService`. auto holding_space_item = HoldingSpaceItem::CreateFileBackedItem( - type, file, file_system_url, gfx::ImageSkia()); + type, file, file_system_url, GetIconForPath(file)); serialized_holding_space_items->Append( holding_space_item->Serialize());
diff --git a/chrome/browser/ui/ash/media_notification_provider_impl.cc b/chrome/browser/ui/ash/media_notification_provider_impl.cc index 43a2541..66916df 100644 --- a/chrome/browser/ui/ash/media_notification_provider_impl.cc +++ b/chrome/browser/ui/ash/media_notification_provider_impl.cc
@@ -5,11 +5,23 @@ #include "chrome/browser/ui/ash/media_notification_provider_impl.h" #include "ash/public/cpp/media_notification_provider_observer.h" +#include "chrome/browser/chromeos/profiles/profile_helper.h" +#include "chrome/browser/ui/global_media_controls/media_notification_service.h" +#include "chrome/browser/ui/global_media_controls/media_notification_service_factory.h" +#include "components/session_manager/core/session_manager.h" #include "ui/views/view.h" -MediaNotificationProviderImpl::MediaNotificationProviderImpl() = default; +MediaNotificationProviderImpl::MediaNotificationProviderImpl() { + session_manager::SessionManager::Get()->AddObserver(this); +} -MediaNotificationProviderImpl::~MediaNotificationProviderImpl() = default; +MediaNotificationProviderImpl::~MediaNotificationProviderImpl() { + if (session_manager::SessionManager::Get()) + session_manager::SessionManager::Get()->RemoveObserver(this); + + if (service_) + service_->RemoveObserver(this); +} void MediaNotificationProviderImpl::AddObserver( ash::MediaNotificationProviderObserver* observer) { @@ -22,11 +34,15 @@ } bool MediaNotificationProviderImpl::HasActiveNotifications() { - return false; + if (!service_) + return false; + return service_->HasActiveNotifications(); } bool MediaNotificationProviderImpl::HasFrozenNotifications() { - return false; + if (!service_) + return false; + return service_->HasFrozenNotifications(); } std::unique_ptr<views::View> @@ -38,3 +54,21 @@ MediaNotificationProviderImpl::GetActiveMediaNotificationView() { return std::make_unique<views::View>(); } + +void MediaNotificationProviderImpl::OnNotificationListChanged() { + for (auto& observer : observers_) + observer.OnNotificationListChanged(); +} + +void MediaNotificationProviderImpl::OnUserProfileLoaded( + const AccountId& account_id) { + Profile* profile = + chromeos::ProfileHelper::Get()->GetProfileByAccountId(account_id); + user_manager::User* user = + chromeos::ProfileHelper::Get()->GetUserByProfile(profile); + + if (user_manager::UserManager::Get()->GetPrimaryUser() == user) { + service_ = MediaNotificationServiceFactory::GetForProfile(profile); + service_->AddObserver(this); + } +}
diff --git a/chrome/browser/ui/ash/media_notification_provider_impl.h b/chrome/browser/ui/ash/media_notification_provider_impl.h index 29792c0..a1ee801 100644 --- a/chrome/browser/ui/ash/media_notification_provider_impl.h +++ b/chrome/browser/ui/ash/media_notification_provider_impl.h
@@ -7,8 +7,15 @@ #include "ash/public/cpp/media_notification_provider.h" #include "base/observer_list.h" +#include "chrome/browser/ui/global_media_controls/media_notification_service_observer.h" +#include "components/session_manager/core/session_manager_observer.h" -class MediaNotificationProviderImpl : public ash::MediaNotificationProvider { +class MediaNotificationService; + +class MediaNotificationProviderImpl + : public ash::MediaNotificationProvider, + public MediaNotificationServiceObserver, + public session_manager::SessionManagerObserver { public: MediaNotificationProviderImpl(); ~MediaNotificationProviderImpl() override; @@ -22,8 +29,17 @@ std::unique_ptr<views::View> GetMediaNotificationListView() override; std::unique_ptr<views::View> GetActiveMediaNotificationView() override; + // MediaNotificationServiceObserver implementations. + void OnNotificationListChanged() override; + void OnMediaDialogOpenedOrClosed() override {} + + // SessionManagerobserver implementation. + void OnUserProfileLoaded(const AccountId& account_id) override; + private: base::ObserverList<ash::MediaNotificationProviderObserver> observers_; + + MediaNotificationService* service_ = nullptr; }; #endif // CHROME_BROWSER_UI_ASH_MEDIA_NOTIFICATION_PROVIDER_IMPL_H_
diff --git a/chrome/browser/ui/global_media_controls/media_notification_service.cc b/chrome/browser/ui/global_media_controls/media_notification_service.cc index f9fa266..c7234892 100644 --- a/chrome/browser/ui/global_media_controls/media_notification_service.cc +++ b/chrome/browser/ui/global_media_controls/media_notification_service.cc
@@ -274,7 +274,8 @@ owner_->OnSessionBecameActive(id_); } -MediaNotificationService::MediaNotificationService(Profile* profile) +MediaNotificationService::MediaNotificationService(Profile* profile, + bool show_from_all_profiles) : overlay_media_notifications_manager_(this) { if (base::FeatureList::IsEnabled(media::kGlobalMediaControlsForCast) && media_router::MediaRouterEnabled(profile)) { @@ -286,9 +287,6 @@ base::Unretained(this))); } - const base::UnguessableToken& source_id = - content::MediaSession::GetSourceId(profile); - // Connect to the controller manager so we can create media controllers for // media sessions. content::GetMediaSessionService().BindMediaControllerManager( @@ -297,13 +295,26 @@ // Connect to receive audio focus events. content::GetMediaSessionService().BindAudioFocusManager( audio_focus_remote_.BindNewPipeAndPassReceiver()); - audio_focus_remote_->AddSourceObserver( - source_id, audio_focus_observer_receiver_.BindNewPipeAndPassRemote()); - audio_focus_remote_->GetSourceFocusRequests( - source_id, - base::BindOnce(&MediaNotificationService::OnReceivedAudioFocusRequests, - weak_ptr_factory_.GetWeakPtr())); + if (show_from_all_profiles) { + audio_focus_remote_->AddObserver( + audio_focus_observer_receiver_.BindNewPipeAndPassRemote()); + + audio_focus_remote_->GetFocusRequests( + base::BindOnce(&MediaNotificationService::OnReceivedAudioFocusRequests, + weak_ptr_factory_.GetWeakPtr())); + } else { + const base::UnguessableToken& source_id = + content::MediaSession::GetSourceId(profile); + + audio_focus_remote_->AddSourceObserver( + source_id, audio_focus_observer_receiver_.BindNewPipeAndPassRemote()); + + audio_focus_remote_->GetSourceFocusRequests( + source_id, + base::BindOnce(&MediaNotificationService::OnReceivedAudioFocusRequests, + weak_ptr_factory_.GetWeakPtr())); + } } MediaNotificationService::~MediaNotificationService() {
diff --git a/chrome/browser/ui/global_media_controls/media_notification_service.h b/chrome/browser/ui/global_media_controls/media_notification_service.h index 491ef05..e3ee1b43 100644 --- a/chrome/browser/ui/global_media_controls/media_notification_service.h +++ b/chrome/browser/ui/global_media_controls/media_notification_service.h
@@ -47,7 +47,7 @@ public media_message_center::MediaNotificationController, public MediaNotificationContainerObserver { public: - explicit MediaNotificationService(Profile* profile); + MediaNotificationService(Profile* profile, bool show_from_all_profiles); MediaNotificationService(const MediaNotificationService&) = delete; MediaNotificationService& operator=(const MediaNotificationService&) = delete; ~MediaNotificationService() override; @@ -108,7 +108,7 @@ // Called by a |MediaNotificationService::Session| when it becomes inactive. void OnSessionBecameInactive(const std::string& id); - // Used by a |MediaNotificationAudioDeviceSelectorView| to query the system + // Used by a |MediaNotificationDeviceSelectorView| to query the system // for connected audio output devices. std::unique_ptr<MediaNotificationDeviceProvider:: GetOutputDevicesCallbackList::Subscription>
diff --git a/chrome/browser/ui/global_media_controls/media_notification_service_factory.cc b/chrome/browser/ui/global_media_controls/media_notification_service_factory.cc index cbb4f80..8921b02 100644 --- a/chrome/browser/ui/global_media_controls/media_notification_service_factory.cc +++ b/chrome/browser/ui/global_media_controls/media_notification_service_factory.cc
@@ -34,7 +34,12 @@ KeyedService* MediaNotificationServiceFactory::BuildServiceInstanceFor( content::BrowserContext* context) const { - return new MediaNotificationService(Profile::FromBrowserContext(context)); + bool show_from_all_profiles = false; +#if defined(CHROME_OS) + show_from_all_profiles = true; +#endif + return new MediaNotificationService(Profile::FromBrowserContext(context), + show_from_all_profiles); } content::BrowserContext*
diff --git a/chrome/browser/ui/global_media_controls/media_notification_service_unittest.cc b/chrome/browser/ui/global_media_controls/media_notification_service_unittest.cc index a94216e..97ecd06f 100644 --- a/chrome/browser/ui/global_media_controls/media_notification_service_unittest.cc +++ b/chrome/browser/ui/global_media_controls/media_notification_service_unittest.cc
@@ -136,7 +136,7 @@ void SetUp() override { media_router::MediaRouterFactory::GetInstance()->SetTestingFactory( &profile_, base::BindRepeating(&media_router::MockMediaRouter::Create)); - service_ = std::make_unique<MediaNotificationService>(&profile_); + service_ = std::make_unique<MediaNotificationService>(&profile_, false); service_->AddObserver(&observer_); }
diff --git a/chrome/browser/ui/global_media_controls/media_toolbar_button_controller_unittest.cc b/chrome/browser/ui/global_media_controls/media_toolbar_button_controller_unittest.cc index 5adf697..a36ad8c 100644 --- a/chrome/browser/ui/global_media_controls/media_toolbar_button_controller_unittest.cc +++ b/chrome/browser/ui/global_media_controls/media_toolbar_button_controller_unittest.cc
@@ -87,7 +87,7 @@ MediaToolbarButtonControllerTest() : task_environment_(base::test::TaskEnvironment::TimeSource::MOCK_TIME, base::test::TaskEnvironment::MainThreadType::UI), - service_(&profile_) {} + service_(&profile_, false) {} ~MediaToolbarButtonControllerTest() override = default; void SetUp() override {
diff --git a/chrome/browser/ui/passwords/bubble_controllers/post_save_compromised_bubble_controller.cc b/chrome/browser/ui/passwords/bubble_controllers/post_save_compromised_bubble_controller.cc index 79a1c3f..190d104 100644 --- a/chrome/browser/ui/passwords/bubble_controllers/post_save_compromised_bubble_controller.cc +++ b/chrome/browser/ui/passwords/bubble_controllers/post_save_compromised_bubble_controller.cc
@@ -31,7 +31,7 @@ default: NOTREACHED(); } - base::UmaHistogramEnumeration("PasswordBubble.CompromisedBubbleType", type_); + base::UmaHistogramEnumeration("PasswordBubble.CompromisedBubble.Type", type_); } PostSaveCompromisedBubbleController::~PostSaveCompromisedBubbleController() { @@ -132,6 +132,6 @@ } void PostSaveCompromisedBubbleController::ReportInteractions() { - base::UmaHistogramBoolean("PasswordBubble.CompromisedBubbleCheckClicked", + base::UmaHistogramBoolean("PasswordBubble.CompromisedBubble.CheckClicked", checked_clicked_); }
diff --git a/chrome/browser/ui/passwords/bubble_controllers/post_save_compromised_bubble_controller_unittest.cc b/chrome/browser/ui/passwords/bubble_controllers/post_save_compromised_bubble_controller_unittest.cc index c958a7304..8f7acfc 100644 --- a/chrome/browser/ui/passwords/bubble_controllers/post_save_compromised_bubble_controller_unittest.cc +++ b/chrome/browser/ui/passwords/bubble_controllers/post_save_compromised_bubble_controller_unittest.cc
@@ -13,8 +13,8 @@ namespace { constexpr char kCheckedHistogram[] = - "PasswordBubble.CompromisedBubbleCheckClicked"; -constexpr char kTypeHistogram[] = "PasswordBubble.CompromisedBubbleType"; + "PasswordBubble.CompromisedBubble.CheckClicked"; +constexpr char kTypeHistogram[] = "PasswordBubble.CompromisedBubble.Type"; using BubbleType = PostSaveCompromisedBubbleController::BubbleType;
diff --git a/chrome/browser/ui/passwords/well_known_change_password_navigation_throttle.h b/chrome/browser/ui/passwords/well_known_change_password_navigation_throttle.h index 3b843b3..dc35ee81 100644 --- a/chrome/browser/ui/passwords/well_known_change_password_navigation_throttle.h +++ b/chrome/browser/ui/passwords/well_known_change_password_navigation_throttle.h
@@ -18,7 +18,6 @@ class NavigationHandle; } // namespace content - namespace password_manager { class ChangePasswordUrlService; } // namespace password_manager
diff --git a/chrome/browser/ui/profile_picker.h b/chrome/browser/ui/profile_picker.h index 1d06fbd..9d4ca28 100644 --- a/chrome/browser/ui/profile_picker.h +++ b/chrome/browser/ui/profile_picker.h
@@ -20,6 +20,9 @@ // Hides the profile picker. static void Hide(); + // Returns whether the profile picker is currently open. + static bool IsOpen(); + private: DISALLOW_COPY_AND_ASSIGN(ProfilePicker); };
diff --git a/chrome/browser/ui/views/chrome_javascript_app_modal_view_factory_views.cc b/chrome/browser/ui/views/chrome_javascript_app_modal_view_factory_views.cc index afe16d2..4c46577f 100644 --- a/chrome/browser/ui/views/chrome_javascript_app_modal_view_factory_views.cc +++ b/chrome/browser/ui/views/chrome_javascript_app_modal_view_factory_views.cc
@@ -7,7 +7,7 @@ #include "base/macros.h" #include "build/build_config.h" #include "chrome/browser/ui/blocked_content/popunder_preventer.h" -#include "chrome/browser/ui/views/javascript_app_modal_event_blocker_x11.h" +#include "chrome/browser/ui/views/javascript_app_modal_event_blocker.h" #include "components/constrained_window/constrained_window_views.h" #include "components/javascript_dialogs/app_modal_dialog_controller.h" #include "components/javascript_dialogs/app_modal_dialog_manager.h" @@ -58,7 +58,7 @@ // unnecessary on Windows and Chrome OS. // TODO(pkotwicz): Find a better way of doing this and remove this hack. if (UseEventBlocker() && !event_blocker_.get()) { - event_blocker_ = std::make_unique<JavascriptAppModalEventBlockerX11>( + event_blocker_ = std::make_unique<JavascriptAppModalEventBlocker>( GetWidget()->GetNativeView()); } AppModalDialogViewViews::ShowAppModalDialog(); @@ -69,7 +69,7 @@ private: // Blocks events to other browser windows while the dialog is open. - std::unique_ptr<JavascriptAppModalEventBlockerX11> event_blocker_; + std::unique_ptr<JavascriptAppModalEventBlocker> event_blocker_; PopunderPreventer popunder_preventer_;
diff --git a/chrome/browser/ui/views/download/download_item_view.cc b/chrome/browser/ui/views/download/download_item_view.cc index 7bf9115..25888688 100644 --- a/chrome/browser/ui/views/download/download_item_view.cc +++ b/chrome/browser/ui/views/download/download_item_view.cc
@@ -323,18 +323,19 @@ const int text_x = kStartPadding + kProgressIndicatorSize + kProgressTextPadding; const int text_end = dropdown_button_->GetVisible() - ? dropdown_button_->bounds().right() - : (dropdown_button_->x() - kEndPadding); + ? (dropdown_button_->x() - kEndPadding) + : dropdown_button_->bounds().right(); const int text_width = text_end - text_x; - int text_height = file_name_label_->GetLineHeight(); + const int file_name_height = file_name_label_->GetLineHeight(); + int text_height = file_name_height; if (!status_label_->GetText().empty()) text_height += status_label_->GetLineHeight(); file_name_label_->SetBounds(text_x, CenterY(text_height), text_width, - file_name_label_->GetPreferredSize().height()); - status_label_->SetBounds( - text_x, file_name_label_->y() + file_name_label_->GetLineHeight(), - text_width, status_label_->GetPreferredSize().height()); + file_name_height); + status_label_->SetBounds(text_x, file_name_label_->bounds().bottom(), + text_width, + status_label_->GetPreferredSize().height()); } else { auto* const label = (mode_ == Mode::kDeepScanning) ? deep_scanning_label_ : warning_label_; @@ -514,10 +515,9 @@ } gfx::Size DownloadItemView::CalculatePreferredSize() const { - int height, - width = dropdown_button_->GetVisible() - ? (dropdown_button_->GetPreferredSize().width() + kEndPadding) - : 0; + int height, width = dropdown_button_->GetVisible() + ? (dropdown_button_->width() + kEndPadding) + : 0; if (mode_ == Mode::kNormal) { int label_width = @@ -561,7 +561,7 @@ // Draw the separator as part of the background. It will be covered by the // focus ring when the view has focus. - gfx::Rect rect(0, 0, 1, height()); + gfx::Rect rect(width() - 1, 0, 1, height()); rect.Inset(0, kTopBottomPadding); canvas->FillRect(GetMirroredRect(rect), GetThemeProvider()->GetColor(
diff --git a/chrome/browser/ui/views/frame/browser_view.cc b/chrome/browser/ui/views/frame/browser_view.cc index f9dde8a..14ffedb7 100644 --- a/chrome/browser/ui/views/frame/browser_view.cc +++ b/chrome/browser/ui/views/frame/browser_view.cc
@@ -122,7 +122,6 @@ #include "chrome/browser/ui/views/tabs/browser_tab_strip_controller.h" #include "chrome/browser/ui/views/tabs/new_tab_button.h" #include "chrome/browser/ui/views/tabs/tab.h" -#include "chrome/browser/ui/views/tabs/tab_groups_iph_controller.h" #include "chrome/browser/ui/views/tabs/tab_strip.h" #include "chrome/browser/ui/views/toolbar/browser_actions_container.h" #include "chrome/browser/ui/views/toolbar/browser_app_menu_button.h" @@ -560,12 +559,6 @@ feature_promo_controller_ = std::make_unique<FeaturePromoControllerViews>(this); - // Must be destroyed before the tab strip and |feature_promo_controller_|. - tab_groups_iph_controller_ = std::make_unique<TabGroupsIPHController>( - browser_.get(), feature_promo_controller_.get(), - base::BindRepeating(&TabStrip::GetTabViewForPromoAnchor, - base::Unretained(tabstrip_))); - // Create WebViews early so |webui_tab_strip_| can observe their size. auto devtools_web_view = std::make_unique<views::WebView>(browser_->profile()); @@ -644,9 +637,6 @@ extension_keybinding_registry_.get()) global_registry->set_registry_for_active_window(nullptr); - // This has a reference to |tabstrip_| so destroy it first. - tab_groups_iph_controller_.reset(); - // The TabStrip attaches a listener to the model. Make sure we shut down the // TabStrip first so that it can cleanly remove the listener. if (tabstrip_)
diff --git a/chrome/browser/ui/views/frame/browser_view.h b/chrome/browser/ui/views/frame/browser_view.h index 306a6fae..45d9c49 100644 --- a/chrome/browser/ui/views/frame/browser_view.h +++ b/chrome/browser/ui/views/frame/browser_view.h
@@ -65,7 +65,6 @@ class InfoBarContainerView; class LocationBarView; class StatusBubbleViews; -class TabGroupsIPHController; class TabStrip; class TabStripRegionView; class ToolbarButtonProvider; @@ -306,10 +305,6 @@ return toolbar_button_provider_; } - TabGroupsIPHController* tab_groups_iph_controller() { - return tab_groups_iph_controller_.get(); - } - FeaturePromoControllerViews* feature_promo_controller() { return feature_promo_controller_.get(); } @@ -918,7 +913,6 @@ std::unique_ptr<AccessibilityFocusHighlight> accessibility_focus_highlight_; - std::unique_ptr<TabGroupsIPHController> tab_groups_iph_controller_; std::unique_ptr<FeaturePromoControllerViews> feature_promo_controller_; #if defined(OS_CHROMEOS)
diff --git a/chrome/browser/ui/views/global_media_controls/media_notification_audio_device_selector_view_delegate.h b/chrome/browser/ui/views/global_media_controls/media_notification_audio_device_selector_view_delegate.h deleted file mode 100644 index c1e57dc3..0000000 --- a/chrome/browser/ui/views/global_media_controls/media_notification_audio_device_selector_view_delegate.h +++ /dev/null
@@ -1,13 +0,0 @@ -// Copyright 2020 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. -#ifndef CHROME_BROWSER_UI_VIEWS_GLOBAL_MEDIA_CONTROLS_MEDIA_NOTIFICATION_AUDIO_DEVICE_SELECTOR_VIEW_DELEGATE_H_ -#define CHROME_BROWSER_UI_VIEWS_GLOBAL_MEDIA_CONTROLS_MEDIA_NOTIFICATION_AUDIO_DEVICE_SELECTOR_VIEW_DELEGATE_H_ - -class MediaNotificationAudioDeviceSelectorViewDelegate { - public: - virtual void OnAudioSinkChosen(const std::string& sink_id) = 0; - virtual void OnAudioDeviceSelectorViewSizeChanged() = 0; -}; - -#endif // CHROME_BROWSER_UI_VIEWS_GLOBAL_MEDIA_CONTROLS_MEDIA_NOTIFICATION_AUDIO_DEVICE_SELECTOR_VIEW_DELEGATE_H_
diff --git a/chrome/browser/ui/views/global_media_controls/media_notification_audio_device_selector_view_unittest.cc b/chrome/browser/ui/views/global_media_controls/media_notification_audio_device_selector_view_unittest.cc deleted file mode 100644 index 119b3e4..0000000 --- a/chrome/browser/ui/views/global_media_controls/media_notification_audio_device_selector_view_unittest.cc +++ /dev/null
@@ -1,300 +0,0 @@ -// Copyright 2020 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#include "chrome/browser/ui/views/global_media_controls/media_notification_audio_device_selector_view.h" - -#include "base/strings/utf_string_conversions.h" -#include "base/time/time.h" -#include "base/util/ranges/algorithm.h" -#include "chrome/browser/media/router/media_router_factory.h" -#include "chrome/browser/media/router/test/mock_media_router.h" -#include "chrome/browser/ui/global_media_controls/media_notification_device_provider.h" -#include "chrome/browser/ui/global_media_controls/media_notification_service.h" -#include "chrome/browser/ui/views/global_media_controls/media_notification_audio_device_selector_view_delegate.h" -#include "chrome/test/base/testing_profile.h" -#include "chrome/test/views/chrome_views_test_base.h" -#include "media/audio/audio_device_description.h" -#include "ui/events/base_event_utils.h" -#include "ui/gfx/color_palette.h" - -class MediaNotificationContainerObserver; - -namespace { - -class MockMediaNotificationDeviceProvider - : public MediaNotificationDeviceProvider { - public: - MockMediaNotificationDeviceProvider() = default; - ~MockMediaNotificationDeviceProvider() override = default; - - void AddDevice(const std::string& device_name, const std::string& device_id) { - device_descriptions_.emplace_back(device_name, device_id, ""); - } - - void ResetDevices() { device_descriptions_.clear(); } - - void RunUICallback() { output_devices_callback_.Run(device_descriptions_); } - - std::unique_ptr<MediaNotificationDeviceProvider:: - GetOutputDevicesCallbackList::Subscription> - RegisterOutputDeviceDescriptionsCallback( - GetOutputDevicesCallback cb) override { - output_devices_callback_ = std::move(cb); - RunUICallback(); - return std::unique_ptr<MockMediaNotificationDeviceProvider:: - GetOutputDevicesCallbackList::Subscription>( - nullptr); - } - - MOCK_METHOD(void, - GetOutputDeviceDescriptions, - (media::AudioSystem::OnDeviceDescriptionsCallback), - (override)); - - private: - media::AudioDeviceDescriptions device_descriptions_; - - GetOutputDevicesCallback output_devices_callback_; -}; - -class MockMediaNotificationAudioDeviceSelectorViewDelegate - : public MediaNotificationAudioDeviceSelectorViewDelegate { - public: - MOCK_METHOD(void, - OnAudioSinkChosen, - (const std::string& sink_id), - (override)); - MOCK_METHOD(void, OnAudioDeviceSelectorViewSizeChanged, (), (override)); -}; - -} // anonymous namespace - -class MediaNotificationAudioDeviceSelectorViewTest - : public ChromeViewsTestBase { - public: - MediaNotificationAudioDeviceSelectorViewTest() = default; - ~MediaNotificationAudioDeviceSelectorViewTest() override = default; - - // ChromeViewsTestBase - void SetUp() override { - ChromeViewsTestBase::SetUp(); - provider_ = std::make_unique<MockMediaNotificationDeviceProvider>(); - media_router::MediaRouterFactory::GetInstance()->SetTestingFactory( - &profile_, base::BindRepeating(&media_router::MockMediaRouter::Create)); - service_ = std::make_unique<MediaNotificationService>(&profile_); - } - - void TearDown() override { - view_.reset(); - service_.reset(); - provider_.reset(); - ChromeViewsTestBase::TearDown(); - } - - void SimulateButtonClick(views::View* view) { - view_->ButtonPressed( - static_cast<views::Button*>(view), - ui::MouseEvent(ui::ET_MOUSE_PRESSED, gfx::Point(), gfx::Point(), - ui::EventTimeForNow(), 0, 0)); - } - - static std::string EntryLabelText(views::View* entry_view) { - return MediaNotificationAudioDeviceSelectorView:: - get_entry_label_for_testing(entry_view); - } - - static bool IsHighlighted(views::View* entry_view) { - return MediaNotificationAudioDeviceSelectorView:: - get_entry_is_highlighted_for_testing(entry_view); - } - - std::string GetButtonText(views::View* view) { - return base::UTF16ToUTF8(static_cast<views::LabelButton*>(view)->GetText()); - } - - TestingProfile profile_; - std::unique_ptr<MockMediaNotificationDeviceProvider> provider_; - std::unique_ptr<MediaNotificationService> service_; - std::unique_ptr<MediaNotificationAudioDeviceSelectorView> view_; -}; - -TEST_F(MediaNotificationAudioDeviceSelectorViewTest, DeviceButtonsCreated) { - // Buttons should be created for every device reported by the provider - provider_->AddDevice("Speaker", "1"); - provider_->AddDevice("Headphones", "2"); - provider_->AddDevice("Earbuds", "3"); - service_->set_device_provider_for_testing(std::move(provider_)); - - MockMediaNotificationAudioDeviceSelectorViewDelegate delegate; - view_ = std::make_unique<MediaNotificationAudioDeviceSelectorView>( - &delegate, service_.get(), "1", gfx::kPlaceholderColor, - gfx::kPlaceholderColor); - - ASSERT_TRUE(view_->audio_device_entries_container_ != nullptr); - - auto container_children = view_->audio_device_entries_container_->children(); - ASSERT_EQ(container_children.size(), 3u); - - EXPECT_EQ(EntryLabelText(container_children.at(0)), "Speaker"); - EXPECT_EQ(EntryLabelText(container_children.at(1)), "Headphones"); - EXPECT_EQ(EntryLabelText(container_children.at(2)), "Earbuds"); -} - -TEST_F(MediaNotificationAudioDeviceSelectorViewTest, - ExpandButtonOpensEntryContainer) { - provider_->AddDevice("Speaker", "1"); - service_->set_device_provider_for_testing(std::move(provider_)); - MockMediaNotificationAudioDeviceSelectorViewDelegate delegate; - view_ = std::make_unique<MediaNotificationAudioDeviceSelectorView>( - &delegate, service_.get(), "1", gfx::kPlaceholderColor, - gfx::kPlaceholderColor); - - ASSERT_TRUE(view_->expand_button_); - EXPECT_FALSE(view_->audio_device_entries_container_->GetVisible()); - SimulateButtonClick(view_->expand_button_); - EXPECT_TRUE(view_->audio_device_entries_container_->GetVisible()); -} - -TEST_F(MediaNotificationAudioDeviceSelectorViewTest, - DeviceButtonClickNotifiesContainer) { - // When buttons are clicked the media notification delegate should be - // informed. - provider_->AddDevice("Speaker", "1"); - provider_->AddDevice("Headphones", "2"); - provider_->AddDevice("Earbuds", "3"); - service_->set_device_provider_for_testing(std::move(provider_)); - - MockMediaNotificationAudioDeviceSelectorViewDelegate delegate; - EXPECT_CALL(delegate, OnAudioSinkChosen("1")).Times(1); - EXPECT_CALL(delegate, OnAudioSinkChosen("2")).Times(1); - EXPECT_CALL(delegate, OnAudioSinkChosen("3")).Times(1); - - view_ = std::make_unique<MediaNotificationAudioDeviceSelectorView>( - &delegate, service_.get(), "1", gfx::kPlaceholderColor, - gfx::kPlaceholderColor); - - for (views::View* child : - view_->audio_device_entries_container_->children()) { - SimulateButtonClick(child); - } -} - -TEST_F(MediaNotificationAudioDeviceSelectorViewTest, CurrentDeviceHighlighted) { - // The 'current' audio device should be highlighted in the UI and appear - // before other devices. - provider_->AddDevice("Speaker", "1"); - provider_->AddDevice("Headphones", "2"); - provider_->AddDevice("Earbuds", "3"); - service_->set_device_provider_for_testing(std::move(provider_)); - - MockMediaNotificationAudioDeviceSelectorViewDelegate delegate; - view_ = std::make_unique<MediaNotificationAudioDeviceSelectorView>( - &delegate, service_.get(), "3", gfx::kPlaceholderColor, - gfx::kPlaceholderColor); - - auto* first_entry = - view_->audio_device_entries_container_->children().front(); - EXPECT_EQ(EntryLabelText(first_entry), "Earbuds"); - EXPECT_TRUE(IsHighlighted(first_entry)); -} - -TEST_F(MediaNotificationAudioDeviceSelectorViewTest, - DeviceHighlightedOnChange) { - // When the audio output device changes, the UI should highlight that one. - provider_->AddDevice("Speaker", "1"); - provider_->AddDevice("Headphones", "2"); - provider_->AddDevice("Earbuds", "3"); - service_->set_device_provider_for_testing(std::move(provider_)); - - MockMediaNotificationAudioDeviceSelectorViewDelegate delegate; - view_ = std::make_unique<MediaNotificationAudioDeviceSelectorView>( - &delegate, service_.get(), "1", gfx::kPlaceholderColor, - gfx::kPlaceholderColor); - - auto& container_children = view_->audio_device_entries_container_->children(); - - // There should be only one highlighted button. It should be the first button. - // It's text should be "Speaker" - EXPECT_EQ(util::ranges::count_if(container_children, IsHighlighted), 1); - EXPECT_EQ(util::ranges::find_if(container_children, IsHighlighted), - container_children.begin()); - EXPECT_EQ(EntryLabelText(container_children.front()), "Speaker"); - - // Simulate a device change - view_->UpdateCurrentAudioDevice("3"); - - // The button for "Earbuds" should come before all others & be highlighted. - EXPECT_EQ(util::ranges::count_if(container_children, IsHighlighted), 1); - EXPECT_EQ(util::ranges::find_if(container_children, IsHighlighted), - container_children.begin()); - EXPECT_EQ(EntryLabelText(container_children.front()), "Earbuds"); -} - -TEST_F(MediaNotificationAudioDeviceSelectorViewTest, DeviceButtonsChange) { - // If the device provider reports a change in connect audio devices, the UI - // should update accordingly. - provider_->AddDevice("Speaker", "1"); - provider_->AddDevice("Headphones", "2"); - provider_->AddDevice("Earbuds", "3"); - auto* provider = provider_.get(); - service_->set_device_provider_for_testing(std::move(provider_)); - - MockMediaNotificationAudioDeviceSelectorViewDelegate delegate; - view_ = std::make_unique<MediaNotificationAudioDeviceSelectorView>( - &delegate, service_.get(), "1", gfx::kPlaceholderColor, - gfx::kPlaceholderColor); - - provider->ResetDevices(); - // Make "Monitor" the default device. - provider->AddDevice("Monitor", - media::AudioDeviceDescription::kDefaultDeviceId); - provider->RunUICallback(); - - auto& container_children = view_->audio_device_entries_container_->children(); - EXPECT_EQ(container_children.size(), 1u); - ASSERT_FALSE(container_children.empty()); - EXPECT_EQ(EntryLabelText(container_children.front()), "Monitor"); - - // When the device highlighted in the UI is removed, the UI should fall back - // to highlighting the default device. - EXPECT_TRUE(IsHighlighted(container_children.front())); -} - -TEST_F(MediaNotificationAudioDeviceSelectorViewTest, VisibilityChanges) { - // The audio device selector view should become hidden when there is only one - // unique device. - provider_->AddDevice("Speaker", "1"); - provider_->AddDevice(media::AudioDeviceDescription::GetDefaultDeviceName(), - media::AudioDeviceDescription::kDefaultDeviceId); - auto* provider = provider_.get(); - service_->set_device_provider_for_testing(std::move(provider_)); - - MockMediaNotificationAudioDeviceSelectorViewDelegate delegate; - EXPECT_CALL(delegate, OnAudioDeviceSelectorViewSizeChanged).Times(1); - view_ = std::make_unique<MediaNotificationAudioDeviceSelectorView>( - &delegate, service_.get(), "1", gfx::kPlaceholderColor, - gfx::kPlaceholderColor); - EXPECT_FALSE(view_->GetVisible()); - - testing::Mock::VerifyAndClearExpectations(&delegate); - - provider->ResetDevices(); - provider->AddDevice("Speaker", "1"); - provider->AddDevice("Headphones", - media::AudioDeviceDescription::kDefaultDeviceId); - EXPECT_CALL(delegate, OnAudioDeviceSelectorViewSizeChanged).Times(1); - provider->RunUICallback(); - EXPECT_TRUE(view_->GetVisible()); - testing::Mock::VerifyAndClearExpectations(&delegate); - - provider->ResetDevices(); - provider->AddDevice("Speaker", "1"); - provider->AddDevice("Headphones", "2"); - provider->AddDevice(media::AudioDeviceDescription::GetDefaultDeviceName(), - media::AudioDeviceDescription::kDefaultDeviceId); - EXPECT_CALL(delegate, OnAudioDeviceSelectorViewSizeChanged).Times(1); - provider->RunUICallback(); - EXPECT_TRUE(view_->GetVisible()); - testing::Mock::VerifyAndClearExpectations(&delegate); -}
diff --git a/chrome/browser/ui/views/global_media_controls/media_notification_container_impl_view.cc b/chrome/browser/ui/views/global_media_controls/media_notification_container_impl_view.cc index 3c7f76a84..2d030ea 100644 --- a/chrome/browser/ui/views/global_media_controls/media_notification_container_impl_view.cc +++ b/chrome/browser/ui/views/global_media_controls/media_notification_container_impl_view.cc
@@ -10,7 +10,7 @@ #include "chrome/browser/ui/global_media_controls/media_notification_service.h" #include "chrome/browser/ui/global_media_controls/media_toolbar_button_controller.h" #include "chrome/browser/ui/views/global_media_controls/media_dialog_view.h" -#include "chrome/browser/ui/views/global_media_controls/media_notification_audio_device_selector_view.h" +#include "chrome/browser/ui/views/global_media_controls/media_notification_device_selector_view.h" #include "chrome/grit/generated_resources.h" #include "components/vector_icons/vector_icons.h" #include "media/audio/audio_device_description.h" @@ -124,9 +124,8 @@ media::kGlobalMediaControlsSeamlessTransfer) && !is_cast_notification) { auto audio_device_selector_view = - std::make_unique<MediaNotificationAudioDeviceSelectorView>( - this, service_, audio_sink_id_, foreground_color_, - background_color_); + std::make_unique<MediaNotificationDeviceSelectorView>( + this, audio_sink_id_, foreground_color_, background_color_); audio_device_selector_view_ = AddChildView(std::move(audio_device_selector_view)); view_->UpdateCornerRadius(message_center::kNotificationCornerRadius, 0); @@ -349,11 +348,20 @@ } } -void MediaNotificationContainerImplView:: - OnAudioDeviceSelectorViewSizeChanged() { +void MediaNotificationContainerImplView::OnDeviceSelectorViewSizeChanged() { OnSizeChanged(); } +std::unique_ptr< + MediaNotificationDeviceProvider::GetOutputDevicesCallbackList::Subscription> +MediaNotificationContainerImplView:: + RegisterAudioOutputDeviceDescriptionsCallback( + MediaNotificationDeviceProvider::GetOutputDevicesCallbackList:: + CallbackType callback) { + return service_->RegisterAudioOutputDeviceDescriptionsCallback( + std::move(callback)); +} + ui::Layer* MediaNotificationContainerImplView::GetSlideOutLayer() { return swipeable_container_->layer(); } @@ -483,7 +491,7 @@ DCHECK(audio_device_selector_view_size.width() == kWidth); new_size.set_height(new_size.height() + audio_device_selector_view_size.height()); - view_->UpdateAudioDeviceSelectorAvailability( + view_->UpdateDeviceSelectorAvailability( audio_device_selector_view_->GetVisible()); }
diff --git a/chrome/browser/ui/views/global_media_controls/media_notification_container_impl_view.h b/chrome/browser/ui/views/global_media_controls/media_notification_container_impl_view.h index cd3b715..5d57ce3 100644 --- a/chrome/browser/ui/views/global_media_controls/media_notification_container_impl_view.h +++ b/chrome/browser/ui/views/global_media_controls/media_notification_container_impl_view.h
@@ -10,7 +10,7 @@ #include "base/memory/weak_ptr.h" #include "base/observer_list.h" #include "chrome/browser/ui/global_media_controls/media_notification_container_impl.h" -#include "chrome/browser/ui/views/global_media_controls/media_notification_audio_device_selector_view_delegate.h" +#include "chrome/browser/ui/views/global_media_controls/media_notification_device_selector_view_delegate.h" #include "chrome/browser/ui/views/global_media_controls/overlay_media_notification_view.h" #include "components/media_message_center/media_notification_container.h" #include "components/media_message_center/media_notification_view_impl.h" @@ -29,7 +29,7 @@ class SlideOutController; } // namespace views -class MediaNotificationAudioDeviceSelectorView; +class MediaNotificationDeviceSelectorView; class MediaNotificationContainerObserver; class MediaNotificationService; @@ -40,7 +40,7 @@ : public views::Button, public media_message_center::MediaNotificationContainer, public MediaNotificationContainerImpl, - public MediaNotificationAudioDeviceSelectorViewDelegate, + public MediaNotificationDeviceSelectorViewDelegate, public views::SlideOutControllerDelegate, public views::ButtonListener, public views::FocusChangeListener { @@ -92,10 +92,15 @@ void AddObserver(MediaNotificationContainerObserver* observer) override; void RemoveObserver(MediaNotificationContainerObserver* observer) override; - // MediaNotificationAudioDeviceSelectorViewDelegate + // MediaNotificationDeviceSelectorViewDelegate // Called when an audio device has been selected for output. void OnAudioSinkChosen(const std::string& sink_id) override; - void OnAudioDeviceSelectorViewSizeChanged() override; + void OnDeviceSelectorViewSizeChanged() override; + std::unique_ptr<MediaNotificationDeviceProvider:: + GetOutputDevicesCallbackList::Subscription> + RegisterAudioOutputDeviceDescriptionsCallback( + MediaNotificationDeviceProvider::GetOutputDevicesCallbackList:: + CallbackType callback) override; // Sets up the notification to be ready to display in an overlay instead of // the dialog. @@ -159,8 +164,7 @@ DismissButton* dismiss_button_ = nullptr; media_message_center::MediaNotificationViewImpl* view_ = nullptr; - MediaNotificationAudioDeviceSelectorView* audio_device_selector_view_ = - nullptr; + MediaNotificationDeviceSelectorView* audio_device_selector_view_ = nullptr; SkColor foreground_color_; SkColor background_color_;
diff --git a/chrome/browser/ui/views/global_media_controls/media_notification_audio_device_selector_view.cc b/chrome/browser/ui/views/global_media_controls/media_notification_device_selector_view.cc similarity index 77% rename from chrome/browser/ui/views/global_media_controls/media_notification_audio_device_selector_view.cc rename to chrome/browser/ui/views/global_media_controls/media_notification_device_selector_view.cc index 0a8afcc..b38b983 100644 --- a/chrome/browser/ui/views/global_media_controls/media_notification_audio_device_selector_view.cc +++ b/chrome/browser/ui/views/global_media_controls/media_notification_device_selector_view.cc
@@ -2,13 +2,12 @@ // 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/global_media_controls/media_notification_audio_device_selector_view.h" +#include "chrome/browser/ui/views/global_media_controls/media_notification_device_selector_view.h" #include "base/strings/utf_string_conversions.h" #include "base/util/ranges/algorithm.h" #include "chrome/browser/ui/global_media_controls/media_notification_container_impl.h" -#include "chrome/browser/ui/global_media_controls/media_notification_service.h" -#include "chrome/browser/ui/views/global_media_controls/media_notification_audio_device_selector_view_delegate.h" +#include "chrome/browser/ui/views/global_media_controls/media_notification_device_selector_view_delegate.h" #include "chrome/grit/chromium_strings.h" #include "components/vector_icons/vector_icons.h" #include "media/audio/audio_device_description.h" @@ -22,25 +21,25 @@ namespace { -// Constants for the AudioDeviceEntryView +// Constants for the DeviceEntryView constexpr gfx::Insets kIconContainerInsets{10, 15}; constexpr int kDeviceIconSize = 18; constexpr gfx::Insets kLabelsContainerInsets{18, 0}; -constexpr gfx::Size kAudioDeviceEntryViewSize{400, 30}; +constexpr gfx::Size kDeviceEntryViewSize{400, 30}; constexpr int kEntryHighlightOpacity = 45; -// Constants for the MediaNotificationAudioDeviceSelectorView +// Constants for the MediaNotificationDeviceSelectorView constexpr gfx::Insets kExpandButtonStripInsets{6, 15}; constexpr gfx::Size kExpandButtonStripSize{400, 30}; constexpr gfx::Insets kExpandButtonBorderInsets{4, 8}; constexpr int kExpandButtonBorderCornerRadius = 16; -class AudioDeviceEntryView : public views::Button { +class DeviceEntryView : public views::Button { public: - AudioDeviceEntryView(const SkColor& foreground_color, - const SkColor& background_color, - const std::string& raw_device_id, - const std::string& name, - const std::string& subtext = ""); + DeviceEntryView(const SkColor& foreground_color, + const SkColor& background_color, + const std::string& raw_device_id, + const std::string& name, + const std::string& subtext = ""); const std::string& GetDeviceId() { return raw_device_id_; } const std::string& GetDeviceName() { return device_name_; } @@ -65,11 +64,11 @@ } // anonymous namespace -AudioDeviceEntryView::AudioDeviceEntryView(const SkColor& foreground_color, - const SkColor& background_color, - const std::string& raw_device_id, - const std::string& name, - const std::string& subtext) +DeviceEntryView::DeviceEntryView(const SkColor& foreground_color, + const SkColor& background_color, + const std::string& raw_device_id, + const std::string& name, + const std::string& subtext) : foreground_color_(foreground_color), background_color_(background_color), raw_device_id_(raw_device_id), @@ -124,10 +123,10 @@ SetInkDropMode(Button::InkDropMode::ON); set_ink_drop_base_color(foreground_color); set_has_ink_drop_action_on_click(true); - SetPreferredSize(kAudioDeviceEntryViewSize); + SetPreferredSize(kDeviceEntryViewSize); } -void AudioDeviceEntryView::SetHighlighted(bool highlighted) { +void DeviceEntryView::SetHighlighted(bool highlighted) { is_highlighted_ = highlighted; if (highlighted) { SetInkDropMode(Button::InkDropMode::OFF); @@ -141,8 +140,8 @@ } } -void AudioDeviceEntryView::OnColorsChanged(const SkColor& foreground_color, - const SkColor& background_color) { +void DeviceEntryView::OnColorsChanged(const SkColor& foreground_color, + const SkColor& background_color) { foreground_color_ = foreground_color; background_color_ = background_color; set_ink_drop_base_color(foreground_color_); @@ -162,13 +161,11 @@ SetHighlighted(is_highlighted_); } -MediaNotificationAudioDeviceSelectorView:: - MediaNotificationAudioDeviceSelectorView( - MediaNotificationAudioDeviceSelectorViewDelegate* delegate, - MediaNotificationService* service, - const std::string& current_device_id, - const SkColor& foreground_color, - const SkColor& background_color) +MediaNotificationDeviceSelectorView::MediaNotificationDeviceSelectorView( + MediaNotificationDeviceSelectorViewDelegate* delegate, + const std::string& current_device_id, + const SkColor& foreground_color, + const SkColor& background_color) : delegate_(delegate), current_device_id_(current_device_id), foreground_color_(foreground_color), @@ -218,13 +215,13 @@ // Get a list of the connected audio output devices audio_device_subscription_ = - service->RegisterAudioOutputDeviceDescriptionsCallback( - base::BindRepeating(&MediaNotificationAudioDeviceSelectorView:: - UpdateAvailableAudioDevices, - weak_ptr_factory_.GetWeakPtr())); + delegate->RegisterAudioOutputDeviceDescriptionsCallback( + base::BindRepeating( + &MediaNotificationDeviceSelectorView::UpdateAvailableAudioDevices, + weak_ptr_factory_.GetWeakPtr())); } -void MediaNotificationAudioDeviceSelectorView::UpdateCurrentAudioDevice( +void MediaNotificationDeviceSelectorView::UpdateCurrentAudioDevice( const std::string& current_device_id) { if (current_device_entry_view_) { current_device_entry_view_->SetHighlighted(false); @@ -234,14 +231,14 @@ auto it = util::ranges::find_if( audio_device_entries_container_->children(), [¤t_device_id](auto& item) { - return static_cast<AudioDeviceEntryView*>(item)->GetDeviceId() == + return static_cast<DeviceEntryView*>(item)->GetDeviceId() == current_device_id; }); if (it == audio_device_entries_container_->children().end()) return; - current_device_entry_view_ = static_cast<AudioDeviceEntryView*>(*it); + current_device_entry_view_ = static_cast<DeviceEntryView*>(*it); current_device_entry_view_->SetHighlighted(true); audio_device_entries_container_->ReorderChildView(current_device_entry_view_, 0); @@ -249,19 +246,18 @@ current_device_entry_view_->Layout(); } -MediaNotificationAudioDeviceSelectorView:: - ~MediaNotificationAudioDeviceSelectorView() { +MediaNotificationDeviceSelectorView::~MediaNotificationDeviceSelectorView() { audio_device_subscription_.release(); } -void MediaNotificationAudioDeviceSelectorView::UpdateAvailableAudioDevices( +void MediaNotificationDeviceSelectorView::UpdateAvailableAudioDevices( const media::AudioDeviceDescriptions& device_descriptions) { audio_device_entries_container_->RemoveAllChildViews(true); current_device_entry_view_ = nullptr; bool current_device_still_exists = false; for (auto description : device_descriptions) { - auto device_entry_view = std::make_unique<AudioDeviceEntryView>( + auto device_entry_view = std::make_unique<DeviceEntryView>( foreground_color_, background_color_, description.unique_id, description.device_name, ""); device_entry_view->set_listener(this); @@ -278,10 +274,10 @@ : media::AudioDeviceDescription::kDefaultDeviceId); SetVisible(ShouldBeVisible(device_descriptions)); - delegate_->OnAudioDeviceSelectorViewSizeChanged(); + delegate_->OnDeviceSelectorViewSizeChanged(); } -void MediaNotificationAudioDeviceSelectorView::OnColorsChanged( +void MediaNotificationDeviceSelectorView::OnColorsChanged( const SkColor& foreground_color, const SkColor& background_color) { foreground_color_ = foreground_color; @@ -293,13 +289,13 @@ views::CreateSolidBackground(background_color_)); SetBackground(views::CreateSolidBackground(background_color_)); for (auto* view : audio_device_entries_container_->children()) { - static_cast<AudioDeviceEntryView*>(view)->OnColorsChanged( - foreground_color_, background_color_); + static_cast<DeviceEntryView*>(view)->OnColorsChanged(foreground_color_, + background_color_); } SchedulePaint(); } -void MediaNotificationAudioDeviceSelectorView::ButtonPressed( +void MediaNotificationDeviceSelectorView::ButtonPressed( views::Button* sender, const ui::Event& event) { if (sender == expand_button_) { @@ -308,32 +304,31 @@ else ShowDevices(); - delegate_->OnAudioDeviceSelectorViewSizeChanged(); + delegate_->OnDeviceSelectorViewSizeChanged(); } else { DCHECK(std::find(audio_device_entries_container_->children().cbegin(), audio_device_entries_container_->children().cend(), sender) != audio_device_entries_container_->children().end()); delegate_->OnAudioSinkChosen( - static_cast<AudioDeviceEntryView*>(sender)->GetDeviceId()); + static_cast<DeviceEntryView*>(sender)->GetDeviceId()); } } // static -std::string -MediaNotificationAudioDeviceSelectorView::get_entry_label_for_testing( +std::string MediaNotificationDeviceSelectorView::get_entry_label_for_testing( views::View* entry_view) { - return static_cast<AudioDeviceEntryView*>(entry_view)->GetDeviceName(); + return static_cast<DeviceEntryView*>(entry_view)->GetDeviceName(); } // static -bool MediaNotificationAudioDeviceSelectorView:: - get_entry_is_highlighted_for_testing(views::View* entry_view) { - return static_cast<AudioDeviceEntryView*>(entry_view) +bool MediaNotificationDeviceSelectorView::get_entry_is_highlighted_for_testing( + views::View* entry_view) { + return static_cast<DeviceEntryView*>(entry_view) ->is_highlighted_for_testing(); } -void MediaNotificationAudioDeviceSelectorView::ShowDevices() { +void MediaNotificationDeviceSelectorView::ShowDevices() { DCHECK(!is_expanded_); is_expanded_ = true; @@ -341,7 +336,7 @@ PreferredSizeChanged(); } -void MediaNotificationAudioDeviceSelectorView::HideDevices() { +void MediaNotificationDeviceSelectorView::HideDevices() { DCHECK(is_expanded_); is_expanded_ = false; @@ -349,7 +344,7 @@ PreferredSizeChanged(); } -bool MediaNotificationAudioDeviceSelectorView::ShouldBeVisible( +bool MediaNotificationDeviceSelectorView::ShouldBeVisible( const media::AudioDeviceDescriptions& device_descriptions) { // The UI should be visible if there are more than one unique devices. That is // when: @@ -359,7 +354,7 @@ if (audio_device_entries_container_->children().size() == 2) { return util::ranges::any_of( audio_device_entries_container_->children(), [](views::View* view) { - auto* entry = static_cast<AudioDeviceEntryView*>(view); + auto* entry = static_cast<DeviceEntryView*>(view); return entry->GetDeviceId() == media::AudioDeviceDescription::kDefaultDeviceId && entry->GetDeviceName() !=
diff --git a/chrome/browser/ui/views/global_media_controls/media_notification_audio_device_selector_view.h b/chrome/browser/ui/views/global_media_controls/media_notification_device_selector_view.h similarity index 65% rename from chrome/browser/ui/views/global_media_controls/media_notification_audio_device_selector_view.h rename to chrome/browser/ui/views/global_media_controls/media_notification_device_selector_view.h index 5799560..70d9e11 100644 --- a/chrome/browser/ui/views/global_media_controls/media_notification_audio_device_selector_view.h +++ b/chrome/browser/ui/views/global_media_controls/media_notification_device_selector_view.h
@@ -2,8 +2,8 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#ifndef CHROME_BROWSER_UI_VIEWS_GLOBAL_MEDIA_CONTROLS_MEDIA_NOTIFICATION_AUDIO_DEVICE_SELECTOR_VIEW_H_ -#define CHROME_BROWSER_UI_VIEWS_GLOBAL_MEDIA_CONTROLS_MEDIA_NOTIFICATION_AUDIO_DEVICE_SELECTOR_VIEW_H_ +#ifndef CHROME_BROWSER_UI_VIEWS_GLOBAL_MEDIA_CONTROLS_MEDIA_NOTIFICATION_DEVICE_SELECTOR_VIEW_H_ +#define CHROME_BROWSER_UI_VIEWS_GLOBAL_MEDIA_CONTROLS_MEDIA_NOTIFICATION_DEVICE_SELECTOR_VIEW_H_ #include "chrome/browser/ui/global_media_controls/media_notification_device_provider.h" #include "media/audio/audio_device_description.h" @@ -12,22 +12,20 @@ #include "ui/views/layout/box_layout.h" namespace { -class AudioDeviceEntryView; +class DeviceEntryView; } // anonymous namespace -class MediaNotificationAudioDeviceSelectorViewDelegate; -class MediaNotificationService; +class MediaNotificationDeviceSelectorViewDelegate; -class MediaNotificationAudioDeviceSelectorView : public views::View, - public views::ButtonListener { +class MediaNotificationDeviceSelectorView : public views::View, + public views::ButtonListener { public: - MediaNotificationAudioDeviceSelectorView( - MediaNotificationAudioDeviceSelectorViewDelegate* delegate, - MediaNotificationService* service, + MediaNotificationDeviceSelectorView( + MediaNotificationDeviceSelectorViewDelegate* delegate, const std::string& current_device_id, const SkColor& foreground_color, const SkColor& background_color); - ~MediaNotificationAudioDeviceSelectorView() override; + ~MediaNotificationDeviceSelectorView() override; // Called when audio output devices are discovered. void UpdateAvailableAudioDevices( @@ -44,17 +42,17 @@ static bool get_entry_is_highlighted_for_testing(views::View* entry_view); private: - FRIEND_TEST_ALL_PREFIXES(MediaNotificationAudioDeviceSelectorViewTest, + FRIEND_TEST_ALL_PREFIXES(MediaNotificationDeviceSelectorViewTest, DeviceButtonsCreated); - FRIEND_TEST_ALL_PREFIXES(MediaNotificationAudioDeviceSelectorViewTest, + FRIEND_TEST_ALL_PREFIXES(MediaNotificationDeviceSelectorViewTest, ExpandButtonOpensEntryContainer); - FRIEND_TEST_ALL_PREFIXES(MediaNotificationAudioDeviceSelectorViewTest, + FRIEND_TEST_ALL_PREFIXES(MediaNotificationDeviceSelectorViewTest, DeviceButtonClickNotifiesContainer); - FRIEND_TEST_ALL_PREFIXES(MediaNotificationAudioDeviceSelectorViewTest, + FRIEND_TEST_ALL_PREFIXES(MediaNotificationDeviceSelectorViewTest, CurrentDeviceHighlighted); - FRIEND_TEST_ALL_PREFIXES(MediaNotificationAudioDeviceSelectorViewTest, + FRIEND_TEST_ALL_PREFIXES(MediaNotificationDeviceSelectorViewTest, DeviceHighlightedOnChange); - FRIEND_TEST_ALL_PREFIXES(MediaNotificationAudioDeviceSelectorViewTest, + FRIEND_TEST_ALL_PREFIXES(MediaNotificationDeviceSelectorViewTest, DeviceButtonsChange); bool ShouldBeVisible( @@ -64,10 +62,10 @@ void HideDevices(); bool is_expanded_ = false; - MediaNotificationAudioDeviceSelectorViewDelegate* const delegate_; + MediaNotificationDeviceSelectorViewDelegate* const delegate_; std::string current_device_id_; SkColor foreground_color_, background_color_; - AudioDeviceEntryView* current_device_entry_view_ = nullptr; + DeviceEntryView* current_device_entry_view_ = nullptr; // Child views views::View* expand_button_strip_; @@ -78,8 +76,8 @@ GetOutputDevicesCallbackList::Subscription> audio_device_subscription_; - base::WeakPtrFactory<MediaNotificationAudioDeviceSelectorView> - weak_ptr_factory_{this}; + base::WeakPtrFactory<MediaNotificationDeviceSelectorView> weak_ptr_factory_{ + this}; }; -#endif // CHROME_BROWSER_UI_VIEWS_GLOBAL_MEDIA_CONTROLS_MEDIA_NOTIFICATION_AUDIO_DEVICE_SELECTOR_VIEW_H_ +#endif // CHROME_BROWSER_UI_VIEWS_GLOBAL_MEDIA_CONTROLS_MEDIA_NOTIFICATION_DEVICE_SELECTOR_VIEW_H_
diff --git a/chrome/browser/ui/views/global_media_controls/media_notification_device_selector_view_delegate.h b/chrome/browser/ui/views/global_media_controls/media_notification_device_selector_view_delegate.h new file mode 100644 index 0000000..bb09430 --- /dev/null +++ b/chrome/browser/ui/views/global_media_controls/media_notification_device_selector_view_delegate.h
@@ -0,0 +1,20 @@ +// Copyright 2020 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. +#ifndef CHROME_BROWSER_UI_VIEWS_GLOBAL_MEDIA_CONTROLS_MEDIA_NOTIFICATION_DEVICE_SELECTOR_VIEW_DELEGATE_H_ +#define CHROME_BROWSER_UI_VIEWS_GLOBAL_MEDIA_CONTROLS_MEDIA_NOTIFICATION_DEVICE_SELECTOR_VIEW_DELEGATE_H_ + +#include "chrome/browser/ui/global_media_controls/media_notification_device_provider.h" + +class MediaNotificationDeviceSelectorViewDelegate { + public: + virtual void OnAudioSinkChosen(const std::string& sink_id) = 0; + virtual void OnDeviceSelectorViewSizeChanged() = 0; + virtual std::unique_ptr<MediaNotificationDeviceProvider:: + GetOutputDevicesCallbackList::Subscription> + RegisterAudioOutputDeviceDescriptionsCallback( + MediaNotificationDeviceProvider::GetOutputDevicesCallbackList:: + CallbackType callback) = 0; +}; + +#endif // CHROME_BROWSER_UI_VIEWS_GLOBAL_MEDIA_CONTROLS_MEDIA_NOTIFICATION_DEVICE_SELECTOR_VIEW_DELEGATE_H_
diff --git a/chrome/browser/ui/views/global_media_controls/media_notification_device_selector_view_unittest.cc b/chrome/browser/ui/views/global_media_controls/media_notification_device_selector_view_unittest.cc new file mode 100644 index 0000000..383e8ed --- /dev/null +++ b/chrome/browser/ui/views/global_media_controls/media_notification_device_selector_view_unittest.cc
@@ -0,0 +1,300 @@ +// Copyright 2020 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "chrome/browser/ui/views/global_media_controls/media_notification_device_selector_view.h" + +#include "base/strings/utf_string_conversions.h" +#include "base/time/time.h" +#include "base/util/ranges/algorithm.h" +#include "chrome/browser/ui/global_media_controls/media_notification_device_provider.h" +#include "chrome/browser/ui/global_media_controls/media_notification_service.h" +#include "chrome/browser/ui/views/global_media_controls/media_notification_device_selector_view_delegate.h" +#include "chrome/test/views/chrome_views_test_base.h" +#include "media/audio/audio_device_description.h" +#include "testing/gmock/include/gmock/gmock.h" +#include "ui/events/base_event_utils.h" +#include "ui/gfx/color_palette.h" + +class MediaNotificationContainerObserver; + +namespace { + +class MockMediaNotificationDeviceProvider + : public MediaNotificationDeviceProvider { + public: + MockMediaNotificationDeviceProvider() = default; + ~MockMediaNotificationDeviceProvider() override = default; + + void AddDevice(const std::string& device_name, const std::string& device_id) { + device_descriptions_.emplace_back(device_name, device_id, ""); + } + + void ResetDevices() { device_descriptions_.clear(); } + + void RunUICallback() { output_devices_callback_.Run(device_descriptions_); } + + std::unique_ptr<MediaNotificationDeviceProvider:: + GetOutputDevicesCallbackList::Subscription> + RegisterOutputDeviceDescriptionsCallback( + GetOutputDevicesCallback cb) override { + output_devices_callback_ = std::move(cb); + RunUICallback(); + return std::unique_ptr<MockMediaNotificationDeviceProvider:: + GetOutputDevicesCallbackList::Subscription>( + nullptr); + } + + MOCK_METHOD(void, + GetOutputDeviceDescriptions, + (media::AudioSystem::OnDeviceDescriptionsCallback), + (override)); + + private: + media::AudioDeviceDescriptions device_descriptions_; + + GetOutputDevicesCallback output_devices_callback_; +}; + +class MockMediaNotificationDeviceSelectorViewDelegate + : public MediaNotificationDeviceSelectorViewDelegate { + public: + MockMediaNotificationDeviceSelectorViewDelegate() { + provider_ = std::make_unique<MockMediaNotificationDeviceProvider>(); + } + + MOCK_METHOD(void, + OnAudioSinkChosen, + (const std::string& sink_id), + (override)); + MOCK_METHOD(void, OnDeviceSelectorViewSizeChanged, (), (override)); + + std::unique_ptr<MediaNotificationDeviceProvider:: + GetOutputDevicesCallbackList::Subscription> + RegisterAudioOutputDeviceDescriptionsCallback( + MediaNotificationDeviceProvider::GetOutputDevicesCallbackList:: + CallbackType callback) override { + return provider_->RegisterOutputDeviceDescriptionsCallback( + std::move(callback)); + } + + MockMediaNotificationDeviceProvider* GetProvider() { return provider_.get(); } + + private: + std::unique_ptr<MockMediaNotificationDeviceProvider> provider_; +}; + +} // anonymous namespace + +class MediaNotificationDeviceSelectorViewTest : public ChromeViewsTestBase { + public: + MediaNotificationDeviceSelectorViewTest() = default; + ~MediaNotificationDeviceSelectorViewTest() override = default; + + // ChromeViewsTestBase + void SetUp() override { ChromeViewsTestBase::SetUp(); } + + void TearDown() override { + view_.reset(); + ChromeViewsTestBase::TearDown(); + } + + void SimulateButtonClick(views::View* view) { + view_->ButtonPressed( + static_cast<views::Button*>(view), + ui::MouseEvent(ui::ET_MOUSE_PRESSED, gfx::Point(), gfx::Point(), + ui::EventTimeForNow(), 0, 0)); + } + + static std::string EntryLabelText(views::View* entry_view) { + return MediaNotificationDeviceSelectorView::get_entry_label_for_testing( + entry_view); + } + + static bool IsHighlighted(views::View* entry_view) { + return MediaNotificationDeviceSelectorView:: + get_entry_is_highlighted_for_testing(entry_view); + } + + std::string GetButtonText(views::View* view) { + return base::UTF16ToUTF8(static_cast<views::LabelButton*>(view)->GetText()); + } + + std::unique_ptr<MediaNotificationDeviceSelectorView> view_; +}; + +TEST_F(MediaNotificationDeviceSelectorViewTest, DeviceButtonsCreated) { + // Buttons should be created for every device reported by the provider + MockMediaNotificationDeviceSelectorViewDelegate delegate; + auto* provider = delegate.GetProvider(); + provider->AddDevice("Speaker", "1"); + provider->AddDevice("Headphones", "2"); + provider->AddDevice("Earbuds", "3"); + + view_ = std::make_unique<MediaNotificationDeviceSelectorView>( + &delegate, "1", gfx::kPlaceholderColor, gfx::kPlaceholderColor); + + ASSERT_TRUE(view_->audio_device_entries_container_ != nullptr); + + auto container_children = view_->audio_device_entries_container_->children(); + ASSERT_EQ(container_children.size(), 3u); + + EXPECT_EQ(EntryLabelText(container_children.at(0)), "Speaker"); + EXPECT_EQ(EntryLabelText(container_children.at(1)), "Headphones"); + EXPECT_EQ(EntryLabelText(container_children.at(2)), "Earbuds"); +} + +TEST_F(MediaNotificationDeviceSelectorViewTest, + ExpandButtonOpensEntryContainer) { + MockMediaNotificationDeviceSelectorViewDelegate delegate; + auto* provider = delegate.GetProvider(); + provider->AddDevice("Speaker", "1"); + provider->AddDevice("Headphones", "2"); + provider->AddDevice("Earbuds", "3"); + + view_ = std::make_unique<MediaNotificationDeviceSelectorView>( + &delegate, "1", gfx::kPlaceholderColor, gfx::kPlaceholderColor); + + ASSERT_TRUE(view_->expand_button_); + EXPECT_FALSE(view_->audio_device_entries_container_->GetVisible()); + SimulateButtonClick(view_->expand_button_); + EXPECT_TRUE(view_->audio_device_entries_container_->GetVisible()); +} + +TEST_F(MediaNotificationDeviceSelectorViewTest, + DeviceButtonClickNotifiesContainer) { + // When buttons are clicked the media notification delegate should be + // informed. + MockMediaNotificationDeviceSelectorViewDelegate delegate; + auto* provider = delegate.GetProvider(); + provider->AddDevice("Speaker", "1"); + provider->AddDevice("Headphones", "2"); + provider->AddDevice("Earbuds", "3"); + + view_ = std::make_unique<MediaNotificationDeviceSelectorView>( + &delegate, "1", gfx::kPlaceholderColor, gfx::kPlaceholderColor); + + EXPECT_CALL(delegate, OnAudioSinkChosen("1")).Times(1); + EXPECT_CALL(delegate, OnAudioSinkChosen("2")).Times(1); + EXPECT_CALL(delegate, OnAudioSinkChosen("3")).Times(1); + + for (views::View* child : + view_->audio_device_entries_container_->children()) { + SimulateButtonClick(child); + } +} + +TEST_F(MediaNotificationDeviceSelectorViewTest, CurrentDeviceHighlighted) { + // The 'current' audio device should be highlighted in the UI and appear + // before other devices. + MockMediaNotificationDeviceSelectorViewDelegate delegate; + auto* provider = delegate.GetProvider(); + provider->AddDevice("Speaker", "1"); + provider->AddDevice("Headphones", "2"); + provider->AddDevice("Earbuds", "3"); + + view_ = std::make_unique<MediaNotificationDeviceSelectorView>( + &delegate, "3", gfx::kPlaceholderColor, gfx::kPlaceholderColor); + + auto* first_entry = + view_->audio_device_entries_container_->children().front(); + EXPECT_EQ(EntryLabelText(first_entry), "Earbuds"); + EXPECT_TRUE(IsHighlighted(first_entry)); +} + +TEST_F(MediaNotificationDeviceSelectorViewTest, DeviceHighlightedOnChange) { + // When the audio output device changes, the UI should highlight that one. + MockMediaNotificationDeviceSelectorViewDelegate delegate; + auto* provider = delegate.GetProvider(); + provider->AddDevice("Speaker", "1"); + provider->AddDevice("Headphones", "2"); + provider->AddDevice("Earbuds", "3"); + + view_ = std::make_unique<MediaNotificationDeviceSelectorView>( + &delegate, "1", gfx::kPlaceholderColor, gfx::kPlaceholderColor); + + auto& container_children = view_->audio_device_entries_container_->children(); + + // There should be only one highlighted button. It should be the first button. + // It's text should be "Speaker" + EXPECT_EQ(util::ranges::count_if(container_children, IsHighlighted), 1); + EXPECT_EQ(util::ranges::find_if(container_children, IsHighlighted), + container_children.begin()); + EXPECT_EQ(EntryLabelText(container_children.front()), "Speaker"); + + // Simulate a device change + view_->UpdateCurrentAudioDevice("3"); + + // The button for "Earbuds" should come before all others & be highlighted. + EXPECT_EQ(util::ranges::count_if(container_children, IsHighlighted), 1); + EXPECT_EQ(util::ranges::find_if(container_children, IsHighlighted), + container_children.begin()); + EXPECT_EQ(EntryLabelText(container_children.front()), "Earbuds"); +} + +TEST_F(MediaNotificationDeviceSelectorViewTest, DeviceButtonsChange) { + // If the device provider reports a change in connect audio devices, the UI + // should update accordingly. + MockMediaNotificationDeviceSelectorViewDelegate delegate; + auto* provider = delegate.GetProvider(); + provider->AddDevice("Speaker", "1"); + provider->AddDevice("Headphones", "2"); + provider->AddDevice("Earbuds", "3"); + + view_ = std::make_unique<MediaNotificationDeviceSelectorView>( + &delegate, "1", gfx::kPlaceholderColor, gfx::kPlaceholderColor); + + provider->ResetDevices(); + // Make "Monitor" the default device. + provider->AddDevice("Monitor", + media::AudioDeviceDescription::kDefaultDeviceId); + provider->RunUICallback(); + + auto& container_children = view_->audio_device_entries_container_->children(); + EXPECT_EQ(container_children.size(), 1u); + ASSERT_FALSE(container_children.empty()); + EXPECT_EQ(EntryLabelText(container_children.front()), "Monitor"); + + // When the device highlighted in the UI is removed, the UI should fall back + // to highlighting the default device. + EXPECT_TRUE(IsHighlighted(container_children.front())); +} + +TEST_F(MediaNotificationDeviceSelectorViewTest, VisibilityChanges) { + // The device selector view should become hidden when there is only one + // unique device. + MockMediaNotificationDeviceSelectorViewDelegate delegate; + auto* provider = delegate.GetProvider(); + provider->AddDevice("Speaker", "1"); + provider->AddDevice(media::AudioDeviceDescription::GetDefaultDeviceName(), + media::AudioDeviceDescription::kDefaultDeviceId); + + view_ = std::make_unique<MediaNotificationDeviceSelectorView>( + &delegate, "1", gfx::kPlaceholderColor, gfx::kPlaceholderColor); + + EXPECT_CALL(delegate, OnDeviceSelectorViewSizeChanged).Times(1); + view_ = std::make_unique<MediaNotificationDeviceSelectorView>( + &delegate, "1", gfx::kPlaceholderColor, gfx::kPlaceholderColor); + EXPECT_FALSE(view_->GetVisible()); + + testing::Mock::VerifyAndClearExpectations(&delegate); + + provider->ResetDevices(); + provider->AddDevice("Speaker", "1"); + provider->AddDevice("Headphones", + media::AudioDeviceDescription::kDefaultDeviceId); + EXPECT_CALL(delegate, OnDeviceSelectorViewSizeChanged).Times(1); + provider->RunUICallback(); + EXPECT_TRUE(view_->GetVisible()); + testing::Mock::VerifyAndClearExpectations(&delegate); + + provider->ResetDevices(); + provider->AddDevice("Speaker", "1"); + provider->AddDevice("Headphones", "2"); + provider->AddDevice(media::AudioDeviceDescription::GetDefaultDeviceName(), + media::AudioDeviceDescription::kDefaultDeviceId); + EXPECT_CALL(delegate, OnDeviceSelectorViewSizeChanged).Times(1); + provider->RunUICallback(); + EXPECT_TRUE(view_->GetVisible()); + testing::Mock::VerifyAndClearExpectations(&delegate); +}
diff --git a/chrome/browser/ui/views/javascript_app_modal_event_blocker_x11.cc b/chrome/browser/ui/views/javascript_app_modal_event_blocker.cc similarity index 81% rename from chrome/browser/ui/views/javascript_app_modal_event_blocker_x11.cc rename to chrome/browser/ui/views/javascript_app_modal_event_blocker.cc index f999dda..8b90056 100644 --- a/chrome/browser/ui/views/javascript_app_modal_event_blocker_x11.cc +++ b/chrome/browser/ui/views/javascript_app_modal_event_blocker.cc
@@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#include "chrome/browser/ui/views/javascript_app_modal_event_blocker_x11.h" +#include "chrome/browser/ui/views/javascript_app_modal_event_blocker.h" #include "chrome/browser/ui/views/frame/browser_view.h" #include "ui/aura/env.h" @@ -23,14 +23,14 @@ } // namespace -JavascriptAppModalEventBlockerX11::JavascriptAppModalEventBlockerX11( +JavascriptAppModalEventBlocker::JavascriptAppModalEventBlocker( aura::Window* modal_window) : modal_window_(modal_window), browser_view_with_modal_dialog_(nullptr) { aura::Window* topmost_transient_parent = GetTopmostTransientParent(modal_window); browser_view_with_modal_dialog_ = BrowserView::GetBrowserViewForNativeWindow(topmost_transient_parent); - // |browser_view_with_modal_dialog_| is NULL if the dialog was opened by an + // |browser_view_with_modal_dialog_| is nullptr if the dialog was opened by an // extension background page. aura::Env::GetInstance()->AddPreTargetHandler( @@ -39,11 +39,11 @@ // WindowModalityController will cancel touches as appropriate. } -JavascriptAppModalEventBlockerX11::~JavascriptAppModalEventBlockerX11() { +JavascriptAppModalEventBlocker::~JavascriptAppModalEventBlocker() { aura::Env::GetInstance()->RemovePreTargetHandler(this); } -bool JavascriptAppModalEventBlockerX11::ShouldStopPropagationTo( +bool JavascriptAppModalEventBlocker::ShouldStopPropagationTo( ui::EventTarget* target) { // Stop propagation if: // -|target| is a browser window or a transient child of a browser window. @@ -61,12 +61,12 @@ return browser_view && browser_view != browser_view_with_modal_dialog_; } -void JavascriptAppModalEventBlockerX11::OnKeyEvent(ui::KeyEvent* event) { +void JavascriptAppModalEventBlocker::OnKeyEvent(ui::KeyEvent* event) { if (ShouldStopPropagationTo(event->target())) event->StopPropagation(); } -void JavascriptAppModalEventBlockerX11::OnMouseEvent(ui::MouseEvent* event) { +void JavascriptAppModalEventBlocker::OnMouseEvent(ui::MouseEvent* event) { if (event->type() != ui::ET_MOUSE_CAPTURE_CHANGED && ShouldStopPropagationTo(event->target())) { if (event->type() == ui::ET_MOUSE_PRESSED) @@ -75,12 +75,12 @@ } } -void JavascriptAppModalEventBlockerX11::OnScrollEvent(ui::ScrollEvent* event) { +void JavascriptAppModalEventBlocker::OnScrollEvent(ui::ScrollEvent* event) { if (ShouldStopPropagationTo(event->target())) event->StopPropagation(); } -void JavascriptAppModalEventBlockerX11::OnTouchEvent(ui::TouchEvent* event) { +void JavascriptAppModalEventBlocker::OnTouchEvent(ui::TouchEvent* event) { if (event->type() != ui::ET_TOUCH_CANCELLED && ShouldStopPropagationTo(event->target())) { if (event->type() == ui::ET_TOUCH_PRESSED)
diff --git a/chrome/browser/ui/views/javascript_app_modal_event_blocker_x11.h b/chrome/browser/ui/views/javascript_app_modal_event_blocker.h similarity index 73% rename from chrome/browser/ui/views/javascript_app_modal_event_blocker_x11.h rename to chrome/browser/ui/views/javascript_app_modal_event_blocker.h index 1ed0e11..b8a76d4 100644 --- a/chrome/browser/ui/views/javascript_app_modal_event_blocker_x11.h +++ b/chrome/browser/ui/views/javascript_app_modal_event_blocker.h
@@ -2,8 +2,8 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#ifndef CHROME_BROWSER_UI_VIEWS_JAVASCRIPT_APP_MODAL_EVENT_BLOCKER_X11_H_ -#define CHROME_BROWSER_UI_VIEWS_JAVASCRIPT_APP_MODAL_EVENT_BLOCKER_X11_H_ +#ifndef CHROME_BROWSER_UI_VIEWS_JAVASCRIPT_APP_MODAL_EVENT_BLOCKER_H_ +#define CHROME_BROWSER_UI_VIEWS_JAVASCRIPT_APP_MODAL_EVENT_BLOCKER_H_ #include "base/macros.h" #include "ui/events/event_handler.h" @@ -18,15 +18,15 @@ class EventTarget; } -// JavascriptAppModalEventBlockerX11 blocks events to all browser windows except +// JavascriptAppModalEventBlocker blocks events to all browser windows except // the browser window which hosts |app_modal_window| for the duration of its -// lifetime. JavascriptAppModalEventBlockerX11 should not outlive +// lifetime. JavascriptAppModalEventBlocker should not outlive // |app_modal_window|. // TODO(pkotwicz): Merge this class into WindowModalityController. -class JavascriptAppModalEventBlockerX11 : public ui::EventHandler { +class JavascriptAppModalEventBlocker : public ui::EventHandler { public: - explicit JavascriptAppModalEventBlockerX11(aura::Window* app_modal_window); - ~JavascriptAppModalEventBlockerX11() override; + explicit JavascriptAppModalEventBlocker(aura::Window* app_modal_window); + ~JavascriptAppModalEventBlocker() override; private: // Returns true if the propagation of events to |target| should be stopped. @@ -44,7 +44,7 @@ // The BrowserView which hosts the app modal dialog. BrowserView* browser_view_with_modal_dialog_; - DISALLOW_COPY_AND_ASSIGN(JavascriptAppModalEventBlockerX11); + DISALLOW_COPY_AND_ASSIGN(JavascriptAppModalEventBlocker); }; -#endif // CHROME_BROWSER_UI_VIEWS_JAVASCRIPT_APP_MODAL_EVENT_BLOCKER_X11_H_ +#endif // CHROME_BROWSER_UI_VIEWS_JAVASCRIPT_APP_MODAL_EVENT_BLOCKER_H_
diff --git a/chrome/browser/ui/views/profiles/profile_menu_view.cc b/chrome/browser/ui/views/profiles/profile_menu_view.cc index 7e16b4fb..45a12bf 100644 --- a/chrome/browser/ui/views/profiles/profile_menu_view.cc +++ b/chrome/browser/ui/views/profiles/profile_menu_view.cc
@@ -34,7 +34,6 @@ #include "chrome/browser/ui/browser_list.h" #include "chrome/browser/ui/browser_navigator_params.h" #include "chrome/browser/ui/passwords/manage_passwords_view_utils.h" -#include "chrome/browser/ui/profile_picker.h" #include "chrome/browser/ui/signin/profile_colors_util.h" #include "chrome/browser/ui/sync/sync_promo_ui.h" #include "chrome/browser/ui/ui_features.h" @@ -400,24 +399,16 @@ RecordClick(ActionableItem::kAddNewProfileButton); if (!perform_menu_actions()) return; - if (base::FeatureList::IsEnabled(features::kNewProfilePicker)) { - ProfilePicker::Show(ProfilePicker::Page::kAddNewProfile); - } else { - UserManager::Show(/*profile_path_to_focus=*/base::FilePath(), - profiles::USER_MANAGER_OPEN_CREATE_USER_PAGE); - } + UserManager::Show(/*profile_path_to_focus=*/base::FilePath(), + profiles::USER_MANAGER_OPEN_CREATE_USER_PAGE); } void ProfileMenuView::OnManageProfilesButtonClicked() { RecordClick(ActionableItem::kManageProfilesButton); if (!perform_menu_actions()) return; - if (base::FeatureList::IsEnabled(features::kNewProfilePicker)) { - ProfilePicker::Show(ProfilePicker::Page::kManageProfiles); - } else { - UserManager::Show(base::FilePath(), - profiles::USER_MANAGER_SELECT_PROFILE_NO_ACTION); - } + UserManager::Show(base::FilePath(), + profiles::USER_MANAGER_SELECT_PROFILE_NO_ACTION); } void ProfileMenuView::OnEditProfileButtonClicked() {
diff --git a/chrome/browser/ui/views/profiles/profile_picker_view.cc b/chrome/browser/ui/views/profiles/profile_picker_view.cc index ca3ecbb21..b860fd3 100644 --- a/chrome/browser/ui/views/profiles/profile_picker_view.cc +++ b/chrome/browser/ui/views/profiles/profile_picker_view.cc
@@ -64,6 +64,11 @@ g_profile_picker_view->Clear(); } +// static +bool ProfilePicker::IsOpen() { + return g_profile_picker_view; +} + ProfilePickerView::ProfilePickerView() : keep_alive_(KeepAliveOrigin::USER_MANAGER_VIEW, KeepAliveRestartOption::DISABLED) {
diff --git a/chrome/browser/ui/views/profiles/user_manager_view.cc b/chrome/browser/ui/views/profiles/user_manager_view.cc index ad94c94e..fa55665 100644 --- a/chrome/browser/ui/views/profiles/user_manager_view.cc +++ b/chrome/browser/ui/views/profiles/user_manager_view.cc
@@ -25,6 +25,8 @@ #include "chrome/browser/ui/browser_dialogs.h" #include "chrome/browser/ui/browser_finder.h" #include "chrome/browser/ui/browser_window.h" +#include "chrome/browser/ui/profile_picker.h" +#include "chrome/browser/ui/ui_features.h" #include "chrome/browser/ui/user_manager.h" #include "chrome/common/url_constants.h" #include "chrome/grit/chromium_strings.h" @@ -168,6 +170,18 @@ profiles::UserManagerAction user_manager_action) { DCHECK(profile_path_to_focus != ProfileManager::GetGuestProfilePath()); + if (!signin_util::IsForceSigninEnabled() && + (user_manager_action == profiles::USER_MANAGER_SELECT_PROFILE_NO_ACTION || + user_manager_action == profiles::USER_MANAGER_OPEN_CREATE_USER_PAGE) && + base::FeatureList::IsEnabled(features::kNewProfilePicker)) { + // Use the new profile picker instead. + ProfilePicker::Show(user_manager_action == + profiles::USER_MANAGER_OPEN_CREATE_USER_PAGE + ? ProfilePicker::Page::kAddNewProfile + : ProfilePicker::Page::kManageProfiles); + return; + } + if (g_user_manager_view) { // If we are showing the User Manager after locking a profile, change the // active profile to Guest. @@ -206,6 +220,9 @@ // static void UserManager::Hide() { + // Hide the profile picker, in case it was opened by UserManager::Show(). + ProfilePicker::Hide(); + if (g_user_manager_view) g_user_manager_view->GetWidget()->Close(); }
diff --git a/chrome/browser/ui/views/tabs/browser_tab_strip_controller.cc b/chrome/browser/ui/views/tabs/browser_tab_strip_controller.cc index a9db939..8e345fa 100644 --- a/chrome/browser/ui/views/tabs/browser_tab_strip_controller.cc +++ b/chrome/browser/ui/views/tabs/browser_tab_strip_controller.cc
@@ -20,6 +20,7 @@ #include "chrome/browser/browser_process.h" #include "chrome/browser/chrome_notification_types.h" #include "chrome/browser/favicon/favicon_utils.h" +#include "chrome/browser/feature_engagement/tracker_factory.h" #include "chrome/browser/search/search.h" #include "chrome/browser/ui/browser.h" #include "chrome/browser/ui/browser_command_controller.h" @@ -37,13 +38,17 @@ #include "chrome/browser/ui/tabs/tab_strip_model_delegate.h" #include "chrome/browser/ui/tabs/tab_utils.h" #include "chrome/browser/ui/ui_features.h" +#include "chrome/browser/ui/views/in_product_help/feature_promo_controller_views.h" #include "chrome/browser/ui/views/tabs/tab.h" #include "chrome/browser/ui/views/tabs/tab_drag_controller.h" -#include "chrome/browser/ui/views/tabs/tab_groups_iph_controller.h" #include "chrome/browser/ui/views/tabs/tab_strip.h" #include "chrome/common/chrome_switches.h" #include "chrome/common/pref_names.h" #include "chrome/common/url_constants.h" +#include "chrome/grit/generated_resources.h" +#include "components/feature_engagement/public/event_constants.h" +#include "components/feature_engagement/public/feature_constants.h" +#include "components/feature_engagement/public/tracker.h" #include "components/omnibox/browser/autocomplete_classifier.h" #include "components/omnibox/browser/autocomplete_match.h" #include "components/prefs/pref_service.h" @@ -103,13 +108,23 @@ public: TabContextMenuContents(Tab* tab, BrowserTabStripController* controller, - TabGroupsIPHController* tab_groups_iph_controller) + FeaturePromoController* feature_promo_controller) : tab_(tab), controller_(controller), - tab_groups_iph_controller_(tab_groups_iph_controller) { + feature_promo_controller_(feature_promo_controller) { model_ = controller_->menu_model_factory_->Create( this, controller->model_, controller->tabstrip_->GetModelIndexOf(tab)); + // If IPH is showing, continue into the menu. IsCommandIdAlerted() + // is called on |menu_runner_| construction, and we check + // |tab_groups_promo_handle_| there. So we must do this first. + if (feature_promo_controller_->BubbleIsShowing( + feature_engagement::kIPHDesktopTabGroupsNewGroupFeature)) { + tab_groups_promo_handle_ = + feature_promo_controller_->CloseBubbleAndContinuePromo( + feature_engagement::kIPHDesktopTabGroupsNewGroupFeature); + } + // Because we use "new" badging for feature promos, we cannot use system- // native context menus. (See crbug.com/1109256.) const int run_flags = @@ -122,7 +137,6 @@ void Cancel() { controller_ = nullptr; } void RunMenuAt(const gfx::Point& point, ui::MenuSourceType source_type) { - tab_groups_iph_controller_->TabContextMenuOpened(); menu_runner_->RunMenuAt(tab_->GetWidget(), nullptr, gfx::Rect(point, gfx::Size()), views::MenuAnchorPosition::kTopLeft, source_type); @@ -138,12 +152,11 @@ bool IsCommandIdAlerted(int command_id) const override { return command_id == TabStripModel::CommandAddToNewGroup && - tab_groups_iph_controller_ && - tab_groups_iph_controller_->ShouldHighlightContextMenuItem(); + tab_groups_promo_handle_; } void MenuClosed(ui::SimpleMenuModel*) override { - tab_groups_iph_controller_->TabContextMenuClosed(); + tab_groups_promo_handle_.reset(); } bool GetAcceleratorForCommandId(int command_id, @@ -178,7 +191,10 @@ // A pointer back to our hosting controller, for command state information. BrowserTabStripController* controller_; - TabGroupsIPHController* const tab_groups_iph_controller_; + FeaturePromoController* const feature_promo_controller_; + + // Handle we keep if showing menu IPH for tab groups. + base::Optional<FeaturePromoController::PromoHandle> tab_groups_promo_handle_; }; //////////////////////////////////////////////////////////////////////////////// @@ -191,6 +207,9 @@ : model_(model), tabstrip_(nullptr), browser_view_(browser_view), + feature_engagement_tracker_( + feature_engagement::TrackerFactory::GetForBrowserContext( + browser_view_->browser()->profile())), hover_tab_selector_(model), menu_model_factory_(std::move(menu_model_factory_override)) { if (!menu_model_factory_) { @@ -418,7 +437,7 @@ const gfx::Point& p, ui::MenuSourceType source_type) { context_menu_contents_ = std::make_unique<TabContextMenuContents>( - tab, this, browser_view_->tab_groups_iph_controller()); + tab, this, browser_view_->feature_promo_controller()); context_menu_contents_->RunMenuAt(p, source_type); } @@ -662,6 +681,8 @@ switch (change.type) { case TabGroupChange::kCreated: { tabstrip_->OnGroupCreated(change.group); + feature_engagement_tracker_->NotifyEvent( + feature_engagement::events::kTabGroupCreated); break; } case TabGroupChange::kEditorOpened: { @@ -740,6 +761,15 @@ tabstrip_->AddTabAt(index, TabRendererData::FromTabInModel(model_, index), is_active); + + // Try to show tab groups IPH if needed. + if (tabstrip_->tab_count() >= 6) { + feature_engagement_tracker_->NotifyEvent( + feature_engagement::events::kSixthTabOpened); + + browser_view_->feature_promo_controller()->MaybeShowPromo( + feature_engagement::kIPHDesktopTabGroupsNewGroupFeature); + } } void BrowserTabStripController::UpdateStackedLayout() {
diff --git a/chrome/browser/ui/views/tabs/browser_tab_strip_controller.h b/chrome/browser/ui/views/tabs/browser_tab_strip_controller.h index d7d6838..b16ccdd 100644 --- a/chrome/browser/ui/views/tabs/browser_tab_strip_controller.h +++ b/chrome/browser/ui/views/tabs/browser_tab_strip_controller.h
@@ -30,6 +30,10 @@ class WebContents; } +namespace feature_engagement { +class Tracker; +} + namespace ui { class ListSelectionModel; } @@ -158,6 +162,8 @@ BrowserView* browser_view_; + feature_engagement::Tracker* const feature_engagement_tracker_; + // If non-NULL it means we're showing a menu for the tab. std::unique_ptr<TabContextMenuContents> context_menu_contents_;
diff --git a/chrome/browser/ui/views/tabs/tab_groups_iph_controller.cc b/chrome/browser/ui/views/tabs/tab_groups_iph_controller.cc deleted file mode 100644 index fe32a046..0000000 --- a/chrome/browser/ui/views/tabs/tab_groups_iph_controller.cc +++ /dev/null
@@ -1,86 +0,0 @@ -// Copyright 2020 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#include "chrome/browser/ui/views/tabs/tab_groups_iph_controller.h" - -#include <utility> - -#include "base/logging.h" -#include "base/optional.h" -#include "chrome/browser/feature_engagement/tracker_factory.h" -#include "chrome/browser/profiles/profile.h" -#include "chrome/browser/ui/browser.h" -#include "chrome/browser/ui/tabs/tab_strip_model.h" -#include "chrome/browser/ui/views/in_product_help/feature_promo_bubble_params.h" -#include "chrome/browser/ui/views/in_product_help/feature_promo_bubble_view.h" -#include "chrome/browser/ui/views/in_product_help/feature_promo_controller.h" -#include "chrome/grit/generated_resources.h" -#include "components/feature_engagement/public/event_constants.h" -#include "components/feature_engagement/public/feature_constants.h" -#include "components/feature_engagement/public/tracker.h" -#include "ui/views/bubble/bubble_border.h" -#include "ui/views/widget/widget.h" - -TabGroupsIPHController::TabGroupsIPHController( - Browser* browser, - FeaturePromoController* promo_controller, - GetTabViewCallback get_tab_view) - : promo_controller_(promo_controller), - tracker_(feature_engagement::TrackerFactory::GetForBrowserContext( - browser->profile())), - get_tab_view_(std::move(get_tab_view)) { - DCHECK(promo_controller_); - DCHECK(tracker_); - browser->tab_strip_model()->AddObserver(this); -} - -TabGroupsIPHController::~TabGroupsIPHController() = default; - -bool TabGroupsIPHController::ShouldHighlightContextMenuItem() { - // If the bubble is currently showing, the promo hasn't timed out yet. - // The promo should continue into the context menu as a highlighted - // item. - return promo_controller_->BubbleIsShowing( - feature_engagement::kIPHDesktopTabGroupsNewGroupFeature); -} - -void TabGroupsIPHController::TabContextMenuOpened() { - if (!promo_controller_->BubbleIsShowing( - feature_engagement::kIPHDesktopTabGroupsNewGroupFeature)) - return; - - // Assume that the context menu code checked - // ShouldHighlightContextMenuItem() and is correctly showing the promo - // there. - promo_handle_for_menu_ = promo_controller_->CloseBubbleAndContinuePromo( - feature_engagement::kIPHDesktopTabGroupsNewGroupFeature); -} - -void TabGroupsIPHController::TabContextMenuClosed() { - if (!promo_handle_for_menu_) - return; - promo_handle_for_menu_.reset(); -} - -void TabGroupsIPHController::OnTabStripModelChanged( - TabStripModel* tab_strip_model, - const TabStripModelChange& change, - const TabStripSelectionChange& selection) { - if (!(change.type() == TabStripModelChange::kInserted && - tab_strip_model->count() >= 6)) { - return; - } - - tracker_->NotifyEvent(feature_engagement::events::kSixthTabOpened); - - promo_controller_->MaybeShowPromo( - feature_engagement::kIPHDesktopTabGroupsNewGroupFeature); -} - -void TabGroupsIPHController::OnTabGroupChanged(const TabGroupChange& change) { - if (change.type != TabGroupChange::kCreated) - return; - - tracker_->NotifyEvent(feature_engagement::events::kTabGroupCreated); -}
diff --git a/chrome/browser/ui/views/tabs/tab_groups_iph_controller.h b/chrome/browser/ui/views/tabs/tab_groups_iph_controller.h deleted file mode 100644 index f5fcf6c..0000000 --- a/chrome/browser/ui/views/tabs/tab_groups_iph_controller.h +++ /dev/null
@@ -1,78 +0,0 @@ -// Copyright 2020 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#ifndef CHROME_BROWSER_UI_VIEWS_TABS_TAB_GROUPS_IPH_CONTROLLER_H_ -#define CHROME_BROWSER_UI_VIEWS_TABS_TAB_GROUPS_IPH_CONTROLLER_H_ - -#include "base/callback_forward.h" -#include "base/optional.h" -#include "base/scoped_observer.h" -#include "chrome/browser/ui/tabs/tab_strip_model.h" -#include "chrome/browser/ui/tabs/tab_strip_model_observer.h" -#include "chrome/browser/ui/views/in_product_help/feature_promo_controller.h" -#include "ui/views/widget/widget.h" -#include "ui/views/widget/widget_observer.h" - -namespace feature_engagement { -class Tracker; -} - -namespace views { -class View; -} - -class Browser; - -// Manages in-product help for tab groups. Watches for relevant events -// in a browser window, communicates them to the IPH backend, and -// displays IPH when appropriate. -class TabGroupsIPHController : public TabStripModelObserver { - public: - // Callback with an argument N that should return the Nth tab view in - // the tab strip for bubble anchoring. If N is not valid, it should - // return any tab view. - using GetTabViewCallback = base::RepeatingCallback<views::View*(int)>; - - // |browser| is the browser window that this instance will track and - // will show IPH in if needed. |promo_controller| is the window's - // FeaturePromoControllerViews, used to start promos. |get_tab_view| should - // get an appropriate tab to anchor the bubble in |browser|. - TabGroupsIPHController(Browser* browser, - FeaturePromoController* promo_controller, - GetTabViewCallback get_tab_view); - ~TabGroupsIPHController() override; - - // Whether the add-to-new-group item in the tab context menu should be - // highlighted. Must be checked just before TabContextMenuOpened() is - // called on the same task. - bool ShouldHighlightContextMenuItem(); - - // Should be called when a tab context menu is opened. - void TabContextMenuOpened(); - - // Likewise, should be called when a tab context menu is closed. - void TabContextMenuClosed(); - - // TabStripModelObserver: - void OnTabStripModelChanged( - TabStripModel* tab_strip_model, - const TabStripModelChange& change, - const TabStripSelectionChange& selection) override; - void OnTabGroupChanged(const TabGroupChange& change) override; - - private: - FeaturePromoController* const promo_controller_; - - // The IPH backend for the profile. - feature_engagement::Tracker* const tracker_; - - GetTabViewCallback get_tab_view_; - - // A handle given by |promo_controller_| if we show a context menu - // promo. When destroyed this notifies |promo_controller_| we are - // done. - base::Optional<FeaturePromoController::PromoHandle> promo_handle_for_menu_; -}; - -#endif // CHROME_BROWSER_UI_VIEWS_TABS_TAB_GROUPS_IPH_CONTROLLER_H_
diff --git a/chrome/browser/ui/views/tabs/tab_groups_iph_controller_browsertest.cc b/chrome/browser/ui/views/tabs/tab_groups_iph_controller_browsertest.cc deleted file mode 100644 index a04b985..0000000 --- a/chrome/browser/ui/views/tabs/tab_groups_iph_controller_browsertest.cc +++ /dev/null
@@ -1,115 +0,0 @@ -// Copyright 2020 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#include "chrome/browser/ui/views/tabs/tab_groups_iph_controller.h" - -#include <memory> -#include <string> - -#include "base/bind.h" -#include "base/callback_list.h" -#include "chrome/browser/feature_engagement/tracker_factory.h" -#include "chrome/browser/profiles/profile.h" -#include "chrome/browser/ui/browser.h" -#include "chrome/browser/ui/browser_commands.h" -#include "chrome/browser/ui/test/test_browser_dialog.h" -#include "chrome/test/base/in_process_browser_test.h" -#include "components/feature_engagement/public/feature_constants.h" -#include "components/feature_engagement/test/mock_tracker.h" -#include "components/keyed_service/content/browser_context_dependency_manager.h" -#include "content/public/test/browser_test.h" -#include "testing/gmock/include/gmock/gmock.h" - -using ::testing::_; -using ::testing::AnyNumber; -using ::testing::Ref; -using ::testing::Return; - -class TabGroupsIPHControllerBrowserTest : public DialogBrowserTest { - public: - TabGroupsIPHControllerBrowserTest() { - service_manager_subscription_ = - BrowserContextDependencyManager::GetInstance() - ->RegisterCreateServicesCallbackForTesting( - base::BindRepeating(RegisterMockTrackerFactory)); - } - - protected: - void ShowUi(const std::string& name) override { - OpenTabsToTrigger(browser()); - } - - void OpenTabsToTrigger(Browser* browser) { - // We need to have 6 tabs to trigger our IPH. Browser tests start - // with one tab, so open 5 more. - for (int i = 0; i < 5; ++i) - chrome::NewTab(browser); - } - - void SetUpOnMainThread() override { - DialogBrowserTest::SetUpOnMainThread(); - mock_tracker_ = static_cast<feature_engagement::test::MockTracker*>( - feature_engagement::TrackerFactory::GetForBrowserContext( - browser()->profile())); - } - - feature_engagement::test::MockTracker* mock_tracker_; - - private: - static void RegisterMockTrackerFactory(content::BrowserContext* context) { - feature_engagement::TrackerFactory::GetInstance()->SetTestingFactory( - context, base::BindRepeating([](content::BrowserContext*) { - auto mock_tracker = - std::make_unique<feature_engagement::test::MockTracker>(); - - // Other features may call into the backend. - EXPECT_CALL(*mock_tracker, NotifyEvent(_)).Times(AnyNumber()); - EXPECT_CALL(*mock_tracker, ShouldTriggerHelpUI(_)) - .Times(AnyNumber()) - .WillRepeatedly(Return(false)); - - return std::unique_ptr<KeyedService>(mock_tracker.release()); - })); - } - - std::unique_ptr< - BrowserContextDependencyManager::CreateServicesCallbackList::Subscription> - service_manager_subscription_; -}; - -IN_PROC_BROWSER_TEST_F(TabGroupsIPHControllerBrowserTest, InvokeUi_default) { - // Allow the controller to show the promo. - EXPECT_CALL(*mock_tracker_, - ShouldTriggerHelpUI( - Ref(feature_engagement::kIPHDesktopTabGroupsNewGroupFeature))) - .Times(1) - .WillOnce(Return(true)); - - // Expect the controller to notify on dismissal. - EXPECT_CALL( - *mock_tracker_, - Dismissed(Ref(feature_engagement::kIPHDesktopTabGroupsNewGroupFeature))) - .Times(1); - - ShowAndVerifyUi(); -} - -IN_PROC_BROWSER_TEST_F(TabGroupsIPHControllerBrowserTest, - HandlesBrowserShutdown) { - Browser* second_browser = CreateBrowser(browser()->profile()); - - EXPECT_CALL(*mock_tracker_, - ShouldTriggerHelpUI( - Ref(feature_engagement::kIPHDesktopTabGroupsNewGroupFeature))) - .Times(1) - .WillOnce(Return(true)); - - EXPECT_CALL( - *mock_tracker_, - Dismissed(Ref(feature_engagement::kIPHDesktopTabGroupsNewGroupFeature))) - .Times(1); - - OpenTabsToTrigger(second_browser); - CloseBrowserSynchronously(second_browser); -}
diff --git a/chrome/browser/ui/views/tabs/tab_groups_iph_controller_unittest.cc b/chrome/browser/ui/views/tabs/tab_groups_iph_controller_unittest.cc deleted file mode 100644 index 55d299c..0000000 --- a/chrome/browser/ui/views/tabs/tab_groups_iph_controller_unittest.cc +++ /dev/null
@@ -1,170 +0,0 @@ -// Copyright 2020 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#include "chrome/browser/ui/views/tabs/tab_groups_iph_controller.h" - -#include <memory> -#include <utility> - -#include "base/bind.h" -#include "chrome/browser/feature_engagement/tracker_factory.h" -#include "chrome/browser/ui/browser_commands.h" -#include "chrome/browser/ui/views/frame/browser_view.h" -#include "chrome/browser/ui/views/frame/test_with_browser_view.h" -#include "chrome/browser/ui/views/in_product_help/feature_promo_controller_views.h" -#include "chrome/test/base/testing_profile.h" -#include "chrome/test/views/chrome_test_widget.h" -#include "components/feature_engagement/public/event_constants.h" -#include "components/feature_engagement/public/feature_constants.h" -#include "components/feature_engagement/test/mock_tracker.h" -#include "testing/gmock/include/gmock/gmock.h" -#include "ui/views/test/scoped_views_test_helper.h" -#include "ui/views/view.h" -#include "ui/views/widget/unique_widget_ptr.h" -#include "ui/views/widget/widget.h" - -using ::testing::_; -using ::testing::AnyNumber; -using ::testing::NiceMock; -using ::testing::Ref; -using ::testing::Return; - -class TabGroupsIPHControllerTest : public TestWithBrowserView { - public: - void SetUp() override { - TestWithBrowserView::SetUp(); - - mock_tracker_ = - static_cast<NiceMock<feature_engagement::test::MockTracker>*>( - feature_engagement::TrackerFactory::GetForBrowserContext( - profile())); - - promo_controller_ = browser_view()->feature_promo_controller(); - iph_controller_ = browser_view()->tab_groups_iph_controller(); - } - - void TearDown() override { - iph_controller_ = nullptr; - promo_controller_ = nullptr; - TestWithBrowserView::TearDown(); - } - - TestingProfile::TestingFactories GetTestingFactories() override { - TestingProfile::TestingFactories factories = - TestWithBrowserView::GetTestingFactories(); - factories.emplace_back(feature_engagement::TrackerFactory::GetInstance(), - base::BindRepeating(MakeTestTracker)); - return factories; - } - - private: - static std::unique_ptr<KeyedService> MakeTestTracker( - content::BrowserContext* context) { - auto tracker = - std::make_unique<NiceMock<feature_engagement::test::MockTracker>>(); - - // Allow other code to call into the tracker. - EXPECT_CALL(*tracker, NotifyEvent(_)).Times(AnyNumber()); - EXPECT_CALL(*tracker, ShouldTriggerHelpUI(_)) - .Times(AnyNumber()) - .WillRepeatedly(Return(false)); - - return tracker; - } - - protected: - NiceMock<feature_engagement::test::MockTracker>* mock_tracker_; - FeaturePromoController* promo_controller_; - TabGroupsIPHController* iph_controller_; -}; - -TEST_F(TabGroupsIPHControllerTest, NotifyEventAndTriggerOnSixthTabOpened) { - // TabGroupsIPHController shouldn't issue any calls...yet - EXPECT_CALL(*mock_tracker_, - NotifyEvent(feature_engagement::events::kSixthTabOpened)) - .Times(0); - EXPECT_CALL(*mock_tracker_, - ShouldTriggerHelpUI( - Ref(feature_engagement::kIPHDesktopTabGroupsNewGroupFeature))) - .Times(0); - - for (int i = 0; i < 5; ++i) - chrome::NewTab(browser()); - - // Upon opening a sixth tab, our controller should both notify the IPH - // backend and ask to trigger IPH. - EXPECT_CALL(*mock_tracker_, - NotifyEvent(feature_engagement::events::kSixthTabOpened)) - .Times(1); - EXPECT_CALL(*mock_tracker_, - ShouldTriggerHelpUI( - Ref(feature_engagement::kIPHDesktopTabGroupsNewGroupFeature))) - .Times(1) - .WillOnce(Return(false)); - chrome::NewTab(browser()); -} - -TEST_F(TabGroupsIPHControllerTest, NotifyEventOnTabGroupCreated) { - // Creating an ungrouped tab shouldn't do anything. - EXPECT_CALL(*mock_tracker_, - NotifyEvent(feature_engagement::events::kTabGroupCreated)) - .Times(0); - - chrome::NewTab(browser()); - - // Adding the tab to a new group should issue the relevant event. - EXPECT_CALL(*mock_tracker_, - NotifyEvent(feature_engagement::events::kTabGroupCreated)) - .Times(1); - - browser()->tab_strip_model()->AddToNewGroup({0}); -} - -TEST_F(TabGroupsIPHControllerTest, DismissedOnMenuClosed) { - EXPECT_CALL(*mock_tracker_, - ShouldTriggerHelpUI( - Ref(feature_engagement::kIPHDesktopTabGroupsNewGroupFeature))) - .Times(1) - .WillOnce(Return(true)); - - for (int i = 0; i < 6; ++i) - chrome::NewTab(browser()); - - EXPECT_TRUE(promo_controller_->BubbleIsShowing( - feature_engagement::kIPHDesktopTabGroupsNewGroupFeature)); - iph_controller_->TabContextMenuOpened(); - EXPECT_FALSE(promo_controller_->BubbleIsShowing( - feature_engagement::kIPHDesktopTabGroupsNewGroupFeature)); - - EXPECT_CALL( - *mock_tracker_, - Dismissed(Ref(feature_engagement::kIPHDesktopTabGroupsNewGroupFeature))) - .Times(1); - - iph_controller_->TabContextMenuClosed(); - EXPECT_FALSE(promo_controller_->BubbleIsShowing( - feature_engagement::kIPHDesktopTabGroupsNewGroupFeature)); -} - -TEST_F(TabGroupsIPHControllerTest, ShowsContextMenuHighlightIfAppropriate) { - EXPECT_CALL(*mock_tracker_, - ShouldTriggerHelpUI( - Ref(feature_engagement::kIPHDesktopTabGroupsNewGroupFeature))) - .Times(1) - .WillOnce(Return(true)); - EXPECT_CALL( - *mock_tracker_, - Dismissed(Ref(feature_engagement::kIPHDesktopTabGroupsNewGroupFeature))) - .Times(1); - - EXPECT_FALSE(iph_controller_->ShouldHighlightContextMenuItem()); - - for (int i = 0; i < 6; ++i) - chrome::NewTab(browser()); - - EXPECT_TRUE(iph_controller_->ShouldHighlightContextMenuItem()); - iph_controller_->TabContextMenuOpened(); - iph_controller_->TabContextMenuClosed(); - EXPECT_FALSE(iph_controller_->ShouldHighlightContextMenuItem()); -}
diff --git a/chrome/browser/ui/views/translate/translate_language_browsertest.cc b/chrome/browser/ui/views/translate/translate_language_browsertest.cc index b4aaab1..e3d2776e 100644 --- a/chrome/browser/ui/views/translate/translate_language_browsertest.cc +++ b/chrome/browser/ui/views/translate/translate_language_browsertest.cc
@@ -293,8 +293,10 @@ base::test::ScopedFeatureList feature_list_; }; +// The test is flakily crahing on Linux, Windows, and ChromeOS: +// crbug.com/1122170 IN_PROC_BROWSER_TEST_F(TranslateLanguageBrowserTestWithTranslateRecentTarget, - RecentTargetLanguage) { + DISABLED_RecentTargetLanguage) { InitInIncognitoMode(false); // Before browsing: set auto translate from French to Chinese.
diff --git a/chrome/browser/ui/webui/chrome_url_data_manager_browsertest.cc b/chrome/browser/ui/webui/chrome_url_data_manager_browsertest.cc index 0496f17..e42e6dd9 100644 --- a/chrome/browser/ui/webui/chrome_url_data_manager_browsertest.cc +++ b/chrome/browser/ui/webui/chrome_url_data_manager_browsertest.cc
@@ -208,6 +208,7 @@ "chrome://identity-internals", "chrome://indexeddb-internals", "chrome://inspect", + "chrome://internals/web-app", "chrome://interstitials/ssl", "chrome://interventions-internals", "chrome://invalidations", @@ -271,6 +272,8 @@ "chrome://welcome", #if defined(OS_ANDROID) "chrome://explore-sites-internals", + "chrome://internals/notifications", + "chrome://internals/query-tiles", "chrome://offline-internals", "chrome://webapks", #endif
diff --git a/chrome/browser/ui/webui/extensions/extensions_internals_source.cc b/chrome/browser/ui/webui/extensions/extensions_internals_source.cc index e93f7e8..78a389f9 100644 --- a/chrome/browser/ui/webui/extensions/extensions_internals_source.cc +++ b/chrome/browser/ui/webui/extensions/extensions_internals_source.cc
@@ -4,6 +4,7 @@ #include "chrome/browser/ui/webui/extensions/extensions_internals_source.h" +#include <memory> #include <string> #include <unordered_map> #include <utility>
diff --git a/chrome/browser/ui/webui/extensions/extensions_internals_source.h b/chrome/browser/ui/webui/extensions/extensions_internals_source.h index 31e4952..e6c282b 100644 --- a/chrome/browser/ui/webui/extensions/extensions_internals_source.h +++ b/chrome/browser/ui/webui/extensions/extensions_internals_source.h
@@ -5,7 +5,8 @@ #ifndef CHROME_BROWSER_UI_WEBUI_EXTENSIONS_EXTENSIONS_INTERNALS_SOURCE_H_ #define CHROME_BROWSER_UI_WEBUI_EXTENSIONS_EXTENSIONS_INTERNALS_SOURCE_H_ -#include "base/macros.h" +#include <string> + #include "content/public/browser/url_data_source.h" class Profile; @@ -15,6 +16,9 @@ class ExtensionsInternalsSource : public content::URLDataSource { public: explicit ExtensionsInternalsSource(Profile* profile); + ExtensionsInternalsSource(const ExtensionsInternalsSource&) = delete; + ExtensionsInternalsSource& operator=(const ExtensionsInternalsSource&) = + delete; ~ExtensionsInternalsSource() override; // content::URLDataSource: @@ -31,8 +35,6 @@ private: Profile* const profile_; - - DISALLOW_COPY_AND_ASSIGN(ExtensionsInternalsSource); }; #endif // CHROME_BROWSER_UI_WEBUI_EXTENSIONS_EXTENSIONS_INTERNALS_SOURCE_H_
diff --git a/chrome/browser/ui/webui/extensions/extensions_ui.h b/chrome/browser/ui/webui/extensions/extensions_ui.h index 1ed8c8d..12d266c 100644 --- a/chrome/browser/ui/webui/extensions/extensions_ui.h +++ b/chrome/browser/ui/webui/extensions/extensions_ui.h
@@ -5,7 +5,6 @@ #ifndef CHROME_BROWSER_UI_WEBUI_EXTENSIONS_EXTENSIONS_UI_H_ #define CHROME_BROWSER_UI_WEBUI_EXTENSIONS_EXTENSIONS_UI_H_ -#include "base/macros.h" #include "base/timer/elapsed_timer.h" #include "chrome/browser/ui/webui/webui_load_timer.h" #include "components/prefs/pref_member.h" @@ -27,6 +26,8 @@ public content::WebUIController { public: explicit ExtensionsUI(content::WebUI* web_ui); + ExtensionsUI(const ExtensionsUI&) = delete; + ExtensionsUI& operator=(const ExtensionsUI&) = delete; ~ExtensionsUI() override; static base::RefCountedMemory* GetFaviconResourceBytes( @@ -48,8 +49,6 @@ // Time the chrome://extensions page has been open. base::Optional<base::ElapsedTimer> timer_; - - DISALLOW_COPY_AND_ASSIGN(ExtensionsUI); }; } // namespace extensions
diff --git a/chrome/browser/ui/webui/internals/web_app/web_app_internals_page_handler_impl.cc b/chrome/browser/ui/webui/internals/web_app/web_app_internals_page_handler_impl.cc index ba94e5d..6bdd35d 100644 --- a/chrome/browser/ui/webui/internals/web_app/web_app_internals_page_handler_impl.cc +++ b/chrome/browser/ui/webui/internals/web_app/web_app_internals_page_handler_impl.cc
@@ -23,6 +23,7 @@ void WebAppInternalsPageHandlerImpl::AddPageResources( content::WebUIDataSource* source) { + source->DisableTrustedTypesCSP(); source->AddResourcePath("web_app_internals.mojom-lite.js", IDR_WEB_APP_INTERNALS_MOJOM_LITE_JS); source->AddResourcePath("web_app_internals.js", IDR_WEB_APP_INTERNALS_JS);
diff --git a/chrome/browser/ui/webui/nearby_share/nearby_share_dialog_ui.cc b/chrome/browser/ui/webui/nearby_share/nearby_share_dialog_ui.cc index 3e063a8e..bdf25eb 100644 --- a/chrome/browser/ui/webui/nearby_share/nearby_share_dialog_ui.cc +++ b/chrome/browser/ui/webui/nearby_share/nearby_share_dialog_ui.cc
@@ -54,11 +54,28 @@ RegisterNearbySharedStrings(html_source); html_source->UseStringsJs(); + web_ui->RegisterMessageCallback( + "close", base::BindRepeating(&NearbyShareDialogUI::HandleClose, + base::Unretained(this))); + content::WebUIDataSource::Add(profile, html_source); } NearbyShareDialogUI::~NearbyShareDialogUI() = default; +void NearbyShareDialogUI::AddObserver(NearbyShareDialogUI::Observer* observer) { + observers_.AddObserver(observer); +} + +void NearbyShareDialogUI::RemoveObserver( + NearbyShareDialogUI::Observer* observer) { + observers_.RemoveObserver(observer); +} + +void NearbyShareDialogUI::SetShareIntent(apps::mojom::IntentPtr intent) { + intent_ = std::move(intent); +} + void NearbyShareDialogUI::BindInterface( mojo::PendingReceiver<mojom::DiscoveryManager> manager) { mojo::MakeSelfOwnedReceiver( @@ -73,6 +90,12 @@ nearby_sharing_service->GetSettings()->Bind(std::move(receiver)); } +void NearbyShareDialogUI::HandleClose(const base::ListValue* args) { + for (auto& observer : observers_) { + observer.OnClose(); + } +} + WEB_UI_CONTROLLER_TYPE_IMPL(NearbyShareDialogUI) } // namespace nearby_share
diff --git a/chrome/browser/ui/webui/nearby_share/nearby_share_dialog_ui.h b/chrome/browser/ui/webui/nearby_share/nearby_share_dialog_ui.h index 3eaf042..598a04d9 100644 --- a/chrome/browser/ui/webui/nearby_share/nearby_share_dialog_ui.h +++ b/chrome/browser/ui/webui/nearby_share/nearby_share_dialog_ui.h
@@ -5,8 +5,11 @@ #ifndef CHROME_BROWSER_UI_WEBUI_NEARBY_SHARE_NEARBY_SHARE_DIALOG_UI_H_ #define CHROME_BROWSER_UI_WEBUI_NEARBY_SHARE_NEARBY_SHARE_DIALOG_UI_H_ +#include "base/observer_list.h" +#include "base/observer_list_types.h" #include "chrome/browser/ui/webui/nearby_share/nearby_share.mojom.h" #include "chrome/browser/ui/webui/nearby_share/public/mojom/nearby_share_settings.mojom.h" +#include "components/services/app_service/public/mojom/types.mojom.h" #include "mojo/public/cpp/bindings/pending_receiver.h" #include "ui/webui/mojo_web_ui_controller.h" @@ -17,11 +20,20 @@ // The WebUI controller for chrome://nearby. class NearbyShareDialogUI : public ui::MojoWebUIController { public: + class Observer : public base::CheckedObserver { + public: + virtual void OnClose() = 0; + }; + explicit NearbyShareDialogUI(content::WebUI* web_ui); NearbyShareDialogUI(const NearbyShareDialogUI&) = delete; NearbyShareDialogUI& operator=(const NearbyShareDialogUI&) = delete; ~NearbyShareDialogUI() override; + void AddObserver(Observer* observer); + void RemoveObserver(Observer* observer); + void SetShareIntent(apps::mojom::IntentPtr intent); + // Instantiates the implementor of the mojom::DiscoveryManager mojo // interface passing the pending receiver that will be internally bound. void BindInterface(mojo::PendingReceiver<mojom::DiscoveryManager> manager); @@ -30,6 +42,9 @@ mojo::PendingReceiver<mojom::NearbyShareSettings> receiver); private: + void HandleClose(const base::ListValue* args); + apps::mojom::IntentPtr intent_; + base::ObserverList<Observer> observers_; NearbySharingService* nearby_service_; WEB_UI_CONTROLLER_TYPE_DECL();
diff --git a/chrome/browser/ui/webui/nearby_share/nearby_share_dialog_ui_browsertest.cc b/chrome/browser/ui/webui/nearby_share/nearby_share_dialog_ui_browsertest.cc index a991a02f..c53dd9b8 100644 --- a/chrome/browser/ui/webui/nearby_share/nearby_share_dialog_ui_browsertest.cc +++ b/chrome/browser/ui/webui/nearby_share/nearby_share_dialog_ui_browsertest.cc
@@ -6,6 +6,7 @@ #include "chrome/browser/browser_features.h" #include "chrome/browser/ui/browser.h" #include "chrome/browser/ui/tabs/tab_strip_model.h" +#include "chrome/browser/ui/webui/nearby_share/nearby_share_dialog_ui.h" #include "chrome/common/webui_url_constants.h" #include "chrome/test/base/in_process_browser_test.h" #include "chrome/test/base/ui_test_utils.h" @@ -16,6 +17,14 @@ namespace { +class TestObserver : public nearby_share::NearbyShareDialogUI::Observer { + public: + // nearby_share::NearbyShareDialogUI::Observer: + void OnClose() override { close_called = true; } + + bool close_called = false; +}; + class NearbyShareDialogUITest : public InProcessBrowserTest { public: NearbyShareDialogUITest() { @@ -23,6 +32,8 @@ } ~NearbyShareDialogUITest() override = default; + TestObserver observer_; + private: base::test::ScopedFeatureList scoped_feature_list_; }; @@ -48,3 +59,31 @@ &num_nearby_share_app)); EXPECT_EQ(1, num_nearby_share_app); } + +IN_PROC_BROWSER_TEST_F(NearbyShareDialogUITest, ObserverGetsCalledOnClose) { + // First, check that navigation succeeds. + GURL kUrl(content::GetWebUIURL(chrome::kChromeUINearbyShareHost)); + ui_test_utils::NavigateToURL(browser(), kUrl); + content::WebContents* web_contents = + browser()->tab_strip_model()->GetActiveWebContents(); + ASSERT_TRUE(web_contents); + EXPECT_EQ(kUrl, web_contents->GetLastCommittedURL()); + EXPECT_FALSE(web_contents->IsCrashed()); + + auto* webui = web_contents->GetWebUI(); + ASSERT_TRUE(webui); + + // Add a test observer and verify it gets called when 'close' is sent. + auto* nearby_ui = + webui->GetController()->GetAs<nearby_share::NearbyShareDialogUI>(); + ASSERT_TRUE(nearby_ui); + + nearby_ui->AddObserver(&observer_); + EXPECT_TRUE(content::ExecuteScript(web_contents, "chrome.send('close');")); + EXPECT_TRUE(observer_.close_called); + + nearby_ui->RemoveObserver(&observer_); + observer_.close_called = false; + EXPECT_TRUE(content::ExecuteScript(web_contents, "chrome.send('close');")); + EXPECT_FALSE(observer_.close_called); +}
diff --git a/chrome/browser/ui/webui/nearby_share/shared_resources.cc b/chrome/browser/ui/webui/nearby_share/shared_resources.cc index 8d98094..2ecee45 100644 --- a/chrome/browser/ui/webui/nearby_share/shared_resources.cc +++ b/chrome/browser/ui/webui/nearby_share/shared_resources.cc
@@ -37,6 +37,7 @@ void RegisterNearbySharedStrings(content::WebUIDataSource* data_source) { static constexpr webui::LocalizedString kLocalizedStrings[] = { {"secureConnectionId", IDS_NEARBY_SECURE_CONNECTION_ID}, + {"nearbyShareFeatureName", IDS_NEARBY_SHARE_FEATURE_NAME}, }; webui::AddLocalizedStringsBulk(data_source, kLocalizedStrings); }
diff --git a/chrome/browser/ui/webui/new_tab_page/untrusted_source.cc b/chrome/browser/ui/webui/new_tab_page/untrusted_source.cc index ca3d656..c583b9c 100644 --- a/chrome/browser/ui/webui/new_tab_page/untrusted_source.cc +++ b/chrome/browser/ui/webui/new_tab_page/untrusted_source.cc
@@ -90,19 +90,24 @@ std::string UntrustedSource::GetContentSecurityPolicy( network::mojom::CSPDirectiveName directive) { - if (directive == network::mojom::CSPDirectiveName::ScriptSrc) { - return "script-src 'self' 'unsafe-inline' https:;"; - } else if (directive == network::mojom::CSPDirectiveName::ChildSrc) { - return "child-src https:;"; - } else if (directive == network::mojom::CSPDirectiveName::DefaultSrc) { - // TODO(https://crbug.com/1085325): Audit and tighten CSP. - return std::string(); - } else if (directive == network::mojom::CSPDirectiveName::FrameAncestors) { - return base::StringPrintf("frame-ancestors %s", - chrome::kChromeUINewTabPageURL); + switch (directive) { + case network::mojom::CSPDirectiveName::ScriptSrc: + return "script-src 'self' 'unsafe-inline' https:;"; + case network::mojom::CSPDirectiveName::ChildSrc: + return "child-src https:;"; + case network::mojom::CSPDirectiveName::DefaultSrc: + // TODO(https://crbug.com/1085325): Audit and tighten CSP. + return std::string(); + case network::mojom::CSPDirectiveName::FrameAncestors: + return base::StringPrintf("frame-ancestors %s", + chrome::kChromeUINewTabPageURL); + case network::mojom::CSPDirectiveName::RequireTrustedTypesFor: + return std::string(); + case network::mojom::CSPDirectiveName::TrustedTypes: + return std::string(); + default: + return content::URLDataSource::GetContentSecurityPolicy(directive); } - - return content::URLDataSource::GetContentSecurityPolicy(directive); } std::string UntrustedSource::GetSource() {
diff --git a/chrome/browser/ui/webui/profile_helper.cc b/chrome/browser/ui/webui/profile_helper.cc index b1f7bdf0..b5b3a88 100644 --- a/chrome/browser/ui/webui/profile_helper.cc +++ b/chrome/browser/ui/webui/profile_helper.cc
@@ -15,6 +15,7 @@ #include "chrome/browser/profiles/profiles_state.h" #include "chrome/browser/signin/signin_util.h" #include "chrome/browser/ui/browser_finder.h" +#include "chrome/browser/ui/profile_picker.h" #include "chrome/browser/ui/user_manager.h" #include "chrome/browser/ui/webui/signin/signin_utils.h" #include "components/keep_alive_registry/keep_alive_types.h" @@ -60,6 +61,9 @@ void OpenNewWindowForProfile(Profile* profile) { if (profiles::IsProfileLocked(profile->GetPath())) { + // The profile picker does not support locked profiles. + DCHECK(!ProfilePicker::IsOpen()); + if (signin_util::IsForceSigninEnabled()) { // If force-sign-in policy is enabled, UserManager will be displayed // without any sign-in dialog opened. @@ -68,11 +72,18 @@ ShowUserManager( base::Bind(&ShowUnlockDialog, GetProfileUserName(profile))); } - } else { - profiles::FindOrCreateNewWindowForProfile( - profile, chrome::startup::IS_PROCESS_STARTUP, - chrome::startup::IS_FIRST_RUN, false); + return; } + + if (ProfilePicker::IsOpen()) { + // If the profile picker is open, do not open a new browser automatically. + ProfilePicker::Show(); + return; + } + + profiles::FindOrCreateNewWindowForProfile( + profile, chrome::startup::IS_PROCESS_STARTUP, + chrome::startup::IS_FIRST_RUN, false); } void DeleteProfileAtPath(base::FilePath file_path,
diff --git a/chrome/browser/ui/webui/profile_helper.h b/chrome/browser/ui/webui/profile_helper.h index 3c82a621..4d5be1e 100644 --- a/chrome/browser/ui/webui/profile_helper.h +++ b/chrome/browser/ui/webui/profile_helper.h
@@ -11,6 +11,10 @@ namespace webui { +// Opens a new window for |profile|, or: +// - if the profile is locked, opens the user manager instead +// - if the profile picker is already open, focuses it instead +// Exposed for testing. void OpenNewWindowForProfile(Profile* profile); // Deletes the profile at the given |file_path|.
diff --git a/chrome/browser/ui/webui/settings/chromeos/languages_section.cc b/chrome/browser/ui/webui/settings/chromeos/languages_section.cc index 49c7f91..3b73d44 100644 --- a/chrome/browser/ui/webui/settings/chromeos/languages_section.cc +++ b/chrome/browser/ui/webui/settings/chromeos/languages_section.cc
@@ -261,6 +261,10 @@ IDS_OS_SETTINGS_LANGUAGES_OFFER_TRANSLATION_LABEL}, {"offerTranslationSublabel", IDS_OS_SETTINGS_LANGUAGES_OFFER_TRANSLATION_SUBLABEL}, + {"changeDeviceLanguageDialogTitle", + IDS_OS_SETTINGS_LANGUAGES_CHANGE_DEVICE_LANGUAGE_DIALOG_TITLE}, + {"changeDeviceLanguageConfirmButtonLabel", + IDS_OS_SETTINGS_LANGUAGES_CHANGE_DEVICE_LANGUAGE_CONFIRM_BUTTON_LABEL}, }; AddLocalizedStringsBulk(html_source, kLocalizedStrings);
diff --git a/chrome/browser/ui/webui/settings/chromeos/multidevice_section.cc b/chrome/browser/ui/webui/settings/chromeos/multidevice_section.cc index 8107e64..b248e7b8 100644 --- a/chrome/browser/ui/webui/settings/chromeos/multidevice_section.cc +++ b/chrome/browser/ui/webui/settings/chromeos/multidevice_section.cc
@@ -334,8 +334,9 @@ web_ui->AddMessageHandler( std::make_unique<chromeos::settings::MultideviceHandler>( pref_service_, multidevice_setup_client_, - phone_hub_manager_ ? phone_hub_manager_->notification_access_manager() - : nullptr, + phone_hub_manager_ + ? phone_hub_manager_->GetNotificationAccessManager() + : nullptr, android_sms_service_ ? android_sms_service_->android_sms_pairing_state_tracker() : nullptr,
diff --git a/chrome/browser/ui/webui/settings/chromeos/search_section.cc b/chrome/browser/ui/webui/settings/chromeos/search_section.cc index 6f8763df..55489ef 100644 --- a/chrome/browser/ui/webui/settings/chromeos/search_section.cc +++ b/chrome/browser/ui/webui/settings/chromeos/search_section.cc
@@ -235,10 +235,6 @@ is_assistant_allowed ? IDS_SETTINGS_SEARCH_AND_ASSISTANT : IDS_SETTINGS_SEARCH); - html_source->AddString("searchExplanation", - l10n_util::GetStringFUTF16( - IDS_SETTINGS_SEARCH_EXPLANATION, - base::ASCIIToUTF16(chrome::kOmniboxLearnMoreURL))); html_source->AddString( "osSearchEngineTooltip", ui::SubstituteChromeOSDeviceType(IDS_OS_SETTINGS_SEARCH_ENGINE_TOOLTIP));
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 79f60e28..2f5ba2a 100644 --- a/chrome/browser/ui/webui/settings/settings_localized_strings_provider.cc +++ b/chrome/browser/ui/webui/settings/settings_localized_strings_provider.cc
@@ -1478,14 +1478,12 @@ static constexpr webui::LocalizedString kLocalizedStrings[] = { {"searchEnginesManage", IDS_SETTINGS_SEARCH_MANAGE_SEARCH_ENGINES}, {"searchPageTitle", IDS_SETTINGS_SEARCH}, - + {"searchExplanation", IDS_SETTINGS_SEARCH_EXPLANATION}, }; AddLocalizedStringsBulk(html_source, kLocalizedStrings); - html_source->AddString("searchExplanation", - l10n_util::GetStringFUTF16( - IDS_SETTINGS_SEARCH_EXPLANATION, - base::ASCIIToUTF16(chrome::kOmniboxLearnMoreURL))); + html_source->AddString("searchExplanationLearnMoreURL", + base::ASCIIToUTF16(chrome::kOmniboxLearnMoreURL)); } void AddSearchEnginesStrings(content::WebUIDataSource* html_source) {
diff --git a/chrome/browser/ui/webui/settings/settings_ui.cc b/chrome/browser/ui/webui/settings/settings_ui.cc index 573a6dd..d96dbad7 100644 --- a/chrome/browser/ui/webui/settings/settings_ui.cc +++ b/chrome/browser/ui/webui/settings/settings_ui.cc
@@ -423,8 +423,9 @@ profile->GetPrefs(), chromeos::multidevice_setup::MultiDeviceSetupClientFactory:: GetForProfile(profile), - phone_hub_manager ? phone_hub_manager->notification_access_manager() - : nullptr, + phone_hub_manager + ? phone_hub_manager->GetNotificationAccessManager() + : nullptr, android_sms_service ? android_sms_service->android_sms_pairing_state_tracker() : nullptr,
diff --git a/chrome/browser/video_tutorials/internal/BUILD.gn b/chrome/browser/video_tutorials/internal/BUILD.gn index 8407ea29..039e7501 100644 --- a/chrome/browser/video_tutorials/internal/BUILD.gn +++ b/chrome/browser/video_tutorials/internal/BUILD.gn
@@ -11,6 +11,8 @@ sources = [ "proto_conversions.cc", "proto_conversions.h", + "tutorial_group.cc", + "tutorial_group.h", "tutorial_service_impl.cc", "tutorial_service_impl.h", ] @@ -74,7 +76,10 @@ source_set("unit_tests") { testonly = true - sources = [ "proto_conversions_unittest.cc" ] + sources = [ + "proto_conversions_unittest.cc", + "tutorial_group_unittest.cc", + ] deps = [ ":internal",
diff --git a/chrome/browser/video_tutorials/internal/proto_conversions.cc b/chrome/browser/video_tutorials/internal/proto_conversions.cc index ad7120f..16f229d 100644 --- a/chrome/browser/video_tutorials/internal/proto_conversions.cc +++ b/chrome/browser/video_tutorials/internal/proto_conversions.cc
@@ -71,4 +71,25 @@ tutorial->video_length = proto->video_length(); } +void TutorialGroupToProto(TutorialGroup* group, TutorialGroupProto* proto) { + DCHECK(group); + DCHECK(proto); + proto->set_locale(group->locale); + proto->clear_tutorials(); + for (auto& tutorial : group->tutorials) + TutorialToProto(&tutorial, proto->add_tutorials()); +} + +void TutorialGroupFromProto(TutorialGroupProto* proto, TutorialGroup* group) { + DCHECK(group); + DCHECK(proto); + group->locale = proto->locale(); + group->tutorials.clear(); + for (auto tutorial_proto : proto->tutorials()) { + Tutorial tutorial; + TutorialFromProto(&tutorial_proto, &tutorial); + group->tutorials.emplace_back(std::move(tutorial)); + } +} + } // namespace video_tutorials
diff --git a/chrome/browser/video_tutorials/internal/proto_conversions.h b/chrome/browser/video_tutorials/internal/proto_conversions.h index 4b3726a5..c90c1a71 100644 --- a/chrome/browser/video_tutorials/internal/proto_conversions.h +++ b/chrome/browser/video_tutorials/internal/proto_conversions.h
@@ -5,19 +5,26 @@ #ifndef CHROME_BROWSER_VIDEO_TUTORIALS_INTERNAL_PROTO_CONVERSIONS_H_ #define CHROME_BROWSER_VIDEO_TUTORIALS_INTERNAL_PROTO_CONVERSIONS_H_ +#include "chrome/browser/video_tutorials/internal/tutorial_group.h" #include "chrome/browser/video_tutorials/proto/video_tutorials.pb.h" -#include "chrome/browser/video_tutorials/tutorial.h" namespace video_tutorials { using TutorialProto = video_tutorials::proto::VideoTutorial; +using TutorialGroupProto = video_tutorials::proto::VideoTutorialGroup; // Convert in-memory struct Tutorial to proto::VideoTutorial. void TutorialToProto(Tutorial* tutorial, TutorialProto* proto); -// Convert proto::VideoTutorial to in-memory struct Tutorial. +// Convert proto::VideoTutorial to in-memory struct Tutorial. void TutorialFromProto(TutorialProto* proto, Tutorial* tutorial); +// Convert in-memory struct TutorialGroup to proto::VideoTutorialGroup. +void TutorialGroupToProto(TutorialGroup* group, TutorialGroupProto* proto); + +// Convert proto::VideoTutorialGroup to in-memory struct TutorialGroup. +void TutorialGroupFromProto(TutorialGroupProto* proto, TutorialGroup* group); + } // namespace video_tutorials #endif // CHROME_BROWSER_VIDEO_TUTORIALS_INTERNAL_PROTO_CONVERSIONS_H_
diff --git a/chrome/browser/video_tutorials/internal/proto_conversions_unittest.cc b/chrome/browser/video_tutorials/internal/proto_conversions_unittest.cc index 076c539..a6d3953 100644 --- a/chrome/browser/video_tutorials/internal/proto_conversions_unittest.cc +++ b/chrome/browser/video_tutorials/internal/proto_conversions_unittest.cc
@@ -17,6 +17,15 @@ kTestURL, kTestURL, 60); } +void ResetTutorialGroup(TutorialGroup* group) { + *group = TutorialGroup("cn"); + group->tutorials.clear(); + Tutorial entry1; + ResetTutorialEntry(&entry1); + group->tutorials.emplace_back(entry1); + group->tutorials.emplace_back(entry1); +} + // Verify round-way conversion of Tutorial struct. TEST(VideoTutorialsProtoConversionsTest, TutorialConversion) { Tutorial expected, actual; @@ -27,5 +36,15 @@ EXPECT_EQ(expected, actual); } +// Verify round-way conversion of TutorialGroup struct. +TEST(VideoTutorialsProtoConversionsTest, TutorialGroupConversion) { + TutorialGroup expected, actual; + ResetTutorialGroup(&expected); + TutorialGroupProto intermediate; + TutorialGroupToProto(&expected, &intermediate); + TutorialGroupFromProto(&intermediate, &actual); + EXPECT_EQ(expected, actual); +} + } // namespace } // namespace video_tutorials
diff --git a/chrome/browser/video_tutorials/internal/tutorial_group.cc b/chrome/browser/video_tutorials/internal/tutorial_group.cc new file mode 100644 index 0000000..085b71e --- /dev/null +++ b/chrome/browser/video_tutorials/internal/tutorial_group.cc
@@ -0,0 +1,27 @@ +// Copyright 2020 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "chrome/browser/video_tutorials/internal/tutorial_group.h" + +namespace video_tutorials { + +TutorialGroup::TutorialGroup() = default; + +TutorialGroup::TutorialGroup(const std::string& locale) : locale(locale) {} + +bool TutorialGroup::operator==(const TutorialGroup& other) const { + return locale == other.locale && tutorials == other.tutorials; +} + +bool TutorialGroup::operator!=(const TutorialGroup& other) const { + return !(*this == other); +} + +TutorialGroup::~TutorialGroup() = default; + +TutorialGroup::TutorialGroup(const TutorialGroup& other) = default; + +TutorialGroup& TutorialGroup::operator=(const TutorialGroup& other) = default; + +} // namespace video_tutorials
diff --git a/chrome/browser/video_tutorials/internal/tutorial_group.h b/chrome/browser/video_tutorials/internal/tutorial_group.h new file mode 100644 index 0000000..7f1e0b1 --- /dev/null +++ b/chrome/browser/video_tutorials/internal/tutorial_group.h
@@ -0,0 +1,33 @@ +// Copyright 2020 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef CHROME_BROWSER_VIDEO_TUTORIALS_INTERNAL_TUTORIAL_GROUP_H_ +#define CHROME_BROWSER_VIDEO_TUTORIALS_INTERNAL_TUTORIAL_GROUP_H_ + +#include "chrome/browser/video_tutorials/tutorial.h" + +namespace video_tutorials { + +// In memory struct of a group of video tutorials with same language . +struct TutorialGroup { + TutorialGroup(); + explicit TutorialGroup(const std::string& locale); + ~TutorialGroup(); + + bool operator==(const TutorialGroup& other) const; + bool operator!=(const TutorialGroup& other) const; + + TutorialGroup(const TutorialGroup& other); + TutorialGroup& operator=(const TutorialGroup& other); + + // Language of this group. + std::string locale; + + // A list of tutorials. + std::vector<Tutorial> tutorials; +}; + +} // namespace video_tutorials + +#endif // CHROME_BROWSER_VIDEO_TUTORIALS_INTERNAL_TUTORIAL_GROUP_H_
diff --git a/chrome/browser/video_tutorials/internal/tutorial_group_unittest.cc b/chrome/browser/video_tutorials/internal/tutorial_group_unittest.cc new file mode 100644 index 0000000..395bbc8 --- /dev/null +++ b/chrome/browser/video_tutorials/internal/tutorial_group_unittest.cc
@@ -0,0 +1,41 @@ +// Copyright 2020 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "chrome/browser/video_tutorials/internal/tutorial_group.h" + +#include "testing/gtest/include/gtest/gtest.h" + +namespace video_tutorials { +namespace { + +void ResetTutorialGroup(TutorialGroup* group) { + *group = TutorialGroup("en"); + group->tutorials.resize(3, Tutorial()); + group->tutorials.front().feature = FeatureType::kDownload; + group->tutorials.back().feature = FeatureType::kSearch; +} + +// Verify the copy/assign and compare operators for TutorialGroup struct. +TEST(VideoTutorialGroupTest, CopyAndCompareOperators) { + TutorialGroup lhs, rhs; + ResetTutorialGroup(&lhs); + ResetTutorialGroup(&rhs); + + EXPECT_EQ(lhs, rhs); + + rhs.locale = "jp"; + EXPECT_NE(lhs, rhs); + ResetTutorialGroup(&rhs); + + std::reverse(rhs.tutorials.begin(), rhs.tutorials.end()); + EXPECT_NE(lhs, rhs); + ResetTutorialGroup(&rhs); + + rhs.tutorials.pop_back(); + EXPECT_NE(lhs, rhs); + ResetTutorialGroup(&rhs); +} + +} // namespace +} // namespace video_tutorials
diff --git a/chrome/browser/video_tutorials/tutorial.cc b/chrome/browser/video_tutorials/tutorial.cc index 379c5f8..4e807b5 100644 --- a/chrome/browser/video_tutorials/tutorial.cc +++ b/chrome/browser/video_tutorials/tutorial.cc
@@ -6,7 +6,7 @@ namespace video_tutorials { -Tutorial::Tutorial() = default; +Tutorial::Tutorial() : feature(FeatureType::kInvalid), video_length(0) {} Tutorial::Tutorial(FeatureType feature, const std::string& title,
diff --git a/chrome/browser/video_tutorials/tutorial.h b/chrome/browser/video_tutorials/tutorial.h index d14ca3c..bab897e 100644 --- a/chrome/browser/video_tutorials/tutorial.h +++ b/chrome/browser/video_tutorials/tutorial.h
@@ -43,7 +43,7 @@ Tutorial& operator=(const Tutorial& other); // Type of feature where this video tutorial targeted. - FeatureType feature{FeatureType::kInvalid}; + FeatureType feature; // The title of the video. std::string title;
diff --git a/chrome/common/qr_code_generator/qr_code_generator.cc b/chrome/common/qr_code_generator/qr_code_generator.cc index 08164ec..a47fc2b 100644 --- a/chrome/common/qr_code_generator/qr_code_generator.cc +++ b/chrome/common/qr_code_generator/qr_code_generator.cc
@@ -234,6 +234,47 @@ return nullptr; } +// kMaxMask is the maximum masking function number. See table 10. +constexpr uint8_t kMaxMask = 7; + +// The following functions implement the masks specified in table 10. + +uint8_t MaskFunction0(int x, int y) { + return (x + y) % 2 == 0; +} +uint8_t MaskFunction1(int x, int y) { + return y % 2 == 0; +} +uint8_t MaskFunction2(int x, int y) { + return x % 3 == 0; +} +uint8_t MaskFunction3(int x, int y) { + return (x + y) % 3 == 0; +} +uint8_t MaskFunction4(int x, int y) { + return ((y / 2) + (x / 3)) % 2 == 0; +} +uint8_t MaskFunction5(int x, int y) { + return ((x * y) % 2) + ((x * y) % 3) == 0; +} +uint8_t MaskFunction6(int x, int y) { + return (((x * y) % 2) + ((x * y) % 3)) % 2 == 0; +} +uint8_t MaskFunction7(int x, int y) { + return (((x + y) % 2) + ((x * y) % 3)) % 2 == 0; +} + +static uint8_t (*const kMaskFunctions[kMaxMask + 1])(int x, int y) = { + MaskFunction0, MaskFunction1, MaskFunction2, MaskFunction3, + MaskFunction4, MaskFunction5, MaskFunction6, MaskFunction7, +}; + +// kFormatInformation is taken from table C.1 on page 80 and specifies the +// format value for each masking function, assuming ECC level 'M'. +static const uint16_t kFormatInformation[kMaxMask + 1] = { + 0x5412, 0x5125, 0x5e7c, 0x5b4b, 0x45f9, 0x40ce, 0x4f97, 0x4aa0, +}; + } // namespace QRCodeGenerator::QRCodeGenerator() = default; @@ -246,7 +287,10 @@ QRCodeGenerator::GeneratedCode::~GeneratedCode() = default; base::Optional<QRCodeGenerator::GeneratedCode> QRCodeGenerator::Generate( - base::span<const uint8_t> in) { + base::span<const uint8_t> in, + base::Optional<uint8_t> mask) { + CHECK(!mask || *mask <= kMaxMask); + // We're currently using a minimal set of versions to shrink test surface. // When expanding, take care to validate across different platforms and // a selection of QR Scanner apps. @@ -289,16 +333,6 @@ } } - // kFormatInformation is the encoded formatting word for the QR code that - // this code generates. See tables 10 and 12. - // 00 011 - // --|--- - // error correction M | Mask pattern 3 - // - // It's translated into the following, 15-bit value using the table on page - // 80. - constexpr uint16_t kFormatInformation = 0x5b4b; - PutFormatBits(kFormatInformation); if (version_info_->encoded_version != 0) { PutVersionBlocks(version_info_->encoded_version); } @@ -440,12 +474,36 @@ } DCHECK_EQ(k, total_bytes); - // The mask pattern is fixed for this implementation. A full implementation - // would generate QR codes with every mask pattern and evaluate a quality - // score, ultimately picking the optimal pattern. Here it's assumed that a - // different QR code will soon be generated so any random issues will be - // transient. - PutBits(interleaved_data, sizeof(interleaved_data), MaskFunction3); + uint8_t best_mask = mask.value_or(0); + base::Optional<unsigned> lowest_penalty; + + // If |mask| was not specified, then evaluate each masking function to find + // the one with the lowest penalty score. + for (uint8_t mask_num = 0; !mask && mask_num <= kMaxMask; mask_num++) { + // kFormatInformation is the encoded formatting word for the QR code that + // this code generates. See tables 10 and 12. For example: + // 00 011 + // --|--- + // error correction M | Mask pattern 3 + // + // It's translated into a 15-bit value using the table on page 80, which is + // stored in |kFormatInformation|. + PutFormatBits(kFormatInformation[mask_num]); + + PutBits(interleaved_data, sizeof(interleaved_data), + kMaskFunctions[mask_num]); + + const unsigned penalty = CountPenaltyPoints(); + if (!lowest_penalty || *lowest_penalty > penalty) { + lowest_penalty = penalty; + best_mask = mask_num; + } + } + + // Repaint with the best mask function. + PutFormatBits(kFormatInformation[best_mask]); + PutBits(interleaved_data, sizeof(interleaved_data), + kMaskFunctions[best_mask]); GeneratedCode code; code.data = base::span<uint8_t>(&d_[0], version_info_->total_size()); @@ -453,12 +511,6 @@ return code; } -// MaskFunction3 implements one of the data-masking functions. See figure 21. -// static -uint8_t QRCodeGenerator::MaskFunction3(int x, int y) { - return (x + y) % 3 == 0; -} - // PutFinder paints a finder symbol at the given coordinates. void QRCodeGenerator::PutFinder(int x, int y) { DCHECK_GE(x, 3); @@ -610,12 +662,12 @@ uint8_t& right = at(x, y); // Test the current value in the QR code to avoid painting over any // existing structural elements. - if (right == 0) { + if ((right & 2) == 0) { right = stream.Next() ^ mask_func(x, y); } uint8_t& left = at(x - 1, y); - if (left == 0) { + if ((left & 2) == 0) { left = stream.Next() ^ mask_func(x - 1, y); } @@ -801,3 +853,128 @@ out[block_data_bytes + i] = remainder[block_ec_bytes - 1 - i]; } } + +unsigned QRCodeGenerator::CountPenaltyPoints() const { + const int size = version_info_->size; + unsigned penalty = 0; + + // The spec penalises the pattern X.XXX.X with four unpainted tiles to + // the left or right. These are "finder-like" patterns. To catch them, a + // sliding window of 11 tiles is used. + static const unsigned k11Bits = 0x7ff; + static const unsigned kFinderLeft = 0b00001011101; + static const unsigned kFinderRight = 0b10111010000; + + // Count: + // * Horizontal runs of the same color, at least five tiles in a row. + // * The number of horizontal finder-like patterns. + // * Total number of painted tiles, which is used later. + unsigned current_run_length; + int current_color; + unsigned total_painted_tiles = 0; + unsigned window = 0; + + size_t i = 0; + for (int y = 0; y < size; y++) { + current_color = d_[i++] & 1; + current_run_length = 0; + window = current_color; + total_painted_tiles += current_color; + + for (int x = 1; x < size; x++) { + const int color = d_[i++] & 1; + + window = k11Bits & ((window << 1) | color); + if (window == kFinderLeft || window == kFinderRight) { + penalty += 40; + } + + total_painted_tiles += color; + + if (color == current_color) { + current_run_length++; + continue; + } + + if (current_run_length >= 5) { + penalty += current_run_length - 2; + } + current_run_length = 0; + current_color = color; + } + + if (current_run_length >= 5) { + penalty += current_run_length - 2; + } + + window = k11Bits & (window << 4); + if (window == kFinderRight) { + penalty += 40; + } + } + DCHECK_EQ(i, static_cast<size_t>(size * size)); + + // Count: + // * Vertical runs of the same color, at least five tiles in a row. + // * The number of vertical finder-like patterns. + for (int x = 0; x < size; x++) { + i = x; + current_run_length = 0; + current_color = d_[i] & 1; + i += size; + window = current_color; + + for (int y = 1; y < size; y++, i += size) { + const int color = d_[i] & 1; + window = k11Bits & ((window << 1) | color); + if (window == kFinderLeft || window == kFinderRight) { + penalty += 40; + } + + if (color == current_color) { + current_run_length++; + continue; + } + + if (current_run_length >= 5) { + penalty += current_run_length - 2; + } + current_run_length = 0; + current_color = color; + } + + if (current_run_length >= 5) { + penalty += current_run_length - 2; + } + + window = k11Bits & (window << 4); + if (window == kFinderRight) { + penalty += 40; + } + } + DCHECK_EQ(i, static_cast<size_t>(size * size + size - 1)); + + // Count 2x2 blocks of the same color. + i = 0; + for (int y = 0; y < size - 1; y++) { + for (int x = 0; x < size - 1; x++) { + const int color = d_[i++] & 1; + if ((d_[i + 1] & 1) == color && (d_[i + size] & 1) == color && + (d_[i + size + 1] & 1) == color) { + penalty += 3; + } + } + } + + // Each deviation of 5% away from 50%-painted costs five points. + DCHECK_LE(total_painted_tiles, static_cast<unsigned>(size) * size); + double painted_fraction = static_cast<double>(total_painted_tiles) / + (static_cast<double>(size) * size); + if (painted_fraction < 0.5) { + painted_fraction = 1.0 - painted_fraction; + } + const double deviation = (painted_fraction - 0.5) / 0.05; + penalty += 5 * static_cast<unsigned>(floor(deviation)); + + return penalty; +}
diff --git a/chrome/common/qr_code_generator/qr_code_generator.h b/chrome/common/qr_code_generator/qr_code_generator.h index 178d6ff8..7f431c0 100644 --- a/chrome/common/qr_code_generator/qr_code_generator.h +++ b/chrome/common/qr_code_generator/qr_code_generator.h
@@ -57,13 +57,14 @@ // Generates a QR code containing the given data. // The generator will attempt to choose a version that fits the data. The // returned span's length is input-dependent and not known at compile-time in - // this case. - base::Optional<GeneratedCode> Generate(base::span<const uint8_t> in); + // this case. The optional |mask| argument specifies the QR mask value to use + // (from 0 to 7). If not specified, the optimal mask is calculated per the + // algorithm specified in the QR standard. + base::Optional<GeneratedCode> Generate( + base::span<const uint8_t> in, + base::Optional<uint8_t> mask = base::nullopt); private: - // MaskFunction3 implements one of the data-masking functions. See figure 21. - static uint8_t MaskFunction3(int x, int y); - // PutFinder paints a finder symbol at the given coordinates. void PutFinder(int x, int y); @@ -119,6 +120,10 @@ size_t block_bytes, size_t block_ec_bytes); + // CountPenaltyPoints sums the penalty points for the current, fully drawn, + // code. See table 11. + unsigned CountPenaltyPoints() const; + // Parameters for the currently-selected version of the QR code. // Generate() will pick a version that can contain enough data. // Unowned; nullptr until initialized in Generate().
diff --git a/chrome/common/qr_code_generator/qr_print.cc b/chrome/common/qr_code_generator/qr_print.cc index 81546b6..ade1e38 100644 --- a/chrome/common/qr_code_generator/qr_print.cc +++ b/chrome/common/qr_code_generator/qr_print.cc
@@ -12,6 +12,8 @@ #include <utility> #include "base/containers/span.h" +#include "base/optional.h" +#include "base/strings/string_number_conversions.h" #include "chrome/common/qr_code_generator/qr_code_generator.h" // kTerminalBackgroundIsBright controls the output polarity. Many QR scanners @@ -34,14 +36,24 @@ // Presubmits don't allow fprintf to a variable called |stderr|. FILE* const STDERR = stderr; - if (argc != 2) { - fprintf(STDERR, "Usage: %s <input string>\n", argv[0]); + if (argc < 2 || argc > 3) { + fprintf(STDERR, "Usage: %s <input string> [mask number]\n", argv[0]); return 1; } const uint8_t* const input = reinterpret_cast<const uint8_t*>(argv[1]); const size_t input_len = strlen(argv[1]); + base::Optional<uint8_t> mask; + if (argc == 3) { + unsigned mask_unsigned; + if (!base::StringToUint(argv[2], &mask_unsigned) || mask_unsigned > 7) { + fprintf(STDERR, "Mask numbers run from zero to seven.\n"); + return 1; + } + mask = static_cast<uint8_t>(mask_unsigned); + } + const char* black = kNoPaint; const char* white = kPaint; if (kTerminalBackgroundIsBright) { @@ -50,7 +62,7 @@ QRCodeGenerator generator; base::Optional<QRCodeGenerator::GeneratedCode> code = - generator.Generate(base::span<const uint8_t>(input, input_len)); + generator.Generate(base::span<const uint8_t>(input, input_len), mask); if (!code) { fprintf(STDERR, "Input too long to be encoded.\n"); return 2;
diff --git a/chrome/credential_provider/gaiacp/gaia_credential_base.cc b/chrome/credential_provider/gaiacp/gaia_credential_base.cc index 39336eb..21c6e5b 100644 --- a/chrome/credential_provider/gaiacp/gaia_credential_base.cc +++ b/chrome/credential_provider/gaiacp/gaia_credential_base.cc
@@ -120,24 +120,6 @@ return email_domains_reg.empty() ? email_domains_reg_new : email_domains_reg; } -// Get a pretty-printed string of the list of email domains that we can display -// to the end-user. -base::string16 GetEmailDomainsPrintableString() { - base::string16 email_domains_reg = GetEmailDomains(); - if (email_domains_reg.empty()) - return email_domains_reg; - - std::vector<base::string16> domains = - base::SplitString(base::ToLowerASCII(email_domains_reg), - base::ASCIIToUTF16(kEmailDomainsSeparator), - base::WhitespaceHandling::TRIM_WHITESPACE, - base::SplitResult::SPLIT_WANT_NONEMPTY); - base::string16 email_domains_str = - base::JoinString(domains, base::string16(L", ")); - - return email_domains_str; -} - // Use WinHttpUrlFetcher to communicate with the admin sdk and fetch the active // directory samAccountName if available and list of local account name mapping // configured as custom attributes. @@ -655,7 +637,7 @@ break; case kUiecInvalidEmailDomain: *status_text = CGaiaCredentialBase::AllocErrorString( - IDS_INVALID_EMAIL_DOMAIN_BASE, {GetEmailDomainsPrintableString()}); + IDS_INVALID_EMAIL_DOMAIN_BASE); break; case kUiecMissingSigninData: *status_text =
diff --git a/chrome/credential_provider/gaiacp/gaia_credential_base_unittests.cc b/chrome/credential_provider/gaiacp/gaia_credential_base_unittests.cc index 9387b7d..f21bfc5a 100644 --- a/chrome/credential_provider/gaiacp/gaia_credential_base_unittests.cc +++ b/chrome/credential_provider/gaiacp/gaia_credential_base_unittests.cc
@@ -672,33 +672,6 @@ : public GcpGaiaCredentialBaseTest, public ::testing::WithParamInterface< std::tuple<const wchar_t*, const wchar_t*>> { - public: - // Get a pretty-printed string of the list of email domains that we can - // display to the end-user. - base::string16 GetEmailDomainsPrintableString() { - base::string16 email_domains_reg_old = GetGlobalFlagOrDefault(L"ed", L""); - base::string16 email_domains_reg_new = - GetGlobalFlagOrDefault(L"domains_allowed_to_login", L""); - - base::string16 email_domains_reg = email_domains_reg_old.empty() - ? email_domains_reg_new - : email_domains_reg_old; - if (email_domains_reg.empty()) - return email_domains_reg; - - std::vector<base::string16> domains = - base::SplitString(base::ToLowerASCII(email_domains_reg), - base::ASCIIToUTF16(kEmailDomainsSeparator), - base::WhitespaceHandling::TRIM_WHITESPACE, - base::SplitResult::SPLIT_WANT_NONEMPTY); - base::string16 email_domains_str; - for (size_t i = 0; i < domains.size(); ++i) { - email_domains_str += domains[i]; - if (i < domains.size() - 1) - email_domains_str += L", "; - } - return email_domains_str; - } }; TEST_P(GcpGaiaCredentialBaseInvalidDomainTest, Fail) { @@ -728,9 +701,8 @@ ASSERT_EQ(S_OK, StartLogonProcessAndWait()); - base::string16 expected_error_msg = base::ReplaceStringPlaceholders( - GetStringResource(IDS_INVALID_EMAIL_DOMAIN_BASE), - {GetEmailDomainsPrintableString()}, nullptr); + base::string16 expected_error_msg = + GetStringResource(IDS_INVALID_EMAIL_DOMAIN_BASE); // Logon process should fail with the specified error message. ASSERT_EQ(S_OK, FinishLogonProcess(false, false, expected_error_msg)); @@ -748,33 +720,6 @@ : public GcpGaiaCredentialBaseTest, public ::testing::WithParamInterface< std::tuple<const wchar_t*, const wchar_t*>> { - public: - // Get a pretty-printed string of the list of email domains that we can - // display to the end-user. - base::string16 GetEmailDomainsPrintableString() { - base::string16 email_domains_reg_old = GetGlobalFlagOrDefault(L"ed", L""); - base::string16 email_domains_reg_new = - GetGlobalFlagOrDefault(L"domains_allowed_to_login", L""); - - base::string16 email_domains_reg = email_domains_reg_old.empty() - ? email_domains_reg_new - : email_domains_reg_old; - if (email_domains_reg.empty()) - return email_domains_reg; - - std::vector<base::string16> domains = - base::SplitString(base::ToLowerASCII(email_domains_reg), - base::ASCIIToUTF16(kEmailDomainsSeparator), - base::WhitespaceHandling::TRIM_WHITESPACE, - base::SplitResult::SPLIT_WANT_NONEMPTY); - base::string16 email_domains_str; - for (size_t i = 0; i < domains.size(); ++i) { - email_domains_str += domains[i]; - if (i < domains.size() - 1) - email_domains_str += L", "; - } - return email_domains_str; - } }; TEST_P(GcpGaiaCredentialBasePermittedAccountTest, PermittedAccounts) { @@ -813,9 +758,7 @@ } else { base::string16 expected_error_msg; if (!found_domain) { - expected_error_msg = base::ReplaceStringPlaceholders( - GetStringResource(IDS_INVALID_EMAIL_DOMAIN_BASE), - {GetEmailDomainsPrintableString()}, nullptr); + expected_error_msg = GetStringResource(IDS_INVALID_EMAIL_DOMAIN_BASE); } else { expected_error_msg = GetStringResource(IDS_EMAIL_MISMATCH_BASE); }
diff --git a/chrome/credential_provider/gaiacp/gaia_resources.grd b/chrome/credential_provider/gaiacp/gaia_resources.grd index d8259762..867ed27 100644 --- a/chrome/credential_provider/gaiacp/gaia_resources.grd +++ b/chrome/credential_provider/gaiacp/gaia_resources.grd
@@ -120,7 +120,7 @@ Your administrator doesn’t allow you to sign in with this account. Try a different account. </message> <message name="IDS_INVALID_EMAIL_DOMAIN" desc=""> - You can sign in only with an email address that ends with the following: <ph name="EMAIL_DOMAINS">$1<ex>acme.com, acme2.com, acme3.com</ex></ph>. Try again using a work account. + This email isn't allowed to sign in. Try again with the account you use for work or school. If you still can't sign in, contact your administrator. </message> <message name="IDS_DISALLOWED_CONSUMER_EMAIL" desc=""> Signing in with a personal account on this device is not allowed. Please login with a work account.
diff --git a/chrome/credential_provider/gaiacp/gaia_resources_grd/IDS_INVALID_EMAIL_DOMAIN.png.sha1 b/chrome/credential_provider/gaiacp/gaia_resources_grd/IDS_INVALID_EMAIL_DOMAIN.png.sha1 index baf799a..67cba7f 100644 --- a/chrome/credential_provider/gaiacp/gaia_resources_grd/IDS_INVALID_EMAIL_DOMAIN.png.sha1 +++ b/chrome/credential_provider/gaiacp/gaia_resources_grd/IDS_INVALID_EMAIL_DOMAIN.png.sha1
@@ -1 +1 @@ -81dbc05a79e6efdca1a6d59b3686a8b0171ba05f \ No newline at end of file +a502feb50478237f2e26446c661f23cb17299fc7 \ No newline at end of file
diff --git a/chrome/renderer/DEPS b/chrome/renderer/DEPS index aac71009..d57c556 100644 --- a/chrome/renderer/DEPS +++ b/chrome/renderer/DEPS
@@ -60,6 +60,7 @@ "+components/web_cache/renderer", "+content/public/child", "+content/public/renderer", + "+chromeos/memory/userspace_swap", "+extensions/common", "+extensions/buildflags", "+extensions/renderer",
diff --git a/chrome/renderer/safe_browsing/phishing_classifier.cc b/chrome/renderer/safe_browsing/phishing_classifier.cc index c3bd4a5a..7de998a17 100644 --- a/chrome/renderer/safe_browsing/phishing_classifier.cc +++ b/chrome/renderer/safe_browsing/phishing_classifier.cc
@@ -4,6 +4,7 @@ #include "chrome/renderer/safe_browsing/phishing_classifier.h" +#include <memory> #include <string> #include <utility> @@ -15,6 +16,8 @@ #include "base/metrics/histogram_macros.h" #include "base/single_thread_task_runner.h" #include "base/strings/string_util.h" +#include "base/task/task_traits.h" +#include "base/task/thread_pool.h" #include "base/threading/thread_task_runner_handle.h" #include "cc/paint/skia_paint_canvas.h" #include "chrome/common/url_constants.h" @@ -26,6 +29,7 @@ #include "components/paint_preview/common/paint_preview_tracker.h" #include "components/safe_browsing/core/proto/csd.pb.h" #include "content/public/renderer/render_frame.h" +#include "content/public/renderer/render_thread.h" #include "crypto/sha2.h" #include "third_party/blink/public/platform/web_url.h" #include "third_party/blink/public/platform/web_url_request.h" @@ -165,6 +169,7 @@ } void PhishingClassifier::ExtractVisualFeatures() { + DCHECK(content::RenderThread::IsMainThread()); base::TimeTicks start_time = base::TimeTicks::Now(); blink::WebLocalFrame* frame = render_frame_->GetWebFrame(); @@ -193,6 +198,7 @@ } void PhishingClassifier::VisualExtractionFinished(bool success) { + DCHECK(content::RenderThread::IsMainThread()); if (!success) { RunFailureCallback(); return; @@ -203,32 +209,48 @@ // Hash all of the features so that they match the model, then compute // the score. FeatureMap hashed_features; - ClientPhishingRequest verdict; - verdict.set_model_version(scorer_->model_version()); - verdict.set_url(main_frame->GetDocument().Url().GetString().Utf8()); + std::unique_ptr<ClientPhishingRequest> verdict = + std::make_unique<ClientPhishingRequest>(); + verdict->set_model_version(scorer_->model_version()); + verdict->set_url(main_frame->GetDocument().Url().GetString().Utf8()); for (const auto& it : features_->features()) { bool result = hashed_features.AddRealFeature( crypto::SHA256HashString(it.first), it.second); DCHECK(result); - ClientPhishingRequest::Feature* feature = verdict.add_feature_map(); + ClientPhishingRequest::Feature* feature = verdict->add_feature_map(); feature->set_name(it.first); feature->set_value(it.second); } for (const auto& it : *shingle_hashes_) { - verdict.add_shingle_hashes(it); + verdict->add_shingle_hashes(it); } float score = static_cast<float>(scorer_->ComputeScore(hashed_features)); - verdict.set_client_score(score); - verdict.set_is_phishing(score >= scorer_->threshold_probability()); + verdict->set_client_score(score); + verdict->set_is_phishing(score >= scorer_->threshold_probability()); - base::TimeTicks visual_matching_start = base::TimeTicks::Now(); - if (scorer_->GetMatchingVisualTargets(*bitmap_, &verdict)) { - verdict.set_is_phishing(true); + visual_matching_start_ = base::TimeTicks::Now(); + + // Perform scoring off the UI thread to avoid blocking. + base::ThreadPool::PostTaskAndReplyWithResult( + FROM_HERE, {base::WithBaseSyncPrimitives()}, + base::BindOnce(&Scorer::GetMatchingVisualTargets, + // base::Unretained is safe because the classification will + // be cancelled before the scorer is removed. + base::Unretained(scorer_), *bitmap_, std::move(verdict)), + base::BindOnce(&PhishingClassifier::OnVisualTargetsMatched, + weak_factory_.GetWeakPtr())); +} + +void PhishingClassifier::OnVisualTargetsMatched( + std::unique_ptr<ClientPhishingRequest> verdict) { + DCHECK(content::RenderThread::IsMainThread()); + if (!verdict->vision_match().empty()) { + verdict->set_is_phishing(true); } base::UmaHistogramTimes("SBClientPhishing.VisualComparisonTime", - base::TimeTicks::Now() - visual_matching_start); + base::TimeTicks::Now() - visual_matching_start_); - RunCallback(verdict); + RunCallback(*verdict); } void PhishingClassifier::RunCallback(const ClientPhishingRequest& verdict) {
diff --git a/chrome/renderer/safe_browsing/phishing_classifier.h b/chrome/renderer/safe_browsing/phishing_classifier.h index 401ae40..541e7c5 100644 --- a/chrome/renderer/safe_browsing/phishing_classifier.h +++ b/chrome/renderer/safe_browsing/phishing_classifier.h
@@ -121,18 +121,23 @@ // non-phishy verdict. void VisualExtractionFinished(bool success); + // Callback when visual features have been scored and compared against the + // model. + void OnVisualTargetsMatched(std::unique_ptr<ClientPhishingRequest> verdict); + // Helper method to run the DoneCallback and clear the state. void RunCallback(const ClientPhishingRequest& verdict); // Helper to run the DoneCallback when feature extraction has failed. - // This always signals a non-phishy verdict for the page, with kInvalidScore. + // This always signals a non-phishy verdict for the page, with + // |kInvalidScore|. void RunFailureCallback(); // Clears the current state of the PhishingClassifier. void Clear(); content::RenderFrame* render_frame_; // owns us - const Scorer* scorer_; // owned by the caller + const Scorer* scorer_; // owned by the caller std::unique_ptr<PhishingUrlFeatureExtractor> url_extractor_; std::unique_ptr<PhishingDOMFeatureExtractor> dom_extractor_; std::unique_ptr<PhishingTermFeatureExtractor> term_extractor_; @@ -144,6 +149,9 @@ std::unique_ptr<SkBitmap> bitmap_; DoneCallback done_callback_; + // Used to record the duration of visual feature scoring. + base::TimeTicks visual_matching_start_; + // Used in scheduling BeginFeatureExtraction tasks. // These pointers are invalidated if classification is cancelled. base::WeakPtrFactory<PhishingClassifier> weak_factory_{this};
diff --git a/chrome/renderer/safe_browsing/phishing_classifier_browsertest.cc b/chrome/renderer/safe_browsing/phishing_classifier_browsertest.cc index ea023bb..9029c3e 100644 --- a/chrome/renderer/safe_browsing/phishing_classifier_browsertest.cc +++ b/chrome/renderer/safe_browsing/phishing_classifier_browsertest.cc
@@ -127,7 +127,7 @@ page_text, base::BindOnce(&PhishingClassifierTest::ClassificationFinished, base::Unretained(this))); - base::RunLoop().RunUntilIdle(); + run_loop_.Run(); } // Completion callback for classification. @@ -141,6 +141,8 @@ screenshot_digest_ = verdict.screenshot_digest(); screenshot_phash_ = verdict.screenshot_phash(); phash_dimension_size_ = verdict.phash_dimension_size(); + + run_loop_.Quit(); } void LoadHtml(const GURL& url, const std::string& content) { @@ -156,6 +158,7 @@ std::string response_content_; std::unique_ptr<Scorer> scorer_; std::unique_ptr<PhishingClassifier> classifier_; + base::RunLoop run_loop_; // Features that are in the model. const std::string url_tld_token_net_;
diff --git a/chrome/renderer/safe_browsing/scorer.cc b/chrome/renderer/safe_browsing/scorer.cc index 63797ff..d5bb3ca7 100644 --- a/chrome/renderer/safe_browsing/scorer.cc +++ b/chrome/renderer/safe_browsing/scorer.cc
@@ -86,15 +86,14 @@ return LogOdds2Prob(logodds); } -bool Scorer::GetMatchingVisualTargets(const SkBitmap& bitmap, - ClientPhishingRequest* request) const { - bool has_match = false; +std::unique_ptr<ClientPhishingRequest> Scorer::GetMatchingVisualTargets( + const SkBitmap& bitmap, + std::unique_ptr<ClientPhishingRequest> request) const { for (const VisualTarget& target : model_.vision_model().targets()) { base::Optional<VisionMatchResult> result = visual_utils::IsVisualMatch(bitmap, target); if (result.has_value()) { *request->add_vision_match() = result.value(); - has_match = true; } } @@ -112,7 +111,7 @@ } } - return has_match; + return request; } int Scorer::model_version() const {
diff --git a/chrome/renderer/safe_browsing/scorer.h b/chrome/renderer/safe_browsing/scorer.h index 597b4cf0..7c817e39 100644 --- a/chrome/renderer/safe_browsing/scorer.h +++ b/chrome/renderer/safe_browsing/scorer.h
@@ -42,10 +42,11 @@ // (range is inclusive on both ends). virtual double ComputeScore(const FeatureMap& features) const; - // This method matches the given |bitmap| against the visual model. It returns - // true if any visual target matches, and populates |request| appropriately. - virtual bool GetMatchingVisualTargets(const SkBitmap& bitmap, - ClientPhishingRequest* request) const; + // This method matches the given |bitmap| against the visual model. It + // modifies |request| appropriately, and returns the new request. + virtual std::unique_ptr<ClientPhishingRequest> GetMatchingVisualTargets( + const SkBitmap& bitmap, + std::unique_ptr<ClientPhishingRequest> request) const; // Returns the version number of the loaded client model. int model_version() const;
diff --git a/chrome/renderer/safe_browsing/scorer_unittest.cc b/chrome/renderer/safe_browsing/scorer_unittest.cc index 9083eca..85d4135f 100644 --- a/chrome/renderer/safe_browsing/scorer_unittest.cc +++ b/chrome/renderer/safe_browsing/scorer_unittest.cc
@@ -189,10 +189,11 @@ for (int x = 0; x < 164; x++) *bitmap_.getAddr32(x, 0) = 0xff000000; - ClientPhishingRequest request; - scorer->GetMatchingVisualTargets(bitmap_, &request); - ASSERT_EQ(request.vision_match_size(), 1); - EXPECT_EQ(request.vision_match(0).matched_target_digest(), "target1"); + std::unique_ptr<ClientPhishingRequest> request = + std::make_unique<ClientPhishingRequest>(); + request = scorer->GetMatchingVisualTargets(bitmap_, std::move(request)); + ASSERT_EQ(request->vision_match_size(), 1); + EXPECT_EQ(request->vision_match(0).matched_target_digest(), "target1"); } TEST_F(PhishingScorerTest, GetMatchingVisualTargetsMatchBoth) { @@ -212,11 +213,12 @@ for (int x = 168; x < 248; x++) *bitmap_.getAddr32(x, 0) = 0xff000000; - ClientPhishingRequest request; - scorer->GetMatchingVisualTargets(bitmap_, &request); - ASSERT_EQ(request.vision_match_size(), 2); - EXPECT_EQ(request.vision_match(0).matched_target_digest(), "target1"); - EXPECT_EQ(request.vision_match(1).matched_target_digest(), "target2"); + std::unique_ptr<ClientPhishingRequest> request = + std::make_unique<ClientPhishingRequest>(); + request = scorer->GetMatchingVisualTargets(bitmap_, std::move(request)); + ASSERT_EQ(request->vision_match_size(), 2); + EXPECT_EQ(request->vision_match(0).matched_target_digest(), "target1"); + EXPECT_EQ(request->vision_match(1).matched_target_digest(), "target2"); } } // namespace safe_browsing
diff --git a/chrome/services/machine_learning/BUILD.gn b/chrome/services/machine_learning/BUILD.gn index 4bd4d55..fab940b 100644 --- a/chrome/services/machine_learning/BUILD.gn +++ b/chrome/services/machine_learning/BUILD.gn
@@ -11,6 +11,7 @@ ] deps = [ + ":metrics", "//base", "//chrome:strings", "//mojo/public/cpp/bindings", @@ -39,6 +40,15 @@ ] } +source_set("metrics") { + sources = [ + "metrics.cc", + "metrics.h", + ] + + deps = [ "//base" ] +} + source_set("unit_tests") { testonly = true @@ -57,6 +67,7 @@ deps = [ ":machine_learning", + ":metrics", "//base", "//base/test:test_support", "//chrome/services/machine_learning/public/cpp:cpp",
diff --git a/chrome/services/machine_learning/decision_tree_predictor.cc b/chrome/services/machine_learning/decision_tree_predictor.cc index b2c973d..62a80fe 100644 --- a/chrome/services/machine_learning/decision_tree_predictor.cc +++ b/chrome/services/machine_learning/decision_tree_predictor.cc
@@ -5,9 +5,11 @@ #include <memory> #include <utility> +#include "base/metrics/histogram_macros.h" #include "base/optional.h" #include "base/values.h" #include "chrome/services/machine_learning/decision_tree_predictor.h" +#include "chrome/services/machine_learning/metrics.h" #include "chrome/services/machine_learning/public/cpp/decision_tree_model.h" namespace machine_learning { @@ -19,6 +21,8 @@ // static std::unique_ptr<DecisionTreePredictor> DecisionTreePredictor::FromModelSpec( mojom::DecisionTreeModelSpecPtr spec) { + metrics::ScopedLatencyRecorder recorder( + metrics::kDecisionTreeModelValidationLatency); return std::make_unique<DecisionTreePredictor>( DecisionTreeModel::FromModelSpec(std::move(spec))); } @@ -33,10 +37,19 @@ const base::flat_map<std::string, float>& model_features, PredictCallback callback) { DCHECK(IsValid()); + + metrics::ScopedLatencyRecorder recorder( + metrics::kDecisionTreeModelEvaluationLatency); + double score = 0.0; mojom::DecisionTreePredictionResult result = model_->Predict(model_features, &score); + recorder.RecordTimeElapsed(); + + UMA_HISTOGRAM_ENUMERATION(metrics::kDecisionTreeModelPredictionResult, + result); + std::move(callback).Run(result, score); }
diff --git a/chrome/services/machine_learning/decision_tree_predictor_unittest.cc b/chrome/services/machine_learning/decision_tree_predictor_unittest.cc index 4fbf469..efbd1b1 100644 --- a/chrome/services/machine_learning/decision_tree_predictor_unittest.cc +++ b/chrome/services/machine_learning/decision_tree_predictor_unittest.cc
@@ -10,7 +10,9 @@ #include "base/macros.h" #include "base/run_loop.h" #include "base/test/bind_test_util.h" +#include "base/test/metrics/histogram_tester.h" #include "base/test/task_environment.h" +#include "chrome/services/machine_learning/metrics.h" #include "chrome/services/machine_learning/public/cpp/decision_tree_model.h" #include "chrome/services/machine_learning/public/cpp/test_support/machine_learning_test_utils.h" #include "chrome/services/machine_learning/public/mojom/decision_tree.mojom.h" @@ -41,6 +43,8 @@ } TEST_F(DecisionTreePredictorTest, ValidPredictorFromModelSpec) { + base::HistogramTester histogram_tester; + auto model_proto = testing::GetModelProtoForPredictionResult( mojom::DecisionTreePredictionResult::kTrue); std::string model_string = model_proto->SerializeAsString(); @@ -48,6 +52,8 @@ mojom::DecisionTreeModelSpec::New(model_string)); EXPECT_TRUE(predictor->IsValid()); + histogram_tester.ExpectTotalCount( + metrics::kDecisionTreeModelValidationLatency, 1); } TEST_F(DecisionTreePredictorTest, InvalidPredictorFromModelSpec) { @@ -61,6 +67,8 @@ } TEST_F(DecisionTreePredictorTest, ModelPrediction) { + base::HistogramTester histogram_tester; + mojom::DecisionTreePredictionResult result; double score; @@ -79,6 +87,12 @@ }, &result, &score)); + histogram_tester.ExpectTotalCount( + metrics::kDecisionTreeModelEvaluationLatency, 1); + histogram_tester.ExpectUniqueSample( + metrics::kDecisionTreeModelPredictionResult, + mojom::DecisionTreePredictionResult::kTrue, 1); + EXPECT_EQ(mojom::DecisionTreePredictionResult::kTrue, result); EXPECT_GT(score, testing::kModelThreshold); }
diff --git a/chrome/services/machine_learning/machine_learning_service.cc b/chrome/services/machine_learning/machine_learning_service.cc index 8c02633..fbff5168 100644 --- a/chrome/services/machine_learning/machine_learning_service.cc +++ b/chrome/services/machine_learning/machine_learning_service.cc
@@ -8,7 +8,11 @@ #include <type_traits> #include <utility> +#include "base/bind.h" +#include "base/metrics/histogram_macros.h" +#include "base/time/time.h" #include "chrome/services/machine_learning/decision_tree_predictor.h" +#include "chrome/services/machine_learning/metrics.h" #include "chrome/services/machine_learning/public/mojom/machine_learning_service.mojom.h" #include "mojo/public/cpp/bindings/pending_receiver.h" #include "mojo/public/cpp/bindings/self_owned_receiver.h" @@ -28,8 +32,12 @@ auto predictor = DecisionTreePredictor::FromModelSpec(std::move(spec)); if (predictor->IsValid()) { mojo::MakeSelfOwnedReceiver(std::move(predictor), std::move(receiver)); + UMA_HISTOGRAM_ENUMERATION(metrics::kDecisionTreeModelLoadResult, + mojom::LoadModelResult::kOk); std::move(callback).Run(mojom::LoadModelResult::kOk); } else { + UMA_HISTOGRAM_ENUMERATION(metrics::kDecisionTreeModelLoadResult, + mojom::LoadModelResult::kModelSpecError); std::move(callback).Run(mojom::LoadModelResult::kModelSpecError); } }
diff --git a/chrome/services/machine_learning/machine_learning_service.h b/chrome/services/machine_learning/machine_learning_service.h index 94bf852..4cd805f7 100644 --- a/chrome/services/machine_learning/machine_learning_service.h +++ b/chrome/services/machine_learning/machine_learning_service.h
@@ -5,7 +5,6 @@ #ifndef CHROME_SERVICES_MACHINE_LEARNING_MACHINE_LEARNING_SERVICE_H_ #define CHROME_SERVICES_MACHINE_LEARNING_MACHINE_LEARNING_SERVICE_H_ -#include "base/macros.h" #include "chrome/services/machine_learning/public/mojom/machine_learning_service.mojom.h" #include "mojo/public/cpp/bindings/pending_receiver.h" #include "mojo/public/cpp/bindings/receiver.h"
diff --git a/chrome/services/machine_learning/metrics.cc b/chrome/services/machine_learning/metrics.cc new file mode 100644 index 0000000..aa1a48f1 --- /dev/null +++ b/chrome/services/machine_learning/metrics.cc
@@ -0,0 +1,72 @@ +// Copyright 2020 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "chrome/services/machine_learning/metrics.h" + +#include "base/logging.h" +#include "base/metrics/histogram_functions.h" +#include "base/metrics/histogram_macros.h" +#include "base/time/time.h" + +namespace machine_learning { +namespace metrics { + +const char kServiceRequested[] = "ChromeMLService.ServiceStatusWhenRequested"; +const char kServiceLaunch[] = "ChromeMLService.ServiceLaunch"; +const char kServiceNormalTermination[] = + "ChromeMLService.ServiceNormalTermination"; +const char kServiceCrash[] = "ChromeMLService.ServiceCrash"; +const char kServiceAliveDuration[] = "ChromeMLService.ServiceAliveDuration"; +const char kDecisionTreeModelLoadResult[] = + "ChromeMLService.LoadModelResult.DecisionTreeModel"; +const char kDecisionTreeModelPredictionResult[] = + "ChromeMLService.PredictionResult.DecisionTreeModel"; +const char kDecisionTreeModelValidationLatency[] = + "ChromeMLService.ValidationLatency.DecisionTreeModel"; +const char kDecisionTreeModelEvaluationLatency[] = + "ChromeMLService.EvaluationLatency.DecisionTreeModel"; + +void LogServiceRequested(MLServiceRequestStatus status) { + UMA_HISTOGRAM_ENUMERATION(kServiceRequested, status); +} + +void LogServiceLaunch() { + UMA_HISTOGRAM_BOOLEAN(kServiceLaunch, true); +} + +void LogServiceNormalTermination() { + UMA_HISTOGRAM_BOOLEAN(kServiceNormalTermination, true); +} + +void LogServiceCrash() { + UMA_HISTOGRAM_BOOLEAN(kServiceCrash, true); +} + +void LogServiceAliveDuration(base::TimeDelta time) { + UMA_HISTOGRAM_CUSTOM_TIMES(kServiceAliveDuration, time, + base::TimeDelta::FromMilliseconds(1), + base::TimeDelta::FromSeconds(30), 50); +} + +ScopedLatencyRecorder::ScopedLatencyRecorder(const std::string& metric_name) + : metric_name_(metric_name), start_time_(base::TimeTicks::Now()) {} + +ScopedLatencyRecorder::~ScopedLatencyRecorder() { + RecordTimeElapsed(); +} + +void ScopedLatencyRecorder::RecordTimeElapsed() { + if (recorded_) + return; + + // Cannot use macros here since |metrics_name_| may be different. + base::UmaHistogramCustomTimes(metric_name_, + base::TimeTicks::Now() - start_time_, + base::TimeDelta::FromMilliseconds(1), + base::TimeDelta::FromMilliseconds(2000), 50); + recorded_ = true; +} + +} // namespace metrics +} // namespace machine_learning
diff --git a/chrome/services/machine_learning/metrics.h b/chrome/services/machine_learning/metrics.h new file mode 100644 index 0000000..645a4d62 --- /dev/null +++ b/chrome/services/machine_learning/metrics.h
@@ -0,0 +1,77 @@ +// Copyright 2020 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef CHROME_SERVICES_MACHINE_LEARNING_METRICS_H_ +#define CHROME_SERVICES_MACHINE_LEARNING_METRICS_H_ + +#include <string> + +#include "base/time/time.h" + +namespace machine_learning { +namespace metrics { + +// Categorizes status of the ML Service when it is requested. +// These values are persisted to logs. Entries should not be renumbered and +// numeric values should never be reused. +// Should be kept in sync with ChromeMLServiceRequestStatus enum +// in //tools/metrics/histograms/enums.xml. +enum class MLServiceRequestStatus { + // ML Service is already launched when requested. + kRequestedServiceLaunched = 0, + // ML Service is not launched when requested. + kRequestedServiceNotLaunched = 1, + kMaxValue = kRequestedServiceNotLaunched +}; + +// Names of metrics. +extern const char kServiceRequested[]; +extern const char kServiceLaunch[]; +extern const char kServiceNormalTermination[]; +extern const char kServiceCrash[]; +extern const char kServiceAliveDuration[]; +extern const char kDecisionTreeModelLoadResult[]; +extern const char kDecisionTreeModelPredictionResult[]; +extern const char kDecisionTreeModelValidationLatency[]; +extern const char kDecisionTreeModelEvaluationLatency[]; + +// Log to UMA histogram when ML Service is requested. +void LogServiceRequested(MLServiceRequestStatus status); +// Log to UMA histogram when ML Service is launched. +void LogServiceLaunch(); +// Log to UMA histogram when ML Service terminates normally. +void LogServiceNormalTermination(); +// Log to UMA histogram when ML Service crashes. +void LogServiceCrash(); +// Log |time| to UMA histogram as the duration when ML Service is alive. +void LogServiceAliveDuration(base::TimeDelta time); + +// Helper class to record time elapsed in a scope. +class ScopedLatencyRecorder { + public: + // Initializes with given |metric_name| of the UMA histogram and an associated + // maximum time |time_max|, and initialized the timer saved in |start_time_|. + explicit ScopedLatencyRecorder(const std::string& metric_name); + + // Saves elapsed time since construction if |DumpRecord()| has not been + // called. + ~ScopedLatencyRecorder(); + + ScopedLatencyRecorder(const ScopedLatencyRecorder&) = delete; + ScopedLatencyRecorder& operator=(const ScopedLatencyRecorder&) = delete; + + // Forces logging elapsed time since |start_time_| to the UMA histogram given + // by |metric_name_| when called the first time. + void RecordTimeElapsed(); + + private: + bool recorded_ = false; + const std::string metric_name_; + base::TimeTicks start_time_; +}; + +} // namespace metrics +} // namespace machine_learning + +#endif // CHROME_SERVICES_MACHINE_LEARNING_METRICS_H_
diff --git a/chrome/services/machine_learning/public/cpp/BUILD.gn b/chrome/services/machine_learning/public/cpp/BUILD.gn index cba969eb..4b8701a 100644 --- a/chrome/services/machine_learning/public/cpp/BUILD.gn +++ b/chrome/services/machine_learning/public/cpp/BUILD.gn
@@ -35,7 +35,10 @@ "//chrome/services/machine_learning/public/mojom", ] - deps = [ "//content/public/browser" ] + deps = [ + "//chrome/services/machine_learning:metrics", + "//content/public/browser", + ] } source_set("test_support") {
diff --git a/chrome/services/machine_learning/public/cpp/DEPS b/chrome/services/machine_learning/public/cpp/DEPS index b3d2dce..67d654f 100644 --- a/chrome/services/machine_learning/public/cpp/DEPS +++ b/chrome/services/machine_learning/public/cpp/DEPS
@@ -1,3 +1,4 @@ include_rules = [ "+content/public/browser/service_process_host.h", + "+content/public/browser/service_process_info.h", ]
diff --git a/chrome/services/machine_learning/public/cpp/service_connection.cc b/chrome/services/machine_learning/public/cpp/service_connection.cc index b150680b..d68a80d 100644 --- a/chrome/services/machine_learning/public/cpp/service_connection.cc +++ b/chrome/services/machine_learning/public/cpp/service_connection.cc
@@ -9,9 +9,11 @@ #include "base/no_destructor.h" #include "base/sequence_checker.h" #include "base/time/time.h" +#include "chrome/services/machine_learning/metrics.h" #include "chrome/services/machine_learning/public/mojom/decision_tree.mojom.h" #include "chrome/services/machine_learning/public/mojom/machine_learning_service.mojom.h" #include "content/public/browser/service_process_host.h" +#include "content/public/browser/service_process_info.h" #include "mojo/public/cpp/bindings/pending_receiver.h" #include "mojo/public/cpp/bindings/remote.h" @@ -25,13 +27,14 @@ constexpr base::TimeDelta kServiceProcessIdleTimeout{ base::TimeDelta::FromSeconds(30)}; -// Actual implementation of |ServiceConnection| -// TODO(crbug/1102425): Add a browser test to actually test the implementation -// after hooked to Optimization Guide. -class ServiceConnectionImpl : public ServiceConnection { +// Actual implementation of `ServiceConnection`. Also inherits from +// `content::ServiceProcessHost::Observer` to log lifetime events of the service +// process. +class ServiceConnectionImpl : public ServiceConnection, + public content::ServiceProcessHost::Observer { public: ServiceConnectionImpl(); - ~ServiceConnectionImpl() override = default; + ~ServiceConnectionImpl() override; ServiceConnectionImpl(const ServiceConnectionImpl&) = delete; ServiceConnectionImpl& operator=(const ServiceConnectionImpl&) = delete; @@ -46,14 +49,28 @@ void ResetServiceForTesting() override; + // `content::ServiceProcessHost::Observer` implementations. + void OnServiceProcessLaunched( + const content::ServiceProcessInfo& info) override; + void OnServiceProcessTerminatedNormally( + const content::ServiceProcessInfo& info) override; + void OnServiceProcessCrashed( + const content::ServiceProcessInfo& info) override; + private: mojo::Remote<mojom::MachineLearningService> machine_learning_service_; + base::Optional<base::TimeTicks> last_launched_time_; SEQUENCE_CHECKER(sequence_checker_); }; ServiceConnectionImpl::ServiceConnectionImpl() { DETACH_FROM_SEQUENCE(sequence_checker_); + content::ServiceProcessHost::AddObserver(this); +} + +ServiceConnectionImpl::~ServiceConnectionImpl() { + content::ServiceProcessHost::RemoveObserver(this); } void ServiceConnectionImpl::LoadDecisionTreeModel( @@ -68,6 +85,8 @@ mojom::MachineLearningService* ServiceConnectionImpl::GetService() { DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); if (!machine_learning_service_) { + metrics::LogServiceRequested( + metrics::MLServiceRequestStatus::kRequestedServiceNotLaunched); content::ServiceProcessHost::Launch( machine_learning_service_.BindNewPipeAndPassReceiver(), content::ServiceProcessHost::Options() @@ -76,7 +95,11 @@ machine_learning_service_.reset_on_disconnect(); machine_learning_service_.reset_on_idle_timeout(kServiceProcessIdleTimeout); + } else { + metrics::LogServiceRequested( + metrics::MLServiceRequestStatus::kRequestedServiceLaunched); } + return machine_learning_service_.get(); } @@ -87,6 +110,46 @@ static ServiceConnection* g_fake_service_connection = nullptr; +void ServiceConnectionImpl::OnServiceProcessLaunched( + const content::ServiceProcessInfo& info) { + DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); + if (!info.IsService<mojom::MachineLearningService>()) + return; + + last_launched_time_ = base::TimeTicks::Now(); + metrics::LogServiceLaunch(); +} + +void ServiceConnectionImpl::OnServiceProcessTerminatedNormally( + const content::ServiceProcessInfo& info) { + DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); + if (!info.IsService<mojom::MachineLearningService>()) + return; + + if (last_launched_time_) { + metrics::LogServiceAliveDuration(base::TimeTicks::Now() - + *last_launched_time_); + last_launched_time_.reset(); + } + + metrics::LogServiceNormalTermination(); +} + +void ServiceConnectionImpl::OnServiceProcessCrashed( + const content::ServiceProcessInfo& info) { + DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); + if (!info.IsService<mojom::MachineLearningService>()) + return; + + if (last_launched_time_) { + metrics::LogServiceAliveDuration(base::TimeTicks::Now() - + *last_launched_time_); + last_launched_time_.reset(); + } + + metrics::LogServiceCrash(); +} + } // namespace // static
diff --git a/chrome/services/machine_learning/public/mojom/decision_tree.mojom b/chrome/services/machine_learning/public/mojom/decision_tree.mojom index 8e07ae8..e6751b1f 100644 --- a/chrome/services/machine_learning/public/mojom/decision_tree.mojom +++ b/chrome/services/machine_learning/public/mojom/decision_tree.mojom
@@ -8,6 +8,10 @@ module machine_learning.mojom; // Decision tree prediction result values. +// These values are persisted to logs. Entries should not be renumbered and +// numeric values should never be reused. +// Should be kept in sync with ChromeMLServiceDecisionTreePredictionResult enum +// in //tools/metrics/histograms/enums.xml. enum DecisionTreePredictionResult { // Result unknown due to invalid model/features. kUnknown = 0,
diff --git a/chrome/services/machine_learning/public/mojom/machine_learning_service.mojom b/chrome/services/machine_learning/public/mojom/machine_learning_service.mojom index aff850a..a8cb207 100644 --- a/chrome/services/machine_learning/public/mojom/machine_learning_service.mojom +++ b/chrome/services/machine_learning/public/mojom/machine_learning_service.mojom
@@ -9,6 +9,10 @@ import "chrome/services/machine_learning/public/mojom/decision_tree.mojom"; // Model loading status values. +// These values are persisted to logs. Entries should not be renumbered and +// numeric values should never be reused. +// Should be kept in sync with the enum ChromeMLServiceLoadModelResult in +// //tools/metrics/histograms/enums.xml. enum LoadModelResult { // Loading is successful. kOk = 0,
diff --git a/chrome/services/sharing/nearby/platform_v2/bluetooth_classic_medium.cc b/chrome/services/sharing/nearby/platform_v2/bluetooth_classic_medium.cc index 368aa73..f5157d4 100644 --- a/chrome/services/sharing/nearby/platform_v2/bluetooth_classic_medium.cc +++ b/chrome/services/sharing/nearby/platform_v2/bluetooth_classic_medium.cc
@@ -147,6 +147,14 @@ return; } + // Best-effort attempt to filter out BLE advertisements. BLE advertisements + // represented as "devices" may have their |name| set if the system has + // created a GATT connection to the advertiser, but all BT Classic devices + // that we are interested in must have their |name| set. See BleMedium + // for separate discovery of BLE advertisements (BlePeripherals). + if (!device->name) + return; + const std::string& address = device->address; if (base::Contains(discovered_bluetooth_devices_map_, address)) { auto& bluetooth_device = discovered_bluetooth_devices_map_.at(address);
diff --git a/chrome/services/sharing/nearby/platform_v2/bluetooth_classic_medium_unittest.cc b/chrome/services/sharing/nearby/platform_v2/bluetooth_classic_medium_unittest.cc index d5bb95c..f7dc202 100644 --- a/chrome/services/sharing/nearby/platform_v2/bluetooth_classic_medium_unittest.cc +++ b/chrome/services/sharing/nearby/platform_v2/bluetooth_classic_medium_unittest.cc
@@ -155,7 +155,8 @@ EXPECT_FALSE(fake_adapter_->IsDiscoverySessionActive()); } -TEST_F(BluetoothClassicMediumTest, TestDiscovery_DeviceDiscovered) { +TEST_F(BluetoothClassicMediumTest, + TestDiscovery_DeviceDiscovered_BluetoothClassicDevice) { StartDiscovery(); NotifyDeviceAdded(kDeviceAddress1, kDeviceName1); @@ -170,6 +171,25 @@ StopDiscovery(); } +TEST_F(BluetoothClassicMediumTest, + TestDiscovery_DeviceDiscovered_BleAdvertisement) { + StartDiscovery(); + + on_device_discovered_callback_ = base::BindOnce([]() { FAIL(); }); + + // Do not set |name|. This reflects Chrome's usual representation of a BLE + // advertisement. + auto device_info = bluetooth::mojom::DeviceInfo::New(); + device_info->address = kDeviceAddress1; + device_info->name_for_display = kDeviceAddress1; + + fake_adapter_->NotifyDeviceAdded(std::move(device_info)); + + EXPECT_FALSE(last_device_discovered_); + + StopDiscovery(); +} + TEST_F(BluetoothClassicMediumTest, TestDiscovery_DeviceNameChanged) { StartDiscovery();
diff --git a/chrome/services/sharing/nearby/platform_v2/bluetooth_socket.cc b/chrome/services/sharing/nearby/platform_v2/bluetooth_socket.cc index ec80428..5ef9ab5a 100644 --- a/chrome/services/sharing/nearby/platform_v2/bluetooth_socket.cc +++ b/chrome/services/sharing/nearby/platform_v2/bluetooth_socket.cc
@@ -4,7 +4,9 @@ #include "chrome/services/sharing/nearby/platform_v2/bluetooth_socket.h" +#include <stdint.h> #include <limits> +#include <vector> #include "base/synchronization/waitable_event.h" #include "base/task/task_traits.h" @@ -46,14 +48,19 @@ if (size <= 0 || size > std::numeric_limits<uint32_t>::max()) return {Exception::kIo}; + pending_read_buffer_ = std::make_unique<ByteArray>(size); + pending_read_buffer_pos_ = 0; + task_run_.emplace(); - read_size_ = static_cast<uint32_t>(size); task_runner_->PostTask( FROM_HERE, base::BindOnce(&mojo::SimpleWatcher::ArmOrNotify, base::Unretained(&receive_stream_watcher_))); task_run_->Wait(); task_run_.reset(); + pending_read_buffer_.reset(); + pending_read_buffer_pos_ = 0; + return exception_or_received_byte_array_; } Exception Close() override { @@ -80,23 +87,29 @@ DCHECK(task_runner_->RunsTasksInCurrentSequence()); DCHECK_NE(result, MOJO_RESULT_SHOULD_WAIT); DCHECK(receive_stream_.is_valid()); - DCHECK_NE(read_size_, 0u); + DCHECK(pending_read_buffer_); + DCHECK_LT(pending_read_buffer_pos_, pending_read_buffer_->size()); DCHECK(task_run_); - std::vector<char> buf(read_size_); - uint32_t num_bytes = read_size_; - if (result == MOJO_RESULT_OK) { - // Pass MOJO_READ_DATA_FLAG_ALL_OR_NONE to ensure the exact number of - // bytes requested is read. - result = receive_stream_->ReadData(buf.data(), &num_bytes, - MOJO_READ_DATA_FLAG_ALL_OR_NONE); + uint32_t num_bytes = static_cast<uint32_t>(pending_read_buffer_->size() - + pending_read_buffer_pos_); + result = receive_stream_->ReadData( + pending_read_buffer_->data() + pending_read_buffer_pos_, &num_bytes, + MOJO_READ_DATA_FLAG_NONE); + if (result == MOJO_RESULT_OK) + pending_read_buffer_pos_ += num_bytes; } - read_size_ = 0; + if (result == MOJO_RESULT_SHOULD_WAIT || + pending_read_buffer_pos_ < pending_read_buffer_->size()) { + receive_stream_watcher_.ArmOrNotify(); + return; + } + if (result == MOJO_RESULT_OK) { exception_or_received_byte_array_ = - ExceptionOr<ByteArray>(ByteArray(buf.data(), num_bytes)); + ExceptionOr<ByteArray>(std::move(*pending_read_buffer_)); } else { exception_or_received_byte_array_ = ExceptionOr<ByteArray>(Exception::kIo); @@ -108,7 +121,8 @@ mojo::ScopedDataPipeConsumerHandle receive_stream_; mojo::SimpleWatcher receive_stream_watcher_; - uint32_t read_size_ = 0; + std::unique_ptr<ByteArray> pending_read_buffer_; + uint32_t pending_read_buffer_pos_ = 0; ExceptionOr<ByteArray> exception_or_received_byte_array_; base::Optional<base::WaitableEvent> task_run_; }; @@ -141,6 +155,7 @@ Exception Write(const ByteArray& data) override { DCHECK(!write_success_); pending_write_buffer_ = std::make_unique<ByteArray>(data); + pending_write_buffer_pos_ = 0; task_run_.emplace(); task_runner_->PostTask( @@ -152,6 +167,7 @@ write_success_ = false; pending_write_buffer_.reset(); + pending_write_buffer_pos_ = 0; task_run_.reset(); return result; @@ -186,15 +202,23 @@ DCHECK_NE(result, MOJO_RESULT_SHOULD_WAIT); DCHECK(send_stream_.is_valid()); DCHECK(pending_write_buffer_); + DCHECK_LT(pending_write_buffer_pos_, pending_write_buffer_->size()); DCHECK(task_run_); if (result == MOJO_RESULT_OK) { - uint32_t num_bytes = static_cast<uint32_t>(pending_write_buffer_->size()); - // Pass MOJO_WRITE_DATA_FLAG_ALL_OR_NONE to ensure the exact number of - // bytes requested is written. - result = - send_stream_->WriteData(pending_write_buffer_->data(), &num_bytes, - MOJO_WRITE_DATA_FLAG_ALL_OR_NONE); + uint32_t num_bytes = static_cast<uint32_t>(pending_write_buffer_->size() - + pending_write_buffer_pos_); + result = send_stream_->WriteData( + pending_write_buffer_->data() + pending_write_buffer_pos_, &num_bytes, + MOJO_WRITE_DATA_FLAG_NONE); + if (result == MOJO_RESULT_OK) + pending_write_buffer_pos_ += num_bytes; + } + + if (result == MOJO_RESULT_SHOULD_WAIT || + pending_write_buffer_pos_ < pending_write_buffer_->size()) { + send_stream_watcher_.ArmOrNotify(); + return; } write_success_ = result == MOJO_RESULT_OK; @@ -206,6 +230,7 @@ mojo::SimpleWatcher send_stream_watcher_; std::unique_ptr<ByteArray> pending_write_buffer_; + uint32_t pending_write_buffer_pos_ = 0; bool write_success_ = false; base::Optional<base::WaitableEvent> task_run_; };
diff --git a/chrome/services/sharing/nearby/platform_v2/bluetooth_socket_unittest.cc b/chrome/services/sharing/nearby/platform_v2/bluetooth_socket_unittest.cc index 546c0a6d..f1e7d2a 100644 --- a/chrome/services/sharing/nearby/platform_v2/bluetooth_socket_unittest.cc +++ b/chrome/services/sharing/nearby/platform_v2/bluetooth_socket_unittest.cc
@@ -5,9 +5,12 @@ #include "chrome/services/sharing/nearby/platform_v2/bluetooth_socket.h" #include <memory> +#include <string> +#include <vector> #include "base/bind.h" #include "base/run_loop.h" +#include "base/task/thread_pool.h" #include "base/test/bind_test_util.h" #include "base/test/task_environment.h" #include "chrome/services/sharing/nearby/platform_v2/bluetooth_device.h" @@ -48,6 +51,50 @@ base::OnceClosure on_destroy_callback_; }; +// Writes |message| to |receive_stream| in chunks defined by the underlying mojo +// pipe. Must be called on a background thread as this will block until all data +// has been written to the pipe. +void WriteDataBlocking(const std::string& message, + mojo::ScopedDataPipeProducerHandle* receive_stream) { + mojo::ScopedDataPipeProducerHandle& stream = *receive_stream; + uint32_t message_pos = 0; + while (message_pos < message.size()) { + uint32_t written_size = message.size() - message_pos; + MojoResult result = stream->WriteData( + message.data() + message_pos, &written_size, MOJO_WRITE_DATA_FLAG_NONE); + // |result| might be MOJO_RESULT_SHOULD_WAIT in which + // case we need to retry until the reader has emptied + // the mojo pipe enough. + if (result == MOJO_RESULT_OK) + message_pos += written_size; + } + EXPECT_EQ(message.size(), message_pos); +} + +// Tries to read |expected_message| from |send_stream| in chunks defined by the +// underlying mojo pipe. This will read exactly |expected_message.size()| bytes +// from the pipe and compare the bytes to |expected_message|. Must be called on +// a background thread as this will block until all data has been read from the +// stream. +void ReadDataBlocking(const std::string& expected_message, + mojo::ScopedDataPipeConsumerHandle* send_stream) { + mojo::ScopedDataPipeConsumerHandle& stream = *send_stream; + std::vector<char> message(expected_message.size()); + uint32_t message_pos = 0; + while (message_pos < message.size()) { + uint32_t read_size = message.size() - message_pos; + MojoResult result = stream->ReadData(message.data() + message_pos, + &read_size, MOJO_READ_DATA_FLAG_NONE); + // |result| might be MOJO_RESULT_SHOULD_WAIT in which + // case we need to retry until the writer has filled + // the mojo pipe again. + if (result == MOJO_RESULT_OK) + message_pos += read_size; + } + EXPECT_EQ(message.size(), message_pos); + EXPECT_EQ(expected_message, std::string(message.data(), message.size())); +} + } // namespace class BluetoothSocketTest : public testing::Test { @@ -162,6 +209,33 @@ EXPECT_EQ(Exception::kSuccess, input_stream.Close().value); } +TEST_F(BluetoothSocketTest, TestInputStream_MultipleChunks) { + InputStream& input_stream = bluetooth_socket_->GetInputStream(); + + // Expect a total message size of 1MB delivered in chunks because a mojo pipe + // has a maximum buffer size and only accepts a certain amount of data per + // call. The default is 64KB defined in //mojo/core/core.cc + uint32_t message_size = 1024 * 1024; + std::string message(message_size, 'A'); + + // Post to a thead pool because both InputStream::Read() and + // WriteDataBlocking() below are blocking on each other. + base::RunLoop run_loop; + base::ThreadPool::CreateSequencedTaskRunner({})->PostTaskAndReply( + FROM_HERE, base::BindOnce(&WriteDataBlocking, message, &receive_stream_), + run_loop.QuitClosure()); + + // Read from stream and expect to receive 1MB. + ExceptionOr<ByteArray> exception_or_byte_array = + input_stream.Read(message_size); + ASSERT_TRUE(exception_or_byte_array.ok()); + EXPECT_EQ(message, std::string(exception_or_byte_array.result())); + EXPECT_EQ(Exception::kSuccess, input_stream.Close().value); + + // Make sure writer thread is done after we read all the data from it. + run_loop.Run(); +} + TEST_F(BluetoothSocketTest, TestOutputStream) { OutputStream& output_stream = bluetooth_socket_->GetOutputStream(); @@ -182,6 +256,31 @@ EXPECT_EQ(Exception::kSuccess, output_stream.Close().value); } +TEST_F(BluetoothSocketTest, TestOutputStream_MultipleChunks) { + OutputStream& output_stream = bluetooth_socket_->GetOutputStream(); + + // Expect a total message size of 1MB delivered in chunks because a mojo pipe + // has a maximum buffer size and only accepts a certain amount of data per + // call. The default is 64KB defined in //mojo/core/core.cc + uint32_t message_size = 1024 * 1024; + std::string message(message_size, 'A'); + + // Post to a thead pool because both InputStream::Write() and + // ReadDataBlocking() below are blocking on each other. + base::RunLoop run_loop; + base::ThreadPool::CreateSequencedTaskRunner({})->PostTaskAndReply( + FROM_HERE, base::BindOnce(&ReadDataBlocking, message, &send_stream_), + run_loop.QuitClosure()); + + // Write to stream and expect a succcessful transfer. + EXPECT_EQ(Exception::kSuccess, output_stream.Write(ByteArray(message)).value); + EXPECT_EQ(Exception::kSuccess, output_stream.Flush().value); + EXPECT_EQ(Exception::kSuccess, output_stream.Close().value); + + // Make sure reader thread is done after we wrote all the data to it. + run_loop.Run(); +} + } // namespace chrome } // namespace nearby } // namespace location
diff --git a/chrome/test/BUILD.gn b/chrome/test/BUILD.gn index 2d706c7..8e989399 100644 --- a/chrome/test/BUILD.gn +++ b/chrome/test/BUILD.gn
@@ -1405,7 +1405,6 @@ "../browser/ui/views/sharing/shared_clipboard_browsertest.cc", "../browser/ui/views/sharing/sharing_browsertest.cc", "../browser/ui/views/sharing/sharing_browsertest.h", - "../browser/ui/views/tabs/tab_groups_iph_controller_browsertest.cc", "../browser/ui/views/tabs/tab_strip_browsertest.cc", "../browser/ui/views/try_chrome_dialog_win/try_chrome_dialog_browsertest.cc", "../browser/ui/views/web_apps/web_app_frame_toolbar_browsertest.cc", @@ -1614,6 +1613,7 @@ "../browser/policy/suggested_content_policy_browsertest.cc", "../browser/policy/system_features_policy_browsertest.cc", "../browser/renderer_context_menu/quick_answers_menu_observer_browsertest.cc", + "../browser/ui/ash/holding_space/holding_space_client_impl_browsertest.cc", ] } @@ -3335,6 +3335,7 @@ "../browser/media/webrtc/media_stream_device_permission_context_unittest.cc", "../browser/metrics/antivirus_metrics_provider_win_unittest.cc", "../browser/metrics/chrome_browser_main_extra_parts_metrics_unittest.cc", + "../browser/metrics/chrome_metrics_extensions_helper_unittest.cc", "../browser/metrics/chrome_metrics_service_accessor_unittest.cc", "../browser/metrics/chrome_metrics_service_client_unittest.cc", "../browser/metrics/chrome_metrics_services_manager_client_unittest.cc", @@ -3454,6 +3455,7 @@ "../browser/policy/javascript_policy_handler_unittest.cc", "../browser/policy/messaging_layer/encryption/decryption.cc", "../browser/policy/messaging_layer/encryption/decryption.h", + "../browser/policy/messaging_layer/encryption/encryption_module_unittest.cc", "../browser/policy/messaging_layer/encryption/encryption_unittest.cc", "../browser/policy/messaging_layer/encryption/test_encryption_module.cc", "../browser/policy/messaging_layer/encryption/test_encryption_module.h", @@ -3518,6 +3520,7 @@ "../browser/push_messaging/budget_database_unittest.cc", "../browser/push_messaging/push_messaging_app_identifier_unittest.cc", "../browser/push_messaging/push_messaging_notification_manager_unittest.cc", + "../browser/push_messaging/push_messaging_refresher_unittest.cc", "../browser/push_messaging/push_messaging_service_unittest.cc", "../browser/renderer_host/chrome_render_widget_host_view_mac_history_swiper_unit_test.mm", "../browser/resource_coordinator/tab_load_tracker_unittest.cc", @@ -4490,8 +4493,10 @@ "//chrome/browser/resource_coordinator/tab_ranker:tab_features_test_helper", "//chrome/services/sharing:unit_tests", "//chrome/services/sharing/nearby:unit_tests", + "//chrome/services/sharing/nearby/decoder", "//chrome/services/sharing/nearby/decoder:unit_tests", "//chrome/services/sharing/nearby/platform_v2:unit_tests", + "//chrome/services/sharing/public/cpp", "//chrome/services/sharing/public/cpp:unit_tests", "//chrome/services/sharing/webrtc:unit_tests", "//chrome/services/speech:unit_tests", @@ -4676,7 +4681,6 @@ "../browser/ui/app_list/search/arc/arc_app_shortcuts_search_provider_unittest.cc", "../browser/ui/app_list/search/arc/arc_playstore_search_provider_unittest.cc", "../browser/ui/app_list/search/assistant_search_provider_unittest.cc", - "../browser/ui/app_list/search/common/file_icon_util_unittest.cc", "../browser/ui/app_list/search/cros_action_history/cros_action_recorder_tab_tracker_unittest.cc", "../browser/ui/app_list/search/cros_action_history/cros_action_recorder_unittest.cc", "../browser/ui/app_list/search/launcher_search/launcher_search_icon_image_loader_unittest.cc", @@ -5361,7 +5365,6 @@ if (enable_plugins) { sources += [ "../browser/component_updater/component_installers_unittest.cc", - "../browser/metrics/chrome_stability_metrics_provider_unittest.cc", "../browser/metrics/plugin_metrics_provider_unittest.cc", "../browser/plugins/chrome_plugin_service_filter_unittest.cc", "../browser/plugins/flash_download_interception_unittest.cc", @@ -5642,8 +5645,8 @@ "../browser/ui/views/frame/test_with_browser_view.h", "../browser/ui/views/frame/web_contents_close_handler_unittest.cc", "../browser/ui/views/fullscreen_control/fullscreen_control_popup_unittest.cc", - "../browser/ui/views/global_media_controls/media_notification_audio_device_selector_view_unittest.cc", "../browser/ui/views/global_media_controls/media_notification_container_impl_view_unittest.cc", + "../browser/ui/views/global_media_controls/media_notification_device_selector_view_unittest.cc", "../browser/ui/views/global_media_controls/media_notification_list_view_unittest.cc", "../browser/ui/views/global_media_controls/overlay_media_notification_view_unittest.cc", "../browser/ui/views/hover_button_unittest.cc", @@ -5682,7 +5685,6 @@ "../browser/ui/views/tabs/fake_base_tab_strip_controller.cc", "../browser/ui/views/tabs/fake_base_tab_strip_controller.h", "../browser/ui/views/tabs/stacked_tab_strip_layout_unittest.cc", - "../browser/ui/views/tabs/tab_groups_iph_controller_unittest.cc", "../browser/ui/views/tabs/tab_strip_layout_unittest.cc", "../browser/ui/views/tabs/tab_strip_unittest.cc", "../browser/ui/views/tabs/tab_unittest.cc",
diff --git a/chrome/test/android/javatests/src/org/chromium/chrome/test/util/browser/tabmodel/MockTabModel.java b/chrome/test/android/javatests/src/org/chromium/chrome/test/util/browser/tabmodel/MockTabModel.java index 01c3182..4fa03a8 100644 --- a/chrome/test/android/javatests/src/org/chromium/chrome/test/util/browser/tabmodel/MockTabModel.java +++ b/chrome/test/android/javatests/src/org/chromium/chrome/test/util/browser/tabmodel/MockTabModel.java
@@ -11,8 +11,6 @@ import org.chromium.chrome.browser.tab.TabLaunchType; import org.chromium.chrome.browser.tab.TabSelectionType; import org.chromium.chrome.browser.tabmodel.EmptyTabModel; -import org.chromium.chrome.browser.tabmodel.IncognitoTabModel; -import org.chromium.chrome.browser.tabmodel.IncognitoTabModelObserver; import org.chromium.chrome.browser.tabmodel.TabModel; import org.chromium.chrome.browser.tabmodel.TabModelObserver; @@ -21,7 +19,7 @@ /** * Almost empty implementation to mock a TabModel. It only handles tab creation and queries. */ -public class MockTabModel extends EmptyTabModel implements IncognitoTabModel { +public class MockTabModel extends EmptyTabModel { /** * Used to create different kinds of Tabs. If a MockTabModelDelegate is not provided, regular * Tabs are produced. @@ -116,10 +114,4 @@ public void removeObserver(TabModelObserver observer) { mObservers.removeObserver(observer); } - - @Override - public void addIncognitoObserver(IncognitoTabModelObserver observer) {} - - @Override - public void removeIncognitoObserver(IncognitoTabModelObserver observer) {} }
diff --git a/chrome/test/data/chromeos/enterprise/policies b/chrome/test/data/chromeos/enterprise/policies index 7fc9c0b..455a35fe 100644 --- a/chrome/test/data/chromeos/enterprise/policies +++ b/chrome/test/data/chromeos/enterprise/policies
@@ -535,7 +535,7 @@ u'device_recommended_policies': {}, u'device_mandatory_policies': { u'DeviceGuestModeEnabled': False, - u'DeviceUserWhitelist': [ + u'DeviceUserAllowlist': [ u'adm@crosprqa4.com', u'scott@crosprqa4.com', u'bob.exc@crosprqa4.com', @@ -582,7 +582,7 @@ u'test_enterprise_crosqa3_user': { u'device_recommended_policies': {}, u'device_mandatory_policies': { - u'DeviceUserWhitelist': [ + u'DeviceUserAllowlist': [ u'bob.exc@crosprqa1.com', u'*@crosqa3.com', u'*@crosqa2.com', @@ -599,7 +599,7 @@ u'device_recommended_policies': {}, u'device_mandatory_policies': { u'DeviceGuestModeEnabled': False, - u'DeviceUserWhitelist': [ + u'DeviceUserAllowlist': [ u'adm@crosqa4.com', u'scott@crosqa4.com', u'bob.exc@crosqa4.com',
diff --git a/chrome/test/data/webui/BUILD.gn b/chrome/test/data/webui/BUILD.gn index 238e946..568a233 100644 --- a/chrome/test/data/webui/BUILD.gn +++ b/chrome/test/data/webui/BUILD.gn
@@ -244,9 +244,13 @@ data += [ "$root_gen_dir/chrome/test/data/webui/cr_components/chromeos/cellular_setup/base_page_test.m.js", "$root_gen_dir/chrome/test/data/webui/cr_components/chromeos/cellular_setup/button_bar_test.m.js", + "$root_gen_dir/chrome/test/data/webui/cr_components/chromeos/cellular_setup/cellular_setup_test.m.js", + "$root_gen_dir/chrome/test/data/webui/cr_components/chromeos/cellular_setup/esim_flow_ui_test.m.js", "$root_gen_dir/chrome/test/data/webui/cr_components/chromeos/cellular_setup/final_page_test.m.js", - "$root_gen_dir/chrome/test/data/webui/cr_components/chromeos/cellular_setup/sim_detect_page_test.m.js", "$root_gen_dir/chrome/test/data/webui/cr_components/chromeos/cellular_setup/provisioning_page_test.m.js", + "$root_gen_dir/chrome/test/data/webui/cr_components/chromeos/cellular_setup/psim_flow_ui_test.m.js", + "$root_gen_dir/chrome/test/data/webui/cr_components/chromeos/cellular_setup/setup_selection_flow_test.m.js", + "$root_gen_dir/chrome/test/data/webui/cr_components/chromeos/cellular_setup/sim_detect_page_test.m.js", "$root_gen_dir/chrome/test/data/webui/cr_components/chromeos/network/cr_policy_network_behavior_mojo_tests.m.js", "$root_gen_dir/chrome/test/data/webui/cr_components/chromeos/network/cr_policy_network_indicator_mojo_tests.m.js", "$root_gen_dir/chrome/test/data/webui/cr_components/chromeos/network/network_apnlist_test.m.js",
diff --git a/chrome/test/data/webui/cr_components/chromeos/cellular_setup/BUILD.gn b/chrome/test/data/webui/cr_components/chromeos/cellular_setup/BUILD.gn index 876261c..34cae8d7 100644 --- a/chrome/test/data/webui/cr_components/chromeos/cellular_setup/BUILD.gn +++ b/chrome/test/data/webui/cr_components/chromeos/cellular_setup/BUILD.gn
@@ -2,16 +2,20 @@ # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. -import("//ui/webui/resources/tools/js_modulizer.gni") import("//ui/webui/resources/cr_components/chromeos/os_cr_components.gni") +import("//ui/webui/resources/tools/js_modulizer.gni") js_modulizer("modulize") { input_files = [ "base_page_test.js", "button_bar_test.js", + "cellular_setup_test.js", + "esim_flow_ui_test.js", "final_page_test.js", - "sim_detect_page_test.js", "provisioning_page_test.js", + "psim_flow_ui_test.js", + "setup_selection_flow_test.js", + "sim_detect_page_test.js", ] namespace_rewrites = cr_components_chromeos_namespace_rewrites }
diff --git a/chrome/test/data/webui/cr_components/chromeos/cellular_setup/cellular_setup_test.js b/chrome/test/data/webui/cr_components/chromeos/cellular_setup/cellular_setup_test.js new file mode 100644 index 0000000..ec81bc8 --- /dev/null +++ b/chrome/test/data/webui/cr_components/chromeos/cellular_setup/cellular_setup_test.js
@@ -0,0 +1,25 @@ +// Copyright 2020 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +// clang-format off +// #import 'chrome://os-settings/strings.m.js'; +// #import 'chrome://resources/cr_components/chromeos/cellular_setup/cellular_setup.m.js'; + +// #import {flush, Polymer} from 'chrome://resources/polymer/v3_0/polymer/polymer_bundled.min.js'; +// #import {assertTrue} from '../../../chai_assert.js'; +// clang-format on + +suite('CrComponentsCellularSetupTest', function() { + let cellularSetup; + setup(function() { + cellularSetup = document.createElement('cellular-setup'); + document.body.appendChild(cellularSetup); + Polymer.dom.flush(); + }); + + test('Base test', function() { + const ironPage = cellularSetup.$$('iron-pages'); + assertTrue(!!ironPage); + }); +});
diff --git a/chrome/test/data/webui/cr_components/chromeos/cellular_setup/esim_flow_ui_test.js b/chrome/test/data/webui/cr_components/chromeos/cellular_setup/esim_flow_ui_test.js new file mode 100644 index 0000000..2b86518 --- /dev/null +++ b/chrome/test/data/webui/cr_components/chromeos/cellular_setup/esim_flow_ui_test.js
@@ -0,0 +1,25 @@ +// Copyright 2020 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +// clang-format off +// #import 'chrome://os-settings/strings.m.js'; +// #import 'chrome://resources/cr_components/chromeos/cellular_setup/esim_flow_ui.m.js'; + +// #import {flush, Polymer} from 'chrome://resources/polymer/v3_0/polymer/polymer_bundled.min.js'; +// #import {assertTrue} from '../../../chai_assert.js'; +// clang-format on + +suite('CrComponentsEsimFlowUiTest', function() { + let eSimPage; + setup(function() { + eSimPage = document.createElement('esim-flow-ui'); + document.body.appendChild(eSimPage); + Polymer.dom.flush(); + }); + + test('Base test', function() { + const p = eSimPage.$$('p'); + assertTrue(!!p); + }); +});
diff --git a/chrome/test/data/webui/cr_components/chromeos/cellular_setup/psim_flow_ui_test.js b/chrome/test/data/webui/cr_components/chromeos/cellular_setup/psim_flow_ui_test.js new file mode 100644 index 0000000..204035d --- /dev/null +++ b/chrome/test/data/webui/cr_components/chromeos/cellular_setup/psim_flow_ui_test.js
@@ -0,0 +1,25 @@ +// Copyright 2020 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +// clang-format off +// #import 'chrome://os-settings/strings.m.js'; +// #import 'chrome://resources/cr_components/chromeos/cellular_setup/psim_flow_ui.m.js'; + +// #import {flush, Polymer} from 'chrome://resources/polymer/v3_0/polymer/polymer_bundled.min.js'; +// #import {assertTrue} from '../../../chai_assert.js'; +// clang-format on + +suite('CrComponentsPsimFlowUiTest', function() { + let pSimPage; + setup(function() { + pSimPage = document.createElement('psim-flow-ui'); + document.body.appendChild(pSimPage); + Polymer.dom.flush(); + }); + + test('Base test', function() { + const ironPage = pSimPage.$$('iron-pages'); + assertTrue(!!ironPage); + }); +});
diff --git a/chrome/test/data/webui/cr_components/chromeos/cellular_setup/setup_selection_flow_test.js b/chrome/test/data/webui/cr_components/chromeos/cellular_setup/setup_selection_flow_test.js new file mode 100644 index 0000000..b0ef8ee --- /dev/null +++ b/chrome/test/data/webui/cr_components/chromeos/cellular_setup/setup_selection_flow_test.js
@@ -0,0 +1,25 @@ +// Copyright 2020 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +// clang-format off +// #import 'chrome://os-settings/strings.m.js'; +// #import 'chrome://resources/cr_components/chromeos/cellular_setup/setup_selection_flow.m.js'; + +// #import {flush, Polymer} from 'chrome://resources/polymer/v3_0/polymer/polymer_bundled.min.js'; +// #import {assertTrue} from '../../../chai_assert.js'; +// clang-format on + +suite('CrComponentsSetupSelectionFlowTest', function() { + let setupSelectionFlow; + setup(function() { + setupSelectionFlow = document.createElement('setup-selection-flow'); + document.body.appendChild(setupSelectionFlow); + Polymer.dom.flush(); + }); + + test('Base test', function() { + const crRadio = setupSelectionFlow.$$('cr-radio-group'); + assertTrue(!!crRadio); + }); +});
diff --git a/chrome/test/data/webui/cr_components/chromeos/cr_components_chromeos_browsertest.js b/chrome/test/data/webui/cr_components/chromeos/cr_components_chromeos_browsertest.js index 51111ac..a33c6493 100644 --- a/chrome/test/data/webui/cr_components/chromeos/cr_components_chromeos_browsertest.js +++ b/chrome/test/data/webui/cr_components/chromeos/cr_components_chromeos_browsertest.js
@@ -44,8 +44,12 @@ [ ['BasePage', 'cellular_setup/base_page_test.js', []], ['ButtonBar', 'cellular_setup/button_bar_test.js',[]], + ['CellularSetup', 'cellular_setup/cellular_setup_test.js', []], + ['EsimFlowUi', 'cellular_setup/esim_flow_ui_test.js',[]], ['FinalPage', 'cellular_setup/final_page_test.js', []], ['ProvisioningPage', 'cellular_setup/provisioning_page_test.js',[]], + ['PsimFlowUi', 'cellular_setup/psim_flow_ui_test.js',[]], + ['SetupSelectionFlow', 'cellular_setup/setup_selection_flow_test.js',[]], ['SimDetectPage', 'cellular_setup/sim_detect_page_test.js', []], ].forEach(test => registerTest('CellularSetup', 'cellular-setup', ...test)); // clang-format on
diff --git a/chrome/test/data/webui/cr_components/chromeos/cr_components_chromeos_v3_browsertest.js b/chrome/test/data/webui/cr_components/chromeos/cr_components_chromeos_v3_browsertest.js index 7874892a..71cd75a5 100644 --- a/chrome/test/data/webui/cr_components/chromeos/cr_components_chromeos_v3_browsertest.js +++ b/chrome/test/data/webui/cr_components/chromeos/cr_components_chromeos_v3_browsertest.js
@@ -24,8 +24,12 @@ [['BasePage', 'cellular_setup/base_page_test.m.js'], ['ButtonBar', 'cellular_setup/button_bar_test.m.js'], + ['CellularSetup', 'cellular_setup/cellular_setup_test.m.js'], + ['EsimFlowUi', 'cellular_setup/esim_flow_ui_test.m.js'], ['FinalPage', 'cellular_setup/final_page_test.m.js'], ['ProvisioningPage', 'cellular_setup/provisioning_page_test.m.js'], + ['PsimFlowUi', 'cellular_setup/psim_flow_ui_test.m.js'], + ['SetupSelectionFlow', 'cellular_setup/setup_selection_flow_test.m.js'], ['SimDetectPage', 'cellular_setup/sim_detect_page_test.m.js'], ].forEach(test => registerTest('CellularSetup', ...test)); // clang-format on
diff --git a/chrome/test/data/webui/new_tab_page/modules/module_registry_test.js b/chrome/test/data/webui/new_tab_page/modules/module_registry_test.js index 0f23027d..5c4a8163 100644 --- a/chrome/test/data/webui/new_tab_page/modules/module_registry_test.js +++ b/chrome/test/data/webui/new_tab_page/modules/module_registry_test.js
@@ -12,12 +12,12 @@ const bazModule = document.createElement('div'); const bazModuleResolver = new PromiseResolver(); ModuleRegistry.getInstance().registerModules([ - new ModuleDescriptor('foo', 'Foo', () => Promise.resolve({ + new ModuleDescriptor('foo', 'Foo', 100, () => Promise.resolve({ element: fooModule, title: 'Foo Title', })), - new ModuleDescriptor('bar', 'Bar', () => null), - new ModuleDescriptor('baz', 'Baz', () => bazModuleResolver.promise), + new ModuleDescriptor('bar', 'Bar', 200, () => null), + new ModuleDescriptor('baz', 'Baz', 300, () => bazModuleResolver.promise), ]); // Act. @@ -33,10 +33,12 @@ assertEquals(2, modules.length); assertEquals('foo', modules[0].id); assertEquals('Foo', modules[0].name); + assertEquals(100, modules[0].heightPx); assertEquals('Foo Title', modules[0].title); assertDeepEquals(fooModule, modules[0].element); assertEquals('baz', modules[1].id); assertEquals('Baz', modules[1].name); + assertEquals(300, modules[1].heightPx); assertEquals('Baz Title', modules[1].title); assertDeepEquals(bazModule, modules[1].element); });
diff --git a/chrome/test/data/webui/new_tab_page/module_wrapper_test.js b/chrome/test/data/webui/new_tab_page/modules/module_wrapper_test.js similarity index 86% rename from chrome/test/data/webui/new_tab_page/module_wrapper_test.js rename to chrome/test/data/webui/new_tab_page/modules/module_wrapper_test.js index 12e28e1..7c5d217 100644 --- a/chrome/test/data/webui/new_tab_page/module_wrapper_test.js +++ b/chrome/test/data/webui/new_tab_page/modules/module_wrapper_test.js
@@ -4,7 +4,7 @@ import {$$} from 'chrome://new-tab-page/new_tab_page.js'; -suite('NewTabPageModuleWrapperTest', () => { +suite('NewTabPageModulesModuleWrapperTest', () => { /** @type {!ModuleWrapperElement} */ let moduleWrapper; @@ -22,6 +22,7 @@ moduleWrapper.descriptor = { id: 'foo', name: 'Foo', + heightPx: 100, title: 'Foo Title', element: moduleElement, }; @@ -29,6 +30,7 @@ // Assert. assertEquals('Foo Title', moduleWrapper.$.title.textContent); assertEquals(' • Foo', moduleWrapper.$.name.textContent); + assertEquals(100, $$(moduleWrapper, '#moduleElement').offsetHeight); assertDeepEquals( moduleElement, $$(moduleWrapper, '#moduleElement').children[0]); });
diff --git a/chrome/test/data/webui/new_tab_page/new_tab_page_browsertest.js b/chrome/test/data/webui/new_tab_page/new_tab_page_browsertest.js index 807cb8e..6d75193 100644 --- a/chrome/test/data/webui/new_tab_page/new_tab_page_browsertest.js +++ b/chrome/test/data/webui/new_tab_page/new_tab_page_browsertest.js
@@ -192,14 +192,14 @@ }); // eslint-disable-next-line no-var -var NewTabPageModuleWrapperTest = class extends NewTabPageBrowserTest { +var NewTabPageModulesModuleWrapperTest = class extends NewTabPageBrowserTest { /** @override */ get browsePreload() { - return 'chrome://new-tab-page/test_loader.html?module=new_tab_page/module_wrapper_test.js'; + return 'chrome://new-tab-page/test_loader.html?module=new_tab_page/modules/module_wrapper_test.js'; } }; -TEST_F('NewTabPageModuleWrapperTest', 'All', function() { +TEST_F('NewTabPageModulesModuleWrapperTest', 'All', function() { mocha.run(); });
diff --git a/chrome/test/data/webui/print_preview/destination_store_test.js b/chrome/test/data/webui/print_preview/destination_store_test.js index b008a517..9f2ff61 100644 --- a/chrome/test/data/webui/print_preview/destination_store_test.js +++ b/chrome/test/data/webui/print_preview/destination_store_test.js
@@ -463,7 +463,7 @@ .then(function(args) { assertEquals( Destination.GooglePromotedId.SAVE_AS_PDF, args.destinationId); - assertEquals(PrinterType.LOCAL_PRINTER, args.printerType); + assertEquals(PrinterType.PDF_PRINTER, args.printerType); assertEquals( Destination.GooglePromotedId.SAVE_AS_PDF, destinationStore.selectedDestination.id);
diff --git a/chrome/test/data/webui/settings/chromeos/ambient_mode_page_test.js b/chrome/test/data/webui/settings/chromeos/ambient_mode_page_test.js index 1d63e60a..a34ab08a 100644 --- a/chrome/test/data/webui/settings/chromeos/ambient_mode_page_test.js +++ b/chrome/test/data/webui/settings/chromeos/ambient_mode_page_test.js
@@ -5,10 +5,12 @@ // clang-format off // #import 'chrome://os-settings/chromeos/os_settings.js'; -// #import {AmbientModeTopicSource, AmbientModeTemperatureUnit, AmbientModeBrowserProxyImpl, CrSettingsPrefs, Router} from 'chrome://os-settings/chromeos/os_settings.js'; +// #import {AmbientModeTopicSource, AmbientModeTemperatureUnit, AmbientModeBrowserProxyImpl, CrSettingsPrefs, routes, Router} from 'chrome://os-settings/chromeos/os_settings.js'; // #import {TestBrowserProxy} from '../../test_browser_proxy.m.js'; // #import {assertEquals, assertFalse, assertTrue} from '../../chai_assert.js'; // #import {flush} from 'chrome://resources/polymer/v3_0/polymer/polymer_bundled.min.js'; +// #import {getDeepActiveElement} from 'chrome://resources/js/util.m.js'; +// #import {waitAfterNextRender} from 'chrome://test/test_util.m.js'; // clang-format on /** @@ -92,6 +94,7 @@ teardown(function() { ambientModePage.remove(); ambientModePhotosPage.remove(); + settings.Router.getInstance().resetRouteForTesting(); }); test('toggleAmbientMode', function() { @@ -156,6 +159,23 @@ assertEquals(2, topicSourceItems.length); }); + test('Deep link to topic sources', async () => { + loadTimeData.overrideValues({isDeepLinkingEnabled: true}); + assertTrue(loadTimeData.getBoolean('isDeepLinkingEnabled')); + + const params = new URLSearchParams; + params.append('settingId', '502'); + settings.Router.getInstance().navigateTo( + settings.routes.AMBIENT_MODE, params); + + const deepLinkElement = + ambientModePage.$$('topic-source-list').$$('topic-source-item'); + await test_util.waitAfterNextRender(deepLinkElement); + assertEquals( + deepLinkElement, getDeepActiveElement(), + 'Topic sources row should be focused for settingId=502.'); + }); + test('hasAlbums', function() { ambientModePhotosPage.albums_ = [ {albumId: 'id0', checked: true, title: 'album0'},
diff --git a/chrome/test/data/webui/settings/chromeos/google_assistant_page_test.js b/chrome/test/data/webui/settings/chromeos/google_assistant_page_test.js index f453db6..2462ab4 100644 --- a/chrome/test/data/webui/settings/chromeos/google_assistant_page_test.js +++ b/chrome/test/data/webui/settings/chromeos/google_assistant_page_test.js
@@ -241,6 +241,29 @@ assertTrue(!!button); }); + test('Deep link to retrain voice model', async () => { + loadTimeData.overrideValues({isDeepLinkingEnabled: true}); + assertTrue(loadTimeData.getBoolean('isDeepLinkingEnabled')); + + page.setPrefValue('settings.voice_interaction.enabled', true); + page.setPrefValue('settings.voice_interaction.hotword.enabled', true); + page.setPrefValue( + 'settings.voice_interaction.activity_control.consent_status', + ConsentStatus.kActivityControlAccepted); + Polymer.dom.flush(); + + const params = new URLSearchParams; + params.append('settingId', '607'); + settings.Router.getInstance().navigateTo( + settings.routes.GOOGLE_ASSISTANT, params); + + const deepLinkElement = page.$$('#retrain-voice-model').$$('cr-button'); + await test_util.waitAfterNextRender(deepLinkElement); + assertEquals( + deepLinkElement, getDeepActiveElement(), + 'Retrain model button should be focused for settingId=607.'); + }); + test('toggleAssistantNotification', function() { let button = page.$$('#google-assistant-notification-enable'); assertFalse(!!button);
diff --git a/chrome/test/data/webui/settings/chromeos/os_languages_page_v2_tests.js b/chrome/test/data/webui/settings/chromeos/os_languages_page_v2_tests.js index 765c7f48..67a81e9 100644 --- a/chrome/test/data/webui/settings/chromeos/os_languages_page_v2_tests.js +++ b/chrome/test/data/webui/settings/chromeos/os_languages_page_v2_tests.js
@@ -212,6 +212,17 @@ }); }); + suite('opens dialog', () => { + test('when clicking changeSystemLanguage', () => { + assertFalse( + !!languagesPage.$$('os-settings-change-device-language-dialog')); + languagesPage.$$('#changeSystemLanguage').click(); + Polymer.dom.flush(); + assertTrue( + !!languagesPage.$$('os-settings-change-device-language-dialog')); + }); + }); + suite('records metrics', () => { test('when adding languages', async () => { languagesPage.$$('#addLanguages').click();
diff --git a/chrome/test/data/webui/settings/chromeos/os_search_page_test.js b/chrome/test/data/webui/settings/chromeos/os_search_page_test.js index f2fa3a1d..cddbdb3 100644 --- a/chrome/test/data/webui/settings/chromeos/os_search_page_test.js +++ b/chrome/test/data/webui/settings/chromeos/os_search_page_test.js
@@ -43,6 +43,7 @@ teardown(function() { page.remove(); + settings.Router.getInstance().resetRouteForTesting(); }); // Tests that the page is querying and displaying search engine info on @@ -118,5 +119,21 @@ assertFalse(!!page.$$('extension-controlled-indicator')); assertTrue(!!page.$$('cr-policy-pref-indicator')); }); + + test('Deep link to preferred search engine', async () => { + loadTimeData.overrideValues({isDeepLinkingEnabled: true}); + assertTrue(loadTimeData.getBoolean('isDeepLinkingEnabled')); + + const params = new URLSearchParams; + params.append('settingId', '600'); + settings.Router.getInstance().navigateTo( + settings.routes.OS_SEARCH, params); + + const deepLinkElement = page.$$('select'); + await test_util.waitAfterNextRender(deepLinkElement); + assertEquals( + deepLinkElement, getDeepActiveElement(), + 'Preferred search dropdown should be focused for settingId=600.'); + }); }); });
diff --git a/chrome/test/data/webui/settings/chromeos/os_settings_browsertest.js b/chrome/test/data/webui/settings/chromeos/os_settings_browsertest.js index e014015..726e2e6 100644 --- a/chrome/test/data/webui/settings/chromeos/os_settings_browsertest.js +++ b/chrome/test/data/webui/settings/chromeos/os_settings_browsertest.js
@@ -235,11 +235,16 @@ get extraLibraries() { return super.extraLibraries.concat([ BROWSER_SETTINGS_PATH + '../test_browser_proxy.js', + BROWSER_SETTINGS_PATH + '../test_util.js', 'ambient_mode_page_test.js', ]); } }; +TEST_F('OSSettingsAmbientModePageTest', 'AllJsTests', () => { + mocha.run(); +}); + // Tests for ambient mode photos page. // eslint-disable-next-line no-var var OSSettingsAmbientModePhotosPageTest = class extends OSSettingsBrowserTest { @@ -703,6 +708,7 @@ return super.extraLibraries.concat([ '//ui/webui/resources/js/promise_resolver.js', BROWSER_SETTINGS_PATH + '../test_browser_proxy.js', + BROWSER_SETTINGS_PATH + '../test_util.js', 'google_assistant_page_test.js', ]); } @@ -1375,6 +1381,7 @@ return super.extraLibraries.concat([ '//ui/webui/resources/js/promise_resolver.js', BROWSER_SETTINGS_PATH + '../test_browser_proxy.js', + BROWSER_SETTINGS_PATH + '../test_util.js', BROWSER_SETTINGS_PATH + 'chromeos/test_wallpaper_browser_proxy.js', 'personalization_page_test.js', ]); @@ -1635,6 +1642,7 @@ get extraLibraries() { return super.extraLibraries.concat([ BROWSER_SETTINGS_PATH + '../test_browser_proxy.js', + BROWSER_SETTINGS_PATH + '../test_util.js', BROWSER_SETTINGS_PATH + 'test_search_engines_browser_proxy.js', 'os_search_page_test.js', ]);
diff --git a/chrome/test/data/webui/settings/chromeos/personalization_page_test.js b/chrome/test/data/webui/settings/chromeos/personalization_page_test.js index 9193e34..c6e06b5 100644 --- a/chrome/test/data/webui/settings/chromeos/personalization_page_test.js +++ b/chrome/test/data/webui/settings/chromeos/personalization_page_test.js
@@ -9,6 +9,8 @@ // #import {assertEquals, assertFalse, assertTrue} from '../../chai_assert.js'; // #import {flush} from 'chrome://resources/polymer/v3_0/polymer/polymer_bundled.min.js'; // #import {TestWallpaperBrowserProxy} from './test_wallpaper_browser_proxy.m.js'; +// #import {getDeepActiveElement} from 'chrome://resources/js/util.m.js'; +// #import {waitAfterNextRender} from 'chrome://test/test_util.m.js'; // clang-format on let personalizationPage = null; @@ -55,6 +57,7 @@ teardown(function() { personalizationPage.remove(); + settings.Router.getInstance().resetRouteForTesting(); }); test('wallpaperManager', async () => { @@ -87,6 +90,22 @@ assertTrue(personalizationPage.$$('#wallpaperButton').disabled); }); + test('Deep link to open wallpaper button', async () => { + loadTimeData.overrideValues({isDeepLinkingEnabled: true}); + assertTrue(loadTimeData.getBoolean('isDeepLinkingEnabled')); + + const params = new URLSearchParams; + params.append('settingId', '500'); + settings.Router.getInstance().navigateTo( + settings.routes.PERSONALIZATION, params); + + const deepLinkElement = personalizationPage.$.wallpaperButton.$$('#icon'); + await test_util.waitAfterNextRender(deepLinkElement); + assertEquals( + deepLinkElement, getDeepActiveElement(), + 'Wallpaper button should be focused for settingId=500.'); + }); + test('changePicture', function() { const row = personalizationPage.$.changePictureRow; assertTrue(!!row); @@ -96,6 +115,28 @@ settings.Router.getInstance().getCurrentRoute()); }); + test('Deep link to change account picture', async () => { + loadTimeData.overrideValues({isDeepLinkingEnabled: true}); + assertTrue(loadTimeData.getBoolean('isDeepLinkingEnabled')); + + const params = new URLSearchParams; + params.append('settingId', '503'); + settings.Router.getInstance().navigateTo( + settings.routes.CHANGE_PICTURE, params); + + await test_util.waitAfterNextRender(personalizationPage); + + const changePicturePage = personalizationPage.$$('settings-change-picture'); + assertTrue(!!changePicturePage); + const deepLinkElement = changePicturePage.$$('#pictureList') + .$$('#selector') + .$$('[class="iron-selected"]'); + await test_util.waitAfterNextRender(deepLinkElement); + assertEquals( + deepLinkElement, getDeepActiveElement(), + 'Account picture elem should be focused for settingId=503.'); + }); + test('ambientMode', function() { const isGuest = loadTimeData.getBoolean('isGuest'); const isAmbientModeEnabled = loadTimeData.getBoolean('isAmbientModeEnabled');
diff --git a/chrome/updater/device_management/dm_storage_win.cc b/chrome/updater/device_management/dm_storage_win.cc index d766076..dc99c16 100644 --- a/chrome/updater/device_management/dm_storage_win.cc +++ b/chrome/updater/device_management/dm_storage_win.cc
@@ -25,7 +25,7 @@ // Registry for DM token. constexpr base::char16 kRegKeyCompanyEnrollment[] = - COMPANY_POLICIES_KEY L"Enrollment\\"; + COMPANY_KEY L"Enrollment\\"; constexpr base::char16 kRegValueDmToken[] = L"dmtoken"; class TokenService : public TokenServiceInterface {
diff --git a/chromecast/BUILD.gn b/chromecast/BUILD.gn index 922ba54..be67795 100644 --- a/chromecast/BUILD.gn +++ b/chromecast/BUILD.gn
@@ -13,6 +13,10 @@ import("//ui/ozone/ozone.gni") import("//v8/gni/v8.gni") +if (chromecast_branding != "public") { + import("//chromecast/internal/chromecast_internal.gni") +} + if (is_android) { import("//build/config/android/rules.gni") } @@ -411,10 +415,7 @@ test_groups = [ ":cast_tests" ] if (chromecast_branding != "public") { - test_groups += [ - "//chromecast/internal:internal_cast_tests", - "//chromecast/internal/iot_services:iot_tests", - ] + test_groups += internal_cast_test_groups } }
diff --git a/chromecast/browser/webui/cast_webui.cc b/chromecast/browser/webui/cast_webui.cc index c1b1cb0..8437e2e 100644 --- a/chromecast/browser/webui/cast_webui.cc +++ b/chromecast/browser/webui/cast_webui.cc
@@ -12,6 +12,7 @@ #include "content/public/browser/url_data_source.h" #include "content/public/browser/web_contents.h" #include "content/public/browser/web_ui.h" +#include "content/public/common/bindings_policy.h" namespace chromecast { @@ -24,6 +25,8 @@ DCHECK(web_contents_); DCHECK(browser_context_); weak_this_ = weak_factory_.GetWeakPtr(); + webui->SetBindings(content::BINDINGS_POLICY_MOJO_WEB_UI | + content::BINDINGS_POLICY_WEB_UI); auto cast_resources = std::make_unique<CastResourceDataSource>(host, true /* for_webui */); client->CreateController(host, web_ui_.BindNewPipeAndPassRemote(),
diff --git a/chromecast/browser/webui/cast_webui_message_handler.cc b/chromecast/browser/webui/cast_webui_message_handler.cc index 94688628..058dd69 100644 --- a/chromecast/browser/webui/cast_webui_message_handler.cc +++ b/chromecast/browser/webui/cast_webui_message_handler.cc
@@ -12,12 +12,7 @@ CastWebUIMessageHandler::~CastWebUIMessageHandler() = default; -void CastWebUIMessageHandler::RegisterMessages() { - // This must be called here, since web_ui() is set just before - // RegisterMessages() is called. AllowJavascript() will DCHECK() if web_ui() - // is not valid. - AllowJavascript(); -} +void CastWebUIMessageHandler::RegisterMessages() {} void CastWebUIMessageHandler::OnJavascriptDisallowed() { if (javascript_called_) {
diff --git a/chromecast/crash/BUILD.gn b/chromecast/crash/BUILD.gn index 25283aed..d5fee555 100644 --- a/chromecast/crash/BUILD.gn +++ b/chromecast/crash/BUILD.gn
@@ -5,6 +5,17 @@ import("//chromecast/chromecast.gni") import("//testing/test.gni") +cast_source_set("build_info") { + sources = [ + "build_info.cc", + "build_info.h", + ] + + deps = [ + "//chromecast/base:cast_version", + ] +} + cast_source_set("crash_storage") { sources = [ "cast_crash_keys.cc", @@ -72,6 +83,7 @@ ] deps += [ + ":build_info", "//chromecast/base", "//chromecast/base:cast_sys_info_util", "//chromecast/base:cast_version", @@ -127,6 +139,7 @@ ] } else if (is_linux || is_chromeos) { sources = [ + "build_info_unittest.cc", "cast_crashdump_uploader_unittest.cc", "linux/dummy_minidump_generator_unittest.cc", "linux/dump_info_unittest.cc", @@ -136,11 +149,13 @@ ] deps = [ + ":build_info", ":crash", ":test_support", "//base", "//base/test:run_all_unittests", "//base/test:test_support", + "//chromecast/base:cast_version", "//chromecast/base:dummy_cast_sys_info", "//chromecast/base:test_support", "//components/metrics",
diff --git a/chromecast/crash/build_info.cc b/chromecast/crash/build_info.cc new file mode 100644 index 0000000..89e2f37 --- /dev/null +++ b/chromecast/crash/build_info.cc
@@ -0,0 +1,49 @@ +// Copyright 2020 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "chromecast/crash/build_info.h" + +#include <string> + +#include "chromecast/base/version.h" + +namespace chromecast { +namespace { + +constexpr char kEngVariant[] = "eng"; +constexpr char kUserVariant[] = "user"; + +} // namespace + +const std::string VersionToCrashString(const std::string& cast_build_revision) { + // Incremental number for eng+user builds is too long for Crash server + // so cap it to "eng" or "user". + for (std::string infix : {kEngVariant, kUserVariant}) { + size_t index = cast_build_revision.find(infix); + if (index != std::string::npos) { + return cast_build_revision.substr( + 0, index + infix.size()); // Truncate after ".eng" / ".user". + } + } + return cast_build_revision; +} + +const std::string GetVersionString() { + return VersionToCrashString(CAST_BUILD_REVISION); +} + +const std::string VersionToVariant(const std::string& cast_build_revision) { + for (std::string variant : {kEngVariant, kUserVariant}) { + if (cast_build_revision.find(variant) != std::string::npos) { + return variant; + } + } + return CAST_IS_DEBUG_BUILD() ? kEngVariant : kUserVariant; +} + +const std::string GetBuildVariant() { + return VersionToVariant(CAST_BUILD_REVISION); +} + +} // namespace chromecast
diff --git a/chromecast/crash/build_info.h b/chromecast/crash/build_info.h new file mode 100644 index 0000000..efa2964 --- /dev/null +++ b/chromecast/crash/build_info.h
@@ -0,0 +1,25 @@ +// Copyright 2020 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef CHROMECAST_CRASH_BUILD_INFO_H_ +#define CHROMECAST_CRASH_BUILD_INFO_H_ + +#include <string> + +namespace chromecast { + +// Returns a short, readable version string. +const std::string GetVersionString(); + +// Return whether build is "user", or "eng" +const std::string GetBuildVariant(); + +// Used by tests. +const std::string VersionToCrashString(const std::string& cast_build_revision); +const std::string VersionToVariant(const std::string& cast_build_revision); + + +} // namespace chromecast + +#endif // CHROMECAST_CRASH_BUILD_INFO_H_
diff --git a/chromecast/crash/build_info_unittest.cc b/chromecast/crash/build_info_unittest.cc new file mode 100644 index 0000000..26341875 --- /dev/null +++ b/chromecast/crash/build_info_unittest.cc
@@ -0,0 +1,42 @@ +// Copyright 2020 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "chromecast/crash/build_info.h" + +#include <string> + +#include "chromecast/base/version.h" +#include "testing/gtest/include/gtest/gtest.h" + +namespace chromecast { + +constexpr char kIncrementalUserBuild[] = "1.51.user.ldap.20200813.124713"; +constexpr char kIncrementalEngBuild[] = "1.51.eng.ldap.20200813.124713"; +constexpr char kReleaseBuild[] = "1.51.224083"; + +TEST(VersionStringTest, VersionStringIsNonEmpty) { + ASSERT_FALSE(GetVersionString().empty()); +} + +TEST(VersionStringTest, ReleaseVersionUnchanged) { + ASSERT_EQ(VersionToCrashString(kReleaseBuild), kReleaseBuild); +} + +TEST(VersionStringTest, IncrementalVersionTruncated) { + ASSERT_EQ(VersionToCrashString(kIncrementalEngBuild), "1.51.eng"); + ASSERT_EQ(VersionToCrashString(kIncrementalUserBuild), "1.51.user"); +} + +TEST(GetBuildVariantTest, InfixPresent) { + ASSERT_EQ(VersionToVariant(kIncrementalEngBuild), "eng"); + ASSERT_EQ(VersionToVariant(kIncrementalUserBuild), "user"); +} + +TEST(GetBuildVariantTest, InfixAbsent) { + // If infix is absent, will use debug macro to determine variant. + bool is_eng = CAST_IS_DEBUG_BUILD(); + ASSERT_EQ(VersionToVariant(kReleaseBuild) == "eng", is_eng); +} + +} // namespace chromecast
diff --git a/chromecast/crash/linux/minidump_uploader.cc b/chromecast/crash/linux/minidump_uploader.cc index e3f3078..9bb3ba7 100644 --- a/chromecast/crash/linux/minidump_uploader.cc +++ b/chromecast/crash/linux/minidump_uploader.cc
@@ -24,6 +24,7 @@ #include "chromecast/base/cast_paths.h" #include "chromecast/base/pref_names.h" #include "chromecast/base/version.h" +#include "chromecast/crash/build_info.h" #include "chromecast/crash/cast_crashdump_uploader.h" #include "chromecast/crash/linux/dump_info.h" #include "chromecast/public/cast_sys_info.h" @@ -196,14 +197,11 @@ std::stringstream uptime_stream; uptime_stream << dump.params().process_uptime; - const std::string version(dump.params().cast_release_version + "." + - dump.params().cast_build_number + - dump.params().suffix); // attempt to upload LOG(INFO) << "Uploading crash to " << upload_location_; CastCrashdumpData crashdump_data; crashdump_data.product = kProductName; - crashdump_data.version = version; + crashdump_data.version = GetVersionString(); crashdump_data.guid = client_id; crashdump_data.ptime = uptime_stream.str(); crashdump_data.comments = comment.str(); @@ -226,10 +224,12 @@ g.SetParameter("ro.product.release.track", release_channel_); g.SetParameter("ro.hardware", board_name_); g.SetParameter("ro.product.name", product_name_); + g.SetParameter("device", product_name_); g.SetParameter("ro.product.model", device_model_); g.SetParameter("ro.product.manufacturer", manufacturer_); g.SetParameter("ro.system.version", system_version_); g.SetParameter("release.virtual-channel", virtual_channel); + g.SetParameter("ro.build.type", GetBuildVariant()); if (pref_service->HasPrefPath(kLatestUiVersion)) { g.SetParameter("ui.version", pref_service->GetString(kLatestUiVersion));
diff --git a/chromeos/BUILD.gn b/chromeos/BUILD.gn index 4f2a4d4..d3400f3 100644 --- a/chromeos/BUILD.gn +++ b/chromeos/BUILD.gn
@@ -176,6 +176,7 @@ "//chromeos/login/login_state:unit_tests", "//chromeos/login/session:unit_tests", "//chromeos/memory:unit_tests", + "//chromeos/memory/userspace_swap:unit_tests", "//chromeos/network:test_support", "//chromeos/network:unit_tests", "//chromeos/services:unit_tests",
diff --git a/chromeos/components/phonehub/BUILD.gn b/chromeos/components/phonehub/BUILD.gn index 8e151cf..91bf319 100644 --- a/chromeos/components/phonehub/BUILD.gn +++ b/chromeos/components/phonehub/BUILD.gn
@@ -24,8 +24,9 @@ "notification_access_manager_impl.h", "notification_access_setup_operation.cc", "notification_access_setup_operation.h", - "phone_hub_manager.cc", "phone_hub_manager.h", + "phone_hub_manager_impl.cc", + "phone_hub_manager_impl.h", "phone_model.cc", "phone_model.h", "phone_status_model.cc", @@ -60,6 +61,8 @@ "fake_feature_status_provider.h", "fake_notification_access_manager.cc", "fake_notification_access_manager.h", + "fake_phone_hub_manager.cc", + "fake_phone_hub_manager.h", "fake_tether_controller.cc", "fake_tether_controller.h", "phone_model_test_util.cc",
diff --git a/chromeos/components/phonehub/fake_phone_hub_manager.cc b/chromeos/components/phonehub/fake_phone_hub_manager.cc new file mode 100644 index 0000000..219d344 --- /dev/null +++ b/chromeos/components/phonehub/fake_phone_hub_manager.cc
@@ -0,0 +1,42 @@ +// Copyright 2020 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "chromeos/components/phonehub/fake_phone_hub_manager.h" + +#include "chromeos/components/phonehub/fake_feature_status_provider.h" +#include "chromeos/components/phonehub/fake_notification_access_manager.h" +#include "chromeos/components/phonehub/fake_tether_controller.h" +#include "chromeos/components/phonehub/mutable_phone_model.h" + +namespace chromeos { +namespace phonehub { + +FakePhoneHubManager::FakePhoneHubManager() + : fake_feature_status_provider_( + std::make_unique<FakeFeatureStatusProvider>()), + fake_notification_access_manager_( + std::make_unique<FakeNotificationAccessManager>()), + mutable_phone_model_(std::make_unique<MutablePhoneModel>()), + fake_tether_controller_(std::make_unique<FakeTetherController>()) {} + +FakePhoneHubManager::~FakePhoneHubManager() = default; + +FeatureStatusProvider* FakePhoneHubManager::GetFeatureStatusProvider() { + return fake_feature_status_provider_.get(); +} + +NotificationAccessManager* FakePhoneHubManager::GetNotificationAccessManager() { + return fake_notification_access_manager_.get(); +} + +PhoneModel* FakePhoneHubManager::GetPhoneModel() { + return mutable_phone_model_.get(); +} + +TetherController* FakePhoneHubManager::GetTetherController() { + return fake_tether_controller_.get(); +} + +} // namespace phonehub +} // namespace chromeos
diff --git a/chromeos/components/phonehub/fake_phone_hub_manager.h b/chromeos/components/phonehub/fake_phone_hub_manager.h new file mode 100644 index 0000000..23b5ba93 --- /dev/null +++ b/chromeos/components/phonehub/fake_phone_hub_manager.h
@@ -0,0 +1,60 @@ +// Copyright 2020 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef CHROMEOS_COMPONENTS_PHONEHUB_FAKE_PHONE_HUB_MANAGER_H_ +#define CHROMEOS_COMPONENTS_PHONEHUB_FAKE_PHONE_HUB_MANAGER_H_ + +#include <memory> + +#include "chromeos/components/phonehub/phone_hub_manager.h" + +namespace chromeos { + +namespace phonehub { + +class FakeFeatureStatusProvider; +class FakeNotificationAccessManager; +class MutablePhoneModel; +class FakeTetherController; + +// This class initializes fake versions of the core business logic of Phone Hub. +class FakePhoneHubManager : public PhoneHubManager { + public: + FakePhoneHubManager(); + ~FakePhoneHubManager() override; + + FakeFeatureStatusProvider* fake_feature_status_provider() { + return fake_feature_status_provider_.get(); + } + + FakeNotificationAccessManager* fake_notification_access_manager() { + return fake_notification_access_manager_.get(); + } + + MutablePhoneModel* mutable_phone_model() { + return mutable_phone_model_.get(); + } + + FakeTetherController* fake_tether_controller() { + return fake_tether_controller_.get(); + } + + private: + // PhoneHubManager: + FeatureStatusProvider* GetFeatureStatusProvider() override; + NotificationAccessManager* GetNotificationAccessManager() override; + PhoneModel* GetPhoneModel() override; + TetherController* GetTetherController() override; + + std::unique_ptr<FakeFeatureStatusProvider> fake_feature_status_provider_; + std::unique_ptr<FakeNotificationAccessManager> + fake_notification_access_manager_; + std::unique_ptr<MutablePhoneModel> mutable_phone_model_; + std::unique_ptr<FakeTetherController> fake_tether_controller_; +}; + +} // namespace phonehub +} // namespace chromeos + +#endif // CHROMEOS_COMPONENTS_PHONEHUB_FAKE_PHONE_HUB_MANAGER_H_
diff --git a/chromeos/components/phonehub/phone_hub_manager.h b/chromeos/components/phonehub/phone_hub_manager.h index b6bb2d8..ff3994d 100644 --- a/chromeos/components/phonehub/phone_hub_manager.h +++ b/chromeos/components/phonehub/phone_hub_manager.h
@@ -5,23 +5,7 @@ #ifndef CHROMEOS_COMPONENTS_PHONEHUB_PHONE_HUB_MANAGER_H_ #define CHROMEOS_COMPONENTS_PHONEHUB_PHONE_HUB_MANAGER_H_ -#include <memory> - -#include "base/callback_forward.h" -#include "components/keyed_service/core/keyed_service.h" - -class PrefService; - namespace chromeos { - -namespace device_sync { -class DeviceSyncClient; -} // namespace device_sync - -namespace multidevice_setup { -class MultiDeviceSetupClient; -} // namespace multidevice_setup - namespace phonehub { class FeatureStatusProvider; @@ -29,40 +13,25 @@ class PhoneModel; class TetherController; -// Implements the core logic of the Phone Hub feature and exposes interfaces via -// its public API. Implemented as a KeyedService which is keyed by the primary -// Profile; since there is only one primary Profile, the class is intended to be -// a singleton. -class PhoneHubManager : public KeyedService { +// Responsible for the core logic of the Phone Hub feature and exposes +// interfaces via its public API. This class is intended to be a singleton. +class PhoneHubManager { public: - PhoneHubManager( - PrefService* pref_service, - device_sync::DeviceSyncClient* device_sync_client, - multidevice_setup::MultiDeviceSetupClient* multidevice_setup_client); + virtual ~PhoneHubManager() = default; + PhoneHubManager(const PhoneHubManager&) = delete; PhoneHubManager& operator=(const PhoneHubManager&) = delete; - ~PhoneHubManager() override; - FeatureStatusProvider* feature_status_provider() { - return feature_status_provider_.get(); - } + virtual FeatureStatusProvider* GetFeatureStatusProvider() = 0; - NotificationAccessManager* notification_access_manager() { - return notification_access_manager_.get(); - } + virtual NotificationAccessManager* GetNotificationAccessManager() = 0; - PhoneModel* phone_model() { return phone_model_.get(); } + virtual PhoneModel* GetPhoneModel() = 0; - TetherController* tether_controller() { return tether_controller_.get(); } + virtual TetherController* GetTetherController() = 0; - private: - // KeyedService: - void Shutdown() override; - - std::unique_ptr<FeatureStatusProvider> feature_status_provider_; - std::unique_ptr<NotificationAccessManager> notification_access_manager_; - std::unique_ptr<PhoneModel> phone_model_; - std::unique_ptr<TetherController> tether_controller_; + protected: + PhoneHubManager() = default; }; } // namespace phonehub
diff --git a/chromeos/components/phonehub/phone_hub_manager.cc b/chromeos/components/phonehub/phone_hub_manager_impl.cc similarity index 66% rename from chromeos/components/phonehub/phone_hub_manager.cc rename to chromeos/components/phonehub/phone_hub_manager_impl.cc index e2af33b..0bc4b9d 100644 --- a/chromeos/components/phonehub/phone_hub_manager.cc +++ b/chromeos/components/phonehub/phone_hub_manager_impl.cc
@@ -2,10 +2,8 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#include "chromeos/components/phonehub/phone_hub_manager.h" +#include "chromeos/components/phonehub/phone_hub_manager_impl.h" -#include "base/callback.h" -#include "base/no_destructor.h" #include "chromeos/components/phonehub/feature_status_provider_impl.h" #include "chromeos/components/phonehub/mutable_phone_model.h" #include "chromeos/components/phonehub/notification_access_manager_impl.h" @@ -14,7 +12,7 @@ namespace chromeos { namespace phonehub { -PhoneHubManager::PhoneHubManager( +PhoneHubManagerImpl::PhoneHubManagerImpl( PrefService* pref_service, device_sync::DeviceSyncClient* device_sync_client, multidevice_setup::MultiDeviceSetupClient* multidevice_setup_client) @@ -27,9 +25,25 @@ tether_controller_( std::make_unique<TetherControllerImpl>(multidevice_setup_client)) {} -PhoneHubManager::~PhoneHubManager() = default; +PhoneHubManagerImpl::~PhoneHubManagerImpl() = default; -void PhoneHubManager::Shutdown() { +FeatureStatusProvider* PhoneHubManagerImpl::GetFeatureStatusProvider() { + return feature_status_provider_.get(); +} + +NotificationAccessManager* PhoneHubManagerImpl::GetNotificationAccessManager() { + return notification_access_manager_.get(); +} + +PhoneModel* PhoneHubManagerImpl::GetPhoneModel() { + return phone_model_.get(); +} + +TetherController* PhoneHubManagerImpl::GetTetherController() { + return tether_controller_.get(); +} + +void PhoneHubManagerImpl::Shutdown() { tether_controller_.reset(); phone_model_.reset(); notification_access_manager_.reset();
diff --git a/chromeos/components/phonehub/phone_hub_manager_impl.h b/chromeos/components/phonehub/phone_hub_manager_impl.h new file mode 100644 index 0000000..57cb3bcd --- /dev/null +++ b/chromeos/components/phonehub/phone_hub_manager_impl.h
@@ -0,0 +1,55 @@ +// Copyright 2020 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef CHROMEOS_COMPONENTS_PHONEHUB_PHONE_HUB_MANAGER_IMPL_H_ +#define CHROMEOS_COMPONENTS_PHONEHUB_PHONE_HUB_MANAGER_IMPL_H_ + +#include <memory> + +#include "chromeos/components/phonehub/phone_hub_manager.h" +#include "components/keyed_service/core/keyed_service.h" + +class PrefService; + +namespace chromeos { + +namespace device_sync { +class DeviceSyncClient; +} // namespace device_sync + +namespace multidevice_setup { +class MultiDeviceSetupClient; +} // namespace multidevice_setup + +namespace phonehub { + +// Implemented as a KeyedService which is keyed by the primary Profile. +class PhoneHubManagerImpl : public PhoneHubManager, public KeyedService { + public: + PhoneHubManagerImpl( + PrefService* pref_service, + device_sync::DeviceSyncClient* device_sync_client, + multidevice_setup::MultiDeviceSetupClient* multidevice_setup_client); + ~PhoneHubManagerImpl() override; + + // PhoneHubManager: + FeatureStatusProvider* GetFeatureStatusProvider() override; + NotificationAccessManager* GetNotificationAccessManager() override; + PhoneModel* GetPhoneModel() override; + TetherController* GetTetherController() override; + + private: + // KeyedService: + void Shutdown() override; + + std::unique_ptr<FeatureStatusProvider> feature_status_provider_; + std::unique_ptr<NotificationAccessManager> notification_access_manager_; + std::unique_ptr<PhoneModel> phone_model_; + std::unique_ptr<TetherController> tether_controller_; +}; + +} // namespace phonehub +} // namespace chromeos + +#endif // CHROMEOS_COMPONENTS_PHONEHUB_PHONE_HUB_MANAGER_IMPL_H_
diff --git a/chromeos/dbus/cros_healthd/fake_cros_healthd_client.cc b/chromeos/dbus/cros_healthd/fake_cros_healthd_client.cc index 75c8800..31d4915d 100644 --- a/chromeos/dbus/cros_healthd/fake_cros_healthd_client.cc +++ b/chromeos/dbus/cros_healthd/fake_cros_healthd_client.cc
@@ -67,6 +67,10 @@ fake_service_.SetProbeProcessInfoResponseForTesting(result); } +void FakeCrosHealthdClient::SetCallbackDelay(base::TimeDelta delay) { + fake_service_.SetCallbackDelay(delay); +} + void FakeCrosHealthdClient::EmitAcInsertedEventForTesting() { // Flush the receiver, so any pending observers are registered before the // event is emitted.
diff --git a/chromeos/dbus/cros_healthd/fake_cros_healthd_client.h b/chromeos/dbus/cros_healthd/fake_cros_healthd_client.h index 2a2ef61..2706f040 100644 --- a/chromeos/dbus/cros_healthd/fake_cros_healthd_client.h +++ b/chromeos/dbus/cros_healthd/fake_cros_healthd_client.h
@@ -8,6 +8,7 @@ #include "base/callback_forward.h" #include "base/files/scoped_file.h" #include "base/macros.h" +#include "base/time/time.h" #include "chromeos/dbus/cros_healthd/cros_healthd_client.h" #include "chromeos/dbus/cros_healthd/fake_cros_healthd_service.h" #include "chromeos/services/cros_healthd/public/mojom/cros_healthd.mojom.h" @@ -58,6 +59,9 @@ // ProbeProcessInfo IPCs received. void SetProbeProcessInfoResponseForTesting(mojom::ProcessResultPtr& result); + // Adds a delay before the passed callback is called. + void SetCallbackDelay(base::TimeDelta delay); + // Calls the power event OnAcInserted on all registered power observers. void EmitAcInsertedEventForTesting();
diff --git a/chromeos/dbus/cros_healthd/fake_cros_healthd_service.cc b/chromeos/dbus/cros_healthd/fake_cros_healthd_service.cc index 29c85b6f..a8a1d615 100644 --- a/chromeos/dbus/cros_healthd/fake_cros_healthd_service.cc +++ b/chromeos/dbus/cros_healthd/fake_cros_healthd_service.cc
@@ -7,6 +7,7 @@ #include <utility> #include "base/bind.h" +#include "base/threading/thread_task_runner_handle.h" namespace chromeos { namespace cros_healthd { @@ -44,7 +45,9 @@ void FakeCrosHealthdService::GetAvailableRoutines( GetAvailableRoutinesCallback callback) { - std::move(callback).Run(available_routines_); + base::ThreadTaskRunnerHandle::Get()->PostDelayedTask( + FROM_HERE, base::BindOnce(std::move(callback), available_routines_), + callback_delay_); } void FakeCrosHealthdService::GetRoutineUpdate( @@ -52,72 +55,107 @@ mojom::DiagnosticRoutineCommandEnum command, bool include_output, GetRoutineUpdateCallback callback) { - std::move(callback).Run(mojom::RoutineUpdate::New( - routine_update_response_->progress_percent, - std::move(routine_update_response_->output), - std::move(routine_update_response_->routine_update_union))); + base::ThreadTaskRunnerHandle::Get()->PostDelayedTask( + FROM_HERE, + base::BindOnce( + std::move(callback), + mojom::RoutineUpdate::New( + routine_update_response_->progress_percent, + std::move(routine_update_response_->output), + std::move(routine_update_response_->routine_update_union))), + callback_delay_); } void FakeCrosHealthdService::RunUrandomRoutine( uint32_t length_seconds, RunUrandomRoutineCallback callback) { - std::move(callback).Run(run_routine_response_.Clone()); + base::ThreadTaskRunnerHandle::Get()->PostDelayedTask( + FROM_HERE, + base::BindOnce(std::move(callback), run_routine_response_.Clone()), + callback_delay_); } void FakeCrosHealthdService::RunBatteryCapacityRoutine( uint32_t low_mah, uint32_t high_mah, RunBatteryCapacityRoutineCallback callback) { - std::move(callback).Run(run_routine_response_.Clone()); + base::ThreadTaskRunnerHandle::Get()->PostDelayedTask( + FROM_HERE, + base::BindOnce(std::move(callback), run_routine_response_.Clone()), + callback_delay_); } void FakeCrosHealthdService::RunBatteryHealthRoutine( uint32_t maximum_cycle_count, uint32_t percent_battery_wear_allowed, RunBatteryHealthRoutineCallback callback) { - std::move(callback).Run(run_routine_response_.Clone()); + base::ThreadTaskRunnerHandle::Get()->PostDelayedTask( + FROM_HERE, + base::BindOnce(std::move(callback), run_routine_response_.Clone()), + callback_delay_); } void FakeCrosHealthdService::RunSmartctlCheckRoutine( RunSmartctlCheckRoutineCallback callback) { - std::move(callback).Run(run_routine_response_.Clone()); + base::ThreadTaskRunnerHandle::Get()->PostDelayedTask( + FROM_HERE, + base::BindOnce(std::move(callback), run_routine_response_.Clone()), + callback_delay_); } void FakeCrosHealthdService::RunAcPowerRoutine( mojom::AcPowerStatusEnum expected_status, const base::Optional<std::string>& expected_power_type, RunAcPowerRoutineCallback callback) { - std::move(callback).Run(run_routine_response_.Clone()); + base::ThreadTaskRunnerHandle::Get()->PostDelayedTask( + FROM_HERE, + base::BindOnce(std::move(callback), run_routine_response_.Clone()), + callback_delay_); } void FakeCrosHealthdService::RunCpuCacheRoutine( uint32_t length_seconds, RunCpuCacheRoutineCallback callback) { - std::move(callback).Run(run_routine_response_.Clone()); + base::ThreadTaskRunnerHandle::Get()->PostDelayedTask( + FROM_HERE, + base::BindOnce(std::move(callback), run_routine_response_.Clone()), + callback_delay_); } void FakeCrosHealthdService::RunCpuStressRoutine( uint32_t length_seconds, RunCpuStressRoutineCallback callback) { - std::move(callback).Run(run_routine_response_.Clone()); + base::ThreadTaskRunnerHandle::Get()->PostDelayedTask( + FROM_HERE, + base::BindOnce(std::move(callback), run_routine_response_.Clone()), + callback_delay_); } void FakeCrosHealthdService::RunFloatingPointAccuracyRoutine( uint32_t length_seconds, RunFloatingPointAccuracyRoutineCallback callback) { - std::move(callback).Run(run_routine_response_.Clone()); + base::ThreadTaskRunnerHandle::Get()->PostDelayedTask( + FROM_HERE, + base::BindOnce(std::move(callback), run_routine_response_.Clone()), + callback_delay_); } void FakeCrosHealthdService::RunNvmeWearLevelRoutine( uint32_t wear_level_threshold, RunNvmeWearLevelRoutineCallback callback) { - std::move(callback).Run(run_routine_response_.Clone()); + base::ThreadTaskRunnerHandle::Get()->PostDelayedTask( + FROM_HERE, + base::BindOnce(std::move(callback), run_routine_response_.Clone()), + callback_delay_); } void FakeCrosHealthdService::RunNvmeSelfTestRoutine( mojom::NvmeSelfTestTypeEnum nvme_self_test_type, RunNvmeSelfTestRoutineCallback callback) { - std::move(callback).Run(run_routine_response_.Clone()); + base::ThreadTaskRunnerHandle::Get()->PostDelayedTask( + FROM_HERE, + base::BindOnce(std::move(callback), run_routine_response_.Clone()), + callback_delay_); } void FakeCrosHealthdService::RunDiskReadRoutine( @@ -125,21 +163,30 @@ uint32_t length_seconds, uint32_t file_size_mb, RunDiskReadRoutineCallback callback) { - std::move(callback).Run(run_routine_response_.Clone()); + base::ThreadTaskRunnerHandle::Get()->PostDelayedTask( + FROM_HERE, + base::BindOnce(std::move(callback), run_routine_response_.Clone()), + callback_delay_); } void FakeCrosHealthdService::RunPrimeSearchRoutine( uint32_t length_seconds, uint64_t max_num, RunPrimeSearchRoutineCallback callback) { - std::move(callback).Run(run_routine_response_.Clone()); + base::ThreadTaskRunnerHandle::Get()->PostDelayedTask( + FROM_HERE, + base::BindOnce(std::move(callback), run_routine_response_.Clone()), + callback_delay_); } void FakeCrosHealthdService::RunBatteryDischargeRoutine( uint32_t length_seconds, uint32_t maximum_discharge_percent_allowed, RunBatteryDischargeRoutineCallback callback) { - std::move(callback).Run(run_routine_response_.Clone()); + base::ThreadTaskRunnerHandle::Get()->PostDelayedTask( + FROM_HERE, + base::BindOnce(std::move(callback), run_routine_response_.Clone()), + callback_delay_); } void FakeCrosHealthdService::AddBluetoothObserver( @@ -160,13 +207,18 @@ void FakeCrosHealthdService::ProbeTelemetryInfo( const std::vector<mojom::ProbeCategoryEnum>& categories, ProbeTelemetryInfoCallback callback) { - std::move(callback).Run(telemetry_response_info_.Clone()); + base::ThreadTaskRunnerHandle::Get()->PostDelayedTask( + FROM_HERE, + base::BindOnce(std::move(callback), telemetry_response_info_.Clone()), + callback_delay_); } void FakeCrosHealthdService::ProbeProcessInfo( const uint32_t process_id, ProbeProcessInfoCallback callback) { - std::move(callback).Run(process_response_.Clone()); + base::ThreadTaskRunnerHandle::Get()->PostDelayedTask( + FROM_HERE, base::BindOnce(std::move(callback), process_response_.Clone()), + callback_delay_); } void FakeCrosHealthdService::SetAvailableRoutinesForTesting( @@ -194,6 +246,10 @@ process_response_.Swap(&result); } +void FakeCrosHealthdService::SetCallbackDelay(base::TimeDelta delay) { + callback_delay_ = delay; +} + void FakeCrosHealthdService::EmitAcInsertedEventForTesting() { for (auto& observer : power_observers_) observer->OnAcInserted();
diff --git a/chromeos/dbus/cros_healthd/fake_cros_healthd_service.h b/chromeos/dbus/cros_healthd/fake_cros_healthd_service.h index 33a2173..b416f9d0 100644 --- a/chromeos/dbus/cros_healthd/fake_cros_healthd_service.h +++ b/chromeos/dbus/cros_healthd/fake_cros_healthd_service.h
@@ -8,6 +8,7 @@ #include <vector> #include "base/macros.h" +#include "base/time/time.h" #include "chromeos/services/cros_healthd/public/mojom/cros_healthd.mojom.h" #include "chromeos/services/cros_healthd/public/mojom/cros_healthd_diagnostics.mojom.h" #include "chromeos/services/cros_healthd/public/mojom/cros_healthd_events.mojom.h" @@ -129,6 +130,9 @@ // ProbeProcessInfo IPCs received. void SetProbeProcessInfoResponseForTesting(mojom::ProcessResultPtr& result); + // Adds a delay before the passed callback is called. + void SetCallbackDelay(base::TimeDelta delay); + // Calls the power event OnAcInserted for all registered power observers. void EmitAcInsertedEventForTesting(); @@ -186,6 +190,8 @@ mojo::Remote<chromeos::network_diagnostics::mojom::NetworkDiagnosticsRoutines> network_diagnostics_routines_; + base::TimeDelta callback_delay_; + DISALLOW_COPY_AND_ASSIGN(FakeCrosHealthdService); };
diff --git a/chromeos/memory/BUILD.gn b/chromeos/memory/BUILD.gn index 0e62945..8669394 100644 --- a/chromeos/memory/BUILD.gn +++ b/chromeos/memory/BUILD.gn
@@ -26,10 +26,7 @@ "//chromeos:chromeos_export", "//chromeos/dbus", "//chromeos/dbus/constants", - "//crypto", - "//crypto:platform", "//services/resource_coordinator/public/cpp/memory_instrumentation", - "//third_party/zlib/google:compression_utils", ] sources = [ "kstaled.cc", @@ -42,13 +39,6 @@ "pressure/system_memory_pressure_evaluator.h", "swap_configuration.cc", "swap_configuration.h", - "userspace_swap/region.h", - "userspace_swap/swap_storage.cc", - "userspace_swap/swap_storage.h", - "userspace_swap/userfaultfd.cc", - "userspace_swap/userfaultfd.h", - "userspace_swap/userspace_swap.cc", - "userspace_swap/userspace_swap.h", ] } @@ -68,8 +58,5 @@ sources = [ "pagemap_unittest.cc", "pressure/system_memory_pressure_evaluator_unittest.cc", - "userspace_swap/swap_storage_unittest.cc", - "userspace_swap/userfaultfd_unittest.cc", - "userspace_swap/userspace_swap_unittest.cc", ] }
diff --git a/chromeos/memory/DEPS b/chromeos/memory/DEPS index 8f26458d..24501c3 100644 --- a/chromeos/memory/DEPS +++ b/chromeos/memory/DEPS
@@ -2,4 +2,5 @@ include_rules = [ "+third_party/zlib/google", "+services/resource_coordinator", + "+content/public/child", ]
diff --git a/chromeos/memory/OWNERS b/chromeos/memory/OWNERS index 825c6ac..5be797e 100644 --- a/chromeos/memory/OWNERS +++ b/chromeos/memory/OWNERS
@@ -1,3 +1,4 @@ bgeffon@chromium.org sonnyrao@chromium.org -yuzaho@chromium.org +yuzhao@chromium.org +jsbarnes@chromium.org
diff --git a/chromeos/memory/userspace_swap/BUILD.gn b/chromeos/memory/userspace_swap/BUILD.gn new file mode 100644 index 0000000..d74bc2fa --- /dev/null +++ b/chromeos/memory/userspace_swap/BUILD.gn
@@ -0,0 +1,74 @@ +# Copyright 2020 The Chromium Authors. All rights reserved. +# Use of this source code is governed by a BSD-style license that can be +# found in the LICENSE file. + +import("//build/buildflag_header.gni") +import("//mojo/public/tools/bindings/mojom.gni") +import("//testing/test.gni") + +assert(is_chromeos, "Non-Chrome-OS builds must not depend on //chromeos") + +# Used by targets that compile into the implementation. +config("chromeos_implementation") { + defines = [ "CHROMEOS_IMPLEMENTATION" ] +} + +mojom("mojom") { + sources = [ "userspace_swap.mojom" ] + + cpp_only = true + disable_variants = true + + deps = [ "//mojo/public/mojom/base" ] +} + +component("userspace_swap") { + configs += [ + ":chromeos_implementation", + "//build/config/linux/nss:system_nss_no_ssl_config", + ] + + public_deps = [ "//chromeos/constants" ] + deps = [ + ":mojom", + "//base", + "//base/util/memory_pressure", + "//chromeos:chromeos_export", + "//chromeos/dbus", + "//chromeos/dbus/constants", + "//chromeos/memory", + "//crypto", + "//crypto:platform", + "//services/resource_coordinator/public/cpp/memory_instrumentation", + "//third_party/zlib/google:compression_utils", + ] + sources = [ + "region.h", + "swap_storage.cc", + "swap_storage.h", + "userfaultfd.cc", + "userfaultfd.h", + "userspace_swap.cc", + "userspace_swap.h", + ] +} + +source_set("unit_tests") { + testonly = true + configs += [ "//build/config/linux/nss:system_nss_no_ssl_config" ] + deps = [ + ":mojom", + ":userspace_swap", + "//base/test:test_support", + "//chromeos:chromeos_buildflags", + "//mojo/core/embedder", + "//services/resource_coordinator/public/cpp/memory_instrumentation", + "//testing/gmock", + "//testing/gtest", + ] + sources = [ + "swap_storage_unittest.cc", + "userfaultfd_unittest.cc", + "userspace_swap_unittest.cc", + ] +}
diff --git a/chromeos/memory/userspace_swap/OWNERS b/chromeos/memory/userspace_swap/OWNERS new file mode 100644 index 0000000..8bff5bb --- /dev/null +++ b/chromeos/memory/userspace_swap/OWNERS
@@ -0,0 +1,3 @@ +# mojo +per-file *.mojom=set noparent +per-file *.mojom=file://ipc/SECURITY_OWNERS
diff --git a/chromeos/memory/userspace_swap/userspace_swap.cc b/chromeos/memory/userspace_swap/userspace_swap.cc index fb41f9b4..8f0bfb9 100644 --- a/chromeos/memory/userspace_swap/userspace_swap.cc +++ b/chromeos/memory/userspace_swap/userspace_swap.cc
@@ -178,6 +178,12 @@ return userfault_fd_supported && mremap_dontunmap_supported; } +CHROMEOS_EXPORT bool UserspaceSwapSupportedAndEnabled() { + static bool enabled = UserspaceSwapConfig::Get().enabled; + static bool supported = KernelSupportsUserspaceSwap(); + return supported && enabled; +} + CHROMEOS_EXPORT bool IsVMASwapEligible( const memory_instrumentation::mojom::VmRegionPtr& vma) { // We only conisder VMAs which are Private Anonymous
diff --git a/chromeos/memory/userspace_swap/userspace_swap.h b/chromeos/memory/userspace_swap/userspace_swap.h index c892a656..ef90113 100644 --- a/chromeos/memory/userspace_swap/userspace_swap.h +++ b/chromeos/memory/userspace_swap/userspace_swap.h
@@ -120,6 +120,10 @@ // the rendererer UserspaceSwapImpl. CHROMEOS_EXPORT bool KernelSupportsUserspaceSwap(); +// Returns true if there is kernel support for userspace swap and the feature is +// enabled. +CHROMEOS_EXPORT bool UserspaceSwapSupportedAndEnabled(); + // A swap eligible VMA is one that meets the required swapping criteria, // which are: // - RW protections
diff --git a/chromeos/memory/userspace_swap/userspace_swap.mojom b/chromeos/memory/userspace_swap/userspace_swap.mojom new file mode 100644 index 0000000..fb231ad --- /dev/null +++ b/chromeos/memory/userspace_swap/userspace_swap.mojom
@@ -0,0 +1,15 @@ +// Copyright 2020 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +module userspace_swap.mojom; + +// The UserspaceSwapInitialization interface is used for the renderer to +// negotiate userspace swap with the browser. +interface UserspaceSwapInitialization { + // TransferUserfaultFD is called from the renderer to hand over the + // userfaultfd it created or to provide an error for why a userfaultfd + // could not be created. + [Sync] + TransferUserfaultFD(uint64 error, handle<platform> uffd_handle) => (); +};
diff --git a/chromeos/printing/ppd_metadata_manager.cc b/chromeos/printing/ppd_metadata_manager.cc index 2d2f351..9edb0089 100644 --- a/chromeos/printing/ppd_metadata_manager.cc +++ b/chromeos/printing/ppd_metadata_manager.cc
@@ -38,6 +38,10 @@ // Defines the number of shards of sharded metadata. constexpr int kNumShards = 20; +// Defines the magic maximal number for USB vendor IDs and product IDs +// (restricted to 16 bits). +constexpr int kSixteenBitsMaximum = 0xffff; + // Convenience struct containing parsed metadata of type T. template <typename T> struct ParsedMetadataWithTimestamp { @@ -326,12 +330,13 @@ }; enum class PpdMetadataType { - LOCALES, - MANUFACTURERS, // locale-sensitive - PRINTERS, // locale-sensitive - INDEX, - REVERSE_INDEX, // locale-sensitive - USB_INDEX, + kLocales, + kManufacturers, // locale-sensitive + kPrinters, // locale-sensitive + kForwardIndex, + kReverseIndex, // locale-sensitive + kUsbIndex, + kUsbVendorIds, }; // Control argument that fully specifies the basename and containing @@ -345,17 +350,24 @@ PpdMetadataType type; // Used in two different ways as needed: - // 1. if |type| == PRINTERS, caller should populate this with the full - // basename of the target printers metadata file. Or, - // 2. if |type| is locale-sensitive and != PRINTERS, caller - // should populate this with the two-letter target locale (as - // previously advertised by the serving root). + // 1. if |type| == kPrinters, + // then caller should populate this with the full basename of the + // target printers metadata file. Or, + // 2. if |type| is locale-sensitive and != kPrinters, + // then caller should populate this with the two-letter target + // locale (as previously advertised by the serving root). // // This member is a const char* rather than std::string or StringPiece // for compatibility with base::StringPrintf(). const char* optional_tag; - // Numerical shard of target metadata basename, if needed. + // Used in two different ways as needed: + // 1. if |type| != kUsbIndex, + // then this is the numerical shard of the target metadata + // basename, if needed. Or, + // 2. if |type| == kUsbIndex, + // then this is the vendor ID of the the device manufacturer being + // sought. int optional_shard; }; @@ -365,16 +377,16 @@ std::string PpdMetadataPathInServingRoot( const PpdMetadataPathSpecifier& options) { switch (options.type) { - case PpdMetadataType::LOCALES: + case PpdMetadataType::kLocales: return base::StringPrintf("%s/locales.json", kMetadataParentDirectory); - case PpdMetadataType::MANUFACTURERS: + case PpdMetadataType::kManufacturers: // This type is locale-sensitive; the tag carries the locale. DCHECK(!base::StringPiece(options.optional_tag).empty()); return base::StringPrintf("%s/manufacturers-%s.json", kMetadataParentDirectory, options.optional_tag); - case PpdMetadataType::PRINTERS: + case PpdMetadataType::kPrinters: // This type is locale-sensitive; in this context, the tag carries // the full basename, which caller will have extracted from a leaf // in manufacturers metadata. @@ -382,13 +394,13 @@ return base::StringPrintf("%s/%s", kMetadataParentDirectory, options.optional_tag); - case PpdMetadataType::INDEX: + case PpdMetadataType::kForwardIndex: DCHECK(options.optional_shard >= 0 && options.optional_shard < kNumShards); return base::StringPrintf("%s/index-%02d.json", kMetadataParentDirectory, options.optional_shard); - case PpdMetadataType::REVERSE_INDEX: + case PpdMetadataType::kReverseIndex: // This type is locale-sensitive; the tag carries the locale. DCHECK(!base::StringPiece(options.optional_tag).empty()); DCHECK(options.optional_shard >= 0 && @@ -397,11 +409,15 @@ kMetadataParentDirectory, options.optional_tag, options.optional_shard); - case PpdMetadataType::USB_INDEX: + case PpdMetadataType::kUsbIndex: DCHECK(options.optional_shard >= 0 && - options.optional_shard < kNumShards); + options.optional_shard <= kSixteenBitsMaximum); return base::StringPrintf("%s/usb-%04x.json", kMetadataParentDirectory, options.optional_shard); + + case PpdMetadataType::kUsbVendorIds: + return base::StringPrintf("%s/usb_vendor_ids.json", + kMetadataParentDirectory); } // This function cannot fail except by maintainer error. @@ -444,7 +460,7 @@ return; } - const PpdMetadataPathSpecifier options = {PpdMetadataType::LOCALES}; + const PpdMetadataPathSpecifier options = {PpdMetadataType::kLocales}; const std::string metadata_name = PpdMetadataPathInServingRoot(options); PrinterConfigCache::FetchCallback fetch_cb = @@ -461,7 +477,7 @@ DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); DCHECK(!metadata_locale_.empty()); - const PpdMetadataPathSpecifier options = {PpdMetadataType::MANUFACTURERS, + const PpdMetadataPathSpecifier options = {PpdMetadataType::kManufacturers, metadata_locale_.c_str()}; const std::string metadata_name = PpdMetadataPathInServingRoot(options); @@ -522,6 +538,55 @@ // and we need not provide extra impetus. } + void FindDeviceInUsbIndex(int vendor_id, + int product_id, + base::TimeDelta age, + FindDeviceInUsbIndexCallback cb) override { + DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); + + // Fails the |cb| immediately if the |vendor_id| or |product_id| are + // obviously out of range. + if (vendor_id < 0 || vendor_id > kSixteenBitsMaximum || product_id < 0 || + product_id > kSixteenBitsMaximum) { + base::SequencedTaskRunnerHandle::Get()->PostTask( + FROM_HERE, base::BindOnce(std::move(cb), std::string())); + return; + } + + const PpdMetadataPathSpecifier options = {PpdMetadataType::kUsbIndex, + nullptr, vendor_id}; + const std::string metadata_name = PpdMetadataPathInServingRoot(options); + + if (MapHasValueFresherThan(cached_usb_indices_, metadata_name, + clock_->Now() - age)) { + OnUsbIndexAvailable(metadata_name, product_id, std::move(cb)); + return; + } + + auto callback = base::BindOnce(&PpdMetadataManagerImpl::OnUsbIndexFetched, + weak_factory_.GetWeakPtr(), metadata_name, + product_id, std::move(cb)); + config_cache_->Fetch(metadata_name, age, std::move(callback)); + } + + void GetUsbManufacturerName(int vendor_id, + base::TimeDelta age, + GetUsbManufacturerNameCallback cb) override { + const PpdMetadataPathSpecifier options = {PpdMetadataType::kUsbVendorIds}; + const std::string metadata_name = PpdMetadataPathInServingRoot(options); + + if (MapHasValueFresherThan(cached_usb_vendor_id_map_, metadata_name, + clock_->Now() - age)) { + OnUsbVendorIdMapAvailable(metadata_name, vendor_id, std::move(cb)); + return; + } + + auto fetch_cb = + base::BindOnce(&PpdMetadataManagerImpl::OnUsbVendorIdMapFetched, + weak_factory_.GetWeakPtr(), vendor_id, std::move(cb)); + config_cache_->Fetch(metadata_name, age, std::move(fetch_cb)); + } + void SplitMakeAndModel(base::StringPiece effective_make_and_model, base::TimeDelta age, PpdProvider::ReverseLookupCallback cb) override { @@ -529,7 +594,7 @@ DCHECK(!metadata_locale_.empty()); const PpdMetadataPathSpecifier reverse_index_options = { - PpdMetadataType::REVERSE_INDEX, metadata_locale_.c_str(), + PpdMetadataType::kReverseIndex, metadata_locale_.c_str(), IndexShard(effective_make_and_model)}; const std::string metadata_name = PpdMetadataPathInServingRoot(reverse_index_options); @@ -567,7 +632,7 @@ } // We need to name the manufacturers metadata manually to store it. - const PpdMetadataPathSpecifier options = {PpdMetadataType::MANUFACTURERS, + const PpdMetadataPathSpecifier options = {PpdMetadataType::kManufacturers, metadata_locale_.c_str()}; const std::string manufacturers_name = PpdMetadataPathInServingRoot(options); @@ -700,7 +765,7 @@ base::Optional<std::string> GetPrintersMetadataName( base::StringPiece manufacturer) { const PpdMetadataPathSpecifier manufacturers_options = { - PpdMetadataType::MANUFACTURERS, metadata_locale_.c_str()}; + PpdMetadataType::kManufacturers, metadata_locale_.c_str()}; const std::string manufacturers_metadata_name = PpdMetadataPathInServingRoot(manufacturers_options); if (!cached_manufacturers_.contains(manufacturers_metadata_name)) { @@ -717,7 +782,7 @@ } const PpdMetadataPathSpecifier printers_options = { - PpdMetadataType::PRINTERS, + PpdMetadataType::kPrinters, manufacturers.value.at(manufacturer).c_str()}; return PpdMetadataPathInServingRoot(printers_options); } @@ -822,7 +887,8 @@ ForwardIndexSearchStatus SearchForwardIndicesForOneEmm() { const ForwardIndexSearchContext& context = forward_index_search_queue_.CurrentContext(); - const PpdMetadataPathSpecifier options = {PpdMetadataType::INDEX, nullptr, + const PpdMetadataPathSpecifier options = {PpdMetadataType::kForwardIndex, + nullptr, IndexShard(context.CurrentEmm())}; const std::string forward_index_name = PpdMetadataPathInServingRoot(options); @@ -869,6 +935,116 @@ } // Called by one of + // * FindDeviceInUsbIndex() or + // * OnUsbIndexFetched(). + // Searches the now-available USB index metadata with |metadata_name| + // for a device with given |product_id|, calling |cb| appropriately. + void OnUsbIndexAvailable(base::StringPiece metadata_name, + int product_id, + FindDeviceInUsbIndexCallback cb) { + DCHECK(cached_usb_indices_.contains(metadata_name)); + + const ParsedUsbIndex& usb_index = + cached_usb_indices_.at(metadata_name).value; + const auto& iter = usb_index.find(product_id); + std::string effective_make_and_model; + if (iter != usb_index.end()) { + effective_make_and_model = iter->second; + } + + base::SequencedTaskRunnerHandle::Get()->PostTask( + FROM_HERE, + base::BindOnce(std::move(cb), std::move(effective_make_and_model))); + } + + // Called by |config_cache_|.Fetch(). + // Continues a prior call to FindDeviceInUsbIndex(). + // + // Parses and updates our cached map of USB index metadata if |result| + // indicates a successful fetch. + void OnUsbIndexFetched(std::string metadata_name, + int product_id, + FindDeviceInUsbIndexCallback cb, + const PrinterConfigCache::FetchResult& fetch_result) { + if (!fetch_result.succeeded) { + base::SequencedTaskRunnerHandle::Get()->PostTask( + FROM_HERE, base::BindOnce(std::move(cb), std::string())); + return; + } + + base::Optional<ParsedUsbIndex> parsed = + ParseUsbIndex(fetch_result.contents); + if (!parsed.has_value()) { + base::SequencedTaskRunnerHandle::Get()->PostTask( + FROM_HERE, base::BindOnce(std::move(cb), std::string())); + return; + } + + DCHECK(fetch_result.key == metadata_name); + ParsedMetadataWithTimestamp<ParsedUsbIndex> value = {clock_->Now(), + parsed.value()}; + cached_usb_indices_.insert_or_assign(fetch_result.key, value); + OnUsbIndexAvailable(fetch_result.key, product_id, std::move(cb)); + } + + // Called by one of + // * GetUsbManufacturerName() or + // * OnUsbVendorIdMapFetched(). + // + // Searches the available USB vendor ID map (named by |metadata_name|) + // for |vendor_id| and invokes |cb| accordingly. + void OnUsbVendorIdMapAvailable(base::StringPiece metadata_name, + int vendor_id, + GetUsbManufacturerNameCallback cb) { + DCHECK(cached_usb_vendor_id_map_.contains(metadata_name)); + ParsedUsbVendorIdMap usb_vendor_id_map = + cached_usb_vendor_id_map_.at(metadata_name).value; + + std::string manufacturer_name; + const auto& iter = usb_vendor_id_map.find(vendor_id); + if (iter != usb_vendor_id_map.end()) { + manufacturer_name = iter->second; + } + + base::SequencedTaskRunnerHandle::Get()->PostTask( + FROM_HERE, base::BindOnce(std::move(cb), manufacturer_name)); + } + + // Called by |config_cache_|->Fetch(). + // Continues a prior call to GetUsbManufacturerName. + // + // Parses and updates our cached map of USB vendor IDs if |result| + // indicates a successful fetch. + // + // If we're haggling over bits, it is wasteful to have a map that + // only ever has at most one key-value pair. We willfully accept this + // inefficiency to maintain consistency with other metadata + // operations. + void OnUsbVendorIdMapFetched( + int vendor_id, + GetUsbManufacturerNameCallback cb, + const PrinterConfigCache::FetchResult& fetch_result) { + if (!fetch_result.succeeded) { + base::SequencedTaskRunnerHandle::Get()->PostTask( + FROM_HERE, base::BindOnce(std::move(cb), std::string())); + return; + } + + const base::Optional<ParsedUsbVendorIdMap> parsed = + ParseUsbVendorIdMap(fetch_result.contents); + if (!parsed.has_value()) { + base::SequencedTaskRunnerHandle::Get()->PostTask( + FROM_HERE, base::BindOnce(std::move(cb), std::string())); + return; + } + + ParsedMetadataWithTimestamp<ParsedUsbVendorIdMap> value = {clock_->Now(), + parsed.value()}; + cached_usb_vendor_id_map_.insert_or_assign(fetch_result.key, value); + OnUsbVendorIdMapAvailable(fetch_result.key, vendor_id, std::move(cb)); + } + + // Called by one of // * SplitMakeAndModel() or // * OnReverseIndexFetched(). // Continues a prior call to SplitMakeAndModel(). @@ -950,6 +1126,8 @@ CachedParsedMetadataMap<ParsedManufacturers> cached_manufacturers_; CachedParsedMetadataMap<ParsedPrinters> cached_printers_; CachedParsedMetadataMap<ParsedIndex> cached_forward_indices_; + CachedParsedMetadataMap<ParsedUsbIndex> cached_usb_indices_; + CachedParsedMetadataMap<ParsedUsbVendorIdMap> cached_usb_vendor_id_map_; CachedParsedMetadataMap<ParsedReverseIndex> cached_reverse_indices_; // Processing queue for FindAllEmmsAvailableInIndex().
diff --git a/chromeos/printing/ppd_metadata_manager.h b/chromeos/printing/ppd_metadata_manager.h index 589d61ca..9293858 100644 --- a/chromeos/printing/ppd_metadata_manager.h +++ b/chromeos/printing/ppd_metadata_manager.h
@@ -47,6 +47,21 @@ using FindAllEmmsAvailableInIndexCallback = base::OnceCallback<void( const base::flat_map<std::string, ParsedIndexValues>&)>; + // Used by FindDeviceInUsbIndex(). + // * Contains the effective-make-and-model string corresponding to + // the vendor id / product id pair originally provided by caller. + // * The argument is empty if no appropriate effective-make-and-model + // string was found. + using FindDeviceInUsbIndexCallback = + base::OnceCallback<void(const std::string&)>; + + // Used by GetUsbManufacturerName(). + // * Contains the unlocalized manufacturer name corresponding to the + // vendor id originally provided by caller. + // * The argument is empty if the manufacturer name is not found. + using GetUsbManufacturerNameCallback = + base::OnceCallback<void(const std::string&)>; + // Assumes ownership of |config_cache|. static std::unique_ptr<PpdMetadataManager> Create( base::StringPiece browser_locale, @@ -99,6 +114,26 @@ base::TimeDelta age, FindAllEmmsAvailableInIndexCallback cb) = 0; + // Searches USB index metadata for a printer with the given + // |vendor_id| and |product_id|, calling |cb| with the appropriate + // effective-make-and-model string if one is found. + // * Does not rely on prior call to GetLocale(). + // * During operation, operates with metadata no older than |age|. + // * On failure, calls |cb| with an empty string. + virtual void FindDeviceInUsbIndex(int vendor_id, + int product_id, + base::TimeDelta age, + FindDeviceInUsbIndexCallback cb) = 0; + + // Searches the USB vendor ID map for a manufacturer with the given + // |vendor_id|, calling |cb| with the name found (if any). + // * Does not rely on prior call to GetLocale(). + // * During operation, operates with metadata no older than |age|. + // * On failure, calls |cb| with an empty string. + virtual void GetUsbManufacturerName(int vendor_id, + base::TimeDelta age, + GetUsbManufacturerNameCallback cb) = 0; + // Calls |cb| with the make and model of // |effective_make_and_model|. // * On success, the split is performed against metadata no older than
diff --git a/chromeos/printing/ppd_metadata_manager_unittest.cc b/chromeos/printing/ppd_metadata_manager_unittest.cc index 3053ccb1..bb870a5 100644 --- a/chromeos/printing/ppd_metadata_manager_unittest.cc +++ b/chromeos/printing/ppd_metadata_manager_unittest.cc
@@ -96,6 +96,26 @@ } // Callback method appropriate for passing to + // PpdMetadataManager::FindDeviceInUsbIndex(). + void CatchFindDeviceInUsbIndex(base::RepeatingClosure quit_closure, + const std::string& value) { + results_.effective_make_and_model_string_from_usb_index = value; + if (quit_closure) { + quit_closure.Run(); + } + } + + // Callback method appropriate for passing to + // PpdMetadataManager::GetUsbManufacturerName(). + void CatchGetUsbManufacturerName(base::RepeatingClosure quit_closure, + const std::string& value) { + results_.usb_manufacturer_name = value; + if (quit_closure) { + quit_closure.Run(); + } + } + + // Callback method appropriate for passing to // PpdMetadataManager::SplitMakeAndModel(). void CatchSplitMakeAndModel(base::RepeatingClosure quit_closure, PpdProvider::CallbackResultCode code, @@ -132,6 +152,14 @@ base::flat_map<std::string, ParsedIndexValues> available_effective_make_and_model_strings; + // Landing area for + // PpdMetadataManager::FindDeviceInUsbIndex(). + std::string effective_make_and_model_string_from_usb_index; + + // Landing area for + // PpdMetadataManager::GetUsbManufacturerName(). + std::string usb_manufacturer_name; + // Landing area for PpdMetadataManager::SplitMakeAndModel(). PpdProvider::CallbackResultCode split_make_and_model_code; std::string split_make; @@ -1038,6 +1066,340 @@ "some-ppd-basename-c.ppd.gz"))))); } +// Verifies that the manager can find a USB device by fetching and +// parsing USB index metadata. +TEST_F(PpdMetadataManagerTest, CanFindDeviceInUsbIndex) { + // Known interaction: hex(1138) == 0x472. To fetch USB index metadata + // for a manufacturer with vendor ID 1138, the manager will fetch + // the metadata with the following name. + // + // This USB index describes one product for vendor ID 1138; its + // product ID is 13. + GetFakeCache()->SetFetchResponseForTesting("metadata_v3/usb-0472.json", R"({ + "usbIndex": { + "13": { + "effectiveMakeAndModel": "some printer a" + } + } +})"); + + base::RunLoop loop; + auto callback = + base::BindOnce(&PpdMetadataManagerTest::CatchFindDeviceInUsbIndex, + base::Unretained(this), loop.QuitClosure()); + manager_->FindDeviceInUsbIndex(1138, 13, kArbitraryTimeDelta, + std::move(callback)); + loop.Run(); + + EXPECT_THAT(results_.effective_make_and_model_string_from_usb_index, + StrEq("some printer a")); +} + +// Verifies that the manager invokes the FindDeviceInUsbIndexCallback +// with an empty argument if it fails to fetch the appropriate USB +// index. +TEST_F(PpdMetadataManagerTest, FailsToFindDeviceInUsbIndexOnFetchFailure) { + // Known interaction: hex(1138) == 0x472. To fetch USB index metadata + // for a manufacturer with vendor ID 1138, the manager will fetch + // the metadata with the following name. + // + // We populate nothing in the fake serving root, so any fetch request + // from the manager will fail. + + // Jams the landing area to have a non-empty string. We expect the + // callback to fire with an empty string, which should empty this. + results_.effective_make_and_model_string_from_usb_index = + "non-empty string that will fail this test if it persists"; + + base::RunLoop loop; + auto callback = + base::BindOnce(&PpdMetadataManagerTest::CatchFindDeviceInUsbIndex, + base::Unretained(this), loop.QuitClosure()); + manager_->FindDeviceInUsbIndex(1138, 13, kArbitraryTimeDelta, + std::move(callback)); + loop.Run(); + + EXPECT_TRUE(results_.effective_make_and_model_string_from_usb_index.empty()); +} + +// Verifies that the manager invokes the FindDeviceInUsbIndexCallback +// with an empty argument if it fails to parse the appropriate USB +// index. +TEST_F(PpdMetadataManagerTest, FailsToFindDeviceInUsbIndexOnParseFailure) { + // Known interaction: hex(1138) == 0x472. To fetch USB index metadata + // for a manufacturer with vendor ID 1138, the manager will fetch + // the metadata with the following name. + // + // We populate the fake serving root with invalid JSON for the USB + // index metadata that the manager will fetch and fail to parse. + GetFakeCache()->SetFetchResponseForTesting("metadata_v3/usb-0472.json", + kInvalidJson); + + // Jams the landing area to have a non-empty string. We expect the + // callback to fire with an empty string, which should empty this. + results_.effective_make_and_model_string_from_usb_index = + "non-empty string that will fail this test if it persists"; + + base::RunLoop loop; + auto callback = + base::BindOnce(&PpdMetadataManagerTest::CatchFindDeviceInUsbIndex, + base::Unretained(this), loop.QuitClosure()); + manager_->FindDeviceInUsbIndex(1138, 13, kArbitraryTimeDelta, + std::move(callback)); + loop.Run(); + + EXPECT_TRUE(results_.effective_make_and_model_string_from_usb_index.empty()); +} + +// Verifies that the manager fetches USB index metadata anew when caller +// asks it for metadata fresher than what it has cached. +TEST_F(PpdMetadataManagerTest, CanFindDeviceInUsbIndexTimeSensitive) { + // Known interaction: hex(1138) == 0x472. To fetch USB index metadata + // for a manufacturer with vendor ID 1138, the manager will fetch + // the metadata with the following name. + // + // This USB index describes one product for vendor ID 1138; its + // product ID is 13. + GetFakeCache()->SetFetchResponseForTesting("metadata_v3/usb-0472.json", R"({ + "usbIndex": { + "13": { + "effectiveMakeAndModel": "some printer a" + } + } +})"); + + base::RunLoop loop; + auto callback = + base::BindOnce(&PpdMetadataManagerTest::CatchFindDeviceInUsbIndex, + base::Unretained(this), loop.QuitClosure()); + + // t = 0s: caller requests |manager_| to name a device with vendor ID + // 1138 and product ID 13. |manager_| fetches, parses, and caches + // the appropriate USB index metadata. + manager_->FindDeviceInUsbIndex(1138, 13, kArbitraryTimeDelta, + std::move(callback)); + loop.Run(); + + EXPECT_THAT(results_.effective_make_and_model_string_from_usb_index, + StrEq("some printer a")); + + // Sets the serving root to mutate the served USB index metadata; the + // device with product ID 13 now has the effective-make-and-model + // string "some printer b." If the |manager_| fetches this metadata + // anew, then it will observe the changed effective-make-and-model + // string. + GetFakeCache()->SetFetchResponseForTesting("metadata_v3/usb-0472.json", R"({ + "usbIndex": { + "13": { + "effectiveMakeAndModel": "some printer b" + } + } +})"); + + // Jams the landing area to hold a test-failing string. We expect + // the successful callback to overwrite this. + results_.effective_make_and_model_string_from_usb_index = + "non-empty string that will fail this test if it persists"; + + base::RunLoop second_loop; + auto second_callback = + base::BindOnce(&PpdMetadataManagerTest::CatchFindDeviceInUsbIndex, + base::Unretained(this), second_loop.QuitClosure()); + + // t = 0s: caller requests |manager_| to name a device with vendor ID + // 1138 and product ID 13. It asks that |manager_| do so with metadata + // parsed within the last 30 seconds. |manager_| responds with the + // cached USB index metadata without incurring a live fetch. + manager_->FindDeviceInUsbIndex(1138, 13, base::TimeDelta::FromSeconds(30), + std::move(second_callback)); + second_loop.Run(); + + // The manager will have responded with the cached + // effective-make-and-model string "some printer a." + EXPECT_THAT(results_.effective_make_and_model_string_from_usb_index, + StrEq("some printer a")); + + // t = 31s + clock_.Advance(base::TimeDelta::FromSeconds(31)); + + // Jams the landing area to hold a test-failing string. We expect + // the successful callback to overwrite this. + results_.effective_make_and_model_string_from_usb_index = + "non-empty string that will fail this test if it persists"; + + base::RunLoop third_loop; + auto third_callback = + base::BindOnce(&PpdMetadataManagerTest::CatchFindDeviceInUsbIndex, + base::Unretained(this), third_loop.QuitClosure()); + + // t = 31s: caller requests |manager_| to name a device with vendor ID + // 1138 and product ID 13. It asks that |manager_| do so with metadata + // parsed within the last 30 seconds. |manager_| sees that the cached + // USB index metadata is too stale, and so incurs a live fetch. The + // fetch exposes the changed metadata. + manager_->FindDeviceInUsbIndex(1138, 13, base::TimeDelta::FromSeconds(30), + std::move(third_callback)); + third_loop.Run(); + + // The manager will have responded with the new and changed + // effective-make-and-model string "some printer b." + EXPECT_THAT(results_.effective_make_and_model_string_from_usb_index, + StrEq("some printer b")); +} + +// Verifies that the manager can determine a USB manufacturer name +// by fetching and searching the USB vendor ID map. +TEST_F(PpdMetadataManagerTest, CanGetUsbManufacturerName) { + // Known interaction: |manager_| shall fetch the USB vendor ID map. + GetFakeCache()->SetFetchResponseForTesting("metadata_v3/usb_vendor_ids.json", + R"({ + "entries": [ { + "vendorId": 1138, + "vendorName": "Some Vendor Name" + } ] +})"); + + base::RunLoop loop; + auto callback = + base::BindOnce(&PpdMetadataManagerTest::CatchGetUsbManufacturerName, + base::Unretained(this), loop.QuitClosure()); + + manager_->GetUsbManufacturerName(1138, kArbitraryTimeDelta, + std::move(callback)); + loop.Run(); + + EXPECT_THAT(results_.usb_manufacturer_name, StrEq("Some Vendor Name")); +} + +// Verifies that the manager invokes the GetUsbManufacturerNameCallback +// with an empty argument if it fails to fetch the USB vendor ID map. +TEST_F(PpdMetadataManagerTest, FailsToGetUsbManufacturerNameOnFetchFailure) { + // Known interaction: |manager_| shall fetch the USB vendor ID map. + // + // We deliberately don't set any fetch response in the fake serving + // root; |manager_| will fail to fetch the USB vendor ID map. However, + // we do jam the landing area with a sentinel value to ensure that the + // callback does fire with an empty string. + results_.usb_manufacturer_name = + "non-empty string that will fail this test if it persists"; + + base::RunLoop loop; + auto callback = + base::BindOnce(&PpdMetadataManagerTest::CatchGetUsbManufacturerName, + base::Unretained(this), loop.QuitClosure()); + + manager_->GetUsbManufacturerName(1138, kArbitraryTimeDelta, + std::move(callback)); + loop.Run(); + + EXPECT_TRUE(results_.usb_manufacturer_name.empty()); +} + +// Verifies that the manager invokes the GetUsbManufacturerNameCallback +// with an empty argument if it fails to parse the USB vendor ID map. +TEST_F(PpdMetadataManagerTest, FailsToGetUsbManufacturerNameOnParseFailure) { + // Known interaction: |manager_| shall fetch the USB vendor ID map. + // + // We deliberately set a malformed response in the serving root; + // |manager_| will fetch the USB vendor ID map successfully, but will + // fail to parse it. + GetFakeCache()->SetFetchResponseForTesting("metadata_v3/usb_vendor_ids.json", + kInvalidJson); + + // We also jam the landing area with a sentinel value to ensure that + // the callback fires with an empty string. + results_.usb_manufacturer_name = + "non-empty string that will fail this test if it persists"; + + base::RunLoop loop; + auto callback = + base::BindOnce(&PpdMetadataManagerTest::CatchGetUsbManufacturerName, + base::Unretained(this), loop.QuitClosure()); + + manager_->GetUsbManufacturerName(1138, kArbitraryTimeDelta, + std::move(callback)); + loop.Run(); + + EXPECT_TRUE(results_.usb_manufacturer_name.empty()); +} + +// Verifies that the manager fetches the USB vendor ID map anew if the +// caller calls GetUsbManufacturerName() asking for metadata fresher +// than what it has cached. +TEST_F(PpdMetadataManagerTest, CanGetUsbManufacturerNameTimeSensitive) { + // Known interaction: |manager_| shall fetch the USB vendor ID map. + GetFakeCache()->SetFetchResponseForTesting("metadata_v3/usb_vendor_ids.json", + R"({ + "entries": [ { + "vendorId": 1138, + "vendorName": "Vendor One One Three Eight" + } ] +})"); + + base::RunLoop loop; + auto callback = + base::BindOnce(&PpdMetadataManagerTest::CatchGetUsbManufacturerName, + base::Unretained(this), loop.QuitClosure()); + + // t = 0s: caller requests the name of a USB manufacturer whose vendor + // ID is 1138. |manager_| fetches, parses, and caches the USB vendor + // ID map, responding with the name. + manager_->GetUsbManufacturerName(1138, base::TimeDelta::FromSeconds(30), + std::move(callback)); + loop.Run(); + + EXPECT_THAT(results_.usb_manufacturer_name, + StrEq("Vendor One One Three Eight")); + + // Mutates the USB vendor ID map served by the fake serving root. + // If the |manager_| fetches it now, it will see a changed name for + // the USB manufacturer with vendor ID 1138. + GetFakeCache()->SetFetchResponseForTesting("metadata_v3/usb_vendor_ids.json", + R"({ + "entries": [ { + "vendorId": 1138, + "vendorName": "One One Three Eight LLC" + } ] +})"); + + base::RunLoop second_loop; + auto second_callback = + base::BindOnce(&PpdMetadataManagerTest::CatchGetUsbManufacturerName, + base::Unretained(this), second_loop.QuitClosure()); + + // t = 0s: caller requests the name of a USB manufacturer whose vendor + // ID is 1138. |manager_| responds with the previously fetched + // metadata. + manager_->GetUsbManufacturerName(1138, base::TimeDelta::FromSeconds(30), + std::move(second_callback)); + second_loop.Run(); + + // Since |manager_| has not fetched the mutated USB vendor ID map, + // the results are unchanged from before. + EXPECT_THAT(results_.usb_manufacturer_name, + StrEq("Vendor One One Three Eight")); + + // t = 31s + clock_.Advance(base::TimeDelta::FromSeconds(31)); + + base::RunLoop third_loop; + auto third_callback = + base::BindOnce(&PpdMetadataManagerTest::CatchGetUsbManufacturerName, + base::Unretained(this), third_loop.QuitClosure()); + + // t = 31s: caller requests the name of a USB manufacturer whose + // vendor ID is 1138. |manager_| notices that its cached metadata is + // too stale and performs a live fetch, receiving the mutated + // USB vendor ID map. + manager_->GetUsbManufacturerName(1138, base::TimeDelta::FromSeconds(30), + std::move(third_callback)); + third_loop.Run(); + + // Since |manager_| has not fetched the mutated USB vendor ID map, + // the results are unchanged from before. + EXPECT_THAT(results_.usb_manufacturer_name, StrEq("One One Three Eight LLC")); +} + // Verifies that the manager can split an effective-make-and-model // string into its constituent parts (make and model). TEST_F(PpdMetadataManagerTest, CanSplitMakeAndModel) {
diff --git a/chromeos/printing/ppd_metadata_parser.cc b/chromeos/printing/ppd_metadata_parser.cc index 0bebc91..5564480 100644 --- a/chromeos/printing/ppd_metadata_parser.cc +++ b/chromeos/printing/ppd_metadata_parser.cc
@@ -283,6 +283,36 @@ return parsed_usb_index; } +base::Optional<ParsedUsbVendorIdMap> ParseUsbVendorIdMap( + base::StringPiece usb_vendor_id_map_json) { + base::Optional<base::Value> as_value = ParseJsonAndUnnestKey( + usb_vendor_id_map_json, "entries", base::Value::Type::LIST); + if (!as_value.has_value() || as_value->GetList().empty()) { + return base::nullopt; + } + + ParsedUsbVendorIdMap usb_vendor_ids; + for (const auto& usb_vendor_description : as_value->GetList()) { + if (!usb_vendor_description.is_dict()) { + continue; + } + + base::Optional<int> vendor_id = + usb_vendor_description.FindIntKey("vendorId"); + const std::string* const vendor_name = + usb_vendor_description.FindStringKey("vendorName"); + if (!vendor_id.has_value() || !vendor_name || vendor_name->empty()) { + continue; + } + usb_vendor_ids.insert_or_assign(vendor_id.value(), *vendor_name); + } + + if (usb_vendor_ids.empty()) { + return base::nullopt; + } + return usb_vendor_ids; +} + base::Optional<ParsedPrinters> ParsePrinters(base::StringPiece printers_json) { const auto as_value = ParseJsonAndUnnestKey(printers_json, "printers", base::Value::Type::LIST);
diff --git a/chromeos/printing/ppd_metadata_parser.h b/chromeos/printing/ppd_metadata_parser.h index ea90612..1a5f92d8 100644 --- a/chromeos/printing/ppd_metadata_parser.h +++ b/chromeos/printing/ppd_metadata_parser.h
@@ -83,6 +83,9 @@ // Maps USB product IDs to effective-make-and-model strings. using ParsedUsbIndex = base::flat_map<int, std::string>; +// Maps USB vendor IDs to manufacturer names. +using ParsedUsbVendorIdMap = base::flat_map<int, std::string>; + // Keyed on effective-make-and-model strings. using ParsedReverseIndex = base::flat_map<std::string, ReverseIndexLeaf>; @@ -107,6 +110,11 @@ CHROMEOS_EXPORT base::Optional<ParsedUsbIndex> ParseUsbIndex( base::StringPiece usb_index_json); +// Parses |usb_vendor_id_map_json| and returns a map of USB vendor IDs +// to manufacturer names. +CHROMEOS_EXPORT base::Optional<ParsedUsbVendorIdMap> ParseUsbVendorIdMap( + base::StringPiece usb_vendor_id_map_json); + // Parses |reverse_index_json| and returns the parsed map type. CHROMEOS_EXPORT base::Optional<ParsedReverseIndex> ParseReverseIndex( base::StringPiece reverse_index_json);
diff --git a/chromeos/printing/ppd_metadata_parser_unittest.cc b/chromeos/printing/ppd_metadata_parser_unittest.cc index c104148..4f85ac7 100644 --- a/chromeos/printing/ppd_metadata_parser_unittest.cc +++ b/chromeos/printing/ppd_metadata_parser_unittest.cc
@@ -645,6 +645,73 @@ EXPECT_THAT(ParseUsbIndex(kInvalidJson), Eq(base::nullopt)); } +// Verifies that ParseUsbvendorIdMap() can parse USB vendor ID maps. +TEST(PpdMetadataParserTest, CanParseUsbVendorIdMap) { + constexpr base::StringPiece kJsonUsbVendorIdMap = R"({ + "entries": [ { + "vendorId": 1111, + "vendorName": "One One One One" + }, { + "vendorId": 2222, + "vendorName": "Two Two Two Two" + }, { + "vendorId": 3333, + "vendorName": "Three Three Three Three" + } ] +})"; + + EXPECT_THAT(ParseUsbVendorIdMap(kJsonUsbVendorIdMap), + Optional(UnorderedElementsAre( + Pair(1111, StrEq("One One One One")), + Pair(2222, StrEq("Two Two Two Two")), + Pair(3333, StrEq("Three Three Three Three"))))); +} + +// Verifies that ParseUsbvendorIdMap() can parse USB vendor ID maps and +// return partial results even when it encounters garbage values. +TEST(PpdMetadataParserTest, CanPartiallyParseUsbVendorIdMap) { + // This USB vendor ID map has garbage values in it. + // ParseUsbVendorIdMap() shall ignore these. + constexpr base::StringPiece kJsonUsbVendorIdMap = R"({ + "garbage key": "garbage value", + "entries": [ + "garbage value", + { + "vendorId": 1111, + "garbage key": "garbage value", + "vendorName": "One One One One" + }, { + "vendorId": 2222, + "vendorName": "Two Two Two Two" + }, { + "vendorId": 3333, + "vendorName": "Three Three Three Three" + } ] +})"; + + EXPECT_THAT(ParseUsbVendorIdMap(kJsonUsbVendorIdMap), + Optional(UnorderedElementsAre( + Pair(1111, StrEq("One One One One")), + Pair(2222, StrEq("Two Two Two Two")), + Pair(3333, StrEq("Three Three Three Three"))))); +} + +// Verifies that ParseUsbvendorIdMap() returns base::nullopt rather +// than an empty container. +TEST(PpdMetadataParserTest, ParseUsbVendorIdMapDoesNotReturnEmptyContainer) { + // Defines a USB vendor ID map that is empty; it's valid JSON, but + // has no values worth returning. + constexpr base::StringPiece kJsonUsbVendorIdMap = "{}"; + + EXPECT_THAT(ParseUsbVendorIdMap(kJsonUsbVendorIdMap), Eq(base::nullopt)); +} + +// Verifies that ParseUsbvendorIdMap() returns base::nullopt on +// irrecoverable parse error. +TEST(PpdMetadataParserTest, ParseUsbVendorIdMapFailsGracefully) { + EXPECT_THAT(ParseUsbVendorIdMap(kInvalidJson), Eq(base::nullopt)); +} + // Verifies that ParseReverseIndex() can parse reverse index metadata. TEST(PpdMetadataParserTest, CanParseReverseIndex) { constexpr base::StringPiece kReverseIndexJson = R"(
diff --git a/chromeos/printing/ppd_provider_v3_unittest.cc b/chromeos/printing/ppd_provider_v3_unittest.cc index d0902bc9..7ecdf3d 100644 --- a/chromeos/printing/ppd_provider_v3_unittest.cc +++ b/chromeos/printing/ppd_provider_v3_unittest.cc
@@ -270,48 +270,90 @@ "emm": "printer_c_ref" } ] })"}, - {"metadata_v2/index-01.json", - R"([ - ["printer_a_ref", "printer_a.ppd", {"license": "fake_license"}] - ])"}, - {"metadata_v2/index-02.json", - R"([ - ["printer_b_ref", "printer_b.ppd"] - ])"}, - {"metadata_v2/index-03.json", - R"([ - ["printer_c_ref", "printer_c.ppd"] - ])"}, - {"metadata_v2/index-04.json", - R"([ - ["printer_d_ref", "printer_d.ppd"] - ])"}, - {"metadata_v2/index-05.json", - R"([ - ["printer_e_ref", "printer_e.ppd"] - ])"}, - {"metadata_v2/index-13.json", - R"([ - ])"}, - {"metadata_v2/usb-031f.json", - R"([ - [1592, "Some canonical reference"], - [6535, "Some other canonical reference"] - ])"}, - {"metadata_v2/usb-03f0.json", ""}, - {"metadata_v2/usb-1234.json", ""}, - {"metadata_v2/reverse_index-en-01.json", - R"([ - ["printer_a_ref", "manufacturer_a_en", "printer_a"] - ])"}, - {"metadata_v2/reverse_index-en-19.json", - R"([ - ])"}, - {"ppds/printer_a.ppd", kCupsFilterPpdContents}, - {"ppds/printer_b.ppd", kCupsFilter2PpdContents}, - {"ppds/printer_c.ppd", "c"}, - {"ppds/printer_d.ppd", "d"}, - {"ppds/printer_e.ppd", "e"}, + {"metadata_v3/index-01.json", + R"({ + "ppdIndex": { + "printer_a_ref": { + "ppdMetadata": [ { + "name": "printer_a.ppd", + "license": "fake_license" + } ] + } + } + })"}, + {"metadata_v3/index-02.json", + R"({ + "ppdIndex": { + "printer_b_ref": { + "ppdMetadata": [ { + "name": "printer_b.ppd" + } ] + } + } + })"}, + {"metadata_v3/index-03.json", + R"({ + "ppdIndex": { + "printer_c_ref": { + "ppdMetadata": [ { + "name": "printer_c.ppd" + } ] + } + } + })"}, + {"metadata_v3/index-04.json", + R"({ + "ppdIndex": { + "printer_d_ref": { + "ppdMetadata": [ { + "name": "printer_d.ppd" + } ] + } + } + })"}, + {"metadata_v3/index-05.json", + R"({ + "ppdIndex": { + "printer_e_ref": { + "ppdMetadata": [ { + "name": "printer_e.ppd" + } ] + } + } + })"}, + {"metadata_v3/index-13.json", + R"({ + })"}, + {"metadata_v3/usb-031f.json", + R"({ + "usbIndex": { + "1592": { + "effectiveMakeAndModel": "Some canonical reference" + }, + "6535": { + "effectiveMakeAndModel": "Some other canonical reference" + } + } + })"}, + {"metadata_v3/usb-03f0.json", ""}, + {"metadata_v3/usb-1234.json", ""}, + {"metadata_v3/reverse_index-en-01.json", + R"({ + "reverseIndex": { + "printer_a_ref": { + "manufacturer": "manufacturer_a_en", + "model": "printer_a" + } + } + })"}, + {"metadata_v3/reverse_index-en-19.json", + R"({ + })"}, + {"ppds_for_metadata_v3/printer_a.ppd", kCupsFilterPpdContents}, + {"ppds_for_metadata_v3/printer_b.ppd", kCupsFilter2PpdContents}, + {"ppds_for_metadata_v3/printer_c.ppd", "c"}, + {"ppds_for_metadata_v3/printer_d.ppd", "d"}, + {"ppds_for_metadata_v3/printer_e.ppd", "e"}, {"user_supplied_ppd_directory/user_supplied.ppd", "u"}}; }
diff --git a/chromeos/services/assistant/public/shared/constants.cc b/chromeos/services/assistant/public/shared/constants.cc index f8507af..1dd37db 100644 --- a/chromeos/services/assistant/public/shared/constants.cc +++ b/chromeos/services/assistant/public/shared/constants.cc
@@ -14,5 +14,8 @@ const char kSampleServiceIdRequest[] = ""; const char kServiceIdRequestPayload[] = ""; +const char kBloomScope[] = "https://fake/bloom/scope"; +const char kBloomServiceUrl[] = "https://fake.bloom.service.url"; + } // namespace assistant } // namespace chromeos
diff --git a/chromeos/services/assistant/public/shared/constants.h b/chromeos/services/assistant/public/shared/constants.h index f5a1072..01df639 100644 --- a/chromeos/services/assistant/public/shared/constants.h +++ b/chromeos/services/assistant/public/shared/constants.h
@@ -26,6 +26,11 @@ COMPONENT_EXPORT(ASSISTANT_SERVICE_SHARED) extern const char kServiceIdRequestPayload[]; +COMPONENT_EXPORT(ASSISTANT_SERVICE_SHARED) +extern const char kBloomScope[]; +COMPONENT_EXPORT(ASSISTANT_SERVICE_SHARED) +extern const char kBloomServiceUrl[]; + } // namespace assistant } // namespace chromeos
diff --git a/components/BUILD.gn b/components/BUILD.gn index 6697a1a..9123060 100644 --- a/components/BUILD.gn +++ b/components/BUILD.gn
@@ -352,7 +352,6 @@ "//components/signin/core/browser/android:java", "//components/signin/public/android:java", "//components/spellcheck/browser/android:java", - "//components/url_formatter/android:native_java_unittests_java", "//components/variations/android:variations_java", "//content/public/android:content_java", "//content/public/browser",
diff --git a/components/autofill/core/browser/webdata/autofill_wallet_sync_bridge_unittest.cc b/components/autofill/core/browser/webdata/autofill_wallet_sync_bridge_unittest.cc index 23b1b600..3d4b6c1f 100644 --- a/components/autofill/core/browser/webdata/autofill_wallet_sync_bridge_unittest.cc +++ b/components/autofill/core/browser/webdata/autofill_wallet_sync_bridge_unittest.cc
@@ -105,7 +105,9 @@ << ", exp_year: " << specifics.masked_card().exp_year() << ", billing_address_id: " << specifics.masked_card().billing_address_id() - << ", bank_name: " << specifics.masked_card().bank_name() << "]"; + << ", bank_name: " << specifics.masked_card().bank_name() + << ", instrument_id: " << specifics.masked_card().instrument_id() + << "]"; return output.str(); }
diff --git a/components/browser_ui/contacts_picker/android/BUILD.gn b/components/browser_ui/contacts_picker/android/BUILD.gn index 03b5ed3..713a02b 100644 --- a/components/browser_ui/contacts_picker/android/BUILD.gn +++ b/components/browser_ui/contacts_picker/android/BUILD.gn
@@ -106,7 +106,6 @@ "//third_party/android_support_test_runner:runner_java", "//third_party/blink/public/mojom:android_mojo_bindings_java", "//third_party/junit", - "//third_party/mockito:mockito_java", "//ui/android:ui_java", "//ui/android:ui_java_test_support", ]
diff --git a/components/browser_ui/contacts_picker/android/java/src/org/chromium/components/browser_ui/contacts_picker/ContactsPickerDialogTest.java b/components/browser_ui/contacts_picker/android/java/src/org/chromium/components/browser_ui/contacts_picker/ContactsPickerDialogTest.java index c910286..da5b4ea 100644 --- a/components/browser_ui/contacts_picker/android/java/src/org/chromium/components/browser_ui/contacts_picker/ContactsPickerDialogTest.java +++ b/components/browser_ui/contacts_picker/android/java/src/org/chromium/components/browser_ui/contacts_picker/ContactsPickerDialogTest.java
@@ -4,7 +4,6 @@ package org.chromium.components.browser_ui.contacts_picker; -import android.content.Context; import android.graphics.Bitmap; import android.graphics.Canvas; import android.graphics.Color; @@ -17,15 +16,13 @@ import androidx.recyclerview.widget.RecyclerView; import androidx.test.filters.LargeTest; +import org.junit.After; import org.junit.Assert; import org.junit.Before; import org.junit.ClassRule; import org.junit.Rule; import org.junit.Test; import org.junit.runner.RunWith; -import org.mockito.Mock; -import org.mockito.Mockito; -import org.mockito.MockitoAnnotations; import org.chromium.base.FeatureList; import org.chromium.base.test.BaseJUnit4ClassRunner; @@ -39,6 +36,7 @@ import org.chromium.content_public.browser.test.util.TestTouchUtils; import org.chromium.payments.mojom.PaymentAddress; import org.chromium.ui.ContactsPickerListener; +import org.chromium.ui.base.ActivityWindowAndroid; import org.chromium.ui.base.WindowAndroid; import org.chromium.ui.test.util.DisableAnimationsTestRule; import org.chromium.ui.test.util.DummyUiActivityTestCase; @@ -46,7 +44,6 @@ import org.chromium.ui.vr.VrModeObserver; import org.chromium.ui.vr.VrModeProvider; -import java.lang.ref.WeakReference; import java.nio.ByteBuffer; import java.util.ArrayList; import java.util.Arrays; @@ -64,7 +61,6 @@ public static DisableAnimationsTestRule mDisableAnimationsTestRule = new DisableAnimationsTestRule(); - @Mock private WindowAndroid mWindowAndroid; @Rule @@ -112,10 +108,8 @@ @Before public void setUp() throws Exception { - MockitoAnnotations.initMocks(this); - Mockito.doReturn(new WeakReference<Context>(getActivity())) - .when(mWindowAndroid) - .getContext(); + mWindowAndroid = TestThreadUtils.runOnUiThreadBlocking( + () -> { return new ActivityWindowAndroid(getActivity()); }); FeatureList.setTestFeatures(Collections.singletonMap( ContactsPickerFeatureList.CONTACTS_PICKER_SELECT_ALL, true)); mIcon = Bitmap.createBitmap(100, 100, Bitmap.Config.ARGB_8888); @@ -126,6 +120,11 @@ CompressContactIconsWorkerTask.sDisableForTesting = true; } + @After + public void tearDown() throws Exception { + TestThreadUtils.runOnUiThreadBlocking(() -> { mWindowAndroid.destroy(); }); + } + // ContactsPickerDialog.ContactsPickerListener: @Override
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 65fc6be..312707f 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
@@ -49,7 +49,7 @@ <translation id="2359808026110333948">Tiếp tục</translation> <translation id="2402980924095424747"><ph name="MEGABYTES" /> MB</translation> <translation id="2434158240863470628">Quá trình tải xuống hoàn tất <ph name="SEPARATOR" /> <ph name="BYTES_DOWNLOADED" /></translation> -<translation id="2440823041667407902">Truy cập vị trí</translation> +<translation id="2440823041667407902">Quyền truy cập thông tin vị trí</translation> <translation id="2482878487686419369">Thông báo</translation> <translation id="2490684707762498678">Do <ph name="APP_NAME" /> quản lý</translation> <translation id="2498359688066513246">Trợ giúp và phản hồi</translation>
diff --git a/components/media_message_center/media_notification_background.cc b/components/media_message_center/media_notification_background.cc index 41c4817..79ce503f 100644 --- a/components/media_message_center/media_notification_background.cc +++ b/components/media_message_center/media_notification_background.cc
@@ -363,7 +363,7 @@ UpdateColorsInternal(); } -void MediaNotificationBackground::UpdateAudioDeviceSelectorAvailability( +void MediaNotificationBackground::UpdateDeviceSelectorAvailability( bool availability) { if (audio_device_selector_availability_ == availability) return;
diff --git a/components/media_message_center/media_notification_background.h b/components/media_message_center/media_notification_background.h index f1df824..db69d6ac 100644 --- a/components/media_message_center/media_notification_background.h +++ b/components/media_message_center/media_notification_background.h
@@ -41,7 +41,7 @@ bool UpdateCornerRadius(int top_radius, int bottom_radius); bool UpdateArtworkMaxWidthPct(double max_width_pct); void UpdateFavicon(const gfx::ImageSkia& icon); - void UpdateAudioDeviceSelectorAvailability(bool availability); + void UpdateDeviceSelectorAvailability(bool availability); SkColor GetBackgroundColor(const views::View& owner) const; SkColor GetForegroundColor(const views::View& owner) const;
diff --git a/components/media_message_center/media_notification_view_impl.cc b/components/media_message_center/media_notification_view_impl.cc index fa759f38..349333d 100644 --- a/components/media_message_center/media_notification_view_impl.cc +++ b/components/media_message_center/media_notification_view_impl.cc
@@ -474,9 +474,9 @@ UpdateForegroundColor(); } -void MediaNotificationViewImpl::UpdateAudioDeviceSelectorAvailability( +void MediaNotificationViewImpl::UpdateDeviceSelectorAvailability( bool availability) { - GetMediaNotificationBackground()->UpdateAudioDeviceSelectorAvailability( + GetMediaNotificationBackground()->UpdateDeviceSelectorAvailability( availability); }
diff --git a/components/media_message_center/media_notification_view_impl.h b/components/media_message_center/media_notification_view_impl.h index 83a2420..6423e1d8 100644 --- a/components/media_message_center/media_notification_view_impl.h +++ b/components/media_message_center/media_notification_view_impl.h
@@ -83,7 +83,7 @@ void UpdateWithVectorIcon(const gfx::VectorIcon& vector_icon) override; void OnThemeChanged() override; - void UpdateAudioDeviceSelectorAvailability(bool availability); + void UpdateDeviceSelectorAvailability(bool availability); const views::Label* title_label_for_testing() const { return title_label_; }
diff --git a/components/metrics/BUILD.gn b/components/metrics/BUILD.gn index 1aad8f4..55cc10f 100644 --- a/components/metrics/BUILD.gn +++ b/components/metrics/BUILD.gn
@@ -517,10 +517,14 @@ sources -= [ "child_call_stack_profile_collector_unittest.cc" ] deps += [ "//ios/web/public/test" ] } else { - sources += [ "content/subprocess_metrics_provider_unittest.cc" ] + sources += [ + "content/content_stability_metrics_provider_unittest.cc", + "content/subprocess_metrics_provider_unittest.cc", + ] deps += [ ":content", "//content/test:test_support", + "//extensions/buildflags", ] } }
diff --git a/components/metrics/content/content_stability_metrics_provider.h b/components/metrics/content/content_stability_metrics_provider.h index 3f34e64..b2b26fe85 100644 --- a/components/metrics/content/content_stability_metrics_provider.h +++ b/components/metrics/content/content_stability_metrics_provider.h
@@ -22,12 +22,6 @@ class PrefService; -FORWARD_DECLARE_TEST(ChromeStabilityMetricsProviderTest, - BrowserChildProcessObserverGpu); -FORWARD_DECLARE_TEST(ChromeStabilityMetricsProviderTest, - BrowserChildProcessObserverUtility); -FORWARD_DECLARE_TEST(ChromeStabilityMetricsProviderTest, NotificationObserver); - namespace metrics { class ExtensionsHelper; @@ -62,12 +56,14 @@ void ClearSavedStabilityMetrics() override; private: - FRIEND_TEST_ALL_PREFIXES(::ChromeStabilityMetricsProviderTest, + FRIEND_TEST_ALL_PREFIXES(ContentStabilityMetricsProviderTest, BrowserChildProcessObserverGpu); - FRIEND_TEST_ALL_PREFIXES(::ChromeStabilityMetricsProviderTest, + FRIEND_TEST_ALL_PREFIXES(ContentStabilityMetricsProviderTest, BrowserChildProcessObserverUtility); - FRIEND_TEST_ALL_PREFIXES(::ChromeStabilityMetricsProviderTest, + FRIEND_TEST_ALL_PREFIXES(ContentStabilityMetricsProviderTest, NotificationObserver); + FRIEND_TEST_ALL_PREFIXES(ContentStabilityMetricsProviderTest, + ExtensionsNotificationObserver); // content::NotificationObserver: void Observe(int type,
diff --git a/chrome/browser/metrics/chrome_stability_metrics_provider_unittest.cc b/components/metrics/content/content_stability_metrics_provider_unittest.cc similarity index 72% rename from chrome/browser/metrics/chrome_stability_metrics_provider_unittest.cc rename to components/metrics/content/content_stability_metrics_provider_unittest.cc index f6a423b..d8671c3 100644 --- a/chrome/browser/metrics/chrome_stability_metrics_provider_unittest.cc +++ b/components/metrics/content/content_stability_metrics_provider_unittest.cc
@@ -4,13 +4,9 @@ #include "components/metrics/content/content_stability_metrics_provider.h" -#include "base/macros.h" #include "base/test/metrics/histogram_tester.h" #include "build/build_config.h" -#include "chrome/browser/metrics/chrome_metrics_extensions_helper.h" -#include "chrome/test/base/testing_browser_process.h" -#include "chrome/test/base/testing_profile.h" -#include "chrome/test/base/testing_profile_manager.h" +#include "components/metrics/content/extensions_helper.h" #include "components/prefs/pref_service.h" #include "components/prefs/scoped_user_pref_update.h" #include "components/prefs/testing_pref_service.h" @@ -26,37 +22,58 @@ #include "content/public/common/process_type.h" #include "content/public/test/browser_task_environment.h" #include "content/public/test/mock_render_process_host.h" +#include "content/public/test/test_browser_context.h" #include "extensions/buildflags/buildflags.h" #include "testing/gtest/include/gtest/gtest.h" #include "third_party/metrics_proto/system_profile.pb.h" -#if BUILDFLAG(ENABLE_EXTENSIONS) -#include "extensions/browser/process_map.h" -#endif +namespace metrics { namespace { const char kTestGpuProcessName[] = "content_gpu"; const char kTestUtilityProcessName[] = "test_utility_process"; +class MockExtensionsHelper : public ExtensionsHelper { + public: + MockExtensionsHelper() = default; + MockExtensionsHelper(const MockExtensionsHelper&) = delete; + MockExtensionsHelper& operator=(const MockExtensionsHelper&) = delete; + ~MockExtensionsHelper() override = default; + + void set_extension_host(content::RenderProcessHost* host) { host_ = host; } + // ExtensionsHelper: + bool IsExtensionProcess( + content::RenderProcessHost* render_process_host) override { + return render_process_host == host_; + } + + private: + content::RenderProcessHost* host_ = nullptr; +}; + } // namespace -class ChromeStabilityMetricsProviderTest : public testing::Test { +class ContentStabilityMetricsProviderTest : public testing::Test { protected: - ChromeStabilityMetricsProviderTest() : prefs_(new TestingPrefServiceSimple) { + ContentStabilityMetricsProviderTest() + : prefs_(std::make_unique<TestingPrefServiceSimple>()) { metrics::StabilityMetricsHelper::RegisterPrefs(prefs()->registry()); } + ContentStabilityMetricsProviderTest( + const ContentStabilityMetricsProviderTest&) = delete; + ContentStabilityMetricsProviderTest& operator=( + const ContentStabilityMetricsProviderTest&) = delete; + ~ContentStabilityMetricsProviderTest() override = default; TestingPrefServiceSimple* prefs() { return prefs_.get(); } private: std::unique_ptr<TestingPrefServiceSimple> prefs_; content::BrowserTaskEnvironment task_environment_; - - DISALLOW_COPY_AND_ASSIGN(ChromeStabilityMetricsProviderTest); }; -TEST_F(ChromeStabilityMetricsProviderTest, BrowserChildProcessObserverGpu) { +TEST_F(ContentStabilityMetricsProviderTest, BrowserChildProcessObserverGpu) { base::HistogramTester histogram_tester; metrics::ContentStabilityMetricsProvider provider(prefs(), nullptr); @@ -88,7 +105,8 @@ histogram_tester.GetTotalCountsForPrefix("ChildProcess.").empty()); } -TEST_F(ChromeStabilityMetricsProviderTest, BrowserChildProcessObserverUtility) { +TEST_F(ContentStabilityMetricsProviderTest, + BrowserChildProcessObserverUtility) { base::HistogramTester histogram_tester; metrics::ContentStabilityMetricsProvider provider(prefs(), nullptr); @@ -130,26 +148,16 @@ "ChildProcess.Crashed.UtilityProcessExitCode", kExitCode, 2); } -TEST_F(ChromeStabilityMetricsProviderTest, NotificationObserver) { - base::HistogramTester histogram_tester; - metrics::ContentStabilityMetricsProvider provider( - prefs(), std::make_unique<ChromeMetricsExtensionsHelper>()); - std::unique_ptr<TestingProfileManager> profile_manager( - new TestingProfileManager(TestingBrowserProcess::GetGlobal())); - EXPECT_TRUE(profile_manager->SetUp()); - - // Owned by profile_manager. - TestingProfile* profile( - profile_manager->CreateTestingProfile("StabilityTestProfile")); - - std::unique_ptr<content::MockRenderProcessHostFactory> rph_factory( - new content::MockRenderProcessHostFactory()); +TEST_F(ContentStabilityMetricsProviderTest, NotificationObserver) { + metrics::ContentStabilityMetricsProvider provider(prefs(), nullptr); + content::TestBrowserContext browser_context; + content::MockRenderProcessHostFactory rph_factory; scoped_refptr<content::SiteInstance> site_instance( - content::SiteInstance::Create(profile)); + content::SiteInstance::Create(&browser_context)); // Owned by rph_factory. - content::RenderProcessHost* host( - rph_factory->CreateRenderProcessHost(profile, site_instance.get())); + content::RenderProcessHost* host(rph_factory.CreateRenderProcessHost( + &browser_context, site_instance.get())); // Crash and abnormal termination should increment renderer crash count. content::ChildProcessTerminationInfo crash_details; @@ -192,47 +200,57 @@ // be executed immediately. provider.ProvideStabilityMetrics(&system_profile); -#if defined(OS_ANDROID) - EXPECT_EQ( - 2u, - histogram_tester.GetAllSamples("Stability.Android.RendererCrash").size()); -#else EXPECT_EQ(2, system_profile.stability().renderer_crash_count()); -#endif EXPECT_EQ(1, system_profile.stability().renderer_failed_launch_count()); EXPECT_EQ(0, system_profile.stability().extension_renderer_crash_count()); +} +// Assertions for an extension related crash. +// This test only works if extensions are enabled as there is a DCHECK in +// StabilityMetricsHelper that it is only called with a value of true for +// extension process if extensions are enabled. #if BUILDFLAG(ENABLE_EXTENSIONS) - provider.ClearSavedStabilityMetrics(); +TEST_F(ContentStabilityMetricsProviderTest, ExtensionsNotificationObserver) { + content::TestBrowserContext browser_context; + content::MockRenderProcessHostFactory rph_factory; + scoped_refptr<content::SiteInstance> site_instance( + content::SiteInstance::Create(&browser_context)); // Owned by rph_factory. - content::RenderProcessHost* extension_host( - rph_factory->CreateRenderProcessHost(profile, site_instance.get())); - - // Make the rph an extension rph. - extensions::ProcessMap::Get(profile) - ->Insert("1", extension_host->GetID(), site_instance->GetId()); + content::RenderProcessHost* extension_host = + rph_factory.CreateRenderProcessHost(&browser_context, + site_instance.get()); + auto extensions_helper = std::make_unique<MockExtensionsHelper>(); + extensions_helper->set_extension_host(extension_host); + metrics::ContentStabilityMetricsProvider provider( + prefs(), std::move(extensions_helper)); // Crash and abnormal termination should increment extension crash count. + content::ChildProcessTerminationInfo crash_details; + crash_details.status = base::TERMINATION_STATUS_PROCESS_CRASHED; + crash_details.exit_code = 1; provider.Observe( content::NOTIFICATION_RENDERER_PROCESS_CLOSED, content::Source<content::RenderProcessHost>(extension_host), content::Details<content::ChildProcessTerminationInfo>(&crash_details)); // Failed launch increments failed launch count. + content::ChildProcessTerminationInfo failed_launch_details; + failed_launch_details.status = base::TERMINATION_STATUS_LAUNCH_FAILED; + failed_launch_details.exit_code = 1; provider.Observe(content::NOTIFICATION_RENDERER_PROCESS_CLOSED, content::Source<content::RenderProcessHost>(extension_host), content::Details<content::ChildProcessTerminationInfo>( &failed_launch_details)); - system_profile.Clear(); + metrics::SystemProfileProto system_profile; provider.ProvideStabilityMetrics(&system_profile); EXPECT_EQ(0, system_profile.stability().renderer_crash_count()); EXPECT_EQ(1, system_profile.stability().extension_renderer_crash_count()); EXPECT_EQ( 1, system_profile.stability().extension_renderer_failed_launch_count()); +} #endif - profile_manager->DeleteAllTestingProfiles(); -} +} // namespace metrics
diff --git a/components/omnibox/browser/autocomplete_match.cc b/components/omnibox/browser/autocomplete_match.cc index 0e58197..63d266d 100644 --- a/components/omnibox/browser/autocomplete_match.cc +++ b/components/omnibox/browser/autocomplete_match.cc
@@ -1104,7 +1104,7 @@ } void AutocompleteMatch::UpgradeMatchWithPropertiesFrom( - const AutocompleteMatch& duplicate_match) { + AutocompleteMatch& duplicate_match) { // For Entity Matches, absorb the duplicate match's |allowed_to_be_default| // and |inline_autocomplete| properties. if (type == AutocompleteMatchType::SEARCH_SUGGEST_ENTITY && @@ -1136,6 +1136,7 @@ // Take the |pedal|, if any, so that it will be presented instead of buried. if (!pedal && duplicate_match.pedal) { pedal = duplicate_match.pedal; + duplicate_match.pedal = nullptr; } }
diff --git a/components/omnibox/browser/autocomplete_match.h b/components/omnibox/browser/autocomplete_match.h index 78c398f..7f23da1 100644 --- a/components/omnibox/browser/autocomplete_match.h +++ b/components/omnibox/browser/autocomplete_match.h
@@ -423,7 +423,7 @@ // Upgrades this match by absorbing the best properties from // |duplicate_match|. For instance: if |duplicate_match| has a higher // relevance score, this match's own relevance score will be upgraded. - void UpgradeMatchWithPropertiesFrom(const AutocompleteMatch& duplicate_match); + void UpgradeMatchWithPropertiesFrom(AutocompleteMatch& duplicate_match); // Called for navigation suggestions whose URLs cannot be inline autocompleted // (e.g. because the input is not a prefix of the URL), to check if |title|
diff --git a/components/paint_preview/browser/paint_preview_client.cc b/components/paint_preview/browser/paint_preview_client.cc index b87321e39..a94cc484 100644 --- a/components/paint_preview/browser/paint_preview_client.cc +++ b/components/paint_preview/browser/paint_preview_client.cc
@@ -18,6 +18,7 @@ #include "base/unguessable_token.h" #include "components/paint_preview/common/capture_result.h" #include "components/paint_preview/common/mojom/paint_preview_recorder.mojom-forward.h" +#include "components/paint_preview/common/version.h" #include "components/ukm/content/source_url_recorder.h" #include "content/public/browser/browser_task_traits.h" #include "content/public/browser/browser_thread.h" @@ -283,8 +284,9 @@ document_data.should_clean_up_files = true; document_data.persistence = params.persistence; document_data.root_dir = params.root_dir; - document_data.proto.mutable_metadata()->set_url( - render_frame_host->GetLastCommittedURL().spec()); + auto* metadata = document_data.proto.mutable_metadata(); + metadata->set_url(render_frame_host->GetLastCommittedURL().spec()); + metadata->set_version(kPaintPreviewVersion); document_data.callback = std::move(callback); document_data.source_id = ukm::GetSourceIdForWebContentsDocument(web_contents());
diff --git a/components/paint_preview/browser/paint_preview_client_unittest.cc b/components/paint_preview/browser/paint_preview_client_unittest.cc index be122f61..32c6304 100644 --- a/components/paint_preview/browser/paint_preview_client_unittest.cc +++ b/components/paint_preview/browser/paint_preview_client_unittest.cc
@@ -18,6 +18,7 @@ #include "components/paint_preview/common/mojom/paint_preview_recorder.mojom.h" #include "components/paint_preview/common/proto/paint_preview.pb.h" #include "components/paint_preview/common/test_utils.h" +#include "components/paint_preview/common/version.h" #include "content/public/browser/render_frame_host.h" #include "content/public/browser/render_process_host.h" #include "content/public/browser/web_contents.h" @@ -161,7 +162,9 @@ response->scroll_offsets = gfx::Size(5, 10); PaintPreviewProto expected_proto; - expected_proto.mutable_metadata()->set_url(expected_url.spec()); + auto* metadata = expected_proto.mutable_metadata(); + metadata->set_url(expected_url.spec()); + metadata->set_version(kPaintPreviewVersion); PaintPreviewFrameProto* main_frame = expected_proto.mutable_root_frame(); main_frame->set_is_main_frame(true); main_frame->set_scroll_offset_x(5);
diff --git a/components/paint_preview/common/BUILD.gn b/components/paint_preview/common/BUILD.gn index 113ee23..283ad37 100644 --- a/components/paint_preview/common/BUILD.gn +++ b/components/paint_preview/common/BUILD.gn
@@ -25,6 +25,8 @@ "serialized_recording.h", "subset_font.cc", "subset_font.h", + "version.cc", + "version.h", ] deps = [
diff --git a/components/paint_preview/common/proto/paint_preview.proto b/components/paint_preview/common/proto/paint_preview.proto index 1bbf3b0..84dda9b 100644 --- a/components/paint_preview/common/proto/paint_preview.proto +++ b/components/paint_preview/common/proto/paint_preview.proto
@@ -60,10 +60,15 @@ } // Metadata for the capture. -// NEXT_TAG = 2 +// NEXT_TAG = 3 message MetadataProto { // URL of the root frame. required string url = 1; + + // Records the version number of the recording. Should be incremented if there + // is a breaking change to the custorm SkPicture deserialization or storage + // system. + optional uint64 version = 2; } // A paint preview of the entire page.
diff --git a/components/paint_preview/common/version.cc b/components/paint_preview/common/version.cc new file mode 100644 index 0000000..b3ca7c1 --- /dev/null +++ b/components/paint_preview/common/version.cc
@@ -0,0 +1,11 @@ +// Copyright 2020 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "components/paint_preview/common/version.h" + +namespace paint_preview { + +const uint32_t kPaintPreviewVersion = 1; + +} // namespace paint_preview
diff --git a/components/paint_preview/common/version.h b/components/paint_preview/common/version.h new file mode 100644 index 0000000..308c62f --- /dev/null +++ b/components/paint_preview/common/version.h
@@ -0,0 +1,18 @@ +// Copyright 2020 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef COMPONENTS_PAINT_PREVIEW_COMMON_VERSION_H_ +#define COMPONENTS_PAINT_PREVIEW_COMMON_VERSION_H_ + +#include <stdint.h> + +namespace paint_preview { + +// Version of the paint preview. Should be incremented on breaking changes to +// the storage format or the SkPicture deserialization process. +extern const uint32_t kPaintPreviewVersion; + +} // namespace paint_preview + +#endif // COMPONENTS_PAINT_PREVIEW_COMMON_VERSION_H_
diff --git a/components/paint_preview/player/android/javatests/paint_preview_test_service.cc b/components/paint_preview/player/android/javatests/paint_preview_test_service.cc index 4b17f0b..dc3ef5dd 100644 --- a/components/paint_preview/player/android/javatests/paint_preview_test_service.cc +++ b/components/paint_preview/player/android/javatests/paint_preview_test_service.cc
@@ -18,6 +18,7 @@ #include "components/paint_preview/common/file_stream.h" #include "components/paint_preview/common/file_utils.h" #include "components/paint_preview/common/proto/paint_preview.pb.h" +#include "components/paint_preview/common/version.h" #include "components/paint_preview/player/android/javatests_jni_headers/PaintPreviewTestService_jni.h" #include "third_party/skia/include/core/SkCanvas.h" #include "third_party/skia/include/core/SkColor.h" @@ -237,6 +238,7 @@ PaintPreviewProto paint_preview; auto* metadata = paint_preview.mutable_metadata(); metadata->set_url(base::android::ConvertJavaStringToUTF8(env, j_url)); + metadata->set_version(kPaintPreviewVersion); auto skp_path = path.AppendASCII(base::StrCat({root_it->second.guid.ToString(), ".skp"}));
diff --git a/components/paint_preview/player/android/player_compositor_delegate_android.cc b/components/paint_preview/player/android/player_compositor_delegate_android.cc index 1b2dced..b64f821 100644 --- a/components/paint_preview/player/android/player_compositor_delegate_android.cc +++ b/components/paint_preview/player/android/player_compositor_delegate_android.cc
@@ -102,6 +102,12 @@ LOG(ERROR) << "Compositor process failed to begin with code: " << static_cast<int>(compositor_status); std::move(compositor_error_).Run(static_cast<int>(compositor_status)); + + // If there was a problem, prevent it from happening again by deleting it. + auto file_manager = paint_preview_service_->GetFileManager(); + file_manager->GetTaskRunner()->PostTask( + FROM_HERE, + base::BindOnce(&FileManager::DeleteArtifactSet, file_manager, key_)); return; } auto delta = base::TimeTicks::Now() - startup_timestamp_;
diff --git a/components/paint_preview/player/compositor_status.h b/components/paint_preview/player/compositor_status.h index 0ed7597..321f0ed 100644 --- a/components/paint_preview/player/compositor_status.h +++ b/components/paint_preview/player/compositor_status.h
@@ -7,6 +7,9 @@ namespace paint_preview { +// IMPORTANT: if CompositorStatus is updated, please update the corresponding +// entry for TabbedPaintPreviewCompositorFailureReason in enums.xml. + // GENERATED_JAVA_ENUM_PACKAGE: ( // org.chromium.components.paintpreview.player) enum class CompositorStatus : int { @@ -18,6 +21,8 @@ COMPOSITOR_DESERIALIZATION_ERROR, INVALID_ROOT_FRAME_SKP, INVALID_REQUEST, + OLD_VERSION, + UNEXPECTED_VERSION, COUNT, };
diff --git a/components/paint_preview/player/player_compositor_delegate.cc b/components/paint_preview/player/player_compositor_delegate.cc index 097348d..c8d8f483 100644 --- a/components/paint_preview/player/player_compositor_delegate.cc +++ b/components/paint_preview/player/player_compositor_delegate.cc
@@ -26,6 +26,7 @@ #include "components/paint_preview/common/proto/paint_preview.pb.h" #include "components/paint_preview/common/recording_map.h" #include "components/paint_preview/common/serialized_recording.h" +#include "components/paint_preview/common/version.h" #include "components/paint_preview/public/paint_preview_compositor_client.h" #include "components/paint_preview/public/paint_preview_compositor_service.h" #include "components/services/paint_preview_compositor/public/mojom/paint_preview_compositor.mojom.h" @@ -192,6 +193,23 @@ return; } + const uint32_t version = proto->metadata().version(); + if (version < kPaintPreviewVersion) { + // If the version is old there was a breaking change to either; + // - The SkPicture encoding format + // - The storage structure + // In either case, the new code is likely unable to deserialize the result + // so we should early abort. + OnCompositorReady(CompositorStatus::OLD_VERSION, nullptr); + return; + } else if (version > kPaintPreviewVersion) { + // This shouldn't happen hence NOTREACHED(). However, in release we should + // treat this as a new failure type to catch any possible regressions. + OnCompositorReady(CompositorStatus::UNEXPECTED_VERSION, nullptr); + NOTREACHED(); + return; + } + auto proto_url = GURL(proto->metadata().url()); if (expected_url != proto_url) { OnCompositorReady(CompositorStatus::URL_MISMATCH, nullptr);
diff --git a/components/paint_preview/player/player_compositor_delegate.h b/components/paint_preview/player/player_compositor_delegate.h index 636bc5ba..6973e6f 100644 --- a/components/paint_preview/player/player_compositor_delegate.h +++ b/components/paint_preview/player/player_compositor_delegate.h
@@ -61,6 +61,8 @@ protected: base::OnceCallback<void(int)> compositor_error_; + PaintPreviewBaseService* paint_preview_service_; + DirectoryKey key_; private: void OnCompositorReadyStatusAdapter( @@ -78,8 +80,6 @@ void SendCompositeRequest( mojom::PaintPreviewBeginCompositeRequestPtr begin_composite_request); - PaintPreviewBaseService* paint_preview_service_; - DirectoryKey key_; bool compress_on_close_; std::unique_ptr<PaintPreviewCompositorService, base::OnTaskRunnerDeleter> paint_preview_compositor_service_;
diff --git a/components/paint_preview/player/player_compositor_delegate_unittest.cc b/components/paint_preview/player/player_compositor_delegate_unittest.cc index 66ff43da..b1690b3 100644 --- a/components/paint_preview/player/player_compositor_delegate_unittest.cc +++ b/components/paint_preview/player/player_compositor_delegate_unittest.cc
@@ -18,6 +18,7 @@ #include "components/paint_preview/browser/file_manager.h" #include "components/paint_preview/browser/paint_preview_base_service.h" #include "components/paint_preview/common/proto/paint_preview.pb.h" +#include "components/paint_preview/common/version.h" #include "testing/gtest/include/gtest/gtest.h" #include "ui/gfx/geometry/rect.h" #include "url/gurl.h" @@ -35,7 +36,9 @@ GURL url("www.example.com"); PaintPreviewProto proto; - proto.mutable_metadata()->set_url(url.spec()); + auto* metadata = proto.mutable_metadata(); + metadata->set_url(url.spec()); + metadata->set_version(kPaintPreviewVersion); GURL root_frame_link("www.chromium.org"); auto root_frame_id = base::UnguessableToken::Create();
diff --git a/components/password_manager/core/browser/change_password_url_service_impl.cc b/components/password_manager/core/browser/change_password_url_service_impl.cc index 36d8f44..9b0c9d7 100644 --- a/components/password_manager/core/browser/change_password_url_service_impl.cc +++ b/components/password_manager/core/browser/change_password_url_service_impl.cc
@@ -8,6 +8,7 @@ #include "base/callback.h" #include "base/containers/flat_map.h" #include "base/json/json_reader.h" +#include "base/metrics/histogram_functions.h" #include "base/timer/elapsed_timer.h" #include "components/password_manager/core/common/password_manager_pref_names.h" #include "components/prefs/pref_service.h" @@ -21,10 +22,23 @@ using network::SimpleURLLoader; constexpr size_t kMaxDownloadSize = 50 * 1024; + } // namespace namespace password_manager { +const char kGetChangePasswordUrlMetricName[] = + "PasswordManager.WellKnownChangePassword.GetChangePasswordUsage"; +const char kChangePasswordUrlServiceFetchResultMetricName[] = + "PasswordManager.WellKnownChangePassword." + "GstaticFetchResult"; +const char kGstaticFetchErrorCodeMetricName[] = + "PasswordManager.WellKnownChangePassword.GstaticFetchErrorCode"; +const char kGstaticFetchHttpResponseCodeMetricName[] = + "PasswordManager.WellKnownChangePassword.GstaticFetchHttpResponseCode"; +const char kGstaticFetchTimeMetricName[] = + "PasswordManager.WellKnownChangePassword.GstaticFetchTime"; + constexpr char ChangePasswordUrlServiceImpl::kChangePasswordUrlOverrideUrl[]; ChangePasswordUrlServiceImpl::ChangePasswordUrlServiceImpl( @@ -36,15 +50,13 @@ ChangePasswordUrlServiceImpl::~ChangePasswordUrlServiceImpl() = default; void ChangePasswordUrlServiceImpl::PrefetchURLs() { - if (started_fetching_) { - return; - } - started_fetching_ = true; - - // Don't fetch the gstatic file when PasswordManager policy is disabled. if (!pref_service_->GetBoolean( password_manager::prefs::kCredentialsEnableService)) { - fetch_complete_ = true; + state_ = FetchState::kUrlOverridesDisabled; + return; + } + if (state_ == FetchState::kIsLoading || + state_ == FetchState::kFetchSucceeded) { return; } @@ -91,7 +103,8 @@ })"); url_loader_ = SimpleURLLoader::Create(std::move(resource_request), traffic_annotation); - + // Start Timer. + fetch_timer_ = base::ElapsedTimer(); // Binding the callback to |this| is safe, because the navigationthrottle // defers if the request is not received yet. Thereby the throttle still exist // when the response arrives. @@ -100,16 +113,33 @@ base::BindOnce(&ChangePasswordUrlServiceImpl::OnFetchComplete, base::Unretained(this)), kMaxDownloadSize); + state_ = FetchState::kIsLoading; } GURL ChangePasswordUrlServiceImpl::GetChangePasswordUrl(const GURL& url) { - DCHECK(started_fetching_) << "Call PrefetchURLs() before."; - std::string domain_and_registry = - net::registry_controlled_domains::GetDomainAndRegistry( - url, net::registry_controlled_domains::INCLUDE_PRIVATE_REGISTRIES); - auto it = change_password_url_map_.find(domain_and_registry); - if (it != change_password_url_map_.end()) { - return it->second; + DCHECK_NE(state_, FetchState::kNoRequestStarted) + << "Call PrefetchURLs() before."; + // Metrics for GetChangePasswordUrl are only logged when the request is still + // ongoing or if it succeeded. Network erros are logged in the resonse + // callback. + if (state_ == FetchState::kIsLoading) { + base::UmaHistogramEnumeration(kGetChangePasswordUrlMetricName, + GetChangePasswordUrlMetric::kNotFetchedYet); + } else if (state_ == FetchState::kFetchSucceeded) { + std::string domain_and_registry = + net::registry_controlled_domains::GetDomainAndRegistry( + url, net::registry_controlled_domains::INCLUDE_PRIVATE_REGISTRIES); + auto it = change_password_url_map_.find(domain_and_registry); + if (it != change_password_url_map_.end()) { + base::UmaHistogramEnumeration( + kGetChangePasswordUrlMetricName, + GetChangePasswordUrlMetric::kUrlOverrideUsed); + return it->second; + } else { + base::UmaHistogramEnumeration( + kGetChangePasswordUrlMetricName, + GetChangePasswordUrlMetric::kNoUrlOverrideAvailable); + } } // Fallback if no valid change-password url available no response available. return GURL(); @@ -117,11 +147,15 @@ void ChangePasswordUrlServiceImpl::OnFetchComplete( std::unique_ptr<std::string> response_body) { - fetch_complete_ = true; + base::UmaHistogramTimes(kGstaticFetchTimeMetricName, fetch_timer_.Elapsed()); // TODO(crbug.com/1086141): Log error codes in histograms. if (response_body) { base::Optional<base::Value> data = base::JSONReader::Read(*response_body); if (data && data->is_dict()) { + state_ = FetchState::kFetchSucceeded; + base::UmaHistogramEnumeration( + kChangePasswordUrlServiceFetchResultMetricName, + ChangePasswordUrlServiceFetchResult::kSuccess); for (auto&& url_pair : data->DictItems()) { if (url_pair.second.is_string()) { GURL url = GURL(url_pair.second.GetString()); @@ -131,7 +165,26 @@ } } } + } else { + state_ = FetchState::kFetchFailed; + base::UmaHistogramEnumeration( + kChangePasswordUrlServiceFetchResultMetricName, + ChangePasswordUrlServiceFetchResult::kMalformed); } + } else { + state_ = FetchState::kFetchFailed; + int response_code = -1; + if (url_loader_->ResponseInfo() && url_loader_->ResponseInfo()->headers) { + response_code = url_loader_->ResponseInfo()->headers->response_code(); + } + base::UmaHistogramSparse(kGstaticFetchHttpResponseCodeMetricName, + response_code); + // Network error codes are negative. See: src/net/base/net_error_list.h. + base::UmaHistogramSparse(kGstaticFetchErrorCodeMetricName, + -url_loader_->NetError()); + base::UmaHistogramEnumeration( + kChangePasswordUrlServiceFetchResultMetricName, + ChangePasswordUrlServiceFetchResult::kFailure); } }
diff --git a/components/password_manager/core/browser/change_password_url_service_impl.h b/components/password_manager/core/browser/change_password_url_service_impl.h index e1985a7..db8dd7bb 100644 --- a/components/password_manager/core/browser/change_password_url_service_impl.h +++ b/components/password_manager/core/browser/change_password_url_service_impl.h
@@ -13,6 +13,7 @@ #include "base/callback_forward.h" #include "base/containers/flat_map.h" #include "base/memory/scoped_refptr.h" +#include "base/timer/elapsed_timer.h" #include "components/password_manager/core/browser/change_password_url_service.h" #include "services/network/public/cpp/simple_url_loader.h" @@ -25,6 +26,36 @@ namespace password_manager { +extern const char kGetChangePasswordUrlMetricName[]; +extern const char kChangePasswordUrlServiceFetchResultMetricName[]; +extern const char kGstaticFetchErrorCodeMetricName[]; +extern const char kGstaticFetchHttpResponseCodeMetricName[]; +extern const char kGstaticFetchTimeMetricName[]; + +// Used to record metrics for the usage and timing of the GetChangePasswordUrl +// call. These values are persisted to logs. Entries should not be renumbered +// and numeric values should never be reused. +enum class GetChangePasswordUrlMetric { + // Used when GetChangePasswordUrl is called before the gstatic response + // arrives. + kNotFetchedYet = 0, + // Used when a url was in the gsatic file. + kUrlOverrideUsed = 1, + // Used when no override url was available + kNoUrlOverrideAvailable = 2, + kMaxValue = kNoUrlOverrideAvailable, +}; + +// Used to log the response of the request to the gstatic file. These values are +// persisted to logs. Entries should not be renumbered and numeric values should +// never be reused. +enum class ChangePasswordUrlServiceFetchResult { + kSuccess = 0, + kFailure = 1, + kMalformed = 2, + kMaxValue = kMalformed, +}; + class ChangePasswordUrlServiceImpl : public password_manager::ChangePasswordUrlService { public: @@ -42,13 +73,23 @@ "change_password_urls.json"; private: + enum class FetchState { + // Default state, no request started. + kNoRequestStarted, + // Active while gstatic file is fetched. + kIsLoading, + // Set when the fetch succeeded. + kFetchSucceeded, + // Set when the fetch failed. + kFetchFailed, + // Set when the password manager is disabled and the gstatic file is not + // fetched. + kUrlOverridesDisabled, + }; // Callback for the the request to gstatic. void OnFetchComplete(std::unique_ptr<std::string> response_body); - // Stores if the request is already started to only fetch once. - bool started_fetching_ = false; - // True when the gstatic response arrived. - bool fetch_complete_ = false; + FetchState state_ = FetchState::kNoRequestStarted; // Stores the JSON result for the url overrides. base::flat_map<std::string, GURL> change_password_url_map_; // URL loader object for the gstatic request. @@ -56,9 +97,9 @@ // SharedURLLoaderFactory for the gstatic request, argument in the // constructor. scoped_refptr<network::SharedURLLoaderFactory> url_loader_factory_; - // We are only fetching the gstatic file if PasswordManager is enabled. - // We use the PrefService to check if the PasswordManager is enabled. PrefService* pref_service_; + // Timer to track the response time of the gstatic request. + base::ElapsedTimer fetch_timer_; }; } // namespace password_manager
diff --git a/components/password_manager/core/browser/change_password_url_service_impl_unittest.cc b/components/password_manager/core/browser/change_password_url_service_impl_unittest.cc index b32cdf6..814e7ea 100644 --- a/components/password_manager/core/browser/change_password_url_service_impl_unittest.cc +++ b/components/password_manager/core/browser/change_password_url_service_impl_unittest.cc
@@ -4,6 +4,7 @@ #include "components/password_manager/core/browser/change_password_url_service_impl.h" #include "base/logging.h" +#include "base/test/metrics/histogram_tester.h" #include "base/test/mock_callback.h" #include "base/test/task_environment.h" #include "components/password_manager/core/common/password_manager_pref_names.h" @@ -12,9 +13,11 @@ #include "services/network/public/cpp/weak_wrapper_shared_url_loader_factory.h" #include "services/network/test/test_shared_url_loader_factory.h" #include "services/network/test/test_url_loader_factory.h" +#include "services/network/test/test_utils.h" #include "testing/gtest/include/gtest/gtest.h" namespace { + constexpr char kMockResponse[] = R"({ "google.com": "https://google.com/change-password", "a.netlify.com": "https://a.netlify.com/change-password", @@ -27,10 +30,7 @@ class ChangePasswordUrlServiceTest : public testing::Test { public: ChangePasswordUrlServiceTest() { - test_url_loader_factory_.AddResponse( - password_manager::ChangePasswordUrlServiceImpl:: - kChangePasswordUrlOverrideUrl, - kMockResponse); + SetMockResponse(); // Password Manager is enabled by default. test_pref_service_.registry()->RegisterBooleanPref( password_manager::prefs::kCredentialsEnableService, true); @@ -39,6 +39,8 @@ // Fetches the url overrides and waits until the response arrived. void PrefetchAndWaitUntilDone(); + void PrefetchURLs() { change_password_url_service_.PrefetchURLs(); } + void DisablePasswordManagerEnabledPolicy() { test_pref_service_.SetBoolean( password_manager::prefs::kCredentialsEnableService, false); @@ -47,9 +49,21 @@ GURL GetChangePasswordUrl(const GURL& url) { return change_password_url_service_.GetChangePasswordUrl(url); } + void SetMockResponse(const std::string& response = kMockResponse) { + test_url_loader_factory_.AddResponse( + password_manager::ChangePasswordUrlServiceImpl:: + kChangePasswordUrlOverrideUrl, + response); + } void ClearMockResponses() { test_url_loader_factory_.ClearResponses(); } + network::TestURLLoaderFactory& test_url_loader_factory() { + return test_url_loader_factory_; + } + + base::HistogramTester& histogram_tester() { return histogram_tester_; } + private: base::test::SingleThreadTaskEnvironment task_environment_{ base::test::TaskEnvironment::TimeSource::MOCK_TIME}; @@ -60,6 +74,7 @@ TestingPrefServiceSimple test_pref_service_; ChangePasswordUrlServiceImpl change_password_url_service_{ test_shared_loader_factory_, &test_pref_service_}; + base::HistogramTester histogram_tester_; }; void ChangePasswordUrlServiceTest::PrefetchAndWaitUntilDone() { @@ -89,18 +104,120 @@ TEST_F(ChangePasswordUrlServiceTest, PassworManagerPolicyDisabled) { DisablePasswordManagerEnabledPolicy(); - PrefetchAndWaitUntilDone(); EXPECT_EQ(GetChangePasswordUrl(GURL("https://google.com/foo")), GURL()); } -TEST_F(ChangePasswordUrlServiceTest, NetworkRequestFails) { +TEST_F(ChangePasswordUrlServiceTest, NetworkRequestFails_RetryWorks) { ClearMockResponses(); + PrefetchURLs(); + // Waiting for response. + EXPECT_EQ(GetChangePasswordUrl(GURL("https://google.com/foo")), GURL()); + + test_url_loader_factory().SimulateResponseForPendingRequest( + GURL(password_manager::ChangePasswordUrlServiceImpl:: + kChangePasswordUrlOverrideUrl), + network::URLLoaderCompletionStatus(net::OK), + network::CreateURLResponseHead(net::HTTP_NOT_FOUND), ""); + + // 404 response received. + EXPECT_EQ(GetChangePasswordUrl(GURL("https://google.com/foo")), GURL()); + + SetMockResponse(); PrefetchAndWaitUntilDone(); + // Successful response arrived. + EXPECT_EQ(GetChangePasswordUrl(GURL("https://google.com/foo")), + GURL("https://google.com/change-password")); +} + +TEST_F(ChangePasswordUrlServiceTest, + GetChangePasswordUrlMetrics_NotFetchedYet) { + ClearMockResponses(); + PrefetchURLs(); + EXPECT_EQ(GetChangePasswordUrl(GURL("https://google.com/foo")), GURL()); + histogram_tester().ExpectUniqueSample( + kGetChangePasswordUrlMetricName, + GetChangePasswordUrlMetric::kNotFetchedYet, 1); +} + +TEST_F(ChangePasswordUrlServiceTest, + GetChangePasswordUrlMetrics_UrlOverrideUsed) { + PrefetchAndWaitUntilDone(); + + EXPECT_EQ(GetChangePasswordUrl(GURL("https://google.com/foo")), + GURL("https://google.com/change-password")); + histogram_tester().ExpectUniqueSample( + kGetChangePasswordUrlMetricName, + GetChangePasswordUrlMetric::kUrlOverrideUsed, 1); +} + +TEST_F(ChangePasswordUrlServiceTest, + GetChangePasswordUrlMetrics_NoUrlOverrideAvailable) { + PrefetchAndWaitUntilDone(); + + EXPECT_EQ(GetChangePasswordUrl(GURL("https://netflix.com")), GURL()); + histogram_tester().ExpectUniqueSample( + kGetChangePasswordUrlMetricName, + GetChangePasswordUrlMetric::kNoUrlOverrideAvailable, 1); +} + +TEST_F(ChangePasswordUrlServiceTest, NetworkMetrics_Failed) { + ClearMockResponses(); + PrefetchAndWaitUntilDone(); + + // Still waiting for response + histogram_tester().ExpectTotalCount(kGstaticFetchTimeMetricName, 0); + histogram_tester().ExpectTotalCount(kGstaticFetchHttpResponseCodeMetricName, + 0); + histogram_tester().ExpectTotalCount(kGstaticFetchErrorCodeMetricName, 0); + histogram_tester().ExpectTotalCount( + kChangePasswordUrlServiceFetchResultMetricName, 0); + + // Set response + test_url_loader_factory().SimulateResponseForPendingRequest( + GURL(password_manager::ChangePasswordUrlServiceImpl:: + kChangePasswordUrlOverrideUrl), + network::URLLoaderCompletionStatus(net::OK), + network::CreateURLResponseHead(net::HTTP_NOT_FOUND), ""); + + histogram_tester().ExpectTotalCount(kGstaticFetchTimeMetricName, 1); + histogram_tester().ExpectUniqueSample(kGstaticFetchHttpResponseCodeMetricName, + net::HTTP_NOT_FOUND, 1); + histogram_tester().ExpectUniqueSample(kGstaticFetchErrorCodeMetricName, + -net::ERR_HTTP_RESPONSE_CODE_FAILURE, + 1); + histogram_tester().ExpectUniqueSample( + kChangePasswordUrlServiceFetchResultMetricName, + ChangePasswordUrlServiceFetchResult::kFailure, 1); +} + +TEST_F(ChangePasswordUrlServiceTest, NetworkMetrics_Success) { + PrefetchAndWaitUntilDone(); + + histogram_tester().ExpectTotalCount(kGstaticFetchTimeMetricName, 1); + histogram_tester().ExpectTotalCount(kGstaticFetchHttpResponseCodeMetricName, + 0); + histogram_tester().ExpectTotalCount(kGstaticFetchErrorCodeMetricName, 0); + histogram_tester().ExpectUniqueSample( + kChangePasswordUrlServiceFetchResultMetricName, + ChangePasswordUrlServiceFetchResult::kSuccess, 1); +} + +TEST_F(ChangePasswordUrlServiceTest, NetworkMetrics_Malformed) { + SetMockResponse("invelid_json"); + PrefetchAndWaitUntilDone(); + + histogram_tester().ExpectTotalCount(kGstaticFetchTimeMetricName, 1); + histogram_tester().ExpectTotalCount(kGstaticFetchHttpResponseCodeMetricName, + 0); + histogram_tester().ExpectTotalCount(kGstaticFetchErrorCodeMetricName, 0); + histogram_tester().ExpectUniqueSample( + kChangePasswordUrlServiceFetchResultMetricName, + ChangePasswordUrlServiceFetchResult::kMalformed, 1); } } // namespace password_manager
diff --git a/components/payments/content/BUILD.gn b/components/payments/content/BUILD.gn index e107f2e..08051f7 100644 --- a/components/payments/content/BUILD.gn +++ b/components/payments/content/BUILD.gn
@@ -85,6 +85,8 @@ } else { sources += [ "content_payment_request_delegate.h", + "payment_credential.cc", + "payment_credential.h", "payment_request.cc", "payment_request.h", "payment_request_dialog.h",
diff --git a/components/payments/content/payment_credential.cc b/components/payments/content/payment_credential.cc new file mode 100644 index 0000000..4f6f625 --- /dev/null +++ b/components/payments/content/payment_credential.cc
@@ -0,0 +1,25 @@ +// Copyright 2020 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "components/payments/content/payment_credential.h" + +namespace payments { + +PaymentCredential::PaymentCredential( + mojo::PendingReceiver<mojom::PaymentCredential> receiver) { + receiver_.Bind(std::move(receiver)); +} + +PaymentCredential::~PaymentCredential() = default; + +void PaymentCredential::StorePaymentCredential( + payments::mojom::PaymentCredentialInstrumentPtr instrument, + const std::vector<uint8_t>& credential_id, + const std::string& rp_id, + StorePaymentCredentialCallback callback) { + // TODO(kenrb): Create storage for this credential and save it. + std::move(callback).Run(mojom::PaymentCredentialCreationStatus::SUCCESS); +} + +} // namespace payments
diff --git a/components/payments/content/payment_credential.h b/components/payments/content/payment_credential.h new file mode 100644 index 0000000..5c1b5b31 --- /dev/null +++ b/components/payments/content/payment_credential.h
@@ -0,0 +1,43 @@ +// Copyright 2020 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef COMPONENTS_PAYMENTS_CONTENT_PAYMENT_CREDENTIAL_H_ +#define COMPONENTS_PAYMENTS_CONTENT_PAYMENT_CREDENTIAL_H_ + +#include <string> +#include <vector> + +#include "mojo/public/cpp/bindings/pending_receiver.h" +#include "mojo/public/cpp/bindings/receiver.h" +#include "third_party/blink/public/mojom/payments/payment_credential.mojom.h" + +namespace payments { + +// Implementation of the mojom::PaymentCredential interface for storing +// PaymentCredential instruments and their associated WebAuthn credential IDs. +// These can be retrieved later to authenticate during a PaymentRequest +// that uses Secure Payment Confirmation. +class PaymentCredential : public mojom::PaymentCredential { + public: + explicit PaymentCredential( + mojo::PendingReceiver<mojom::PaymentCredential> receiver); + ~PaymentCredential() override; + + PaymentCredential(const PaymentCredential&) = delete; + PaymentCredential& operator=(const PaymentCredential&) = delete; + + // mojom::PaymentCredential: + void StorePaymentCredential( + payments::mojom::PaymentCredentialInstrumentPtr instrument, + const std::vector<uint8_t>& credential_id, + const std::string& rp_id, + StorePaymentCredentialCallback callback) override; + + private: + mojo::Receiver<mojom::PaymentCredential> receiver_{this}; +}; + +} // namespace payments + +#endif // COMPONENTS_PAYMENTS_CONTENT_PAYMENT_CREDENTIAL_H_
diff --git a/components/payments/content/payment_request_web_contents_manager.cc b/components/payments/content/payment_request_web_contents_manager.cc index 63391f7..e0ab813 100644 --- a/components/payments/content/payment_request_web_contents_manager.cc +++ b/components/payments/content/payment_request_web_contents_manager.cc
@@ -9,6 +9,7 @@ #include "base/check.h" #include "base/feature_list.h" #include "components/payments/content/content_payment_request_delegate.h" +#include "components/payments/content/payment_credential.h" #include "components/payments/content/payment_request.h" #include "components/payments/content/payment_request_display_manager.h" #include "components/payments/content/secure_payment_confirmation_payment_request_delegate.h" @@ -64,6 +65,7 @@ it.second->DidStartMainFrameNavigationToDifferentDocument( !navigation_handle->IsRendererInitiated()); } + payment_credential_ = nullptr; } void PaymentRequestWebContentsManager::RenderFrameDeleted( @@ -87,6 +89,12 @@ payment_requests_.erase(request); } +void PaymentRequestWebContentsManager::CreatePaymentCredential( + mojo::PendingReceiver<payments::mojom::PaymentCredential> receiver) { + payment_credential_ = + std::make_unique<PaymentCredential>(std::move(receiver)); +} + PaymentRequestWebContentsManager::PaymentRequestWebContentsManager( content::WebContents* web_contents) : content::WebContentsObserver(web_contents) {}
diff --git a/components/payments/content/payment_request_web_contents_manager.h b/components/payments/content/payment_request_web_contents_manager.h index a00ef17b..954d51b 100644 --- a/components/payments/content/payment_request_web_contents_manager.h +++ b/components/payments/content/payment_request_web_contents_manager.h
@@ -9,10 +9,12 @@ #include <memory> #include "base/macros.h" +#include "components/payments/content/payment_credential.h" #include "components/payments/content/payment_request.h" #include "content/public/browser/web_contents_observer.h" #include "content/public/browser/web_contents_user_data.h" #include "mojo/public/cpp/bindings/pending_receiver.h" +#include "third_party/blink/public/mojom/payments/payment_credential.mojom.h" #include "third_party/blink/public/mojom/payments/payment_request.mojom.h" namespace content { @@ -56,6 +58,9 @@ // Destroys the given |request|. void DestroyRequest(PaymentRequest* request); + void CreatePaymentCredential( + mojo::PendingReceiver<payments::mojom::PaymentCredential> receiver); + // WebContentsObserver:: void DidStartNavigation( content::NavigationHandle* navigation_handle) override; @@ -72,6 +77,8 @@ // the requests themselves call DestroyRequest(). std::map<PaymentRequest*, std::unique_ptr<PaymentRequest>> payment_requests_; + std::unique_ptr<PaymentCredential> payment_credential_; + WEB_CONTENTS_USER_DATA_KEY_DECL(); DISALLOW_COPY_AND_ASSIGN(PaymentRequestWebContentsManager);
diff --git a/components/performance_manager/BUILD.gn b/components/performance_manager/BUILD.gn index 184fca6..41693801 100644 --- a/components/performance_manager/BUILD.gn +++ b/components/performance_manager/BUILD.gn
@@ -128,8 +128,6 @@ "render_process_host_proxy.cc", "render_process_user_data.cc", "render_process_user_data.h", - "service_worker_client.cc", - "service_worker_client.h", "service_worker_context_adapter.cc", "service_worker_context_adapter.h", "tab_helper_frame_node_source.cc",
diff --git a/components/performance_manager/service_worker_client.cc b/components/performance_manager/service_worker_client.cc deleted file mode 100644 index d97a46d..0000000 --- a/components/performance_manager/service_worker_client.cc +++ /dev/null
@@ -1,42 +0,0 @@ -// Copyright 2020 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#include "components/performance_manager/service_worker_client.h" - -ServiceWorkerClient::ServiceWorkerClient( - content::GlobalFrameRoutingId render_frame_host_id) - : type_(blink::mojom::ServiceWorkerClientType::kWindow), - render_frame_host_id_(render_frame_host_id) {} -ServiceWorkerClient::ServiceWorkerClient( - blink::DedicatedWorkerToken dedicated_worker_token) - : type_(blink::mojom::ServiceWorkerClientType::kDedicatedWorker), - worker_token_(dedicated_worker_token) {} -ServiceWorkerClient::ServiceWorkerClient( - blink::SharedWorkerToken shared_worker_token) - : type_(blink::mojom::ServiceWorkerClientType::kSharedWorker), - worker_token_(shared_worker_token) {} - -ServiceWorkerClient::ServiceWorkerClient(const ServiceWorkerClient& other) = - default; -ServiceWorkerClient& ServiceWorkerClient::operator=( - const ServiceWorkerClient& other) = default; - -ServiceWorkerClient::~ServiceWorkerClient() = default; - -content::GlobalFrameRoutingId ServiceWorkerClient::GetRenderFrameHostId() - const { - DCHECK_EQ(type_, blink::mojom::ServiceWorkerClientType::kWindow); - return render_frame_host_id_; -} - -blink::DedicatedWorkerToken ServiceWorkerClient::GetDedicatedWorkerToken() - const { - DCHECK_EQ(type_, blink::mojom::ServiceWorkerClientType::kDedicatedWorker); - return worker_token_.GetAs<blink::DedicatedWorkerToken>(); -} - -blink::SharedWorkerToken ServiceWorkerClient::GetSharedWorkerToken() const { - DCHECK_EQ(type_, blink::mojom::ServiceWorkerClientType::kSharedWorker); - return worker_token_.GetAs<blink::SharedWorkerToken>(); -}
diff --git a/components/performance_manager/service_worker_client.h b/components/performance_manager/service_worker_client.h deleted file mode 100644 index f209adc..0000000 --- a/components/performance_manager/service_worker_client.h +++ /dev/null
@@ -1,49 +0,0 @@ -// Copyright 2020 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#ifndef COMPONENTS_PERFORMANCE_MANAGER_SERVICE_WORKER_CLIENT_H_ -#define COMPONENTS_PERFORMANCE_MANAGER_SERVICE_WORKER_CLIENT_H_ - -#include "content/public/browser/global_routing_id.h" -#include "content/public/browser/service_worker_client_info.h" -#include "third_party/blink/public/common/tokens/tokens.h" -#include "third_party/blink/public/mojom/service_worker/service_worker_client.mojom.h" - -// Represents a client of a service worker node. -// -// This class is essentially a tagged union where only the field corresponding -// to the |type()| can be accessed. -class ServiceWorkerClient { - public: - explicit ServiceWorkerClient( - content::GlobalFrameRoutingId render_frame_host_id); - explicit ServiceWorkerClient( - blink::DedicatedWorkerToken dedicated_worker_token); - explicit ServiceWorkerClient(blink::SharedWorkerToken shared_worker_token); - - ServiceWorkerClient(const ServiceWorkerClient& other); - ServiceWorkerClient& operator=(const ServiceWorkerClient& other); - - ~ServiceWorkerClient(); - - blink::mojom::ServiceWorkerClientType type() const { return type_; } - - content::GlobalFrameRoutingId GetRenderFrameHostId() const; - blink::DedicatedWorkerToken GetDedicatedWorkerToken() const; - blink::SharedWorkerToken GetSharedWorkerToken() const; - - private: - // The client type. - blink::mojom::ServiceWorkerClientType type_; - - union { - // The frame tree node ID, if this is a window client. - content::GlobalFrameRoutingId render_frame_host_id_; - - // The token of the client, if this is a worker client. - content::DedicatedOrSharedWorkerToken worker_token_; - }; -}; - -#endif // COMPONENTS_PERFORMANCE_MANAGER_SERVICE_WORKER_CLIENT_H_
diff --git a/components/performance_manager/service_worker_context_adapter.cc b/components/performance_manager/service_worker_context_adapter.cc index 115d8c0..547f342 100644 --- a/components/performance_manager/service_worker_context_adapter.cc +++ b/components/performance_manager/service_worker_context_adapter.cc
@@ -310,15 +310,6 @@ observer.OnNoControllees(version_id, scope); } -void ServiceWorkerContextAdapter::OnControlleeNavigationCommitted( - int64_t version_id, - const std::string& uuid, - content::GlobalFrameRoutingId render_frame_host_id) { - for (auto& observer : observer_list_) - observer.OnControlleeNavigationCommitted(version_id, uuid, - render_frame_host_id); -} - void ServiceWorkerContextAdapter::OnReportConsoleMessage( int64_t version_id, const GURL& scope,
diff --git a/components/performance_manager/service_worker_context_adapter.h b/components/performance_manager/service_worker_context_adapter.h index 4fa85c1..ff74724 100644 --- a/components/performance_manager/service_worker_context_adapter.h +++ b/components/performance_manager/service_worker_context_adapter.h
@@ -107,10 +107,6 @@ void OnControlleeRemoved(int64_t version_id, const std::string& client_uuid) override; void OnNoControllees(int64_t version_id, const GURL& scope) override; - void OnControlleeNavigationCommitted( - int64_t version_id, - const std::string& uuid, - content::GlobalFrameRoutingId render_frame_host_id) override; void OnReportConsoleMessage(int64_t version_id, const GURL& scope, const content::ConsoleMessage& message) override;
diff --git a/components/performance_manager/worker_watcher.cc b/components/performance_manager/worker_watcher.cc index 4f72e27..1fb8469c 100644 --- a/components/performance_manager/worker_watcher.cc +++ b/components/performance_manager/worker_watcher.cc
@@ -45,26 +45,6 @@ base::Unretained(worker_node), client_frame_node)); } -// Helper function to add |client_worker_node| as a client of |worker_node| on -// the PM sequence. -void ConnectClientOnGraph(WorkerNodeImpl* worker_node, - WorkerNodeImpl* client_worker_node) { - PerformanceManagerImpl::CallOnGraphImpl( - FROM_HERE, - base::BindOnce(&WorkerNodeImpl::AddClientWorker, - base::Unretained(worker_node), client_worker_node)); -} - -// Helper function to remove |client_worker_node| as a client of |worker_node| -// on the PM sequence. -void DisconnectClientOnGraph(WorkerNodeImpl* worker_node, - WorkerNodeImpl* client_worker_node) { - PerformanceManagerImpl::CallOnGraphImpl( - FROM_HERE, - base::BindOnce(&WorkerNodeImpl::RemoveClientWorker, - base::Unretained(worker_node), client_worker_node)); -} - // Helper function to remove |client_frame_node| as a client of all worker nodes // in |worker_nodes| on the PM sequence. void DisconnectClientsOnGraph(base::flat_set<WorkerNodeImpl*> worker_nodes, @@ -79,20 +59,6 @@ std::move(worker_nodes), client_frame_node)); } -// Helper function to remove |client_worker_node| as a client of all worker -// nodes in |worker_nodes| on the PM sequence. -void DisconnectClientsOnGraph(base::flat_set<WorkerNodeImpl*> worker_nodes, - WorkerNodeImpl* client_worker_node) { - PerformanceManagerImpl::CallOnGraphImpl( - FROM_HERE, base::BindOnce( - [](base::flat_set<WorkerNodeImpl*> worker_nodes, - WorkerNodeImpl* client_worker_node) { - for (auto* worker_node : worker_nodes) - worker_node->RemoveClientWorker(client_worker_node); - }, - std::move(worker_nodes), client_worker_node)); -} - // Helper function that posts a task on the PM sequence that will invoke // OnFinalResponseURLDetermined() on |worker_node|. void SetFinalResponseURL(WorkerNodeImpl* worker_node, const GURL& url) { @@ -155,32 +121,6 @@ } frame_node_child_workers_.clear(); - // Then clear client-child connections for dedicated workers. - for (auto& kv : dedicated_worker_child_workers_) { - const blink::DedicatedWorkerToken& dedicated_worker_token = kv.first; - base::flat_set<WorkerNodeImpl*>& child_workers = kv.second; - DCHECK(!child_workers.empty()); - - // Disconnect all child workers from |dedicated_worker_token|. - WorkerNodeImpl* dedicated_worker_node = - GetDedicatedWorkerNode(dedicated_worker_token); - DisconnectClientsOnGraph(std::move(child_workers), dedicated_worker_node); - } - dedicated_worker_child_workers_.clear(); - - // Finally, clear client-child connections for shared workers. - for (auto& kv : shared_worker_child_workers_) { - const blink::SharedWorkerToken& shared_worker_token = kv.first; - base::flat_set<WorkerNodeImpl*>& child_workers = kv.second; - DCHECK(!child_workers.empty()); - - // Disconnect all child workers from |shared_worker_token|. - WorkerNodeImpl* shared_worker_node = - GetSharedWorkerNode(shared_worker_token); - DisconnectClientsOnGraph(std::move(child_workers), shared_worker_node); - } - shared_worker_child_workers_.clear(); - // Then clean all the worker nodes. std::vector<std::unique_ptr<NodeBase>> nodes; nodes.reserve(dedicated_worker_nodes_.size() + shared_worker_nodes_.size() + @@ -220,8 +160,8 @@ dedicated_worker_token, std::move(worker_node)); DCHECK(insertion_result.second); - ConnectFrameClient(insertion_result.first->second.get(), - ancestor_render_frame_host_id); + ConnectClient(insertion_result.first->second.get(), + ancestor_render_frame_host_id); } void WorkerWatcher::OnBeforeWorkerDestroyed( @@ -235,7 +175,7 @@ auto worker_node = std::move(it->second); // First disconnect the ancestor's frame node from this worker node. - DisconnectFrameClient(worker_node.get(), ancestor_render_frame_host_id); + DisconnectClient(worker_node.get(), ancestor_render_frame_host_id); #if DCHECK_IS_ON() DCHECK(!base::Contains(detached_frame_count_per_worker_, worker_node.get())); @@ -299,8 +239,7 @@ content::GlobalFrameRoutingId render_frame_host_id) { DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); - ConnectFrameClient(GetSharedWorkerNode(shared_worker_token), - render_frame_host_id); + ConnectClient(GetSharedWorkerNode(shared_worker_token), render_frame_host_id); } void WorkerWatcher::OnClientRemoved( @@ -308,8 +247,8 @@ content::GlobalFrameRoutingId render_frame_host_id) { DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); - DisconnectFrameClient(GetSharedWorkerNode(shared_worker_token), - render_frame_host_id); + DisconnectClient(GetSharedWorkerNode(shared_worker_token), + render_frame_host_id); } void WorkerWatcher::OnVersionStartedRunning( @@ -317,19 +256,13 @@ const content::ServiceWorkerRunningInfo& running_info) { DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); - auto insertion_result = service_worker_nodes_.emplace( - version_id, - PerformanceManagerImpl::CreateWorkerNode( - browser_context_id_, WorkerNode::WorkerType::kService, - process_node_source_->GetProcessNode(running_info.render_process_id), - running_info.token)); - DCHECK(insertion_result.second); - - // Exclusively for service workers, some notifications for clients - // (OnControlleeAdded) may have been received before the worker started. - // Add those clients to the service worker on the PM graph. - ConnectAllServiceWorkerClients(insertion_result.first->second.get(), - version_id); + auto worker_node = PerformanceManagerImpl::CreateWorkerNode( + browser_context_id_, WorkerNode::WorkerType::kService, + process_node_source_->GetProcessNode(running_info.render_process_id), + running_info.token); + bool inserted = + service_worker_nodes_.emplace(version_id, std::move(worker_node)).second; + DCHECK(inserted); } void WorkerWatcher::OnVersionStoppedRunning(int64_t version_id) { @@ -338,138 +271,16 @@ auto it = service_worker_nodes_.find(version_id); DCHECK(it != service_worker_nodes_.end()); - auto service_worker_node = std::move(it->second); - - // First, disconnect all current clients of this service worker. - DisconnectAllServiceWorkerClients(service_worker_node.get(), version_id); - + auto worker_node = std::move(it->second); #if DCHECK_IS_ON() - DCHECK(!base::Contains(detached_frame_count_per_worker_, - service_worker_node.get())); + DCHECK(!base::Contains(detached_frame_count_per_worker_, worker_node.get())); #endif // DCHECK_IS_ON() - PerformanceManagerImpl::DeleteNode(std::move(service_worker_node)); + PerformanceManagerImpl::DeleteNode(std::move(worker_node)); service_worker_nodes_.erase(it); } -void WorkerWatcher::OnControlleeAdded( - int64_t version_id, - const std::string& client_uuid, - const content::ServiceWorkerClientInfo& client_info) { - switch (client_info.type()) { - case blink::mojom::ServiceWorkerClientType::kWindow: { - // For window clients, it is necessary to wait until the navigation has - // committed to a render frame host. - bool inserted = client_frames_awaiting_commit_.insert(client_uuid).second; - DCHECK(inserted); - break; - } - case blink::mojom::ServiceWorkerClientType::kDedicatedWorker: { - blink::DedicatedWorkerToken dedicated_worker_token = - client_info.GetDedicatedWorkerToken(); - - bool inserted = service_worker_clients_[version_id] - .emplace(client_uuid, dedicated_worker_token) - .second; - DCHECK(inserted); - - // If the service worker is already started, connect it to the client. - WorkerNodeImpl* service_worker_node = GetServiceWorkerNode(version_id); - if (service_worker_node) - ConnectDedicatedWorkerClient(service_worker_node, - dedicated_worker_token); - break; - } - case blink::mojom::ServiceWorkerClientType::kSharedWorker: { - blink::SharedWorkerToken shared_worker_token = - client_info.GetSharedWorkerToken(); - - bool inserted = service_worker_clients_[version_id] - .emplace(client_uuid, shared_worker_token) - .second; - DCHECK(inserted); - - // If the service worker is already started, connect it to the client. - WorkerNodeImpl* service_worker_node = GetServiceWorkerNode(version_id); - if (service_worker_node) - ConnectSharedWorkerClient(service_worker_node, shared_worker_token); - break; - } - case blink::mojom::ServiceWorkerClientType::kAll: - NOTREACHED(); - break; - } -} - -void WorkerWatcher::OnControlleeRemoved(int64_t version_id, - const std::string& client_uuid) { - // Nothing to do for a frame client whose navigation never committed. - size_t removed = client_frames_awaiting_commit_.erase(client_uuid); - if (removed) { -#if DCHECK_IS_ON() - // |client_uuid| should not be part of this service worker's clients. - auto it = service_worker_clients_.find(version_id); - if (it != service_worker_clients_.end()) - DCHECK(!base::Contains(it->second, client_uuid)); -#endif // DCHECK_IS_ON() - return; - } - - // First get clients for this worker. - auto it = service_worker_clients_.find(version_id); - DCHECK(it != service_worker_clients_.end()); - - base::flat_map<std::string /*client_uuid*/, ServiceWorkerClient>& clients = - it->second; - - auto it2 = clients.find(client_uuid); - DCHECK(it2 != clients.end()); - const ServiceWorkerClient client = it2->second; - clients.erase(it2); - - if (clients.empty()) - service_worker_clients_.erase(it); - - // Now disconnect the client if the service worker is still running. - WorkerNodeImpl* worker_node = GetServiceWorkerNode(version_id); - if (!worker_node) - return; - - switch (client.type()) { - case blink::mojom::ServiceWorkerClientType::kWindow: - DisconnectFrameClient(worker_node, client.GetRenderFrameHostId()); - break; - case blink::mojom::ServiceWorkerClientType::kDedicatedWorker: - DisconnectDedicatedWorkerClient(worker_node, - client.GetDedicatedWorkerToken()); - break; - case blink::mojom::ServiceWorkerClientType::kSharedWorker: - DisconnectSharedWorkerClient(worker_node, client.GetSharedWorkerToken()); - break; - case blink::mojom::ServiceWorkerClientType::kAll: - NOTREACHED(); - break; - } -} - -void WorkerWatcher::OnControlleeNavigationCommitted( - int64_t version_id, - const std::string& client_uuid, - content::GlobalFrameRoutingId render_frame_host_id) { - size_t removed = client_frames_awaiting_commit_.erase(client_uuid); - DCHECK_EQ(removed, 1u); - - bool inserted = service_worker_clients_[version_id] - .emplace(client_uuid, render_frame_host_id) - .second; - DCHECK(inserted); - - WorkerNodeImpl* service_worker_node = GetServiceWorkerNode(version_id); - if (service_worker_node) - ConnectFrameClient(service_worker_node, render_frame_host_id); -} - -void WorkerWatcher::ConnectFrameClient( +void WorkerWatcher::ConnectClient( WorkerNodeImpl* worker_node, content::GlobalFrameRoutingId client_render_frame_host_id) { DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); @@ -483,8 +294,8 @@ if (!frame_node) { RecordWorkerClientFound(false); #if DCHECK_IS_ON() - // A call to DisconnectFrameClient() is still expected to be received for - // this worker and frame pair. + // A call to DisconnectClient() is still expected to be received for this + // frame and worker pair. detached_frame_count_per_worker_[worker_node]++; #endif // DCHECK_IS_ON() return; @@ -503,7 +314,7 @@ } } -void WorkerWatcher::DisconnectFrameClient( +void WorkerWatcher::DisconnectClient( WorkerNodeImpl* worker_node, content::GlobalFrameRoutingId client_render_frame_host_id) { DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); @@ -521,9 +332,8 @@ // possible to connect a worker to its client frame. if (!frame_node) { #if DCHECK_IS_ON() - // These debug only checks are used to ensure that this - // DisconnectFrameClient() call was still expected even though the client - // frame node no longer exist. + // These debug only checks are used to ensure that this DisconnectClient() + // was still expected even though the client frame node no longer exist. auto it = detached_frame_count_per_worker_.find(worker_node); DCHECK(it != detached_frame_count_per_worker_.end()); @@ -545,138 +355,6 @@ frame_node_source_->UnsubscribeFromFrameNode(client_render_frame_host_id); } -void WorkerWatcher::ConnectDedicatedWorkerClient( - WorkerNodeImpl* worker_node, - blink::DedicatedWorkerToken client_dedicated_worker_token) { - DCHECK(worker_node); - - ConnectClientOnGraph(worker_node, - GetDedicatedWorkerNode(client_dedicated_worker_token)); - - // Remember that |worker_node| is a child worker of this dedicated worker. - bool inserted = dedicated_worker_child_workers_[client_dedicated_worker_token] - .insert(worker_node) - .second; - DCHECK(inserted); -} - -void WorkerWatcher::DisconnectDedicatedWorkerClient( - WorkerNodeImpl* worker_node, - blink::DedicatedWorkerToken client_dedicated_worker_token) { - DCHECK(worker_node); - - // Remove |worker_node| from the set of child workers of this dedicated - // worker. - auto it = dedicated_worker_child_workers_.find(client_dedicated_worker_token); - DCHECK(it != dedicated_worker_child_workers_.end()); - auto& child_workers = it->second; - - size_t removed = child_workers.erase(worker_node); - DCHECK_EQ(removed, 1u); - - if (child_workers.empty()) - dedicated_worker_child_workers_.erase(it); - - DisconnectClientOnGraph( - worker_node, GetDedicatedWorkerNode(client_dedicated_worker_token)); -} - -void WorkerWatcher::ConnectSharedWorkerClient( - WorkerNodeImpl* worker_node, - blink::SharedWorkerToken client_shared_worker_token) { - DCHECK(worker_node); - - ConnectClientOnGraph(worker_node, - GetSharedWorkerNode(client_shared_worker_token)); - - // Remember that |worker_node| is a child worker of this shared worker. - bool inserted = shared_worker_child_workers_[client_shared_worker_token] - .insert(worker_node) - .second; - DCHECK(inserted); -} - -void WorkerWatcher::DisconnectSharedWorkerClient( - WorkerNodeImpl* worker_node, - blink::SharedWorkerToken client_shared_worker_token) { - DCHECK(worker_node); - - // Remove |worker_node| from the set of child workers of this shared worker. - auto it = shared_worker_child_workers_.find(client_shared_worker_token); - DCHECK(it != shared_worker_child_workers_.end()); - auto& child_workers = it->second; - - size_t removed = child_workers.erase(worker_node); - DCHECK_EQ(removed, 1u); - - if (child_workers.empty()) - shared_worker_child_workers_.erase(it); - - DisconnectClientOnGraph(worker_node, - GetSharedWorkerNode(client_shared_worker_token)); -} - -void WorkerWatcher::ConnectAllServiceWorkerClients( - WorkerNodeImpl* service_worker_node, - int64_t version_id) { - // Nothing to do if there are no clients. - auto it = service_worker_clients_.find(version_id); - if (it == service_worker_clients_.end()) - return; - - for (const auto& kv : it->second) { - const ServiceWorkerClient& client = kv.second; - - switch (client.type()) { - case blink::mojom::ServiceWorkerClientType::kWindow: - ConnectFrameClient(service_worker_node, client.GetRenderFrameHostId()); - break; - case blink::mojom::ServiceWorkerClientType::kDedicatedWorker: - ConnectDedicatedWorkerClient(service_worker_node, - client.GetDedicatedWorkerToken()); - break; - case blink::mojom::ServiceWorkerClientType::kSharedWorker: - ConnectSharedWorkerClient(service_worker_node, - client.GetSharedWorkerToken()); - break; - case blink::mojom::ServiceWorkerClientType::kAll: - NOTREACHED(); - break; - } - } -} - -void WorkerWatcher::DisconnectAllServiceWorkerClients( - WorkerNodeImpl* service_worker_node, - int64_t version_id) { - // Nothing to do if there are no clients. - auto it = service_worker_clients_.find(version_id); - if (it == service_worker_clients_.end()) - return; - - for (const auto& kv : it->second) { - const ServiceWorkerClient& client = kv.second; - - switch (client.type()) { - case blink::mojom::ServiceWorkerClientType::kWindow: - DisconnectFrameClient(service_worker_node, - client.GetRenderFrameHostId()); - break; - case blink::mojom::ServiceWorkerClientType::kDedicatedWorker: - DisconnectDedicatedWorkerClient(service_worker_node, - client.GetDedicatedWorkerToken()); - break; - case blink::mojom::ServiceWorkerClientType::kSharedWorker: - DisconnectSharedWorkerClient(service_worker_node, - client.GetSharedWorkerToken()); - break; - case blink::mojom::ServiceWorkerClientType::kAll: - NOTREACHED(); - break; - } - } -} - void WorkerWatcher::OnBeforeFrameNodeRemoved( content::GlobalFrameRoutingId render_frame_host_id, FrameNodeImpl* frame_node) { @@ -695,8 +373,8 @@ #if DCHECK_IS_ON() for (WorkerNodeImpl* worker_node : child_workers) { - // A call to DisconnectFrameClient() is still expected to be received for - // this frame to all workers in |child_workers|. + // A call to DisconnectClient() is still expected to be received for this + // frame to all workers in |child_workers|. // Note: the [] operator is intentionally used to default initialize the // count to zero if needed. detached_frame_count_per_worker_[worker_node]++; @@ -767,6 +445,7 @@ auto it = service_worker_nodes_.find(version_id); if (it == service_worker_nodes_.end()) { + NOTREACHED(); return nullptr; } return it->second.get();
diff --git a/components/performance_manager/worker_watcher.h b/components/performance_manager/worker_watcher.h index f21b790..e1a2d00 100644 --- a/components/performance_manager/worker_watcher.h +++ b/components/performance_manager/worker_watcher.h
@@ -14,7 +14,6 @@ #include "base/macros.h" #include "base/scoped_observer.h" #include "base/sequence_checker.h" -#include "components/performance_manager/service_worker_client.h" #include "content/public/browser/dedicated_worker_service.h" #include "content/public/browser/global_routing_id.h" #include "content/public/browser/service_worker_context.h" @@ -32,26 +31,7 @@ // This class keeps track of running workers of all types for a single browser // context and handles the ownership of the worker nodes. // -// Most of the complexity of this class is tracking every worker's clients. Each -// type of worker handles them a bit differently. -// -// The simplest case is dedicated workers, where each worker always has exactly -// one frame client. Technically, it is possible to create a nested dedicated -// worker, but for now they are treated as child of the ancestor frame. -// -// Shared workers are quite similar to dedicated workers but they can have any -// number of clients. Also, a shared worker can temporarily appear to have no -// clients shortly after being created and just before being destroyed. -// -// Service workers are more complicated to handle. They also can have any number -// of clients, but they aren't only frames. They could also be dedicated worker -// and shared worker clients. These different types of client are tracked using -// the ServiceWorkerClient class. Also, because of the important role the -// service worker plays with frame navigations, the service worker can be -// created before its first client's navigation has committed to a -// RenderFrameHost. So when a OnControlleeAdded() notification is received for -// a client frame, it is necessary to wait until the render frame host was -// determined. +// TODO(https://crbug.com/993029): Add support for service workers. class WorkerWatcher : public content::DedicatedWorkerService::Observer, public content::SharedWorkerService::Observer, public content::ServiceWorkerContextObserver { @@ -97,60 +77,19 @@ content::GlobalFrameRoutingId render_frame_host_id) override; // content::ServiceWorkerContextObserver: - // Note: If you add a new function here, make sure it is also added to - // ServiceWorkerContextAdapter. void OnVersionStartedRunning( int64_t version_id, const content::ServiceWorkerRunningInfo& running_info) override; void OnVersionStoppedRunning(int64_t version_id) override; - void OnControlleeAdded( - int64_t version_id, - const std::string& client_uuid, - const content::ServiceWorkerClientInfo& client_info) override; - void OnControlleeRemoved(int64_t version_id, - const std::string& client_uuid) override; - void OnControlleeNavigationCommitted( - int64_t version_id, - const std::string& client_uuid, - content::GlobalFrameRoutingId render_frame_host_id) override; private: friend class WorkerWatcherTest; - // Posts a task to the PM graph to connect/disconnect |worker_node| with the - // frame node associated to |client_render_frame_host_id|. - void ConnectFrameClient( + void ConnectClient(WorkerNodeImpl* worker_node, + content::GlobalFrameRoutingId client_render_frame_host_id); + void DisconnectClient( WorkerNodeImpl* worker_node, content::GlobalFrameRoutingId client_render_frame_host_id); - void DisconnectFrameClient( - WorkerNodeImpl* worker_node, - content::GlobalFrameRoutingId client_render_frame_host_id); - - // Posts a task to the PM graph to connect/disconnect |worker_node| with the - // dedicated worker node associated to |client_dedicated_worker_token|. - void ConnectDedicatedWorkerClient( - WorkerNodeImpl* worker_node, - blink::DedicatedWorkerToken client_dedicated_worker_token); - void DisconnectDedicatedWorkerClient( - WorkerNodeImpl* worker_node, - blink::DedicatedWorkerToken client_dedicated_worker_token); - - // Posts a task to the PM graph to connect/disconnect |worker_node| with the - // shared worker node associated to |client_shared_worker_id|. - void ConnectSharedWorkerClient( - WorkerNodeImpl* worker_node, - blink::SharedWorkerToken client_shared_worker_id); - void DisconnectSharedWorkerClient( - WorkerNodeImpl* worker_node, - blink::SharedWorkerToken client_shared_worker_id); - - // Posts a task to the PM graph to connect/disconnect |service_worker_node| - // with all of its existing clients. Called when a service worker starts/stops - // running. - void ConnectAllServiceWorkerClients(WorkerNodeImpl* service_worker_node, - int64_t version_id); - void DisconnectAllServiceWorkerClients(WorkerNodeImpl* service_worker_node, - int64_t version_id); void OnBeforeFrameNodeRemoved( content::GlobalFrameRoutingId render_frame_host_id, @@ -208,31 +147,13 @@ base::flat_map<int64_t /*version_id*/, std::unique_ptr<WorkerNodeImpl>> service_worker_nodes_; - // Keeps track of frame clients that are awaiting the navigation commit - // notification. Used for service workers only. - base::flat_set<std::string /*client_uuid*/> client_frames_awaiting_commit_; - - // Maps each service worker to its clients. - base::flat_map< - int64_t /*version_id*/, - base::flat_map<std::string /*client_uuid*/, ServiceWorkerClient>> - service_worker_clients_; - - // Maps each frame to the workers that this frame is a client of in the graph. - // This is used when a frame is torn down before the - // OnBeforeWorkerTerminated() is received, to ensure the deletion of the - // worker nodes in the right order (workers before frames). + // Maps each frame to the shared workers that this frame is a client of. This + // is used when a frame is torn down before the OnBeforeWorkerTerminated() is + // received, to ensure the deletion of the worker nodes in the right order + // (workers before frames). base::flat_map<content::GlobalFrameRoutingId, base::flat_set<WorkerNodeImpl*>> frame_node_child_workers_; - // Maps each dedicated worker to all its child workers. - base::flat_map<blink::DedicatedWorkerToken, base::flat_set<WorkerNodeImpl*>> - dedicated_worker_child_workers_; - - // Maps each shared worker to all its child workers. - base::flat_map<blink::SharedWorkerToken, base::flat_set<WorkerNodeImpl*>> - shared_worker_child_workers_; - #if DCHECK_IS_ON() // Keeps track of how many OnClientRemoved() calls are expected for an // existing worker. This happens when OnBeforeFrameNodeRemoved() is invoked
diff --git a/components/performance_manager/worker_watcher_unittest.cc b/components/performance_manager/worker_watcher_unittest.cc index 66e18ce..121cb84 100644 --- a/components/performance_manager/worker_watcher_unittest.cc +++ b/components/performance_manager/worker_watcher_unittest.cc
@@ -9,7 +9,6 @@ #include <vector> #include "base/bind_helpers.h" -#include "base/guid.h" #include "base/macros.h" #include "base/observer_list.h" #include "base/run_loop.h" @@ -24,7 +23,6 @@ #include "components/performance_manager/graph/worker_node_impl.h" #include "components/performance_manager/performance_manager_impl.h" #include "components/performance_manager/process_node_source.h" -#include "content/public/browser/render_frame_host.h" #include "content/public/browser/shared_worker_service.h" #include "content/public/test/fake_service_worker_context.h" #include "testing/gtest/include/gtest/gtest.h" @@ -53,14 +51,6 @@ base::Contains(client_frame_node->child_worker_nodes(), worker_node); } -// Helper function to check that |worker_node| and |client_worker_node| are -// correctly hooked up together. -bool IsWorkerClient(WorkerNodeImpl* worker_node, - WorkerNodeImpl* client_worker_node) { - return base::Contains(worker_node->client_workers(), client_worker_node) && - base::Contains(client_worker_node->child_workers(), worker_node); -} - // TestDedicatedWorkerService -------------------------------------------------- // A test DedicatedWorkerService that allows to simulate creating and destroying @@ -168,12 +158,14 @@ void DestroySharedWorker(const blink::SharedWorkerToken& shared_worker_token); // Adds a new frame client to an existing worker. - void AddClient(const blink::SharedWorkerToken& shared_worker_token, - content::GlobalFrameRoutingId client_render_frame_host_id); + void AddFrameClientToWorker( + const blink::SharedWorkerToken& shared_worker_token, + content::GlobalFrameRoutingId client_render_frame_host_id); // Removes an existing frame client from a worker. - void RemoveClient(const blink::SharedWorkerToken& shared_worker_token, - content::GlobalFrameRoutingId client_render_frame_host_id); + void RemoveFrameClientFromWorker( + const blink::SharedWorkerToken& shared_worker_token, + content::GlobalFrameRoutingId client_render_frame_host_id); private: base::ObserverList<Observer> observer_list_; @@ -247,7 +239,7 @@ shared_worker_client_frames_.erase(it); } -void TestSharedWorkerService::AddClient( +void TestSharedWorkerService::AddFrameClientToWorker( const blink::SharedWorkerToken& shared_worker_token, content::GlobalFrameRoutingId client_render_frame_host_id) { // Add the frame to the set of clients for this worker. @@ -263,7 +255,7 @@ observer.OnClientAdded(shared_worker_token, client_render_frame_host_id); } -void TestSharedWorkerService::RemoveClient( +void TestSharedWorkerService::RemoveFrameClientFromWorker( const blink::SharedWorkerToken& shared_worker_token, content::GlobalFrameRoutingId client_render_frame_host_id) { // Notify observers. @@ -298,32 +290,21 @@ void AddObserver(content::ServiceWorkerContextObserver* observer) override; void RemoveObserver(content::ServiceWorkerContextObserver* observer) override; - // Creates a new service worker and returns its version ID. - int64_t CreateServiceWorker(); + // Starts a new service worker and returns its version ID. + int64_t StartServiceWorker(int worker_process_id); - // Deletes an existing service worker. - void DestroyServiceWorker(int64_t version_id); - - // Starts an existing service worker. - void StartServiceWorker(int64_t version_id, int worker_process_id); - - // Destroys a service shared worker. + // Stops a service shared worker. void StopServiceWorker(int64_t version_id); - // Adds a new client to an existing service worker and returns its generated - // client UUID. - std::string AddClient(int64_t version_id, - const content::ServiceWorkerClientInfo& client_info); - - // Removes an existing client from a worker. - void RemoveClient(int64_t version_id, const std::string& client_uuid); - - // Simulates when the navigation commits, meaning that the RenderFrameHost is - // now available for a window client. Not valid for worker clients. - void OnControlleeNavigationCommitted( + // Adds a new frame client to an existing worker. + void AddFrameClientToWorker( int64_t version_id, - const std::string& client_uuid, - content::GlobalFrameRoutingId render_frame_host_id); + content::GlobalFrameRoutingId client_render_frame_host_id); + + // Removes an existing frame client from a worker. + void RemoveFrameClientFromWorker( + int64_t version_id, + content::GlobalFrameRoutingId client_render_frame_host_id); private: base::ObserverList<content::ServiceWorkerContextObserver>::Unchecked @@ -332,15 +313,10 @@ // The ID that the next service worker will be assigned. int64_t next_service_worker_instance_id_ = 0; - struct ServiceWorkerInfo { - bool is_running = false; - - // Contains all the clients - base::flat_set<std::string /*client_uuid*/> clients; - }; - - base::flat_map<int64_t /*version_id*/, ServiceWorkerInfo> - service_worker_infos_; + // Contains the set of clients for each running workers. + base::flat_map<int64_t /*version_id*/, + base::flat_set<content::GlobalFrameRoutingId>> + service_worker_client_frames_; }; TestServiceWorkerContext::TestServiceWorkerContext() = default; @@ -357,107 +333,68 @@ observer_list_.RemoveObserver(observer); } -int64_t TestServiceWorkerContext::CreateServiceWorker() { +int64_t TestServiceWorkerContext::StartServiceWorker(int worker_process_id) { // Create a new version ID and add it to the map. + GURL worker_url = GenerateWorkerUrl(); int64_t version_id = next_service_worker_instance_id_++; - bool inserted = service_worker_infos_.insert({version_id, {}}).second; + bool inserted = service_worker_client_frames_.insert({version_id, {}}).second; DCHECK(inserted); - return version_id; -} - -void TestServiceWorkerContext::DestroyServiceWorker(int64_t version_id) { - auto it = service_worker_infos_.find(version_id); - DCHECK(it != service_worker_infos_.end()); - const ServiceWorkerInfo& info = it->second; - - // Can only delete a service worker that isn't running and has no clients. - DCHECK(!info.is_running); - DCHECK(info.clients.empty()); - - // Remove the worker instance from the map. - service_worker_infos_.erase(it); -} - -void TestServiceWorkerContext::StartServiceWorker(int64_t version_id, - int worker_process_id) { - auto it = service_worker_infos_.find(version_id); - DCHECK(it != service_worker_infos_.end()); - ServiceWorkerInfo& info = it->second; - - DCHECK(!info.is_running); - info.is_running = true; - // Notify observers. - GURL worker_url = GenerateWorkerUrl(); - GURL scope_url; for (auto& observer : observer_list_) { observer.OnVersionStartedRunning( version_id, content::ServiceWorkerRunningInfo(worker_url, GURL(), worker_process_id, blink::ServiceWorkerToken())); } + + return version_id; } void TestServiceWorkerContext::StopServiceWorker(int64_t version_id) { - auto it = service_worker_infos_.find(version_id); - DCHECK(it != service_worker_infos_.end()); - ServiceWorkerInfo& info = it->second; + auto it = service_worker_client_frames_.find(version_id); + DCHECK(it != service_worker_client_frames_.end()); - DCHECK(info.is_running); - info.is_running = false; + // A stopping worker should have no clients. + DCHECK(it->second.empty()); // Notify observers that the worker is terminating. for (auto& observer : observer_list_) observer.OnVersionStoppedRunning(version_id); + + // Remove the worker instance from the map. + service_worker_client_frames_.erase(it); } -std::string TestServiceWorkerContext::AddClient( +void TestServiceWorkerContext::AddFrameClientToWorker( int64_t version_id, - const content::ServiceWorkerClientInfo& client_info) { - auto it = service_worker_infos_.find(version_id); - DCHECK(it != service_worker_infos_.end()); - ServiceWorkerInfo& info = it->second; + content::GlobalFrameRoutingId client_render_frame_host_id) { + // Add the frame to the set of clients for this worker. + auto it = service_worker_client_frames_.find(version_id); + DCHECK(it != service_worker_client_frames_.end()); - std::string client_uuid = base::GenerateGUID(); - - bool inserted = info.clients.insert(client_uuid).second; + base::flat_set<content::GlobalFrameRoutingId>& client_frames = it->second; + bool inserted = client_frames.insert(client_render_frame_host_id).second; DCHECK(inserted); - for (auto& observer : observer_list_) - observer.OnControlleeAdded(version_id, client_uuid, client_info); - - return client_uuid; + // TODO(pmonette): Notify observers when the ServiceWorkerContextObserver + // interface supports it. } -void TestServiceWorkerContext::RemoveClient(int64_t version_id, - const std::string& client_uuid) { - auto it = service_worker_infos_.find(version_id); - DCHECK(it != service_worker_infos_.end()); - ServiceWorkerInfo& info = it->second; - - size_t removed = info.clients.erase(client_uuid); - DCHECK_EQ(removed, 1u); - - for (auto& observer : observer_list_) - observer.OnControlleeRemoved(version_id, client_uuid); -} - -void TestServiceWorkerContext::OnControlleeNavigationCommitted( +void TestServiceWorkerContext::RemoveFrameClientFromWorker( int64_t version_id, - const std::string& client_uuid, - content::GlobalFrameRoutingId render_frame_host_id) { - auto it = service_worker_infos_.find(version_id); - DCHECK(it != service_worker_infos_.end()); - ServiceWorkerInfo& info = it->second; + content::GlobalFrameRoutingId client_render_frame_host_id) { + // TODO(pmonette): Notify observers when the ServiceWorkerContextObserver + // interface supports it. - DCHECK(base::Contains(info.clients, client_uuid)); + // Then remove the frame from the set of clients of this worker. + auto it = service_worker_client_frames_.find(version_id); + DCHECK(it != service_worker_client_frames_.end()); - for (auto& observer : observer_list_) { - observer.OnControlleeNavigationCommitted(version_id, client_uuid, - render_frame_host_id); - } + base::flat_set<content::GlobalFrameRoutingId>& client_frames = it->second; + size_t removed = client_frames.erase(client_render_frame_host_id); + DCHECK_EQ(removed, 1u); } // TestProcessNodeSource ------------------------------------------------------- @@ -591,7 +528,8 @@ bool inserted = frame_node_callbacks_ - .emplace(frame_node, std::move(on_before_frame_node_removed_callback)) + .insert(std::make_pair( + frame_node, std::move(on_before_frame_node_removed_callback))) .second; DCHECK(inserted); } @@ -787,7 +725,7 @@ EXPECT_TRUE(IsWorkerClient(worker_node, client_frame_node)); })); - // Disconnect and clean up the dedicated worker. + // Disconnect and clean up the worker. dedicated_worker_service()->DestroyDedicatedWorker(token); } @@ -806,7 +744,8 @@ shared_worker_service()->CreateSharedWorker(render_process_id); // Connect the frame to the worker. - shared_worker_service()->AddClient(shared_worker_token, render_frame_host_id); + shared_worker_service()->AddFrameClientToWorker(shared_worker_token, + render_frame_host_id); // Check expectations on the graph. CallOnGraphAndWait(base::BindLambdaForTesting( @@ -820,51 +759,29 @@ EXPECT_TRUE(IsWorkerClient(worker_node, client_frame_node)); })); - // Disconnect and clean up the shared worker. - shared_worker_service()->RemoveClient(shared_worker_token, - render_frame_host_id); + // Disconnect and clean up the worker. + shared_worker_service()->RemoveFrameClientFromWorker(shared_worker_token, + render_frame_host_id); shared_worker_service()->DestroySharedWorker(shared_worker_token); } // This test creates one service worker with one client frame. -TEST_F(WorkerWatcherTest, ServiceWorkerFrameClient) { +TEST_F(WorkerWatcherTest, SimpleServiceWorker) { int render_process_id = process_node_source()->CreateProcessNode(); - // Create and start the service worker. - int64_t service_worker_version_id = - service_worker_context()->CreateServiceWorker(); - service_worker_context()->StartServiceWorker(service_worker_version_id, - render_process_id); - - // Add a frame tree node as a client of the service worker. - int frame_tree_node_id = GenerateNextId(); - std::string service_worker_client_uuid = service_worker_context()->AddClient( - service_worker_version_id, - content::ServiceWorkerClientInfo(frame_tree_node_id)); - - // Check expectations on the graph. - CallOnGraphAndWait(base::BindLambdaForTesting( - [process_node = process_node_source()->GetProcessNode(render_process_id), - worker_node = - GetServiceWorkerNode(service_worker_version_id)](GraphImpl* graph) { - EXPECT_TRUE(graph->NodeInGraph(worker_node)); - EXPECT_EQ(worker_node->worker_type(), WorkerNode::WorkerType::kService); - EXPECT_EQ(worker_node->process_node(), process_node); - - // The frame can not be connected to the service worker until its - // render frame host is available, which happens when the navigation - // commits. - EXPECT_TRUE(worker_node->client_frames().empty()); - })); - - // Now simulate the navigation commit. + // Create the frame node. content::GlobalFrameRoutingId render_frame_host_id = frame_node_source()->CreateFrameNode( render_process_id, process_node_source()->GetProcessNode(render_process_id)); - service_worker_context()->OnControlleeNavigationCommitted( - service_worker_version_id, service_worker_client_uuid, - render_frame_host_id); + + // Create the worker. + int64_t service_worker_version_id = + service_worker_context()->StartServiceWorker(render_process_id); + + // Connect the frame to the worker. + service_worker_context()->AddFrameClientToWorker(service_worker_version_id, + render_frame_host_id); // Check expectations on the graph. CallOnGraphAndWait(base::BindLambdaForTesting( @@ -875,253 +792,15 @@ EXPECT_TRUE(graph->NodeInGraph(worker_node)); EXPECT_EQ(worker_node->worker_type(), WorkerNode::WorkerType::kService); EXPECT_EQ(worker_node->process_node(), process_node); - - // Now is it correctly hooked up. - EXPECT_TRUE(IsWorkerClient(worker_node, client_frame_node)); + // TODO(pmonette): Change the following to EXPECT_TRUE when the + // service worker node gets hooked up correctly. + EXPECT_FALSE(IsWorkerClient(worker_node, client_frame_node)); })); - // Disconnect and clean up the service worker. - service_worker_context()->RemoveClient(service_worker_version_id, - service_worker_client_uuid); + // Disconnect and clean up the worker. + service_worker_context()->RemoveFrameClientFromWorker( + service_worker_version_id, render_frame_host_id); service_worker_context()->StopServiceWorker(service_worker_version_id); - service_worker_context()->DestroyServiceWorker(service_worker_version_id); -} - -// Ensures that the WorkerWatcher handles the case where a frame with a service -// worker is created but it's navigation is never committed before the -// FrameTreeNode is destroyed. -TEST_F(WorkerWatcherTest, ServiceWorkerFrameClientDestroyedBeforeCommit) { - int render_process_id = process_node_source()->CreateProcessNode(); - - // Create and start the service worker. - int64_t service_worker_version_id = - service_worker_context()->CreateServiceWorker(); - service_worker_context()->StartServiceWorker(service_worker_version_id, - render_process_id); - - // Add a frame tree node as a client of the service worker. - int frame_tree_node_id = GenerateNextId(); - std::string service_worker_client_uuid = service_worker_context()->AddClient( - service_worker_version_id, - content::ServiceWorkerClientInfo(frame_tree_node_id)); - - // Check expectations on the graph. - CallOnGraphAndWait(base::BindLambdaForTesting( - [process_node = process_node_source()->GetProcessNode(render_process_id), - worker_node = - GetServiceWorkerNode(service_worker_version_id)](GraphImpl* graph) { - EXPECT_TRUE(graph->NodeInGraph(worker_node)); - EXPECT_EQ(worker_node->worker_type(), WorkerNode::WorkerType::kService); - EXPECT_EQ(worker_node->process_node(), process_node); - - // The frame was never added as a client of the service worker. - EXPECT_TRUE(worker_node->client_frames().empty()); - })); - - // Disconnect and clean up the service worker. - service_worker_context()->RemoveClient(service_worker_version_id, - service_worker_client_uuid); - service_worker_context()->StopServiceWorker(service_worker_version_id); - service_worker_context()->DestroyServiceWorker(service_worker_version_id); -} - -TEST_F(WorkerWatcherTest, AllTypesOfServiceWorkerClients) { - int render_process_id = process_node_source()->CreateProcessNode(); - - // Create and start the service worker. - int64_t service_worker_version_id = - service_worker_context()->CreateServiceWorker(); - service_worker_context()->StartServiceWorker(service_worker_version_id, - render_process_id); - - // Create a client of each type and connect them to the service worker. - - // Frame client. - int frame_tree_node_id = GenerateNextId(); - std::string frame_client_uuid = service_worker_context()->AddClient( - service_worker_version_id, - content::ServiceWorkerClientInfo(frame_tree_node_id)); - content::GlobalFrameRoutingId render_frame_host_id = - frame_node_source()->CreateFrameNode( - render_process_id, - process_node_source()->GetProcessNode(render_process_id)); - service_worker_context()->OnControlleeNavigationCommitted( - service_worker_version_id, frame_client_uuid, render_frame_host_id); - - // Dedicated worker client. - blink::DedicatedWorkerToken dedicated_worker_token = - dedicated_worker_service()->CreateDedicatedWorker(render_process_id, - render_frame_host_id); - std::string dedicated_worker_client_uuid = - service_worker_context()->AddClient( - service_worker_version_id, - content::ServiceWorkerClientInfo(dedicated_worker_token)); - - // Shared worker client. - blink::SharedWorkerToken shared_worker_token = - shared_worker_service()->CreateSharedWorker(render_process_id); - std::string shared_worker_client_uuid = service_worker_context()->AddClient( - service_worker_version_id, - content::ServiceWorkerClientInfo(shared_worker_token)); - - // Check expectations on the graph. - CallOnGraphAndWait(base::BindLambdaForTesting( - [process_node = process_node_source()->GetProcessNode(render_process_id), - service_worker_node = GetServiceWorkerNode(service_worker_version_id), - client_frame_node = - frame_node_source()->GetFrameNode(render_frame_host_id), - dedicated_worker_node = GetDedicatedWorkerNode(dedicated_worker_token), - shared_worker_node = - GetSharedWorkerNode(shared_worker_token)](GraphImpl* graph) { - EXPECT_TRUE(graph->NodeInGraph(service_worker_node)); - EXPECT_TRUE(IsWorkerClient(service_worker_node, client_frame_node)); - EXPECT_TRUE(IsWorkerClient(service_worker_node, dedicated_worker_node)); - EXPECT_TRUE(IsWorkerClient(service_worker_node, shared_worker_node)); - })); - - // Disconnect and clean up the service worker and its clients. - service_worker_context()->RemoveClient(service_worker_version_id, - shared_worker_client_uuid); - shared_worker_service()->DestroySharedWorker(shared_worker_token); - service_worker_context()->RemoveClient(service_worker_version_id, - dedicated_worker_client_uuid); - dedicated_worker_service()->DestroyDedicatedWorker(dedicated_worker_token); - service_worker_context()->RemoveClient(service_worker_version_id, - frame_client_uuid); - - service_worker_context()->StopServiceWorker(service_worker_version_id); - service_worker_context()->DestroyServiceWorker(service_worker_version_id); -} - -// Tests that the WorkerWatcher can handle the case where the service worker -// starts after it has been assigned a client. In this case, the clients are not -// connected to the service worker until it starts. It also tests that when the -// service worker stops, its existing clients are also disconnected. -TEST_F(WorkerWatcherTest, ServiceWorkerStartsAndStopsWithExistingClients) { - int render_process_id = process_node_source()->CreateProcessNode(); - - // Create the worker. - int64_t service_worker_version_id = - service_worker_context()->CreateServiceWorker(); - - // Create a client of each type and connect them to the service worker. - - // Frame client. - int frame_tree_node_id = GenerateNextId(); - std::string frame_client_uuid = service_worker_context()->AddClient( - service_worker_version_id, - content::ServiceWorkerClientInfo(frame_tree_node_id)); - content::GlobalFrameRoutingId render_frame_host_id = - frame_node_source()->CreateFrameNode( - render_process_id, - process_node_source()->GetProcessNode(render_process_id)); - service_worker_context()->OnControlleeNavigationCommitted( - service_worker_version_id, frame_client_uuid, render_frame_host_id); - - // Dedicated worker client. - blink::DedicatedWorkerToken dedicated_worker_token = - dedicated_worker_service()->CreateDedicatedWorker(render_process_id, - render_frame_host_id); - std::string dedicated_worker_client_uuid = - service_worker_context()->AddClient( - service_worker_version_id, - content::ServiceWorkerClientInfo(dedicated_worker_token)); - - // Shared worker client. - blink::SharedWorkerToken shared_worker_token = - shared_worker_service()->CreateSharedWorker(render_process_id); - std::string shared_worker_client_uuid = service_worker_context()->AddClient( - service_worker_version_id, - content::ServiceWorkerClientInfo(shared_worker_token)); - - // The service worker node doesn't even exist yet. - EXPECT_FALSE(GetServiceWorkerNode(service_worker_version_id)); - - // Check expectations on the graph. - CallOnGraphAndWait(base::BindLambdaForTesting( - [process_node = process_node_source()->GetProcessNode(render_process_id), - frame_node = frame_node_source()->GetFrameNode(render_frame_host_id), - dedicated_worker_node = GetDedicatedWorkerNode(dedicated_worker_token), - shared_worker_node = - GetSharedWorkerNode(shared_worker_token)](GraphImpl* graph) { - // The clients exists in the graph but they are not connected to the - // service worker. - EXPECT_TRUE(graph->NodeInGraph(frame_node)); - EXPECT_TRUE(graph->NodeInGraph(dedicated_worker_node)); - EXPECT_TRUE(graph->NodeInGraph(shared_worker_node)); - - // Note: Because a dedicated worker is always connected to a frame, this - // frame node actually has |dedicated_worker_node| as its sole client. - ASSERT_EQ(frame_node->child_worker_nodes().size(), 1u); - EXPECT_TRUE(base::Contains(frame_node->child_worker_nodes(), - dedicated_worker_node)); - EXPECT_TRUE(dedicated_worker_node->child_workers().empty()); - EXPECT_TRUE(shared_worker_node->child_workers().empty()); - })); - - // Now start the service worker. - service_worker_context()->StartServiceWorker(service_worker_version_id, - render_process_id); - - // Check expectations on the graph. - CallOnGraphAndWait(base::BindLambdaForTesting( - [process_node = process_node_source()->GetProcessNode(render_process_id), - service_worker_node = GetServiceWorkerNode(service_worker_version_id), - frame_node = frame_node_source()->GetFrameNode(render_frame_host_id), - dedicated_worker_node = GetDedicatedWorkerNode(dedicated_worker_token), - shared_worker_node = - GetSharedWorkerNode(shared_worker_token)](GraphImpl* graph) { - EXPECT_TRUE(graph->NodeInGraph(service_worker_node)); - EXPECT_EQ(service_worker_node->worker_type(), - WorkerNode::WorkerType::kService); - EXPECT_EQ(service_worker_node->process_node(), process_node); - - EXPECT_TRUE(graph->NodeInGraph(frame_node)); - EXPECT_TRUE(graph->NodeInGraph(dedicated_worker_node)); - EXPECT_TRUE(graph->NodeInGraph(shared_worker_node)); - - // Now is it correctly hooked up. - EXPECT_TRUE(IsWorkerClient(service_worker_node, frame_node)); - EXPECT_TRUE(IsWorkerClient(service_worker_node, dedicated_worker_node)); - EXPECT_TRUE(IsWorkerClient(service_worker_node, shared_worker_node)); - })); - - // Stop the service worker. All the clients will be disconnected. - service_worker_context()->StopServiceWorker(service_worker_version_id); - - // Check expectations on the graph. - CallOnGraphAndWait(base::BindLambdaForTesting( - [process_node = process_node_source()->GetProcessNode(render_process_id), - frame_node = frame_node_source()->GetFrameNode(render_frame_host_id), - dedicated_worker_node = GetDedicatedWorkerNode(dedicated_worker_token), - shared_worker_node = - GetSharedWorkerNode(shared_worker_token)](GraphImpl* graph) { - // The clients exists in the graph but they are not connected to the - // service worker. - EXPECT_TRUE(graph->NodeInGraph(frame_node)); - EXPECT_TRUE(graph->NodeInGraph(dedicated_worker_node)); - EXPECT_TRUE(graph->NodeInGraph(shared_worker_node)); - - // Note: Because a dedicated worker is always connected to a frame, this - // frame node actually has |dedicated_worker_node| as its sole client. - ASSERT_EQ(frame_node->child_worker_nodes().size(), 1u); - EXPECT_TRUE(base::Contains(frame_node->child_worker_nodes(), - dedicated_worker_node)); - EXPECT_TRUE(dedicated_worker_node->child_workers().empty()); - EXPECT_TRUE(shared_worker_node->child_workers().empty()); - })); - - // Disconnect and clean up the service worker and its clients - service_worker_context()->RemoveClient(service_worker_version_id, - shared_worker_client_uuid); - shared_worker_service()->DestroySharedWorker(shared_worker_token); - service_worker_context()->RemoveClient(service_worker_version_id, - dedicated_worker_client_uuid); - dedicated_worker_service()->DestroyDedicatedWorker(dedicated_worker_token); - service_worker_context()->RemoveClient(service_worker_version_id, - frame_client_uuid); - - service_worker_context()->DestroyServiceWorker(service_worker_version_id); } TEST_F(WorkerWatcherTest, SharedWorkerCrossProcessClient) { @@ -1138,7 +817,8 @@ shared_worker_service()->CreateSharedWorker(worker_process_id); // Connect the frame to the worker. - shared_worker_service()->AddClient(shared_worker_token, render_frame_host_id); + shared_worker_service()->AddFrameClientToWorker(shared_worker_token, + render_frame_host_id); // Check expectations on the graph. CallOnGraphAndWait(base::BindLambdaForTesting( @@ -1155,9 +835,9 @@ EXPECT_TRUE(IsWorkerClient(worker_node, client_frame_node)); })); - // Disconnect and clean up the shared worker. - shared_worker_service()->RemoveClient(shared_worker_token, - render_frame_host_id); + // Disconnect and clean up the worker. + shared_worker_service()->RemoveFrameClientFromWorker(shared_worker_token, + render_frame_host_id); shared_worker_service()->DestroySharedWorker(shared_worker_token); } @@ -1173,15 +853,15 @@ frame_node_source()->CreateFrameNode( render_process_id, process_node_source()->GetProcessNode(render_process_id)); - shared_worker_service()->AddClient(shared_worker_token, - render_frame_host_id_1); + shared_worker_service()->AddFrameClientToWorker(shared_worker_token, + render_frame_host_id_1); content::GlobalFrameRoutingId render_frame_host_id_2 = frame_node_source()->CreateFrameNode( render_process_id, process_node_source()->GetProcessNode(render_process_id)); - shared_worker_service()->AddClient(shared_worker_token, - render_frame_host_id_2); + shared_worker_service()->AddFrameClientToWorker(shared_worker_token, + render_frame_host_id_2); // Check expectations on the graph. CallOnGraphAndWait(base::BindLambdaForTesting( @@ -1200,11 +880,11 @@ EXPECT_TRUE(IsWorkerClient(worker_node, client_frame_node_2)); })); - // Disconnect and clean up the shared worker. - shared_worker_service()->RemoveClient(shared_worker_token, - render_frame_host_id_1); - shared_worker_service()->RemoveClient(shared_worker_token, - render_frame_host_id_2); + // Disconnect and clean up the worker. + shared_worker_service()->RemoveFrameClientFromWorker(shared_worker_token, + render_frame_host_id_1); + shared_worker_service()->RemoveFrameClientFromWorker(shared_worker_token, + render_frame_host_id_2); shared_worker_service()->DestroySharedWorker(shared_worker_token); } @@ -1220,13 +900,13 @@ // Create the 2 workers and connect them to the frame. const blink::SharedWorkerToken& shared_worker_token_1 = shared_worker_service()->CreateSharedWorker(render_process_id); - shared_worker_service()->AddClient(shared_worker_token_1, - render_frame_host_id); + shared_worker_service()->AddFrameClientToWorker(shared_worker_token_1, + render_frame_host_id); const blink::SharedWorkerToken& shared_worker_token_2 = shared_worker_service()->CreateSharedWorker(render_process_id); - shared_worker_service()->AddClient(shared_worker_token_2, - render_frame_host_id); + shared_worker_service()->AddFrameClientToWorker(shared_worker_token_2, + render_frame_host_id); // Check expectations on the graph. CallOnGraphAndWait(base::BindLambdaForTesting( @@ -1247,13 +927,13 @@ EXPECT_TRUE(IsWorkerClient(worker_node_2, client_frame_node)); })); - // Disconnect and clean up the shared workers. - shared_worker_service()->RemoveClient(shared_worker_token_1, - render_frame_host_id); + // Disconnect and clean up the workers. + shared_worker_service()->RemoveFrameClientFromWorker(shared_worker_token_1, + render_frame_host_id); shared_worker_service()->DestroySharedWorker(shared_worker_token_1); - shared_worker_service()->RemoveClient(shared_worker_token_2, - render_frame_host_id); + shared_worker_service()->RemoveFrameClientFromWorker(shared_worker_token_2, + render_frame_host_id); shared_worker_service()->DestroySharedWorker(shared_worker_token_2); } @@ -1261,36 +941,29 @@ int render_process_id = process_node_source()->CreateProcessNode(); // Create the frame node. - int frame_tree_node_id = GenerateNextId(); content::GlobalFrameRoutingId render_frame_host_id = frame_node_source()->CreateFrameNode( render_process_id, process_node_source()->GetProcessNode(render_process_id)); // Create a worker of each type. - const blink::DedicatedWorkerToken& dedicated_worker_token = + const blink::DedicatedWorkerToken& token = dedicated_worker_service()->CreateDedicatedWorker(render_process_id, render_frame_host_id); const blink::SharedWorkerToken& shared_worker_token = shared_worker_service()->CreateSharedWorker(render_process_id); int64_t service_worker_version_id = - service_worker_context()->CreateServiceWorker(); - service_worker_context()->StartServiceWorker(service_worker_version_id, - render_process_id); + service_worker_context()->StartServiceWorker(render_process_id); - // Connect the frame to the shared worker and the service worker. Note that it - // is already connected to the dedicated worker. - shared_worker_service()->AddClient(shared_worker_token, render_frame_host_id); - std::string service_worker_client_uuid = service_worker_context()->AddClient( - service_worker_version_id, - content::ServiceWorkerClientInfo(frame_tree_node_id)); - service_worker_context()->OnControlleeNavigationCommitted( - service_worker_version_id, service_worker_client_uuid, - render_frame_host_id); + // Connect the frame to the shared worker. + shared_worker_service()->AddFrameClientToWorker(shared_worker_token, + render_frame_host_id); + service_worker_context()->AddFrameClientToWorker(service_worker_version_id, + render_frame_host_id); // Check that everything is wired up correctly. CallOnGraphAndWait(base::BindLambdaForTesting( - [dedicated_worker_node = GetDedicatedWorkerNode(dedicated_worker_token), + [dedicated_worker_node = GetDedicatedWorkerNode(token), shared_worker_node = GetSharedWorkerNode(shared_worker_token), service_worker_node = GetServiceWorkerNode(service_worker_version_id), client_frame_node = frame_node_source()->GetFrameNode( @@ -1300,14 +973,16 @@ EXPECT_TRUE(graph->NodeInGraph(service_worker_node)); EXPECT_TRUE(IsWorkerClient(dedicated_worker_node, client_frame_node)); EXPECT_TRUE(IsWorkerClient(shared_worker_node, client_frame_node)); - EXPECT_TRUE(IsWorkerClient(service_worker_node, client_frame_node)); + // TODO(pmonette): Change the following to EXPECT_TRUE when the + // service worker node gets hooked up correctly. + EXPECT_FALSE(IsWorkerClient(service_worker_node, client_frame_node)); })); frame_node_source()->DeleteFrameNode(render_frame_host_id); - // Check that the workers are no longer connected to the deleted frame. + // Check that the worker is no longer connected to the deleted frame. CallOnGraphAndWait(base::BindLambdaForTesting( - [dedicated_worker_node = GetDedicatedWorkerNode(dedicated_worker_token), + [dedicated_worker_node = GetDedicatedWorkerNode(token), shared_worker_node = GetSharedWorkerNode(shared_worker_token), service_worker_node = GetServiceWorkerNode(service_worker_version_id)](GraphImpl* graph) { @@ -1319,15 +994,14 @@ EXPECT_TRUE(service_worker_node->client_frames().empty()); })); - // Clean up. The watcher is still expecting a worker removed notification. - service_worker_context()->RemoveClient(service_worker_version_id, - service_worker_client_uuid); + // The watcher is still expecting a worker removed notification. + service_worker_context()->RemoveFrameClientFromWorker( + service_worker_version_id, render_frame_host_id); service_worker_context()->StopServiceWorker(service_worker_version_id); - service_worker_context()->DestroyServiceWorker(service_worker_version_id); - shared_worker_service()->RemoveClient(shared_worker_token, - render_frame_host_id); + shared_worker_service()->RemoveFrameClientFromWorker(shared_worker_token, + render_frame_host_id); shared_worker_service()->DestroySharedWorker(shared_worker_token); - dedicated_worker_service()->DestroyDedicatedWorker(dedicated_worker_token); + dedicated_worker_service()->DestroyDedicatedWorker(token); } } // namespace performance_manager
diff --git a/components/policy/core/common/cloud/cloud_policy_manager.cc b/components/policy/core/common/cloud/cloud_policy_manager.cc index f39a79d..0cef3db 100644 --- a/components/policy/core/common/cloud/cloud_policy_manager.cc +++ b/components/policy/core/common/cloud/cloud_policy_manager.cc
@@ -9,7 +9,6 @@ #include "base/bind.h" #include "base/bind_helpers.h" #include "base/check_op.h" -#include "base/command_line.h" #include "base/files/file_path.h" #include "base/optional.h" #include "base/task/post_task.h" @@ -19,7 +18,6 @@ #include "components/policy/core/common/cloud/cloud_policy_service.h" #include "components/policy/core/common/policy_bundle.h" #include "components/policy/core/common/policy_map.h" -#include "components/policy/core/common/policy_switches.h" #include "components/policy/core/common/schema_registry.h" #include "components/prefs/pref_service.h" @@ -133,11 +131,8 @@ // See the comments on ComponentCloudPolicyService for the details. CHECK(!core()->client()); - if (base::CommandLine::ForCurrentProcess()->HasSwitch( - switches::kDisableComponentCloudPolicy) || - policy_cache_path.empty()) { + if (policy_cache_path.empty()) return; - } // TODO(emaxx, 729082): Make ComponentCloudPolicyStore (and other // implementation details of it) not use the blocking task runner whenever
diff --git a/components/policy/core/common/policy_switches.cc b/components/policy/core/common/policy_switches.cc index d0e6105..5fa1e9e 100644 --- a/components/policy/core/common/policy_switches.cc +++ b/components/policy/core/common/policy_switches.cc
@@ -11,9 +11,6 @@ // to fetch configuration policies and perform other device tasks. const char kDeviceManagementUrl[] = "device-management-url"; -// Disables fetching and storing cloud policy for components. -const char kDisableComponentCloudPolicy[] = "disable-component-cloud-policy"; - // Specifies the URL at which to upload real-time reports. const char kRealtimeReportingUrl[] = "realtime-reporting-url";
diff --git a/components/policy/core/common/policy_switches.h b/components/policy/core/common/policy_switches.h index d084d65..c6dbdfb 100644 --- a/components/policy/core/common/policy_switches.h +++ b/components/policy/core/common/policy_switches.h
@@ -13,7 +13,6 @@ namespace switches { POLICY_EXPORT extern const char kDeviceManagementUrl[]; -POLICY_EXPORT extern const char kDisableComponentCloudPolicy[]; POLICY_EXPORT extern const char kRealtimeReportingUrl[]; POLICY_EXPORT extern const char kUserAlwaysAffiliated[]; POLICY_EXPORT extern const char kChromePolicy[];
diff --git a/components/policy/resources/policy_templates_de.xtb b/components/policy/resources/policy_templates_de.xtb index 4d479ff..02e0fed 100644 --- a/components/policy/resources/policy_templates_de.xtb +++ b/components/policy/resources/policy_templates_de.xtb
@@ -365,6 +365,12 @@ <translation id="1561967320164410511">U2F plus Erweiterungen zur individuellen Bestätigung</translation> <translation id="1575015449587326319">Konfigurationsrichtlinie für den Chrome Enterprise-Connector "OnFileDownloaded"</translation> <translation id="1583248206450240930">Standardmäßig <ph name="PRODUCT_FRAME_NAME" /> verwenden</translation> +<translation id="1587671452159346389">Legt fest, welche Drucker aus <ph name="DEVICE_PRINTERS_POLICY_NAME" /> Nutzern zur Verfügung stehen. + + Gibt an, welche Zugriffsrichtlinie für die Massenkonfiguration von Druckern verwendet wird. Wenn <ph name="PRINTERS_ALLOW_ALL" /> ausgewählt ist, werden alle Drucker angezeigt. Wenn <ph name="PRINTERS_BLOCKLIST" /> ausgewählt ist, wird der Zugriff auf die angegebenen Drucker anhand von <ph name="DEVICE_PRINTERS_BLOCKLIST_POLICY_NAME" /> eingeschränkt. Wenn <ph name="PRINTERS_ALLOWLIST" /> ausgewählt ist, gibt <ph name="DEVICE_PRINTERS_ALLOWLIST_POLICY_NAME" /> nur die Drucker an, die ausgewählt werden können. + + Wenn die Richtlinie nicht festgelegt wird, wird angenommen, dass <ph name="PRINTERS_ALLOW_ALL" /> ausgewählt ist. + </translation> <translation id="1588240398285670601">Browsereinstellungen</translation> <translation id="1588456836529393506">Wenn diese Richtlinie konfiguriert ist, können Sie eine Liste mit URL-Mustern erstellen, die die Websites angeben, denen automatisch die Berechtigung für den Zugriff auf ein USB-Gerät mit den angegebenen Anbieter- und Produkt-IDs gewährt wird. Damit die Richtlinie gültig ist, müssen für jeden Eintrag auf der Liste Geräte und URLs angegeben sein. Jeder Geräteeintrag kann je ein Feld für eine Anbieter-ID und eine Produkt-ID enthalten. Fehlende IDs werden als Platzhalter betrachtet, wobei als Ausnahme zu berücksichtigen ist, dass eine Produkt-ID nicht ohne zugehörige Anbieter-ID angegeben werden kann. Andernfalls ist die Richtlinie nicht gültig. @@ -1083,6 +1089,22 @@ Ist diese Richtlinie deaktiviert, werden keine Sicherheitswarnungen angezeigt, wenn Chrome mit potenziell schädlichen Befehlszeilen-Flags gestartet wird. Unter <ph name="MS_WIN_NAME" /> steht diese Funktion nur bei Instanzen zur Verfügung, die Teil einer <ph name="MS_AD_NAME" />-Domain sind, auf der Windows 10 Pro läuft, oder die von der Chrome-Verwaltung über die Cloud verwaltet werden. Unter <ph name="MAC_OS_NAME" /> steht diese Funktion nur bei Instanzen zur Verfügung, die über die Mobilgeräteverwaltung verwaltet werden oder per MCX mit einer Domain verbunden sind.</translation> +<translation id="2621383458880689826">Stellt Konfigurationen für gerätegebundene Unternehmensdrucker bereit. + + Mit dieser Richtlinie können Druckerkonfigurationen für <ph name="PRODUCT_OS_NAME" />-Geräte bereitgestellt werden. Das Format entspricht dem des "NativePrinters"-Wörterbuchs, erfordert jedoch zusätzlich ein "id"- oder "guid"-Feld pro Drucker für die Zulassungs- oder Sperrliste. + + Die Datei darf nicht größer als 5 MB und muss in JSON codiert sein. Eine Datei mit ungefähr 21.000 Druckern ergibt nach dem Codieren eine Datei mit schätzungsweise 5 MB. Anhand des kryptografischen Hashs wird die Integrität des Downloads verifiziert. + + Die Datei wird heruntergeladen und im Cache gespeichert. Sobald sich URL oder Hash ändern, wird sie noch einmal heruntergeladen. + + Wenn diese Richtlinie konfiguriert ist, lädt <ph name="PRODUCT_OS_NAME" /> die Datei für Druckerkonfigurationen herunter und die Drucker werden gemäß <ph name="DEVICE_NATIVE_PRINTERS_ACCESS_MODE" />, <ph name="DEVICE_NATIVE_PRINTERS_WHITELIST_POLICY_NAME" /> und <ph name="DEVICE_NATIVE_PRINTERS_BLACKLIST_POLICY_NAME" /> bereitgestellt. + + Diese Richtlinie hat keinen Einfluss darauf, ob Nutzer auf einzelnen Geräten Drucker konfigurieren können. Sie ist als Ergänzung zu den Druckerkonfigurationen der einzelnen Nutzer gedacht. + + Diese Richtlinie ist ein Zusatz zu <ph name="BULK_PRINTERS_POLICY_NAME" />. + + Wenn diese Richtlinie nicht konfiguriert ist, gibt es keine gerätegebundenen Drucker und <ph name="DEVICE_NATIVE_PRINTERS_POLICY_PATTERN" />-Richtlinien werden ignoriert. + </translation> <translation id="2623014935069176671">Auf erste Nutzeraktivität warten</translation> <translation id="262740370354162807">Senden von Dokumenten an <ph name="CLOUD_PRINT_NAME" /> aktivieren</translation> <translation id="2632538643061793322">Wenn diese Richtlinie konfiguriert ist, können Sie eine Liste mit URL-Mustern erstellen, die angeben, welche Websites Nutzer auffordern dürfen, ihnen Zugriff auf ein USB-Gerät zu gewähren. @@ -1109,6 +1131,7 @@ Falls die Richtlinie nicht konfiguriert ist, kommt die Standardeinstellung zum Einsatz, bei der die Funktion von verwalteten Nutzern nicht verwendet und von nicht verwalteten Nutzern verwendet werden kann.</translation> <translation id="2660846099862559570">Nie Proxy verwenden</translation> +<translation id="2664682171745499686">Warnungen zu nachgeahmten URLs auf Domains unterdrücken</translation> <translation id="2665422249821137126">Großen Cursor auf der Anmeldeseite aktivieren</translation> <translation id="2672012807430078509">Steuerung, durch die NTLM als Authentifizierungsprotokoll für SMB-Bereitstellungen aktiviert wird</translation> <translation id="2678503605767349615">Erforderliche geräteübergreifende Clientzertifikate</translation> @@ -1248,6 +1271,12 @@ Ist diese Einstellung aktiviert, wird für die Druckvorschau der Standarddrucker des Betriebssystems als Standarddrucker ausgewählt.</translation> <translation id="285627849510728211">Tageskonfiguration für den intelligenten Akkulademodus festlegen</translation> <translation id="2856674246949497058">Führen Sie ein Rollback durch und bleiben Sie bei der Zielversion, falls die Version des Betriebssystems neuer ist als die der Zielversion. Außerdem sollten Sie während des Vorgangs einen Powerwash durchführen.</translation> +<translation id="2869140260739354012">Legt fest, welche Drucker aus <ph name="DEVICE_PRINTERS_POLICY" /> Nutzern zur Verfügung stehen. + + Gibt an, welche Zugriffsrichtlinie für die Massenkonfiguration von Druckern verwendet wird. Wenn <ph name="PRINTERS_ALLOW_ALL" /> ausgewählt ist, werden alle Drucker angezeigt. Wenn <ph name="PRINTERS_BLACKLIST" /> ausgewählt ist, wird der Zugriff auf die angegebenen Drucker anhand von <ph name="DEVICE_NATIVE_PRINTERS_BLACKLIST" /> eingeschränkt. Wenn <ph name="PRINTERS_WHITELIST" /> ausgewählt ist, gibt <ph name="DEVICE_NATIVE_PRINTERS_WHITELIST" /> nur die Drucker an, die ausgewählt werden können. + + Wenn die Richtlinie nicht festgelegt wird, wird angenommen, dass <ph name="PRINTERS_ALLOW_ALL" /> ausgewählt ist. + </translation> <translation id="2869762730352628426">Funktion "Automatisch klicken" auf dem Anmeldebildschirm aktivieren</translation> <translation id="2872961005593481000">Herunterfahren</translation> <translation id="2874209944580848064">Hinweis für <ph name="PRODUCT_OS_NAME" />-Geräte, die Android-Apps unterstützen:</translation> @@ -1290,11 +1319,6 @@ Hinweis: Diese Richtlinie verweist auf eine XML-Datei im selben Format wie die Richtlinie "<ph name="IEEM_SITELIST_POLICY" />" von <ph name="IE_PRODUCT_NAME" />. Sie lädt Regeln aus einer XML-Datei, ohne diese Regeln mit <ph name="IE_PRODUCT_NAME" /> zu teilen. Weitere Informationen zur Richtlinie "<ph name="IEEM_SITELIST_POLICY" />" von <ph name="IE_PRODUCT_NAME" /> (https://docs.microsoft.com/internet-explorer/ie11-deploy-guide/what-is-enterprise-mode)</translation> <translation id="2952347049958405264">Einschränkungen:</translation> -<translation id="2956777931324644324">Diese Richtlinie wird seit <ph name="PRODUCT_NAME" /> Version 36 nicht mehr verwendet. - - Sie legt fest, ob die Erweiterung für domaingebundene TLS-Zertifikate aktiviert werden soll. - - Anhand dieser Einstellung wird die Erweiterung für domaingebundene TLS-Zertifikate zu Testzwecken aktiviert. Diese experimentelle Einstellung wird in absehbarer Zukunft entfernt.</translation> <translation id="2957047180944828740">Gibt an, ob unsichere Websites Anfragen an eher private Netzwerk-Endpunkte senden dürfen</translation> <translation id="2957506574938329824">Keine Website darf Zugriff auf Bluetooth-Geräte über die Web Bluetooth API anfordern</translation> <translation id="2957513448235202597">Kontotyp für die <ph name="HTTP_NEGOTIATE" />-Authentifizierung</translation> @@ -1832,7 +1856,6 @@ Wenn diese Einstellung deaktiviert ist, können Nutzer sich nicht mit Smart Lock anmelden. Wenn diese Richtlinie nicht festgelegt ist, gilt die Standardeinstellung: Vom Unternehmen verwaltete Nutzer können sich nicht mit Smart Lock anmelden, nicht verwaltete Nutzer können sich mit Smart Lock anmelden.</translation> <translation id="3803171355925844705">Keiner Website das Laden von gemischten Inhalten erlauben</translation> -<translation id="3805659594028420438">Erweiterung für domaingebundene TLS-Zertifikate aktivieren (veraltet)</translation> <translation id="3808945828600697669">Liste der deaktivierten Plug-ins angeben</translation> <translation id="3810642039169532482">Hiermit wird die Bedienungshilfe "Spracheingabe" auf dem Anmeldebildschirm aktiviert. @@ -1862,6 +1885,12 @@ <translation id="3838094946886335701">Wenn diese Richtlinie konfiguriert ist – jedoch nur wie empfohlen –, können Sie eine Liste mit Protokoll-Handlern registrieren, die mit den vom Nutzer registrierten zusammengeführt werden. Nachfolgend werden beide Handler-Gruppen verwendet. Setzen Sie die Eigenschaft "protocol" auf das Schema, z. B. "mailto", und die Eigenschaft "URL" auf das URL-Muster der Anwendung, die das im Feld "protocol" angegebene Schema bearbeitet. In dem Muster kann es einen "%s"-Platzhalter geben, der von der verarbeiteten URL ersetzt wird. Ein von der Richtlinie registrierter Protokoll-Handler kann vom Nutzer nicht entfernt werden. Allerdings können durch Installation eines neuen Standard-Handlers die von der Richtlinie installierten Protokoll-Handler geändert werden.</translation> +<translation id="3848118497246496090">Gibt die Drucker an, die ein Nutzer nicht verwenden kann. + + Diese Richtlinie wird nur verwendet, wenn <ph name="PRINTERS_BLACKLIST" /> für <ph name="DEVICE_NATIVE_PRINTERS_ACCESS_MODE" /> ausgewählt wurde. + + Wenn diese Richtlinie verwendet wird, werden dem Nutzer alle Drucker mit Ausnahme der in dieser Richtlinie aufgeführten IDs zur Verfügung gestellt. Die IDs müssen den Feldern "id" oder "guid" in der Datei entsprechen, die in <ph name="DEVICE_PRINTERS_POLICY" /> angegeben ist. + </translation> <translation id="3851039766298741586">Durch diese Richtlinien werden Informationen zur aktiven Kiosksitzung gesendet, etwa Anwendungs-ID und Anwendungsversion. Wenn für die Richtlinien "false" festgelegt wird, werden die Informationen zu der Kiosksitzung nicht gesendet. Wird für die Richtlinien "true" festgelegt oder werden sie nicht konfiguriert, werden die Informationen zu der Kiosksitzung gesendet.</translation> @@ -2001,6 +2030,12 @@ <translation id="3965339130942650562">Zeitlimit bis zur Abmeldung eines inaktiven Nutzers</translation> <translation id="3973371701361892765">Ablage nie automatisch ausblenden</translation> <translation id="3979738908158213640">URLs, die während der SAML-Authentifizierung Zugriff zur Durchführung der Geräteattestierung erhalten</translation> +<translation id="3980024487013511975">Gibt die Drucker an, die ein Nutzer nicht verwenden kann. + + Diese Richtlinie wird nur verwendet, wenn <ph name="PRINTERS_BLOCKLIST" /> für <ph name="DEVICE_PRINTERS_ACCESS_MODE_POLICY_NAME" /> ausgewählt wurde. + + Wenn diese Richtlinie verwendet wird, werden dem Nutzer alle Drucker mit Ausnahme der in dieser Richtlinie aufgeführten IDs zur Verfügung gestellt. Die IDs müssen den Feldern "id" oder "guid" in der Datei entsprechen, die in <ph name="DEVICE_PRINTERS_POLICY_NAME" /> angegeben ist. + </translation> <translation id="3984028218719007910">Legt fest, ob lokale Kontodaten nach der Abmeldung in <ph name="PRODUCT_OS_NAME" /> gespeichert werden. Bei Einstellung auf "true" werden Konten nicht dauerhaft in <ph name="PRODUCT_OS_NAME" /> gespeichert und alle Daten der Nutzersitzung werden nach der Abmeldung verworfen. Ist die Richtlinie auf "false" gesetzt oder nicht konfiguriert, können (verschlüsselte) lokale Nutzerdaten auf dem Gerät verbleiben.</translation> <translation id="398884292557092447">Wenn die Richtlinie auf "True" gesetzt oder nicht konfiguriert ist, können Nutzer die Vorschläge zum automatischen Ausfüllen für Kreditkarten in der UI steuern. @@ -2208,6 +2243,12 @@ Wenn sie nicht konfiguriert ist, können Websites den Zugriff erfragen, aber Nutzer können diese Einstellung ändern.</translation> <translation id="4285674129118156176">Nicht verknüpften Nutzern die Verwendung von ARC gestatten</translation> +<translation id="4309562700894844665">Gibt die Drucker an, die ein Nutzer verwenden kann. + +Diese Richtlinie wird nur verwendet, wenn <ph name="PRINTERS_WHITELIST" /> für <ph name="DEVICE_NATIVE_PRINTERS_ACCESS_MODE" /> ausgewählt wurde. + +Wenn diese Richtlinie verwendet wird, stehen dem Nutzer nur die Drucker zur Verfügung, deren IDs mit den Werten in dieser Richtlinie übereinstimmen. Die IDs müssen den Feldern "id" oder "guid" in der Datei entsprechen, die in <ph name="DEVICE_PRINTERS_POLICY" /> angegeben ist. + </translation> <translation id="4311195029067684288">Vollständig</translation> <translation id="4313767483634435271">Eingetragene Dock-MAC-Adresse des Geräts</translation> <translation id="4322842393287974810">Der automatisch ohne Verzögerung gestarteten Kiosk-App die Steuerung der <ph name="PRODUCT_OS_NAME" />-Version gestatten</translation> @@ -2538,11 +2579,6 @@ Wenn die Richtlinie nicht konfiguriert und die Funktion "CastAllowAllIPs" deaktiviert ist, wird <ph name="PRODUCT_NAME" /> nur unter RFC1918-/RFC4193-Adressen mit Cast-Geräten verbunden.</translation> <translation id="489803897780524242">Parameter zur Steuerung der Suchbegriffersetzung für den Standardsuchanbieter</translation> <translation id="4899708173828500852">Safe Browsing aktivieren</translation> -<translation id="4902163780937592202">Ermöglicht das Zusammenführen der folgenden Listen zur Installation von Erweiterungen: <ph name="EXTENSION_INSTALL_BLOCKLIST_POLICY_NAME" />, <ph name="EXTENSION_INSTALL_ALLOWLIST_POLICY_NAME" /> und <ph name="EXTENSION_INSTALL_FORCELIST_POLICY_NAME" />. - - Wenn Sie diese Einstellung aktivieren, werden die Werte aus der Computer-Plattformrichtlinie, der Computer-Cloud-Richtlinie und der Nutzer-Plattformrichtlinie in einer einzigen Liste zusammengeführt und gesamtheitlich genutzt. Es werden also nicht nur die Werte aus der einzelnen Quelle mit der höchsten Priorität verwendet. - - Wenn Sie diese Einstellung deaktivieren oder nicht konfigurieren, werden nur Listeneinträge aus der Quelle mit der höchsten Priorität herangezogen. Alle anderen Quellen werden als Konflikte angezeigt, die jedoch ignoriert werden.</translation> <translation id="4906194810004762807">Aktualisierungsrate für Geräterichtlinien</translation> <translation id="4917385247580444890">Stark</translation> <translation id="4919122295221518724">Strengere Handhabung gemischter Inhalte aktivieren</translation> @@ -2853,6 +2889,22 @@ Wenn die Richtlinie auf "Erzwingen, dass Nutzer sich im Browser anmelden müssen" gesetzt ist, wird dem Nutzer ein Dialogfeld zur Kontoauswahl angezeigt. Er muss dann ein Konto auswählen und sich anmelden, um den Browser verwenden zu können. Dadurch wird bei verwalteten Konten sichergestellt, dass die entsprechenden Richtlinien erzwungen und angewendet werden. Standardmäßig wird hierbei die Chrome-Synchronisierung für das Konto aktiviert, es sei denn, sie wurde vom Administrator der Domain oder über die Richtlinie "SyncDisabled" deaktiviert. Der Standardwert für "BrowserGuestModeEnabled" wird auf "false" gesetzt. Profile ohne angemeldeten Nutzer werden gesperrt und sind nach dem Aktivieren dieser Richtlinie nicht mehr zugänglich. Weitere Informationen finden Sie in der Chrome-Hilfe unter https://support.google.com/chrome/a/answer/7572556. Unter Linux und Android wird diese Option nicht unterstützt. Wird sie verwendet, wird auf "Browseranmeldung aktivieren" zurückgegriffen. Wenn diese Richtlinie nicht konfiguriert ist, kann der Nutzer selbst entscheiden, ob er die Anmeldeoption des Browsers aktivieren und verwenden möchte.</translation> +<translation id="5327325901414715560">Stellt Konfigurationen für gerätegebundene Unternehmensdrucker bereit. + + Mit dieser Richtlinie können Druckerkonfigurationen für <ph name="PRODUCT_OS_NAME" />-Geräte bereitgestellt werden. Das Format entspricht dem des "NativePrinters"-Wörterbuchs, erfordert jedoch zusätzlich ein "id"- oder "guid"-Feld pro Drucker für die Zulassungs- oder Sperrliste. + + Die Datei darf nicht größer als 5 MB und muss in JSON codiert sein. Eine Datei mit ungefähr 21.000 Druckern ergibt nach dem Codieren eine Datei mit schätzungsweise 5 MB. Anhand des kryptografischen Hashs wird die Integrität des Downloads verifiziert. + + Die Datei wird heruntergeladen und im Cache gespeichert. Sobald sich URL oder Hash ändern, wird sie noch einmal heruntergeladen. + + Wenn diese Richtlinie konfiguriert ist, lädt <ph name="PRODUCT_OS_NAME" /> die Datei für Druckerkonfigurationen herunter und die Drucker werden gemäß <ph name="DEVICE_PRINTERS_ACCESS_MODE_POLICY_NAME" />, <ph name="DEVICE_PRINTERS_ALLOWLIST_POLICY_NAME" /> und <ph name="DEVICE_PRINTERS_BLOCKLIST_POLICY_NAME" /> bereitgestellt. + + Diese Richtlinie hat keinen Einfluss darauf, ob Nutzer auf einzelnen Geräten Drucker konfigurieren können. Sie ist als Ergänzung zu den Druckerkonfigurationen der einzelnen Nutzer gedacht. + + Diese Richtlinie ist ein Zusatz zu <ph name="PRINTERS_BULK_CONFIGURATION_POLICY_NAME" />. + + Wenn diese Richtlinie nicht konfiguriert ist, gibt es keine gerätegebundenen Drucker und <ph name="DEVICE_PRINTERS_POLICY_PATTERN" />-Richtlinien werden ignoriert. + </translation> <translation id="532848608876725157">DoH-Modus mit unsicherem Fallback-Verhalten aktivieren</translation> <translation id="5329007337159326804">Achtung: Die Richtlinie zur TLS-Höchstversion wird voraussichtlich in Version 75 (etwa im Juni 2019) vollständig aus <ph name="PRODUCT_NAME" /> entfernt. @@ -2991,7 +3043,6 @@ Ist sie auf "False" gesetzt, dürfen in <ph name="PRODUCT_NAME" /> keine Produktinformationen auf einem ganzen Tab angezeigt werden. Diese Einstellung steuert die Darstellung von Begrüßungsseiten, die Nutzern Hilfe bei der Anmeldung in <ph name="PRODUCT_NAME" /> bieten, <ph name="PRODUCT_NAME" /> als Standardbrowser des Nutzers festlegen oder die Nutzer auf andere Weise über Produktfunktionen informieren.</translation> -<translation id="5447306928176905178">Weitergabe von Speicherinformationen (JS-Heap-Größe) an Seite aktivieren (veraltet)</translation> <translation id="5450893456912604446">Hiermit wird die Standard-URL für die Startseite in <ph name="PRODUCT_NAME" /> konfiguriert und verhindert, dass diese von Nutzern geändert werden kann. Die Startseite wird über die Schaltfläche "Startseite" geöffnet. Auf dem Desktop werden die Seiten, die beim Hochfahren geöffnet werden, über die Richtlinien "RestoreOnStartup" kontrolliert. @@ -3415,6 +3466,12 @@ <ph name="PRODUCT_NAME" /> verwaltet die Inhalte des Stammverzeichnisses eines Volumes. Daher dürfen Sie, wenn Sie Datenverlust und sonstige Fehler vermeiden möchten, diese Richtlinie nicht auf das Stammverzeichnis oder ein anderes Verzeichnis festlegen, das für andere Zwecke verwendet wird. Informationen zu den Variablen, die Sie verwenden können, finden Sie unter https://www.chromium.org/administrators/policy-list-3/user-data-directory-variables.</translation> <translation id="6083631234867522991">Windows (Windows-Clients):</translation> +<translation id="6086225644749063677">Gibt die Drucker an, die ein Nutzer verwenden kann. + +Diese Richtlinie wird nur verwendet, wenn <ph name="PRINTERS_ALLOWLIST" /> für <ph name="DEVICE_PRINTERS_ACCESS_MODE_POLICY_NAME" /> ausgewählt wurde. + +Wenn diese Richtlinie verwendet wird, stehen dem Nutzer nur die Drucker zur Verfügung, deren IDs mit den Werten in dieser Richtlinie übereinstimmen. Die IDs müssen den Feldern "id" oder "guid" in der Datei entsprechen, die in <ph name="DEVICE_PRINTERS_POLICY_NAME" /> angegeben ist. + </translation> <translation id="608788685013546076">Schwellenwert des Akkus für das Umschalten bei Leistungsspitzen in Prozent festlegen</translation> <translation id="6089679180657323464">Legt die Einstellungen für Wilco Diagnostics and Telemetry Controller fest.</translation> <translation id="6091233616732024397">Erzwingen, dass Nutzer sich im Browser anmelden müssen</translation> @@ -3908,6 +3965,11 @@ Hinweis: Nutzer können Cookies blockieren und so auf Google-Dienste zugreifen, die nicht authentifiziert sind.</translation> <translation id="6843296367238757293">Diese Richtlinie ist veraltet. Von ihrer Verwendung wird abgeraten. Weitere Informationen dazu finden Sie unter https://support.google.com/chrome/a/answer/7643500</translation> +<translation id="6846126863870444592">Diese Richtlinie gibt die Erweiterungen an, die den Dialog zur Bestätigung des Druckauftrags überspringen dürfen, wenn die <ph name="PRINTING_API" />-Funktion <ph name="SUBMIT_JOB_FUNCTION" /> zum Senden eines Druckauftrags verwendet wird. + + Steht eine Erweiterung nicht auf der Liste oder ist die Liste nicht konfiguriert, wird dem Nutzer für jeden Aufruf von <ph name="SUBMIT_JOB_FUNCTION" /> der Bestätigungsdialog für den Druckauftrag angezeigt. + + Diese Richtlinie wurde eingestellt. Bitte verwenden Sie stattdessen <ph name="PRINTING_API_EXTENSIONS_ALLOWLIST_POLICY_NAME" />.</translation> <translation id="684856667300805181">Diese Richtlinie wurde in Version 68 von <ph name="PRODUCT_NAME" /> entfernt und durch "<ph name="ARC_GLS_POLICY_NAME" />" ersetzt.</translation> <translation id="6851199885688265233">Bedienungshilfe "Mauszeiger hervorheben" aktivieren</translation> <translation id="6851315055469993882">Globales HTTP-Auth-Cache aktivieren</translation> @@ -3928,9 +3990,6 @@ Wenn diese Richtlinie nicht konfiguriert ist, ist die Einstellung für vom Unternehmen verwaltete Nutzer und für nicht verwaltete Nutzer standardmäßig aktiviert.</translation> <translation id="6864244339257535116">Upload und Download von passwortgeschützten Dateien zulassen</translation> -<translation id="687046793986382807">Diese Richtlinie gilt ab <ph name="PRODUCT_NAME" /> Version 35 nicht mehr. - -Speicherinformationen werden unabhängig von der gewählten Option an die Seite weitergegeben, allerdings werden die gemeldeten Größen quantisiert und die Aktualisierungshäufigkeit wird aus Sicherheitsgründen begrenzt. Um genaue Daten in Echtzeit zu erhalten, können Sie Tools wie Telemetry verwenden.</translation> <translation id="68798513449385583">Downloads hinauszögern, bis Scanergebnisse vorliegen</translation> <translation id="6889123056995503704">Nutzer entscheiden über das Verhalten zum Versionsdowngrade</translation> <translation id="6894178810167845842">URL für "Neuer Tab"-Seite</translation> @@ -3963,6 +4022,13 @@ <translation id="6907778402784621686">Unsichere Inhalte auf diesen Websites blockieren</translation> <translation id="6908640907898649429">Konfiguriert die Standardsuchmaschine. Sie können die Standardsuchmaschine für die Nutzer auswählen oder die Standardsuche deaktivieren.</translation> <translation id="6913068954484253496"><ph name="PRODUCT_NAME" /> erlauben, eine Verbindung zu Übertragungsgeräten unter allen IP-Adressen herzustellen.</translation> +<translation id="6916817094593836501">Die Richtlinie verhindert, dass für die aufgeführten Websites Warnungen zu nachgeahmten URLs angezeigt werden. Diese Warnungen werden normalerweise dann eingeblendet, wenn <ph name="PRODUCT_NAME" /> feststellt, dass sich eine Website als eine dem Nutzer bekannte Website ausgeben könnte. + + Ist die Richtlinie aktiviert und für eine oder mehrere Domains konfiguriert, werden keine Warnungen zu nachgeahmten URLs angezeigt, wenn Nutzer Seiten auf der jeweiligen Domain aufrufen. + + Wenn diese Richtlinie deaktiviert, nicht konfiguriert oder auf eine leere Liste festgelegt, können jederzeit Warnungen zu nachgeahmten URLs erscheinen. + + Ein Hostname kann bei vollständiger Host- oder beliebiger Domainübereinstimmung erlaubt sein. Beispiel: Für die URL "https://foo.example.com/bar" werden Warnungen möglicherweise unterdrückt, wenn "foo.example.com" oder "example.com" zur Liste hinzugefügt wurden.</translation> <translation id="6922884955650325312">Das Plug-in "<ph name="FLASH_PLUGIN_NAME" />" blockieren</translation> <translation id="6923731550900440989">Hiermit wird die Funktion "Textcursor hervorheben" auf dem Anmeldebildschirm aktiviert</translation> <translation id="6924223708804692571">Damit wird die Deaktivierung von Sprachen für die Rechtschreibprüfung erzwungen. Sprachen in dieser Liste, die nicht erkannt werden, werden ignoriert. @@ -4712,7 +4778,6 @@ <translation id="793134539373873765">Gibt an, ob P2P für die Nutzdaten von Betriebssystem-Updates verwendet werden soll. Falls auf "True" gesetzt, teilen die Geräte Update-Nutzdaten im LAN und versuchen, die Daten von dort zu laden. Dadurch wird potenziell weniger Internetbandbreite verbraucht und es kommt seltener zu Datenstaus. Wenn die Update-Nutzdaten nicht im LAN verfügbar sind, lädt das Gerät sie ersatzweise von einem Updateserver herunter. Ist diese Option auf "False" gesetzt oder nicht konfiguriert, wird P2P nicht verwendet.</translation> <translation id="7933141401888114454">Erstellung von betreuten Nutzern aktivieren</translation> <translation id="793473937901685727">Verfügbarkeit von Zertifikaten für ARC-Apps festlegen</translation> -<translation id="7937491150792971922">Richtlinien für Listen zur Installation von Erweiterungen aus mehreren Quellen zusammenführen</translation> <translation id="7937766917976512374">Videoaufzeichnung gestatten oder ablehnen</translation> <translation id="7941975817681987555">Netzwerkaktionen nicht über Netzwerkverbindungen vervollständigen</translation> <translation id="7951605113561734721">Diese Richtlinie gibt geräteübergreifende Clientzertifikate an, die über das Geräteverwaltungsprotokoll registriert werden sollen.</translation> @@ -4733,6 +4798,9 @@ <translation id="7953256619080733119">Manuell festgelegte Ausnahme-Hosts für verwalteten Nutzer</translation> <translation id="7956210013490975468">Konfiguriert den System-Proxy-Dienst für <ph name="PRODUCT_OS_NAME" />.</translation> <translation id="7958537754689366707">Passworteingabe alle zwölf Stunden erforderlich</translation> +<translation id="7960293328203000385">Definiert eine Liste mit Nutzern, die sich auf dem Gerät anmelden dürfen. Die Einträge haben das Format <ph name="USER_ALLOWLIST_ENTRY_FORMAT" />, zum Beispiel <ph name="USER_ALLOWLIST_ENTRY_EXAMPLE" />. Wenn allen Nutzern in einer Domain die Anmeldung erlaubt werden soll, verwenden Sie Einträge im Format <ph name="USER_ALLOWLIST_ENTRY_WILDCARD" />. + + Wenn diese Richtlinie nicht konfiguriert ist, gibt es keine Einschränkungen im Hinblick auf die Nutzer, die sich anmelden dürfen. Zum Erstellen neuer Nutzer muss aber weiterhin die Richtlinie <ph name="DEVICE_ALLOW_NEW_USERS_POLICY_NAME" /> entsprechend konfiguriert werden.</translation> <translation id="7961779417826583251">Erzwingung der Zertifikatstransparenz für eine Liste alter Zertifizierungsstellen deaktivieren</translation> <translation id="7973609468423251675">Diese Richtlinie ist veraltet und wird in Version 85 von <ph name="PRODUCT_OS_NAME" /> entfernt. Bitte verwenden Sie stattdessen die Richtlinie "<ph name="POWER_MANAGEMENT_IDLE_SETTINGS_POLICY_NAME" />".
diff --git a/components/policy/resources/policy_templates_es-419.xtb b/components/policy/resources/policy_templates_es-419.xtb index 32dc3609..2a785b5 100644 --- a/components/policy/resources/policy_templates_es-419.xtb +++ b/components/policy/resources/policy_templates_es-419.xtb
@@ -1308,11 +1308,6 @@ Nota: Esta política redirecciona a un archivo XML en el mismo formato que la política <ph name="IEEM_SITELIST_POLICY" /> de <ph name="IE_PRODUCT_NAME" />. De esta manera, se cargan reglas de un archivo XML sin la necesidad de compartirlas con <ph name="IE_PRODUCT_NAME" />. Obtén más información sobre la política <ph name="IEEM_SITELIST_POLICY" /> de <ph name="IE_PRODUCT_NAME" /> (https://docs.microsoft.com/internet-explorer/ie11-deploy-guide/what-is-enterprise-mode)</translation> <translation id="2952347049958405264">Restricciones:</translation> -<translation id="2956777931324644324">Esta política cayó en desuso a partir de la versión 36 de <ph name="PRODUCT_NAME" />. - - Especifica si debe habilitarse la extensión TLS de certificados vinculados al dominio. - - Esta configuración se utiliza para habilitar la extensión TLS de certificados vinculados al dominio para realizar pruebas. Es una configuración experimental que se eliminará en el futuro.</translation> <translation id="2957047180944828740">Especifica si se permite que los sitios web no seguros envíen solicitudes a extremos de red más privados</translation> <translation id="2957506574938329824">No permitir que ningún sitio solicite acceso a dispositivos Bluetooth mediante la API de Bluetooth web</translation> <translation id="2957513448235202597">Tipo de cuenta para la autenticación <ph name="HTTP_NEGOTIATE" /></translation> @@ -1848,7 +1843,6 @@ Si no se establece esta política, los usuarios administrados por empresas no podrán usar la configuración predeterminada, pero los usuarios no administrados sí podrán usarla.</translation> <translation id="3803171355925844705">No permitir que ningún sitio cargue contenido mixto</translation> -<translation id="3805659594028420438">Habilitar la extensión TLS de certificados vinculados al dominio (en desuso)</translation> <translation id="3808945828600697669">Especificar una lista de complementos inhabilitados</translation> <translation id="3810642039169532482">Habilita la función de accesibilidad de dictado en la pantalla de acceso. @@ -2556,11 +2550,6 @@ Si no la estableces, se conectará <ph name="PRODUCT_NAME" /> a dispositivos Cast solo en las direcciones RFC1918/RFC4193, a menos que se active la función CastAllowAllIPs.</translation> <translation id="489803897780524242">Parámetro que controla la ubicación del término de búsqueda para el proveedor de búsqueda predeterminado</translation> <translation id="4899708173828500852">Habilitar la navegación segura</translation> -<translation id="4902163780937592202">Permite combinar las políticas de listas de instalación para extensiones <ph name="EXTENSION_INSTALL_BLOCKLIST_POLICY_NAME" />, <ph name="EXTENSION_INSTALL_ALLOWLIST_POLICY_NAME" /> y <ph name="EXTENSION_INSTALL_FORCELIST_POLICY_NAME" />. - - Si activas esta configuración, se combinarán los valores de la política de plataforma de máquina, la política de nube de máquina y la política de plataforma de usuario en una única lista, y se usarán en conjunto, en lugar de usar solo los valores del recurso con la prioridad más alta. - - Si inhabilitas esta configuración o no la estableces, solo se usarán las entradas de listas de la fuente con la prioridad más alta. El resto de las fuentes aparecerá en conflicto, pero se ignorará.</translation> <translation id="4906194810004762807">Frecuencia de actualización de la Política de dispositivos</translation> <translation id="4917385247580444890">Fuerte</translation> <translation id="4919122295221518724">Habilita un tratamiento más estricto para contenido mixto</translation> @@ -3005,7 +2994,6 @@ Si la estableces como falsa, <ph name="PRODUCT_NAME" /> no podrá mostrar información de productos en pestaña completa. El establecimiento de esta política permite controlar la presentación de páginas de bienvenida que ayudan a los usuarios a acceder a <ph name="PRODUCT_NAME" />, elegir <ph name="PRODUCT_NAME" /> como navegador predeterminado o recibir información sobre funciones de productos.</translation> -<translation id="5447306928176905178">Habilitar el suministro de información sobre la memoria (tamaño de pila de archivos JavaScript) a las páginas (obsoleto)</translation> <translation id="5450893456912604446">Configura la URL de la página principal predeterminada en <ph name="PRODUCT_NAME" /> y evita que los usuarios la modifiquen. La página principal es la que se abre con el botón Página principal. En la computadora, las páginas que se abren al inicio se controlan a través de las políticas RestoreOnStartup. @@ -3940,11 +3928,6 @@ Si no estableces esta política, se podrá utilizar el valor predeterminado tanto para usuarios administrados por una empresa como para aquellos no administrados.</translation> <translation id="6864244339257535116">Permitir las cargas y descargas de archivos protegidos con contraseña</translation> -<translation id="687046793986382807">Esta política no está disponible a partir de la versión 35 de <ph name="PRODUCT_NAME" />. - - Los datos de la memoria se informan a la página, independientemente del valor de la opción, pero los tamaños especificados - están cuantizados, y la frecuencia de actualizaciones se limita por razones de seguridad. Para obtener datos precisos en tiempo real, - utiliza la telemetría u otras herramientas similares.</translation> <translation id="68798513449385583">Demorar las descargas hasta conocer el resultado del análisis</translation> <translation id="6889123056995503704">El usuario elige el comportamiento del cambio a una versión inferior del canal</translation> <translation id="6894178810167845842">URL de la página Nueva pestaña</translation> @@ -4726,7 +4709,6 @@ <translation id="793134539373873765">Especifica si se debe utilizar la conexión P2P para cargas de actualizaciones del sistema operativo. Si esta política se establece en True, los dispositivos compartirán e intentarán consumir cargas de actualizaciones en la red LAN, y reducirán de forma potencial la congestión y el uso del ancho de banda de Internet. Si la carga de actualizaciones no está disponible en la red LAN, el dispositivo deberá realizar la descarga desde un servidor de actualizaciones. Si se establece en False o no se configura, no se utilizará la conexión P2P.</translation> <translation id="7933141401888114454">Habilita la creación de usuarios supervisados.</translation> <translation id="793473937901685727">Establecer la disponibilidad de certificados para apps de ARC</translation> -<translation id="7937491150792971922">Combinar políticas de listas de instalación para extensiones de diferentes fuentes</translation> <translation id="7937766917976512374">Permitir o rechazar la captura de video</translation> <translation id="7941975817681987555">No predecir acciones de la red en ninguna conexión de red</translation> <translation id="7951605113561734721">Especifica los Certificados de cliente de todo el dispositivo que deben inscribirse con el protocolo de administración de dispositivos.</translation>
diff --git a/components/policy/resources/policy_templates_es.xtb b/components/policy/resources/policy_templates_es.xtb index e73b52c..0d9647a 100644 --- a/components/policy/resources/policy_templates_es.xtb +++ b/components/policy/resources/policy_templates_es.xtb
@@ -373,6 +373,12 @@ <translation id="1561967320164410511">U2F y extensiones de confirmación individual</translation> <translation id="1575015449587326319">Política de configuración del conector OnFileDownloaded de Chrome Enterprise Connectors</translation> <translation id="1583248206450240930">Utilizar <ph name="PRODUCT_FRAME_NAME" /> de forma predeterminada</translation> +<translation id="1587671452159346389">Controla qué impresoras de la política <ph name="DEVICE_PRINTERS_POLICY_NAME" /> están disponibles para los usuarios. + + Define qué política de acceso se utiliza para configurar impresoras en bloque. Si se selecciona <ph name="PRINTERS_ALLOW_ALL" />, se muestran todas las impresoras. Si se selecciona <ph name="PRINTERS_BLOCKLIST" />, <ph name="DEVICE_PRINTERS_BLOCKLIST_POLICY_NAME" /> se utiliza para restringir el acceso a impresoras específicas. Si se selecciona <ph name="PRINTERS_ALLOWLIST" />, <ph name="DEVICE_PRINTERS_ALLOWLIST_POLICY_NAME" /> define únicamente las impresoras que se pueden seleccionar. + + Si no se establece esta política, se utiliza <ph name="PRINTERS_ALLOW_ALL" />. + </translation> <translation id="1588240398285670601">Configuración del navegador</translation> <translation id="1588456836529393506">Si le asignas un valor a esta política, podrás crear una lista de patrones de URL donde se especifique qué sitios web obtienen permiso automáticamente para acceder a un dispositivo USB con los ID de proveedor y producto facilitados. Cada elemento de la lista debe contener dispositivos y URLs para que la política sea válida. Cada elemento de los dispositivos puede incluir un campo de ID de proveedor y otro de ID de producto. Los ID que omitas se considerarán comodines, con una excepción: no puedes especificar un ID de producto sin definir también un ID de proveedor. De lo contrario, la política no será válida. @@ -389,7 +395,7 @@ Los usuarios no pueden modificar ni anular este ajuste. - Nota: Esta política provoca que el encabezado X-GoogApps-Allowed-Domains se añada a todas las solicitudes HTTP y HTTPS en todos los dominios de google.com, como se describe en la página https://support.google.com/a/answer/1668854.</translation> + Nota: Esta política provoca que el encabezado X-GoogApps-Allowed-Domains se añada a todas las solicitudes HTTP y HTTPS en todos los dominios de google.com, como se describe https://support.google.com/a/answer/1668854.</translation> <translation id="1599424828227887013">Habilitar el aislamiento de sitios web específicos en dispositivos Android</translation> <translation id="159946228300522107">Si se asigna el valor "Verdadero" a esta política, Chrome maximizará la primera ventana que se muestre al ejecutarse por primera vez. @@ -398,7 +404,7 @@ Si se le asigna el valor "False" o no se le asigna ningún valor, se abrirán los archivos PDF, a menos que los usuarios desactiven el complemento de PDF.</translation> <translation id="1608755754295374538">URLs a las que se concederá acceso a dispositivos de captura de audio sin confirmación</translation> -<translation id="1609917034797989341">Si se define esta política, se concederá acceso a claves corporativas de extensiones. Las claves están designadas solo para un uso corporativo si se generan con la API chrome.enterprise.platformKeys API en una cuenta gestionada. Los usuarios no pueden conceder acceso a extensiones mediante claves corporativas ni retirarlo. +<translation id="1609917034797989341">Si se define esta política, se concederá acceso a claves corporativas de extensiones. Las claves están designadas solo para un uso corporativo si se generan con la API chrome.enterprise.platformKeys API en una cuenta gestionada. Los usuarios no pueden conceder acceso a extensiones mediante claves corporativas ni quitarlo. De forma predeterminada, una extensión no puede utilizar una clave designada para uso corporativo, lo que equivale a asignar el valor "False" a allowCorporateKeyUsage en esa extensión. Solo si se le asigna el valor "True" a allowCorporateKeyUsage en una extensión, esta podrá utilizar cualquier clave de plataforma marcada para uso corporativo para firmar datos arbitrarios. Este permiso solo se debe conceder si se tiene la certeza de que la extensión garantiza un acceso seguro a la clave y la protege de posibles ataques.</translation> <translation id="1611394564825535541">Permite controlar si los usuarios pueden acceder a impresoras que no sean de empresa @@ -907,11 +913,11 @@ <translation id="2364639863953745682">Modo de la experiencia de incorporación del Asistente</translation> <translation id="2366401226808353434">Si se establece esta política, podrás definir una lista de patrones de URL donde se especifique qué sitios web pueden pedir a los usuarios que les otorguen acceso de lectura a archivos o directorios del sistema de archivos del sistema operativo del host a través de la API File System. - Si no se le asigna ningún valor a esta política, <ph name="DEFAULT_FILE_SYSTEM_READ_GUARD_SETTING_POLICY_NAME" /> se aplicará a todos los sitios web si se ha definido. Si no se ha definido, se aplicará la configuración personal del usuario. + Si no se le asigna ningún valor a esta política, <ph name="DEFAULT_FILE_SYSTEM_READ_GUARD_SETTING_POLICY_NAME" /> se aplicará a todos los sitios web (si se ha definido). Si no se ha definido, se aplicará la configuración personal del usuario. Los patrones de URL no deben entrar en conflicto con <ph name="FILE_SYSTEM_READ_BLOCKED_FOR_URLS_POLICY_NAME" />. Si una URL está incluida en ambas políticas, no tendrá preferencia ninguna política. - Para obtener información detallada sobre los patrones de <ph name="URL_LABEL" /> válidos, consulta el sitio web https://cloud.google.com/docs/chrome-enterprise/policies/url-patterns.</translation> + Para obtener información detallada sobre los patrones de <ph name="URL_LABEL" /> válidos, consulta https://cloud.google.com/docs/chrome-enterprise/policies/url-patterns.</translation> <translation id="2386362615870139244">Permitir bloqueos de activación de pantalla</translation> <translation id="2394674739523870144">Si se define esta política como una lista de cadenas, dichas cadenas se unirán mediante espacios y pasarán de <ph name="IE_PRODUCT_NAME" /> a <ph name="PRODUCT_NAME" /> como parámetros de línea de comandos. Si un parámetro contiene la variable <ph name="URL_PLACEHOLDER" />, <ph name="URL_PLACEHOLDER" /> se sustituirá por la URL de la página que se vaya a abrir. Si ningún parámetro contiene la variable <ph name="URL_PLACEHOLDER" />, la URL se añadirá al final de la línea de comandos. @@ -1037,11 +1043,11 @@ <translation id="2522304491589804974">Configura la lista de extensiones de instalación permitidas</translation> <translation id="2525272234967793245">Si se le asigna un valor a esta política, podrás establecer una lista de patrones de URL donde se especifique qué sitios web pueden pedirles a los usuarios que les otorguen acceso de escritura a archivos o directorios en el sistema de archivos del sistema operativo del host. - Si no se le asigna ningún valor a esta política, <ph name="DEFAULT_FILE_SYSTEM_WRITE_GUARD_SETTING_POLICY_NAME" /> se aplicará a todos los sitios web si se ha definido. Si no se ha definido, se aplicará la configuración personal del usuario. + Si no se le asigna ningún valor a esta política, <ph name="DEFAULT_FILE_SYSTEM_WRITE_GUARD_SETTING_POLICY_NAME" /> se aplicará a todos los sitios web (si se ha definido). Si no se ha definido, se aplicará la configuración personal del usuario. Los patrones de URL no deben entrar en conflicto con <ph name="FILE_SYSTEM_WRITE_BLOCKED_FOR_URLS_POLICY_NAME" />. Si una URL está incluida en ambas políticas, no tendrá preferencia ninguna política. - Para obtener información detallada sobre los patrones de <ph name="URL_LABEL" /> válidos, consulta el sitio web https://cloud.google.com/docs/chrome-enterprise/policies/url-patterns.</translation> + Para obtener información detallada sobre los patrones de <ph name="URL_LABEL" /> válidos, consulta https://cloud.google.com/docs/chrome-enterprise/policies/url-patterns.</translation> <translation id="2529880111512635313">Configura la lista de aplicaciones y extensiones de instalación forzada</translation> <translation id="253135976343875019">Tiempo de espera de inactividad cuando el dispositivo está conectado a la red</translation> <translation id="2536525645274582300">El usuario decide si quiere habilitar los servicios de ubicación de Google</translation> @@ -1105,6 +1111,22 @@ Si se inhabilita esta política, no se mostrará ninguna advertencia de seguridad cuando se inicie Chrome con instrucciones de línea de comandos potencialmente peligrosas. En <ph name="MS_WIN_NAME" />, esta función solo está disponible en instancias que estén vinculadas a un dominio de <ph name="MS_AD_NAME" />, que se ejecuten en Windows 10 Pro o que se hayan registrado en Gestión en la nube del navegador Chrome. En <ph name="MAC_OS_NAME" />, esta función solo está disponible en instancias que se gestionen mediante MDM o que estén vinculadas a un dominio a través de MCX.</translation> +<translation id="2621383458880689826">Proporciona opciones de configuración para impresoras de empresa vinculadas a dispositivos. + + Esta política permite proporcionar opciones de configuración de impresoras a dispositivos <ph name="PRODUCT_OS_NAME" />. El formato es el mismo que el del diccionario NativePrinters, con un campo id o guid obligatorio por impresora para incluirla en una lista de permitidas o bloqueadas. + + El tamaño máximo del archivo es de 5 MB y se debe codificar con formato JSON. Se estima que el tamaño de un archivo que contiene unas 21.000 impresoras es de 5 MB. Se usa el hash criptográfico para comprobar la integridad de la descarga. + + El archivo se descarga y se almacena en caché. Se volverá a descargar si se cambia la URL o el hash. + + Si se establece esta política, <ph name="PRODUCT_OS_NAME" /> descargará el archivo con las configuraciones de las impresoras y estas estarán disponibles según lo especificado en las políticas <ph name="DEVICE_NATIVE_PRINTERS_ACCESS_MODE" />, <ph name="DEVICE_NATIVE_PRINTERS_WHITELIST_POLICY_NAME" /> y <ph name="DEVICE_NATIVE_PRINTERS_BLACKLIST_POLICY_NAME" />. + + Esta política no afecta a la capacidad de los usuarios de configurar impresoras en determinados dispositivos. La política está pensada para ser complementaria a la configuración de impresoras de los usuarios. + + Esta política sirve de complemento de la política <ph name="BULK_PRINTERS_POLICY_NAME" />. + + Si no se establece esta política, no habrá impresoras de dispositivos y se ignorará el resto de las políticas <ph name="DEVICE_NATIVE_PRINTERS_POLICY_PATTERN" />. + </translation> <translation id="2623014935069176671">Esperar actividad inicial del usuario</translation> <translation id="262740370354162807">Habilitar el envío de documentos a <ph name="CLOUD_PRINT_NAME" /></translation> <translation id="2632538643061793322">Si le asignas un valor a esta política, podrás establecer una lista de patrones de URL donde se especifique qué sitios web pueden pedirles a los usuarios que les permitan acceder a un dispositivo USB. @@ -1131,6 +1153,7 @@ Si no se define esta política, no estará disponible de forma predeterminada para los usuarios administrados pero sí lo estará para los no administrados.</translation> <translation id="2660846099862559570">No utilizar nunca un proxy</translation> +<translation id="2664682171745499686">Eliminar las advertencias de dominio similares en dominios</translation> <translation id="2665422249821137126">Habilitar el cursor grande en la pantalla de inicio de sesión</translation> <translation id="2672012807430078509">Controla la habilitación de NTLM como protocolo de autenticación para activaciones SMB.</translation> <translation id="2678503605767349615">Certificados de cliente de todo el dispositivo obligatorios</translation> @@ -1270,6 +1293,12 @@ Si habilitas esta opción, la vista previa de impresión mostrará la impresora predeterminada del sistema operativo como impresora de destino predeterminada.</translation> <translation id="285627849510728211">Define la configuración diaria del modo avanzado de carga de la batería</translation> <translation id="2856674246949497058">Vuelve a instalar la versión de destino si la versión del SO es más reciente que la de destino. Realiza un Powerwash durante el proceso.</translation> +<translation id="2869140260739354012">Controla qué impresoras de la política <ph name="DEVICE_PRINTERS_POLICY" /> están disponibles para los usuarios. + + Define qué política de acceso se utiliza para configurar impresoras en bloque. Si se selecciona <ph name="PRINTERS_ALLOW_ALL" />, se muestran todas las impresoras. Si se selecciona <ph name="PRINTERS_BLACKLIST" />, <ph name="DEVICE_NATIVE_PRINTERS_BLACKLIST" /> se utiliza para restringir el acceso a impresoras específicas. Si se selecciona <ph name="PRINTERS_WHITELIST" />, <ph name="DEVICE_NATIVE_PRINTERS_WHITELIST" /> define únicamente las impresoras que se pueden seleccionar. + + Si no se establece esta política, se utiliza <ph name="PRINTERS_ALLOW_ALL" />. + </translation> <translation id="2869762730352628426">Habilitar el clic automático en la pantalla de inicio de sesión</translation> <translation id="2872961005593481000">Apagar</translation> <translation id="2874209944580848064">Nota para los dispositivos <ph name="PRODUCT_OS_NAME" /> compatibles con las aplicaciones de Android:</translation> @@ -1312,11 +1341,6 @@ Nota: Esta política dirige a un archivo XML con el mismo formato que la política <ph name="IEEM_SITELIST_POLICY" /> de <ph name="IE_PRODUCT_NAME" />. Se cargarán las reglas de un archivo XML, sin compartirlas con <ph name="IE_PRODUCT_NAME" />. Puedes consultar más información sobre la política <ph name="IEEM_SITELIST_POLICY" /> de <ph name="IE_PRODUCT_NAME" /> en https://docs.microsoft.com/internet-explorer/ie11-deploy-guide/what-is-enterprise-mode</translation> <translation id="2952347049958405264">Restricciones:</translation> -<translation id="2956777931324644324">Esta política no está disponible a partir de la versión 36 de <ph name="PRODUCT_NAME" />. - - Especifica si se debe habilitar la extensión de certificados TLS limitados a dominios. - - Esta opción se utiliza para habilitar la extensión de certificados TLS limitados a dominios para pruebas. Esta opción experimental se eliminará en el futuro.</translation> <translation id="2957047180944828740">Especifica si se permite que los sitios web no seguros envíen peticiones a puntos de conexión más privados de la red</translation> <translation id="2957506574938329824">No permitir que los sitios web soliciten acceso a los dispositivos Bluetooth a través de la API Bluetooth web</translation> <translation id="2957513448235202597">Tipo de cuenta para la autenticación <ph name="HTTP_NEGOTIATE" /></translation> @@ -1856,7 +1880,6 @@ Si esta política no se configura, Smart Lock se inhabilita para los usuarios administrados por empresas y se habilita para los no administrados.</translation> <translation id="3803171355925844705">No permitir que los sitios web puedan cargar contenido mixto</translation> -<translation id="3805659594028420438">Habilita la extensión de certificados TLS limitados a dominios (obsoleta)</translation> <translation id="3808945828600697669">Especificar una lista de complementos inhabilitados</translation> <translation id="3810642039169532482">Habilita la función de accesibilidad de dictado en la pantalla de inicio de sesión. @@ -1886,6 +1909,12 @@ <translation id="3838094946886335701">Si se establece esta política (solo según lo recomendado), podrás registrar una lista de controladores de protocolo, la cual se combinará con las listas que registre el usuario (se usarán ambos conjuntos). Establece la propiedad protocol según el esquema (por ejemplo, mailto) y la propiedad URL según el patrón de URL de la aplicación que controla el esquema especificado en el campo protocol. El patrón puede incluir un marcador de posición %s, que se sustituye por la URL controlada. Los usuarios no pueden quitar un controlador de protocolo registrado por la política. Sin embargo, si instalan un controlador predeterminado nuevo, podrán cambiar los controladores de protocolo instalados por la política.</translation> +<translation id="3848118497246496090">Especifica las impresoras que un usuario no puede utilizar. + + Esta política solo se usará si se asigna <ph name="PRINTERS_BLACKLIST" /> a <ph name="DEVICE_NATIVE_PRINTERS_ACCESS_MODE" />. + + Si se usa esta política, el usuario podrá utilizar todas las impresoras, excepto aquellas con los ID indicados en la política. Los ID deben coincidir con los campos id o guid del archivo especificado en <ph name="DEVICE_PRINTERS_POLICY" />. + </translation> <translation id="3851039766298741586">Proporciona información sobre la sesión del kiosco activa, como el ID de la aplicación y la versión. @@ -2025,6 +2054,12 @@ <translation id="3965339130942650562">Tiempo de espera para cerrar sesión cuando el usuario se encuentre inactivo</translation> <translation id="3973371701361892765">No ocultar automáticamente los archivos</translation> <translation id="3979738908158213640">Direcciones URL a las que se otorgará acceso para realizar la atestación del dispositivo durante la autenticación de SAML</translation> +<translation id="3980024487013511975">Especifica las impresoras que un usuario no puede utilizar. + + Esta política solo se usará si se asigna <ph name="PRINTERS_BLOCKLIST" /> a <ph name="DEVICE_PRINTERS_ACCESS_MODE_POLICY_NAME" />. + + Si se usa esta política, el usuario podrá utilizar todas las impresoras, excepto aquellas con los ID indicados en la política. Los ID deben coincidir con los campos id o guid del archivo especificado en <ph name="DEVICE_PRINTERS_POLICY_NAME" />. + </translation> <translation id="3984028218719007910">Permite determinar si <ph name="PRODUCT_OS_NAME" /> mantiene los datos de cuenta locales tras cerrar la sesión. Si el valor se establece en "true", <ph name="PRODUCT_OS_NAME" /> no conservará ninguna cuenta de forma permanente y todos los datos de la sesión del usuario se descartarán al cerrar la sesión. Si esta política no se configura o el valor correspondiente se establece en "false", el dispositivo puede guardar datos de usuario locales (encriptados).</translation> <translation id="398884292557092447">Si se asigna el valor "True" a esta política o no se le asigna ninguno, los usuarios podrán controlar las sugerencias de Autocompletar para la información de tarjetas de crédito en la interfaz. @@ -2232,6 +2267,12 @@ Si no se le asigna ningún valor, los sitios web podrán solicitar acceso, pero los usuarios podrán cambiar esta opción.</translation> <translation id="4285674129118156176">Permitir que los usuarios no afiliados utilicen ARC</translation> +<translation id="4309562700894844665">Especifica las impresoras que puede utilizar un usuario. + + Esta política solo se usa si se asigna <ph name="PRINTERS_WHITELIST" /> a <ph name="DEVICE_NATIVE_PRINTERS_ACCESS_MODE" /> + + Si se usa esta política, solo las impresoras cuyos ID coincidan con los valores incluidos en la política estarán disponibles para el usuario. Los ID deben coincidir con los campos id o guid del archivo definido en la política <ph name="DEVICE_PRINTERS_POLICY" />. + </translation> <translation id="4311195029067684288">Llena</translation> <translation id="4313767483634435271">Dirección MAC designada de la base del dispositivo</translation> <translation id="4322842393287974810">Permite que la aplicación de kiosco sin retardo con inicio automático controle la versión de <ph name="PRODUCT_OS_NAME" /></translation> @@ -2571,11 +2612,6 @@ Si no se le asigna ningún valor, <ph name="PRODUCT_NAME" /> solo se conectará con dispositivos de emisión en direcciones de RFC 1918 o RFC 4193, a no ser que la función CastAllowAllIPs esté activada.</translation> <translation id="489803897780524242">Parámetro que controla el emplazamiento de los términos de búsqueda para el proveedor de búsquedas predeterminado</translation> <translation id="4899708173828500852">Habilitar Navegación Segura</translation> -<translation id="4902163780937592202">Habilita la combinación de las siguientes políticas de lista de instalación de extensiones: <ph name="EXTENSION_INSTALL_BLOCKLIST_POLICY_NAME" />, <ph name="EXTENSION_INSTALL_ALLOWLIST_POLICY_NAME" /> y <ph name="EXTENSION_INSTALL_FORCELIST_POLICY_NAME" />. - - Si habilitas esta opción, los valores de la política de plataforma del equipo, de la política de nube del equipo y de la política de plataforma del usuario se combinarán en una única lista que se usará en conjunto, en lugar de utilizar únicamente los valores de la fuente que tenga mayor prioridad. - - Si inhabilitas esta opción o no le asignas ningún valor, solo se usarán las entradas de lista de la fuente que tenga mayor prioridad. Las demás fuentes se mostrarán como conflictos, pero se ignorarán.</translation> <translation id="4906194810004762807">Frecuencia de actualización de Device Policy</translation> <translation id="4917385247580444890">Buena</translation> <translation id="4919122295221518724">Permite un tratamiento más estricto para el contenido mixto</translation> @@ -2611,13 +2647,13 @@ <translation id="4952347392677351397">Si se le asigna el valor 1 a esta política, los sitios web podrán usar y acceder a los sensores, como los de luz o movimiento. Si se le asigna el valor 2, se denegará el acceso a los sensores. Si no se le asigna ningún valor, se aplicará la política <ph name="ALLOW_SENSORS_POLICY_NAME" />, pero los usuarios podrán cambiar esta opción.</translation> -<translation id="4954185885991137927">Si se habilita esta política, se activan los informes ampliados de Navegación Segura de <ph name="PRODUCT_NAME" />, que envían información del sistema y contenido de páginas a los servidores de Google para ayudar a detectar aplicaciones y sitios web peligrosos. +<translation id="4954185885991137927">Si se habilita esta política, se activan los informes ampliados de Navegación Segura de <ph name="PRODUCT_NAME" />, que envían parte de la información del sistema y del contenido de las páginas a los servidores de Google para ayudar a detectar aplicaciones y sitios web peligrosos. Si se inhabilita, no se envía ningún informe. Si se le asigna un valor a esta política, los usuarios no podrán cambiarlo. Si no se le asigna ningún valor, los usuarios podrán decidir si quieren enviar informes o no. - Consulta más información sobre Navegación Segura en el siguiente sitio web: https://developers.google.com/safe-browsing.</translation> + Consulta más información sobre Navegación Segura en https://developers.google.com/safe-browsing.</translation> <translation id="4962262530309732070">Si se asigna el valor true a esta política o si esta no se configura, <ph name="PRODUCT_NAME" /> permitirá la opción Añadir persona del administrador de usuarios. Si se asigna el valor false a esta política, <ph name="PRODUCT_NAME" /> no se podrán crear perfiles desde el administrador de usuarios.</translation> @@ -2891,6 +2927,22 @@ Si se selecciona que se fuerce el inicio de sesión en esta política, se mostrará un cuadro de diálogo de selección de cuenta al usuario para que elija una e inicie sesión en el navegador. De este modo, se garantiza que, en el caso de las cuentas gestionadas, se apliquen y se cumplan las políticas asociadas a la cuenta. Además, se activará de forma predeterminada la función Sincronización de Chrome de la cuenta, excepto si el administrador del dominio la ha inhabilitado o si la política SyncDisabled está activada. El valor predeterminado que se asignará a BrowserGuestModeEnabled es "false". Ten en cuenta que, después de habilitar esta política, los perfiles con los que no se haya iniciado sesión se bloquearán y no se podrá acceder a ellos. Para obtener más información, consulta este artículo del Centro de Ayuda: https://support.google.com/chrome/a/answer/7572556. Esta opción no es compatible con Linux ni Android y, si se usa, cambiará a "Habilitar inicio de sesión en el navegador". Si no se establece esta política, el usuario podrá decidir si quiere activar la opción de inicio sesión en el navegador y usarla cuando lo crea oportuno.</translation> +<translation id="5327325901414715560">Proporciona opciones de configuración para impresoras de empresa vinculadas a dispositivos. + + Esta política permite proporcionar opciones de configuración de impresoras a dispositivos <ph name="PRODUCT_OS_NAME" />. El formato es el mismo que el del diccionario NativePrinters, con un campo id o guid obligatorio por impresora para incluirla en una lista de permitidas o bloqueadas. + + El tamaño máximo del archivo es de 5 MB y se debe codificar con formato JSON. Se estima que el tamaño de un archivo que contiene unas 21.000 impresoras es de 5 MB. Se usa el hash criptográfico para comprobar la integridad de la descarga. + + El archivo se descarga y se almacena en caché. Se volverá a descargar si se cambia la URL o el hash. + + Si se establece esta política, <ph name="PRODUCT_OS_NAME" /> descargará el archivo con las configuraciones de las impresoras y estas estarán disponibles según lo especificado en las políticas <ph name="DEVICE_PRINTERS_ACCESS_MODE_POLICY_NAME" />, <ph name="DEVICE_PRINTERS_ALLOWLIST_POLICY_NAME" /> y <ph name="DEVICE_PRINTERS_BLOCKLIST_POLICY_NAME" />. + + Esta política no afecta a la capacidad de los usuarios de configurar impresoras en determinados dispositivos. La política está pensada para ser complementaria a la configuración de impresoras de los usuarios. + + Esta política sirve de complemento de la política <ph name="PRINTERS_BULK_CONFIGURATION_POLICY_NAME" />. + + Si no se establece esta política, no habrá impresoras de dispositivos y se ignorará el resto de las políticas <ph name="DEVICE_PRINTERS_POLICY_PATTERN" />. + </translation> <translation id="532848608876725157">Habilitar DNS-over-HTTPS con alternativa no segura</translation> <translation id="5329007337159326804">Advertencia: La política de la versión máxima de TLS se retirará por completo de <ph name="PRODUCT_NAME" /> aproximadamente en la versión 75 (en torno a junio del 2019). @@ -3028,7 +3080,6 @@ Si se le asigna el valor "False", impedirá que <ph name="PRODUCT_NAME" /> muestre contenido que ocupe toda la pestaña para ofrecer información del producto. Si se asigna un valor a esta política, controlará la presentación de las páginas de bienvenida que ayudan a los usuarios a iniciar sesión en <ph name="PRODUCT_NAME" />, establecerá <ph name="PRODUCT_NAME" /> como navegador predeterminado de los usuarios o los informará sobre funciones del producto.</translation> -<translation id="5447306928176905178">Habilitar notificación de información sobre memoria (tamaño de conjunto de archivos JavaScript) a la página (obsoleto)</translation> <translation id="5450893456912604446">Permite configurar la URL de la página principal predeterminada de <ph name="PRODUCT_NAME" /> y evita que los usuarios la modifiquen. La página principal es la página que se abre al hacer clic en el botón de página principal. En ordenadores, las páginas que se abren al iniciarse el navegador están controladas por las políticas RestoreOnStartup. @@ -3453,6 +3504,12 @@ <ph name="PRODUCT_NAME" /> gestiona el contenido del directorio raíz de un volumen. Para evitar que se pierdan datos o que se produzcan otros errores, esta política no se debe asignar al directorio raíz ni a ningún otro directorio que se use para otros propósitos. Consulta las variables que puedes usar en esta página: https://www.chromium.org/administrators/policy-list-3/user-data-directory-variables.</translation> <translation id="6083631234867522991">Windows (clientes de Windows):</translation> +<translation id="6086225644749063677">Especifica las impresoras que puede utilizar un usuario. + + Esta política solo se usa si se asigna <ph name="PRINTERS_ALLOWLIST" /> a <ph name="DEVICE_PRINTERS_ACCESS_MODE_POLICY_NAME" /> + + Si se usa esta política, solo las impresoras cuyos ID coincidan con los valores incluidos en la política estarán disponibles para el usuario. Los ID deben coincidir con los campos id o guid del archivo definido en la política <ph name="DEVICE_PRINTERS_POLICY_NAME" />. + </translation> <translation id="608788685013546076">Establece el umbral de batería de Peak Shift en forma de porcentaje</translation> <translation id="6089679180657323464">Controla los ajustes del controlador de diagnóstico y telemetría wilco.</translation> <translation id="6091233616732024397">Forzar a los usuarios a iniciar sesión para usar el navegador</translation> @@ -3523,9 +3580,9 @@ Consulta <ph name="PINNED_LAUNCHER_APPS_POLICY_NAME" /> para fijar aplicaciones en la estantería de <ph name="PRODUCT_OS_NAME" />.</translation> <translation id="6208896993204286313">Proporcionar información de políticas de <ph name="PRODUCT_NAME" /></translation> <translation id="6210259502936598222">Proporcionar información de versiones del SO y de <ph name="PRODUCT_NAME" /></translation> -<translation id="6210261948043479030">Si se define esta política, se configura la lista de las URL de acceso empresarial (únicamente con protocolos HTTP y HTTPS). El servicio de protección de contraseñas capturará los hashes con salt de las contraseñas en estas URL y las usará para detectar si la contraseña se reutiliza. Para que <ph name="PRODUCT_NAME" /> capture correctamente los hashes con salt de las contraseñas, tus páginas de inicio de sesión deben seguir las directrices incluidas en el sitio web https://www.chromium.org/developers/design-documents/create-amazing-password-forms. +<translation id="6210261948043479030">Si se define esta política, se configura la lista de las URL de acceso empresarial (únicamente con protocolos HTTP y HTTPS). El servicio de protección de contraseñas capturará los hashes con salt de las contraseñas en estas URL y las usará para detectar si la contraseña se reutiliza. Para que <ph name="PRODUCT_NAME" /> capture correctamente los hashes con salt de las contraseñas, tus páginas de inicio de sesión deben seguir las directrices incluidas en https://www.chromium.org/developers/design-documents/create-amazing-password-forms. - Si se desactiva esta opción o no se define, el servicio de protección de contraseñas solo capturará los hashes con salt de las contraseñas en la página https://accounts.google.com. + Si se desactiva esta opción o no se define, el servicio de protección de contraseñas solo capturará los hashes con salt de las contraseñas en https://accounts.google.com. En <ph name="MS_WIN_NAME" />, esta política solo está disponible en las instancias vinculadas a un dominio de <ph name="MS_AD_NAME" /> que se ejecuten en Windows 10 Pro o que se hayan registrado en <ph name="CHROME_BROWSER_CLOUSE_MANAGEMENT_NAME" />. En <ph name="MAC_OS_NAME" />, esta función solo está disponible en instancias que se gestionen mediante MDM o que estén vinculadas a un dominio a través de MCX.</translation> <translation id="6210610748361191729">Si se asigna el valor "False" a esta política, la interfaz de usuario de exportación e importación no estará disponible para los usuarios. Sin embargo, podrán seguir utilizando comandos "lxc" directamente en la máquina virtual para exportar e importar imágenes de contenedor.</translation> @@ -3555,11 +3612,11 @@ de informes sobre fallos.</translation> <translation id="6242872287610413959">Si se le asigna un valor a esta política, podrás establecer una lista de patrones de URL donde se especifique qué sitios web no pueden pedirles a los usuarios que les otorguen acceso de escritura a archivos o directorios en el sistema de archivos del sistema operativo del host. - Si no se le asigna ningún valor a esta política, <ph name="DEFAULT_FILE_SYSTEM_WRITE_GUARD_SETTING_POLICY_NAME" /> se aplicará a todos los sitios web si se ha definido. Si no se ha definido, se aplicará la configuración personal del usuario. + Si no se le asigna ningún valor a esta política, <ph name="DEFAULT_FILE_SYSTEM_WRITE_GUARD_SETTING_POLICY_NAME" /> se aplicará a todos los sitios web (si se ha definido). Si no se ha definido, se aplicará la configuración personal del usuario. Los patrones de URL no pueden entrar en conflicto con la política <ph name="FILE_SYSTEM_WRITE_ASK_FOR_URLS_POLICY_NAME" />. Si una URL está incluida en ambas políticas, no tendrá preferencia ninguna política. - Para obtener información detallada sobre los patrones de <ph name="URL_LABEL" /> válidos, consulta el sitio web https://cloud.google.com/docs/chrome-enterprise/policies/url-patterns.</translation> + Para obtener información detallada sobre los patrones de <ph name="URL_LABEL" /> válidos, consulta https://cloud.google.com/docs/chrome-enterprise/policies/url-patterns.</translation> <translation id="6244210204546589761">URL que se deben abrir al inicio</translation> <translation id="6247316685259031374">Esta política controla la zona de pruebas de audio. Si la política se habilita, el proceso de audio se ejecutará en una zona de pruebas. @@ -3703,11 +3760,11 @@ <translation id="647698599569353771">Permite habilitar Compartir con Nearby.</translation> <translation id="6485813825811798133">Si se establece esta política, podrás definir una lista de patrones de URL donde se especifique qué sitios web no pueden pedir a los usuarios que les otorguen acceso de lectura a archivos o directorios del sistema de archivos del sistema operativo del host a través de la API File System. - Si no se le asigna ningún valor a esta política, <ph name="DEFAULT_FILE_SYSTEM_READ_GUARD_SETTING_POLICY_NAME" /> se aplicará a todos los sitios web si se ha definido. Si no se ha definido, se aplicará la configuración personal del usuario. + Si no se le asigna ningún valor a esta política, <ph name="DEFAULT_FILE_SYSTEM_READ_GUARD_SETTING_POLICY_NAME" /> se aplicará a todos los sitios web (si se ha definido). Si no se ha definido, se aplicará la configuración personal del usuario. Los patrones de URL no pueden entrar en conflicto con la política <ph name="FILE_SYSTEM_READ_ASK_FOR_URLS_POLICY_NAME" />. Si una URL está incluida en ambas políticas, no tendrá preferencia ninguna política. - Para obtener información detallada sobre los patrones de <ph name="URL_LABEL" /> válidos, consulta el sitio web https://cloud.google.com/docs/chrome-enterprise/policies/url-patterns.</translation> + Para obtener información detallada sobre los patrones de <ph name="URL_LABEL" /> válidos, consulta https://cloud.google.com/docs/chrome-enterprise/policies/url-patterns.</translation> <translation id="6491139795995924304">Permitir Bluetooth en el dispositivo</translation> <translation id="6491872498385040936">Esta política está obsoleta, pero puedes utilizar <ph name="FORCE_YOUTUBE_RESTRICT_POLICY_NAME" />, que la anula y permite un ajuste más detallado. @@ -3908,7 +3965,7 @@ <translation id="6752711782954612641">Si <ph name="DEFAULT_SEARCH_PROVIDER_ENABLED_POLICY_NAME" /> está activada y se asigna un valor a <ph name="DEFAULT_SEARCH_PROVIDER_SEARCH_URL_POST_PARAMS_POLICY_NAME" />, se especificarán los parámetros utilizados al buscar una URL con POST. Se compone de pares de nombre-valor separados por comas. Si un valor es un parámetro de plantilla, como <ph name="SEARCH_TERM_MARKER" />, se sustituirá por datos de términos de búsqueda reales. Si no se asigna ningún valor a <ph name="DEFAULT_SEARCH_PROVIDER_SEARCH_URL_POST_PARAMS_POLICY_NAME" />, las solicitudes de búsqueda se enviarán mediante el método "get".</translation> -<translation id="6753052385433167009">Si se define esta política, se configurará la URL donde los usuarios podrán cambiar sus contraseñas después de ver una advertencia en el navegador. El servicio de protección de contraseñas envía a los usuarios a la URL que designes (únicamente con protocolos HTTP y HTTPS) a través de esta política. Para que <ph name="PRODUCT_NAME" /> capture correctamente el hash con salt de la nueva contraseña en esta página de cambio de contraseña, la página debe seguir las directrices incluidas en el sitio web https://www.chromium.org/developers/design-documents/create-amazing-password-forms . +<translation id="6753052385433167009">Si se define esta política, se configurará la URL donde los usuarios podrán cambiar sus contraseñas después de ver una advertencia en el navegador. El servicio de protección de contraseñas envía a los usuarios a la URL que designes (únicamente con protocolos HTTP y HTTPS) a través de esta política. Para que <ph name="PRODUCT_NAME" /> capture correctamente el hash con salt de la nueva contraseña en esta página de cambio de contraseña, la página debe seguir las directrices incluidas en https://www.chromium.org/developers/design-documents/create-amazing-password-forms . Si la política se desactiva o no se define, el servicio enviará a los usuarios a https://myaccount.google.com para cambiar su contraseña. @@ -3946,6 +4003,11 @@ Ten en cuenta que los usuarios podrán acceder a los servicios de Google sin tener que identificarse bloqueando las cookies.</translation> <translation id="6843296367238757293">Esta política está obsoleta. Te recomendamos que no la utilices. Consulta https://support.google.com/chrome/a/answer/7643500</translation> +<translation id="6846126863870444592">Esta política especifica las extensiones que pueden saltarse el cuadro de diálogo de confirmación de trabajo de impresión cuando usen la función de <ph name="PRINTING_API" /> <ph name="SUBMIT_JOB_FUNCTION" /> para enviar un trabajo de impresión. + + Si la lista no se ha configurado o una extensión no está incluida en ella, se mostrará al usuario el cuadro de diálogo de confirmación de trabajo de impresión para cada llamada de función de <ph name="SUBMIT_JOB_FUNCTION" />. + + Esta política está obsoleta. Usa la política <ph name="PRINTING_API_EXTENSIONS_ALLOWLIST_POLICY_NAME" /> en su lugar.</translation> <translation id="684856667300805181">Esta política se retiró en <ph name="PRODUCT_NAME" /> 68 y se ha sustituido por <ph name="ARC_GLS_POLICY_NAME" />.</translation> <translation id="6851199885688265233">Habilita la función de accesibilidad de resaltado del cursor</translation> <translation id="6851315055469993882">Habilita la caché de autenticación de HTTP con alcance global</translation> @@ -3965,9 +4027,6 @@ Si no se asigna ningún valor a esta política, el valor predeterminado para los usuarios administrados por una empresa y para los no administrados es permitirlo.</translation> <translation id="6864244339257535116">Permitir la subida y la descarga de archivos protegidos con contraseña</translation> -<translation id="687046793986382807">Esta política no está disponible a partir de la versión 35 de <ph name="PRODUCT_NAME" />. - - La información sobre memoria se notifica a la página, independientemente del valor de la opción, pero los tamaños notificados están restringidos y la frecuencia de actualizaciones está limitada por razones de seguridad. Para obtener información precisa en tiempo real, debes utilizar herramientas como la telemetría.</translation> <translation id="68798513449385583">Retrasar las descargas hasta conocer el resultado del análisis</translation> <translation id="6889123056995503704">El usuario decide el comportamiento del cambio a una versión inferior</translation> <translation id="6894178810167845842">URL de la página Nueva pestaña</translation> @@ -4000,6 +4059,13 @@ <translation id="6907778402784621686">Permite bloquear el contenido no seguro en estos sitios web</translation> <translation id="6908640907898649429">Permite configurar el proveedor de búsquedas predeterminadas. Puedes especificar el proveedor de búsquedas predeterminadas que utilizarán los usuarios o inhabilitar las búsquedas predeterminadas.</translation> <translation id="6913068954484253496">Permitir que <ph name="PRODUCT_NAME" /> se conecte a dispositivos de transmisión de todas las direcciones IP.</translation> +<translation id="6916817094593836501">Esta política evita que aparezcan advertencias URL similares en los sitios web incluidos en la lista. Normalmente, estas advertencias aparecen en sitios web que <ph name="PRODUCT_NAME" /> considera que podrían tratar de falsificar mediante spoofing un sitio web conocido por el usuario. + + Si se habilita esta política y se establece uno o más dominios, no se mostrarán páginas de advertencia similares cuando el usuario visite páginas de esos dominios. + + Si se inhabilita, no se define o se le asigna una lista vacía a esta política, es posible que aparezcan advertencias en cualquier sitio web que visite el usuario. + + Se puede permitir un nombre de host con una coincidencia completa o cualquier coincidencia con el dominio. Por ejemplo, es posible que se eliminen las advertencias en una URL como "https://foo.example.com/bar" si la lista incluye "foo.example.com" o "example.com".</translation> <translation id="6922884955650325312">Bloquear el complemento <ph name="FLASH_PLUGIN_NAME" /></translation> <translation id="6923731550900440989">Habilita el resaltado del símbolo de intercalación de texto en la pantalla de inicio de sesión</translation> <translation id="6924223708804692571">Permite forzar la inhabilitación del corrector ortográfico de idiomas. Se ignorarán los idiomas no reconocidos de esa lista. @@ -4699,7 +4765,7 @@ Todos los hosts de mensajes nativos están permitidos de manera predeterminada, pero si todos los hosts de mensajes nativos se han bloqueado de acuerdo con la política, se puede usar una lista de permitidos para anular dicha política.</translation> <translation id="7818131573217430250">Establecer el estado predeterminado del modo de contraste alto en la pantalla de inicio de sesión</translation> -<translation id="7823420548819808002">Si se define esta política, se especificará una lista de orígenes (URLs) o de patrones de nombre de host (como *.example.com) para los que no se aplicarán las restricciones de seguridad de orígenes inseguros. Las organizaciones pueden incluir orígenes en lista blanca para aplicaciones antiguas que no pueden implementar TLS o para configurar un servidor provisional para el desarrollo interno de webs, de manera que los desarrolladores puedan probar las funciones que necesiten contextos seguros sin tener que implementar TLS en el servidor provisional. Esta política también evita que el origen aparezca con la etiqueta "No es seguro" en la barra de direcciones. +<translation id="7823420548819808002">Si se define esta política, se especificará una lista de orígenes (URLs) o de patrones de nombre de host (como *.example.com) para los que no se aplicarán las restricciones de seguridad de orígenes inseguros. Las organizaciones pueden incluir orígenes en lista de permitidos para aplicaciones antiguas que no pueden implementar TLS o para configurar un servidor provisional para el desarrollo interno de webs, de manera que los desarrolladores puedan probar las funciones que necesiten contextos seguros sin tener que implementar TLS en el servidor provisional. Esta política también evita que el origen aparezca con la etiqueta "No es seguro" en la barra de direcciones. Definir la lista de URLs de esta política tiene el mismo resultado que asignar la instrucción de línea de comandos --unsafely-treat-insecure-origin-as-secure a una lista con las mismas URL separadas por comas. Esta política anula tanto instrucción de línea de comandos como UnsafelyTreatInsecureOriginAsSecure si está presente. @@ -4754,7 +4820,6 @@ <translation id="793134539373873765">Especifica si la conexión P2P se debe utilizar para cargas útiles de actualizaciones del sistema operativo. Si esta política se establece en True, los dispositivos compartirán e intentarán consumir cargas útiles de actualizaciones en la red LAN, reduciendo de forma potencial la congestión y el uso del ancho de banda. Si la carga útil de actualizaciones no está disponible en la red LAN, el dispositivo deberá realizar la descarga desde un servidor de actualizaciones. Si se establece en False o no se configura, no se utilizará la conexión P2P.</translation> <translation id="7933141401888114454">Habilitar la creación de usuarios supervisados</translation> <translation id="793473937901685727">Establecer la disponibilidad del certificado para las aplicaciones ARC</translation> -<translation id="7937491150792971922">Combina políticas de lista de instalación de extensiones de varias fuentes</translation> <translation id="7937766917976512374">Permitir o denegar captura de vídeo</translation> <translation id="7941975817681987555">No predecir las acciones de red en ninguna conexión de red</translation> <translation id="7951605113561734721">Especifica los certificados de cliente de todo el dispositivo que deberían registrarse usando el protocolo de gestión de dispositivos.</translation> @@ -4775,6 +4840,9 @@ <translation id="7953256619080733119">Hosts de excepción manual de usuario administrado</translation> <translation id="7956210013490975468">Configura el servicio de proxy del sistema en <ph name="PRODUCT_OS_NAME" />.</translation> <translation id="7958537754689366707">Es obligatorio introducir la contraseña cada doce horas</translation> +<translation id="7960293328203000385">Permite definir la lista de usuarios con permiso para iniciar sesión en el dispositivo. Las entradas tienen el formato <ph name="USER_ALLOWLIST_ENTRY_FORMAT" /> (por ejemplo, <ph name="USER_ALLOWLIST_ENTRY_EXAMPLE" />). Para permitir usuarios arbitrarios en un dominio, utiliza entradas similares a <ph name="USER_ALLOWLIST_ENTRY_WILDCARD" />. + + Si no se configura esta política, no se aplicarán restricciones sobre los usuarios que pueden iniciar sesión. Ten en cuenta que sigue siendo necesario configurar adecuadamente la política <ph name="DEVICE_ALLOW_NEW_USERS_POLICY_NAME" /> para crear nuevos usuarios.</translation> <translation id="7961779417826583251">Inhabilitar los requisitos de la transparencia en los certificados en una lista de autoridades de certificación antiguas</translation> <translation id="7973609468423251675">Ten en cuenta que esta política está obsoleta y se eliminará de la versión 85 de <ph name="PRODUCT_OS_NAME" />. Utiliza <ph name="POWER_MANAGEMENT_IDLE_SETTINGS_POLICY_NAME" /> en su lugar. @@ -4942,11 +5010,11 @@ Las solicitudes de unión a diferentes hosts mediante conexiones que utilizan certificados de cliente pueden dar lugar a problemas de seguridad y privacidad, ya que la autoridad de certificación se vinculará a todas las solicitudes, aunque el usuario no lo autorice de forma explícita. Esta política es temporal y se retirará en versiones posteriores. Consulta https://crbug.com/855690 Si no se establece esta política, se realizará la acción predeterminada: no permitir la unión de ninguna conexión HTTP/2 en conexiones que utilicen certificados de cliente.</translation> -<translation id="8197373549462388216">Si se habilita esta política, se evita que los usuarios sigan navegando desde la página de advertencia que muestra el servicio Navegación Segura hasta el sitio web malicioso. Esta política solo evita que los usuarios sigan navegando si aparece una advertencia de Navegación Segura (por ejemplo, por software malicioso o suplantación de identidad), pero no si se trata de un problema relacionado con un certificado SSL, como que no es válido o ha caducado. +<translation id="8197373549462388216">Si se habilita esta política, se evita que los usuarios puedan pasar de la página de advertencia que muestra el servicio Navegación Segura antes de acceder a un sitio web malicioso. Esta política solo evita que los usuarios continúen si aparece una advertencia de Navegación Segura (por ejemplo, por software malicioso o suplantación de identidad), pero no si se trata de un problema relacionado con un certificado SSL (por ejemplo, si no es válido o ha caducado). - Si se inhabilita o no se le asigna ningún valor, los usuarios podrán decidir si quieren acceder al sitio web marcado después de ver la advertencia. + Si se inhabilita o no se le asigna ningún valor, los usuarios podrán decidir si quieren acceder al sitio web denunciado después de ver la advertencia. - Consulta más información sobre Navegación Segura en el siguiente sitio web: https://developers.google.com/safe-browsing.</translation> + Consulta más información sobre Navegación Segura en https://developers.google.com/safe-browsing.</translation> <translation id="8213770777756919897">Ten en cuenta que esta política está obsoleta y se eliminará de la versión 85 de <ph name="PRODUCT_OS_NAME" />. Utiliza <ph name="POWER_MANAGEMENT_IDLE_SETTINGS_POLICY_NAME" /> en su lugar. Cuando se configura esta política, se especifica la acción que realiza <ph name="PRODUCT_OS_NAME" /> cuando el usuario permanece inactivo durante el periodo de tiempo indicado por el retraso de inactividad, que puede configurarse por separado. @@ -5544,7 +5612,7 @@ * PasswordProtectionWarningOff: no se mostrará ninguna advertencia de protección de contraseñas. - * PasswordProtectionWarningOnPasswordReuse: se mostrará la advertencia de protección de contraseñas cuando el usuario reutilice la contraseña protegida en los sitios web que no estén en la lista blanca. + * PasswordProtectionWarningOnPasswordReuse: se mostrará la advertencia de protección de contraseñas cuando el usuario reutilice la contraseña protegida en los sitios web que no estén en la lista de permitidos. * PasswordProtectionWarningOnPhishingReuse: se mostrará la advertencia de protección de contraseñas cuando el usuario reutilice la contraseña protegida en un sitio web de suplantación de identidad.
diff --git a/components/policy/resources/policy_templates_fr.xtb b/components/policy/resources/policy_templates_fr.xtb index 7bcfb575..49e737d7 100644 --- a/components/policy/resources/policy_templates_fr.xtb +++ b/components/policy/resources/policy_templates_fr.xtb
@@ -22,6 +22,13 @@ Actuellement, les langues compatibles sont les suivantes : af, bg, ca, cs, da, de, el, en-AU, en-CA, en-GB, en-US, es, es-419, es-AR, es-ES, es-MX, es-US, et, fa, fo, fr, he, hi, hr, hu, id, it, ko, lt, lv, nb, nl, pl, pt-BR, pt-PT, ro, ru, sh, sk, sl, sq, sr, sv, ta, tg, tr, uk et vi.</translation> <translation id="1019101089073227242">Définir le répertoire de données utilisateur</translation> +<translation id="1021843807738753764"> Cette règle étant obsolète, elle sera supprimée dans la version 89 de <ph name="PRODUCT_OS_NAME" />. Veuillez utiliser à la place la règle <ph name="MANAGED_GUEST_SESSION_PRIVACY_WARNINGS_POLICY_NAME" /> pour configurer les avertissements concernant la confidentialité des sessions Invité gérées. + + Contrôlez les notifications de lancement automatique des sessions Invité gérées sur <ph name="PRODUCT_OS_NAME" />. + + Si cette règle est définie sur "True", les avertissements concernant la confidentialité se ferment après quelques secondes. + + Si cette règle est définie sur "False" ou n'est pas configurée, les avertissements concernant la confidentialité restent épinglés jusqu'à ce que l'utilisateur les ferme.</translation> <translation id="1022361784792428773">Identifiants d'extension que l'utilisateur ne doit pas être autorisé à installer (ou * pour tous)</translation> <translation id="102492767056134033">Définir l'état par défaut du clavier à l'écran sur l'écran de connexion</translation> <translation id="1027000705181149370">Spécifie si des cookies d'authentification définis par un fournisseur d'identité SAML lors de la connexion doivent être transférés au profil de l'utilisateur. @@ -271,6 +278,20 @@ Si vous activez cette règle ou ne la configurez pas, le défilement des pages Web vers des fragments de texte spécifiques via URL sera activé. Si vous la désactivez, le défilement des pages Web vers des fragments de texte spécifiques via URL sera désactivé.</translation> +<translation id="1469072784237350146">Permet de contrôler si les sites Web non sécurisés sont autorisés à envoyer des requêtes à d'autres points de terminaison plus privés du réseau. + + Cette règle se rapporte à la spécification CORS-RFC1918. Pour en savoir plus, consultez la page https://wicg.github.io/cors-rfc1918. + + Un point de terminaison de réseau est plus privé qu'un autre si : + 1) Son adresse IP est un localhost et celle de l'autre ne l'est pas. + 2) Son adresse IP est privée et celle de l'autre est publique. + Selon l'évolution des spécifications, cette règle pourrait s'appliquer à l'avenir à toutes les requêtes dirigées vers des IP privés ou un localhost, quelle que soit leur origine. + + Un site Web est considéré comment sécurisé s'il correspond à un contexte sécurisé tel que défini dans l'article https://developer.mozilla.org/en-US/docs/Web/Security/Secure_Contexts. Sinon, il sera traité comme un contexte non sécurisé. + + Si cette règle n'est pas configurée ou est définie sur "False", le comportement par défaut des requêtes envoyées depuis des contextes non sécurisés vers des points de terminaison plus privés du réseau dépend de la configuration personnelle de l'utilisateur concernant la fonctionnalité <ph name="BLOCK_INSECURE_PRIVATE_NETWORK_REQUESTS_FEATURE_NAME" />, qui peut être définie lors d'un test ou via une ligne de commande. + + Si cette règle est définie sur "True", les sites Web non sécurisés sont autorisés à envoyer des requêtes à n'importe quel point de terminaison du réseau (d'autres vérifications inter-URL peuvent être réalisées).</translation> <translation id="1474273443907024088">Désactiver TLS False Start</translation> <translation id="1477934438414550161">TLS 1.2</translation> <translation id="1479427764273213107">Permet d'établir la liste des appareils USB que les utilisateurs peuvent dissocier de leur pilote de noyau pour les employer via l'API chrome.usb directement au sein d'une application Web. Les entrées sont des paires composées d'un identifiant de fournisseur USB et d'un identifiant produit associé à un appareil spécifique. @@ -354,6 +375,12 @@ <translation id="1561967320164410511">U2F plus extensions pour chaque attestation</translation> <translation id="1575015449587326319">Règle de configuration du connecteur Chrome Enterprise OnFileDownloaded</translation> <translation id="1583248206450240930">Utiliser <ph name="PRODUCT_FRAME_NAME" /> par défaut</translation> +<translation id="1587671452159346389">Permet de déterminer quelles imprimantes soumises à la règle <ph name="DEVICE_PRINTERS_POLICY_NAME" /> sont accessibles aux utilisateurs. + + Vous pouvez indiquer la règle d'accès utilisée pour la configuration groupée des imprimantes. Si <ph name="PRINTERS_ALLOW_ALL" /> est sélectionné, toutes les imprimantes sont affichées. Si <ph name="PRINTERS_BLOCKLIST" /> est sélectionné, la règle <ph name="DEVICE_PRINTERS_BLOCKLIST_POLICY_NAME" /> est utilisée pour limiter l'accès aux imprimantes spécifiées. Si <ph name="PRINTERS_ALLOWLIST" /> est sélectionnée, la règle <ph name="DEVICE_PRINTERS_ALLOWLIST_POLICY_NAME" /> indique uniquement les imprimantes qui peuvent être choisies. + + Si cette règle n'est pas configurée, la règle <ph name="PRINTERS_ALLOW_ALL" /> s'applique. + </translation> <translation id="1588240398285670601">Paramètres du navigateur</translation> <translation id="1588456836529393506">Permet d'établir une liste de formats d'URL indiquant les sites automatiquement autorisés à accéder à un appareil USB avec le fournisseur et les ID produit indiqués. Chaque élément de la liste doit contenir des appareils et des URL pour que la règle soit valide. Chaque élément des appareils peut disposer d'un champ d'ID produit et d'ID de fournisseur. Les ID que vous omettez sont traités comme des caractères génériques, à une exception près : vous ne pouvez pas spécifier un ID produit sans définir un ID de fournisseur. Si vous ne respectez pas cette condition, la règle ne sera pas valide. @@ -1092,6 +1119,22 @@ Si cette règle est désactivée, ces avertissements ne s'affichent pas lorsque Chrome est lancé à l'aide d'options de ligne de commande potentiellement dangereuses. Sous <ph name="MS_WIN_NAME" />, cette règle n'est disponible que sur les instances associées à un domaine <ph name="MS_AD_NAME" />, exécutées sous Windows 10 Pro ou qui bénéficient de la gestion cloud du navigateur Chrome. Sous <ph name="MAC_OS_NAME" />, elle n'est disponible que sur les instances gérées via MDM ou associées à un domaine via MCX.</translation> +<translation id="2621383458880689826">Fournit les configurations des imprimantes d'entreprise associées à des appareils. + + Cette règle vous permet de communiquer les configurations des imprimantes aux appareils <ph name="PRODUCT_OS_NAME" />. Le format est le même que celui du dictionnaire NativePrinters, à l'exception d'un champ supplémentaire "id" ou "guid" obligatoire pour chaque imprimante à ajouter à la liste blanche ou noire. + + Le fichier, qui doit être encodé au format JSON, ne doit pas dépasser 5 Mo. Habituellement, un fichier encodé de 5 Mo peut contenir environ 21 000 imprimantes. Le hachage cryptographique permet de vérifier l'intégrité du fichier téléchargé. + + Le fichier est téléchargé et mis en cache. Il sera de nouveau téléchargé à chaque modification de l'URL ou du hachage. + + Si cette règle est configurée, <ph name="PRODUCT_OS_NAME" /> télécharge le fichier des configurations d'imprimantes et rend les imprimantes accessibles conformément aux règles <ph name="DEVICE_NATIVE_PRINTERS_ACCESS_MODE" />, <ph name="DEVICE_NATIVE_PRINTERS_WHITELIST_POLICY_NAME" /> et <ph name="DEVICE_NATIVE_PRINTERS_BLACKLIST_POLICY_NAME" />. + + Elle n'a aucune incidence pour les utilisateurs en ce qui concerne la possibilité ou non de configurer des imprimantes sur différents appareils. Elle est destinée à compléter la configuration des imprimantes effectuée par les différents utilisateurs. + + Elle vient en complément de la règle <ph name="BULK_PRINTERS_POLICY_NAME" />. + + Si cette règle n'est pas configurée, aucune imprimante associée à un appareil n'est affichée, et les autres règles <ph name="DEVICE_NATIVE_PRINTERS_POLICY_PATTERN" /> sont ignorées. + </translation> <translation id="2623014935069176671">Attendre l'activité utilisateur initiale</translation> <translation id="262740370354162807">Activer l'envoi de documents à <ph name="CLOUD_PRINT_NAME" /></translation> <translation id="2632538643061793322">Permet de répertorier les formats d'URL indiquant les sites autorisés à demander aux utilisateurs d'accéder aux appareils USB. @@ -1118,6 +1161,7 @@ Si vous ne configurez pas cette règle, le paramètre sera désactivé par défaut pour les utilisateurs gérés et activé par défaut pour les utilisateurs non gérés.</translation> <translation id="2660846099862559570">Ne jamais utiliser de proxy</translation> +<translation id="2664682171745499686">Supprimer les avertissements concernant des domaines similaires</translation> <translation id="2665422249821137126">Activer le grand curseur sur l'écran de connexion</translation> <translation id="2672012807430078509">Contrôle l'activation du protocole d'authentification NTLM pour les installations SMB</translation> <translation id="2678503605767349615">Certificats clients requis au niveau de l'appareil</translation> @@ -1257,6 +1301,12 @@ Si vous activez ce paramètre, l'aperçu avant impression utilisera l'imprimante par défaut du système d'exploitation.</translation> <translation id="285627849510728211">Définir le jour de recharge de la batterie en mode avancé</translation> <translation id="2856674246949497058">Rétablissez et conservez la version cible si elle est antérieure à la version de l'OS. Effectuez un Powerwash pendant le processus.</translation> +<translation id="2869140260739354012">Permet de déterminer quelles imprimantes soumises à la règle <ph name="DEVICE_PRINTERS_POLICY" /> sont accessibles aux utilisateurs. + + Vous pouvez indiquer la règle d'accès utilisée pour la configuration groupée des imprimantes. Si <ph name="PRINTERS_ALLOW_ALL" /> est sélectionné, toutes les imprimantes sont affichées. Si <ph name="PRINTERS_BLACKLIST" /> est sélectionné, la règle <ph name="DEVICE_NATIVE_PRINTERS_BLACKLIST" /> est utilisée pour limiter l'accès aux imprimantes spécifiées. Si <ph name="PRINTERS_WHITELIST" /> est sélectionnée, la règle <ph name="DEVICE_NATIVE_PRINTERS_WHITELIST" /> indique uniquement les imprimantes qui peuvent être choisies. + + Si cette règle n'est pas configurée, la règle <ph name="PRINTERS_ALLOW_ALL" /> s'applique. + </translation> <translation id="2869762730352628426">Activer le clic automatique sur l'écran de connexion</translation> <translation id="2872961005593481000">Éteindre</translation> <translation id="2874209944580848064">Remarque concernant les appareils <ph name="PRODUCT_OS_NAME" /> compatibles avec les applications Android :</translation> @@ -1299,11 +1349,7 @@ Remarque : Cette règle renvoie vers un fichier XML au même format que celui de la règle <ph name="IEEM_SITELIST_POLICY" /> d'<ph name="IE_PRODUCT_NAME" />. Les instructions sont ainsi chargées à partir d'un fichier XML, sans être partagées avec <ph name="IE_PRODUCT_NAME" />. Pour en savoir plus sur la règle <ph name="IEEM_SITELIST_POLICY" /> d'<ph name="IE_PRODUCT_NAME" />, consultez la page https://docs.microsoft.com/internet-explorer/ie11-deploy-guide/what-is-enterprise-mode</translation> <translation id="2952347049958405264">Restrictions :</translation> -<translation id="2956777931324644324">Cette règle a été supprimée dès la version 36 de <ph name="PRODUCT_NAME" />. - - Elle indique si l'extension des certificats TLS liés au domaine doit être activée. - - Ce paramètre permet d'activer ces certificats à des fins de test. Ce paramètre expérimental sera supprimé à l'avenir.</translation> +<translation id="2957047180944828740">Permet de spécifier si les sites Web non sécurisés sont autorisés à envoyer des requêtes à des points de terminaison plus privés du réseau</translation> <translation id="2957506574938329824">Interdire à tous les sites de demander l'accès à des appareils Bluetooth via l'API Web Bluetooth</translation> <translation id="2957513448235202597">Type de compte pour l'authentification <ph name="HTTP_NEGOTIATE" /></translation> <translation id="2959469725686993410">Toujours transmettre les points d'accès Wi-Fi au serveur tout en mettant à jour le fuseau horaire</translation> @@ -1836,7 +1882,6 @@ Si cette règle n'est pas définie, le paramètre sera désactivé par défaut pour les utilisateurs gérés par une entreprise et activé par défaut pour les utilisateurs non gérés.</translation> <translation id="3803171355925844705">Interdire à tous les sites de charger un contenu mixte</translation> -<translation id="3805659594028420438">Activer l'extension des certificats TLS liés au domaine (obsolète)</translation> <translation id="3808945828600697669">Répertorier les plug-ins désactivés</translation> <translation id="3810642039169532482">Permet d'activer la fonctionnalité d'accessibilité de dictée sur l'écran de connexion. @@ -1866,6 +1911,12 @@ <translation id="3838094946886335701">Cette règle (recommandation uniquement) permet d'enregistrer une liste de gestionnaires de protocoles combinée à ceux enregistrés par l'utilisateur, afin que les deux ensembles s'appliquent. Définissez la propriété "protocole" sur le schéma (par exemple, "mailto") et la propriété "URL" sur le format d'URL de l'application qui gère le schéma spécifié dans le champ "protocole". Le schéma peut inclure un espace réservé "%s" remplacé par l'URL gérée. Les utilisateurs ne peuvent pas supprimer un gestionnaire de protocoles enregistré par une règle. Toutefois, l'installation d'un nouveau gestionnaire par défaut leur permet de modifier les gestionnaires de protocoles installés par une règle.</translation> +<translation id="3848118497246496090">Permet de spécifier les imprimantes auxquelles les utilisateurs n'ont pas accès. + + Cette règle n'est utilisée que si <ph name="PRINTERS_BLACKLIST" /> est sélectionné dans la règle <ph name="DEVICE_NATIVE_PRINTERS_ACCESS_MODE" />. + + Si cette règle est appliquée, toutes les imprimantes sont proposées aux utilisateurs, sauf pour les ID répertoriés dans cette règle. Ces ID doivent correspondre à ceux indiqués dans les champs "id" ou "guid" du fichier spécifié dans la règle <ph name="DEVICE_PRINTERS_POLICY" />. + </translation> <translation id="3851039766298741586">Cette règle permet de transmettre des informations sur la session kiosque active, telles que l'ID et la version de l'application. @@ -2006,6 +2057,12 @@ <translation id="3965339130942650562">Délai avant exécution de la déconnexion de l'utilisateur en cas d'inactivité</translation> <translation id="3973371701361892765">Ne jamais masquer automatiquement l'étagère</translation> <translation id="3979738908158213640">URL autorisées à procéder à l'attestation de l'identité de l'appareil lors de l'authentification SAML</translation> +<translation id="3980024487013511975">Permet de spécifier les imprimantes auxquelles les utilisateurs n'ont pas accès. + + Cette règle n'est utilisée que si <ph name="PRINTERS_BLOCKLIST" /> est sélectionné dans la règle <ph name="DEVICE_PRINTERS_ACCESS_MODE_POLICY_NAME" />. + + Si cette règle est appliquée, toutes les imprimantes sont proposées aux utilisateurs, sauf pour les ID répertoriés dans cette règle. Ces ID doivent correspondre à ceux indiqués dans les champs "id" ou "guid" du fichier spécifié dans la règle <ph name="DEVICE_PRINTERS_POLICY_NAME" />. + </translation> <translation id="3984028218719007910">Détermine si <ph name="PRODUCT_OS_NAME" /> doit conserver les données locales des comptes après la déconnexion. Si cette règle est définie sur "true", aucun compte persistant n'est conservé par <ph name="PRODUCT_OS_NAME" />. Par ailleurs, toutes les données de la session utilisateur sont supprimées après la déconnexion. Si cette règle est définie sur "false" ou si elle n'est pas configurée, l'appareil peut conserver des données utilisateur locales (chiffrées).</translation> <translation id="398884292557092447">Si cette règle est définie sur "True" ou qu'elle n'est pas configurée, les utilisateurs peuvent contrôler les suggestions de saisie automatique pour les cartes de crédit dans l'interface utilisateur. @@ -2213,6 +2270,12 @@ Si cette règle n'est pas configurée, les sites Web peuvent demander l'accès. Toutefois, les utilisateurs peuvent modifier ce paramètre.</translation> <translation id="4285674129118156176">Autoriser les utilisateurs non affiliés à utiliser ARC</translation> +<translation id="4309562700894844665">Permet de spécifier les imprimantes auxquelles les utilisateurs ont accès. + + Cette règle est utilisée uniquement si <ph name="PRINTERS_WHITELIST" /> est sélectionné pour <ph name="DEVICE_NATIVE_PRINTERS_ACCESS_MODE" />. + + Si cette règle est appliquée, seules les imprimantes dont l'ID correspond aux valeurs de la règle sont à la disposition de l'utilisateur. Les ID doivent correspondre aux champs "id" ou "guid" du fichier spécifié dans <ph name="DEVICE_PRINTERS_POLICY" />. + </translation> <translation id="4311195029067684288">Complet</translation> <translation id="4313767483634435271">Adresse MAC de la station d'accueil désignée de l'appareil</translation> <translation id="4322842393287974810">Autoriser l'application kiosque lancée automatiquement sans délai à contrôler la version de l'application <ph name="PRODUCT_OS_NAME" /></translation> @@ -2551,11 +2614,6 @@ Si cette règle n'est pas définie, <ph name="PRODUCT_NAME" /> ne se connecte aux appareils Cast que sur les adresses privées décrites dans la RFC 1918 ou la RFC 4193, sauf si la fonctionnalité CastAllowAllIPs est activée.</translation> <translation id="489803897780524242">Paramètre contrôlant le positionnement des termes de recherche pour le moteur de recherche par défaut</translation> <translation id="4899708173828500852">Activer la navigation sécurisée</translation> -<translation id="4902163780937592202">Permet de fusionner les règles liées aux listes d'installation d'extensions <ph name="EXTENSION_INSTALL_BLOCKLIST_POLICY_NAME" />, <ph name="EXTENSION_INSTALL_ALLOWLIST_POLICY_NAME" /> et <ph name="EXTENSION_INSTALL_FORCELIST_POLICY_NAME" />. - - Si vous activez cette règle, les valeurs issues des règles relatives au cloud (machine) et aux plates-formes (machines et utilisateurs) sont fusionnées dans une seule liste et utilisées globalement. Ce ne sont pas uniquement les valeurs de la source ayant la priorité la plus élevée qui sont utilisées. - - Si vous désactivez cette règle ou qu'elle n'est pas configurée, seules les entrées de listes issues de la source ayant la priorité la plus élevée sont prises en compte. Toutes les autres sources sont affichées en tant que sources en conflit, mais ignorées.</translation> <translation id="4906194810004762807">Fréquence d'actualisation des règles de l'appareil</translation> <translation id="4917385247580444890">Très bon</translation> <translation id="4919122295221518724">Appliquer un traitement plus strict au contenu mixte</translation> @@ -2863,6 +2921,22 @@ Si la règle est définie sur "Obliger la connexion au navigateur", une boîte de dialogue s'affiche pour demander à l'utilisateur de choisir un compte auquel se connecter pour utiliser le navigateur. Cette mesure permet de s'assurer que dans le cas de comptes gérés, les règles qui les régissent sont bien appliquées. Cela active par défaut la synchronisation Chrome pour le compte, sauf si celle-ci a été désactivée par l'administrateur de domaine ou via la règle "SyncDisabled". La valeur par défaut de "BrowserGuestModeEnabled" est alors définie sur "False". Sachez que les profils existants non connectés seront verrouillés et inaccessibles une fois cette règle activée. Pour en savoir plus, consultez l'article suivant du centre d'aide : https://support.google.com/chrome/a/answer/7572556. Cette option n'est pas compatible avec Linux et Android, et sera remplacée par l'option "Activer la connexion au navigateur" sous ces systèmes d'exploitation. Si la règle n'est pas définie, l'utilisateur peut décider d'activer ou non l'option de connexion au navigateur et l'utiliser à sa convenance.</translation> +<translation id="5327325901414715560">Fournit les configurations des imprimantes d'entreprise associées à des appareils. + + Cette règle vous permet de communiquer les configurations des imprimantes aux appareils <ph name="PRODUCT_OS_NAME" />. Le format est le même que celui du dictionnaire NativePrinters, à l'exception d'un champ supplémentaire "id" ou "guid" obligatoire pour chaque imprimante à ajouter à la liste blanche ou noire. + + Le fichier, qui doit être encodé au format JSON, ne doit pas dépasser 5 Mo. Habituellement, un fichier encodé de 5 Mo peut contenir environ 21 000 imprimantes. Le hachage cryptographique permet de vérifier l'intégrité du fichier téléchargé. + + Le fichier est téléchargé et mis en cache. Il sera de nouveau téléchargé à chaque modification de l'URL ou du hachage. + + Si cette règle est configurée, <ph name="PRODUCT_OS_NAME" /> télécharge le fichier des configurations d'imprimantes et rend les imprimantes accessibles conformément aux règles <ph name="DEVICE_PRINTERS_ACCESS_MODE_POLICY_NAME" />, <ph name="DEVICE_PRINTERS_ALLOWLIST_POLICY_NAME" /> et <ph name="DEVICE_PRINTERS_BLOCKLIST_POLICY_NAME" />. + + Elle n'a aucune incidence pour les utilisateurs en ce qui concerne la possibilité ou non de configurer des imprimantes sur différents appareils. Elle est destinée à compléter la configuration des imprimantes effectuée par les différents utilisateurs. + + Elle vient en complément de la règle <ph name="PRINTERS_BULK_CONFIGURATION_POLICY_NAME" />. + + Si cette règle n'est pas configurée, aucune imprimante associée à un appareil n'est affichée, et les autres règles <ph name="DEVICE_PRINTERS_POLICY_PATTERN" /> sont ignorées. + </translation> <translation id="532848608876725157">Activer DNS-over-HTTPS avec solution de secours à risque</translation> <translation id="5329007337159326804">Avertissement : La règle relative à la version TLS maximale sera entièrement supprimée de <ph name="PRODUCT_NAME" /> à partir de la version 75 environ (autour de juin 2019). @@ -3001,7 +3075,6 @@ Si cette règle est définie sur "False", <ph name="PRODUCT_NAME" /> ne peut pas présenter ces informations dans ce mode. Cette règle permet de contrôler la présentation des pages de bienvenue qui aident les utilisateurs à se connecter à <ph name="PRODUCT_NAME" />, de définir <ph name="PRODUCT_NAME" /> comme leur navigateur par défaut ou de les informer des fonctionnalités du produit.</translation> -<translation id="5447306928176905178">Activer l'envoi d'informations sur la mémoire (taille du tas JS) à la page (obsolète)</translation> <translation id="5450893456912604446">Permet de configurer l'URL de la page d'accueil par défaut dans <ph name="PRODUCT_NAME" /> et d'empêcher les utilisateurs de la modifier. La page d'accueil est la page qui s'ouvre lorsque l'utilisateur clique sur le bouton "Accueil". Sur ordinateur, les pages qui s'affichent au démarrage sont gérées par les règles RestoreOnStartup. @@ -3174,6 +3247,9 @@ Si cette règle n'est pas configurée, le clavier est désactivé, mais les utilisateurs peuvent modifier ce paramètre. Remarque : Des règles heuristiques peuvent également déterminer quand le clavier doit être affiché.</translation> +<translation id="5657752663637568277">Cette règle détermine si les avertissements d'abandon de <ph name="CLOUD_PRINT_NAME" /> sont présentés aux utilisateurs dans la boîte de dialogue d'aperçu avant impression ou dans les pages de paramètres. + Si cette règle est définie sur "True", les avertissements d'abandon seront masqués. + Si cette règle est définie sur "False" ou n'est pas configurée, les avertissements d'abandon seront affichés.</translation> <translation id="5666457529647159548">Autoriser les utilisateurs à gérer les certificats client installés.</translation> <translation id="567377007899266033">Si cette règle est définie sur "True", des rapports sur les événements critiques d'installation d'extensions déclenchée par des règles sont transmis à Google. Si elle est définie sur "False", aucun événement n'est enregistré. Si elle n'est pas configurée, la valeur par défaut est définie sur "True".</translation> <translation id="5676740747107495269">Permet d'afficher les options d'accessibilité dans le menu de la barre d'état système, sur l'écran de connexion</translation> @@ -3397,6 +3473,12 @@ Désactiver cette règle affectera la sécurité et la stabilité de Chrome, car des codes inconnus et potentiellement dangereux pourront être chargés dans les processus de son moteur de rendu. Consultez la page https://chromium.googlesource.com/chromium/src/+/master/docs/design/sandbox.md#Process-mitigation-policies pour en savoir plus.</translation> <translation id="6048199181629830227">Activer l'alimentation alternée en heures pleines</translation> +<translation id="6054485492411959335">Indique les imprimantes auxquelles un utilisateur a accès. + + Cette règle est utilisée uniquement si <ph name="PRINTERS_ALLOWLIST" /> est sélectionné pour <ph name="PRINTERS_BULK_ACCESS_MODE_POLICY_NAME" />. + + Si cette règle est appliquée, seules les imprimantes dont l'ID correspond aux valeurs de la règle sont à la disposition de l'utilisateur. Les ID doivent correspondre aux champs "id" ou "guid" du fichier spécifié dans <ph name="PRINTERS_BULK_CONFIGURATION_POLICY_NAME" />. + </translation> <translation id="6066761914755798079">Si la règle <ph name="DEFAULT_SEARCH_PROVIDER_ENABLED_POLICY_NAME" /> est activée, la règle <ph name="DEFAULT_SEARCH_PROVIDER_SUGGEST_URL_POLICY_NAME" /> vous permet de spécifier l'URL du moteur de recherche pour fournir des suggestions de recherche. L'URL doit inclure la chaîne <ph name="SEARCH_TERM_MARKER" />, qui sera remplacée dans la requête par les termes de recherche de l'utilisateur. Vous pouvez spécifier cette URL comme suit : <ph name="GOOGLE_SUGGEST_SEARCH_URL" />.</translation> @@ -3419,6 +3501,12 @@ <ph name="PRODUCT_NAME" /> gère le contenu du répertoire racine d'un volume. Ainsi, pour éviter de perdre des données ou de générer d'autres erreurs, ne définissez pas cette règle sur le répertoire racine ni sur un autre répertoire utilisé à d'autres fins. Pour savoir quelles variables vous pouvez utiliser, consultez la page https://www.chromium.org/administrators/policy-list-3/user-data-directory-variables.</translation> <translation id="6083631234867522991">Windows (clients Windows) :</translation> +<translation id="6086225644749063677">Permet de spécifier les imprimantes auxquelles les utilisateurs ont accès. + + Cette règle est utilisée uniquement si <ph name="PRINTERS_ALLOWLIST" /> est sélectionné pour <ph name="DEVICE_PRINTERS_ACCESS_MODE_POLICY_NAME" />. + + Si cette règle est appliquée, seules les imprimantes dont l'ID correspond aux valeurs de la règle sont à la disposition de l'utilisateur. Les ID doivent correspondre aux champs "id" ou "guid" du fichier spécifié dans <ph name="DEVICE_PRINTERS_POLICY_NAME" />. + </translation> <translation id="608788685013546076">Définir le niveau de batterie minimal autorisé avec l'alimentation alternée en heures pleines</translation> <translation id="6089679180657323464">Contrôle les paramètres du dispositif de contrôle de diagnostic et de télémétrie de Wilco.</translation> <translation id="6091233616732024397">Obliger les utilisateurs à se connecter pour se servir du navigateur</translation> @@ -3907,6 +3995,11 @@ Notez que les utilisateurs peuvent accéder aux services Google dans un état non authentifié en bloquant leurs cookies.</translation> <translation id="6843296367238757293">Cette règle est obsolète. Nous vous déconseillons de l'utiliser. Pour en savoir plus, rendez-vous sur https://support.google.com/chrome/a/answer/7643500.</translation> +<translation id="6846126863870444592">Permet de définir les extensions autorisées à ignorer la boîte de dialogue de confirmation d'une tâche d'impression lorsque la fonction <ph name="SUBMIT_JOB_FUNCTION" /> est utilisée via l'API <ph name="PRINTING_API" /> pour envoyer la tâche en question. + + Si une extension ne figure pas dans la liste ou si cette liste n'est pas configurée, la boîte de dialogue de confirmation d'une tâche d'impression s'affiche à chaque appel de fonction <ph name="SUBMIT_JOB_FUNCTION" />. + + Cette règle étant obsolète, veuillez utiliser à la place la règle <ph name="PRINTING_API_EXTENSIONS_ALLOWLIST_POLICY_NAME" />.</translation> <translation id="684856667300805181">Cette règle a été supprimée dans <ph name="PRODUCT_NAME" /> 68 et remplacée par <ph name="ARC_GLS_POLICY_NAME" />.</translation> <translation id="6851199885688265233">Activer la fonctionnalité d'accessibilité de mise en surbrillance du curseur</translation> <translation id="6851315055469993882">Permet d'activer un cache d'authentification HTTP à portée globale</translation> @@ -3926,14 +4019,10 @@ Si cette règle n'est pas définie, le Partage à proximité est autorisé par défaut pour les utilisateurs gérés par une entreprise et pour les utilisateurs non gérés.</translation> <translation id="6864244339257535116">Autoriser l'importation et le téléchargement de fichiers protégés par un mot de passe</translation> -<translation id="687046793986382807">Cette règle a été supprimée de la version 35 de <ph name="PRODUCT_NAME" />. - - Les informations relatives à la mémoire sont tout de même consignées sur cette page, quelle que soit l'option retenue, mais les tailles indiquées sont - quantifiées et la fréquence des mises à jour est limitée pour des raisons de sécurité. Pour obtenir des données en temps réel précises, - veuillez utiliser un outil tel que Telemetry.</translation> <translation id="68798513449385583">Retarder les téléchargements jusqu'à ce que les résultats d'analyse soient connus</translation> <translation id="6889123056995503704">L'utilisateur détermine le comportement de retour à une version antérieure</translation> <translation id="6894178810167845842">URL de la page "Nouvel onglet"</translation> +<translation id="6897730193187922386">Supprimer les messages d'abandon de <ph name="CLOUD_PRINT_NAME" /></translation> <translation id="6899705656741990703">Détecter automatiquement les paramètres de proxy</translation> <translation id="6902561336084511004">Fournit les configurations des serveurs d'impression disponibles. @@ -3962,6 +4051,13 @@ <translation id="6907778402784621686">Bloquer le contenu non sécurisé sur ces sites</translation> <translation id="6908640907898649429">Configure le moteur de recherche par défaut. Vous pouvez définir le moteur de recherche par défaut dont se servira l'utilisateur ou choisir de désactiver le moteur de recherche par défaut.</translation> <translation id="6913068954484253496">Autoriser <ph name="PRODUCT_NAME" /> à se connecter aux appareils Cast sur toutes les adresses IP.</translation> +<translation id="6916817094593836501">Cette règle empêche l'affichage d'avertissements concernant des URL similaires sur les sites répertoriés. Ces avertissements s'affichent généralement sur un site soupçonné par <ph name="PRODUCT_NAME" /> d'imiter frauduleusement un autre site connu de l'utilisateur. + + Si cette règle est activée et définie sur un ou plusieurs domaines, aucun avertissement ne s'affiche lorsque l'utilisateur consulte des pages sur ce ou ces domaines. + + Si la règle est désactivée, non définie ou définie sur une liste vide, ces avertissements peuvent s'afficher sur n'importe quel site consulté par l'utilisateur. + + Un nom d'hôte peut être autorisé dans le cadre d'une correspondance d'hôte exacte ou de toute correspondance de domaine. Par exemple, les avertissements peuvent être supprimés pour l'URL "https://foo.example.com/bar" si la liste inclut "foo.example.com" ou "example.com".</translation> <translation id="6922884955650325312">Bloquer le plug-in "<ph name="FLASH_PLUGIN_NAME" />"</translation> <translation id="6923731550900440989">Activer la mise en surbrillance du curseur de saisie sur l'écran de connexion</translation> <translation id="6924223708804692571">Force la désactivation de la vérification orthographique pour certaines langues. Les langues non reconnues dans cette liste seront ignorées. @@ -4712,7 +4808,6 @@ <translation id="793134539373873765">Indiquer si une connexion P2P doit être utilisée pour les charges utiles de mise à jour de l'OS. Si le paramètre est défini sur "True", les charges utiles de mise à jour sur le réseau local sont partagées et utilisées par les appareils, ce qui peut avoir pour effet de réduire la quantité de bande passante utilisée et l'encombrement sur Internet. Si la charge utile de mise à jour n'est pas disponible sur le réseau local, le téléchargement est effectué sur l'appareil à partir d'un serveur de mise à jour. Si le paramètre est défini sur "False", ou s'il n'est pas configuré, la connexion P2P n'est pas utilisée.</translation> <translation id="7933141401888114454">Autoriser la création de comptes utilisateurs supervisés</translation> <translation id="793473937901685727">Définir la disponibilité des certificats pour les applications ARC</translation> -<translation id="7937491150792971922">Fusionner les règles relatives aux listes d'installation d'extensions à partir de différentes sources</translation> <translation id="7937766917976512374">Autoriser ou interdire la capture vidéo</translation> <translation id="7941975817681987555">Ne pas prédire d'actions réseau lors d'une connexion au réseau</translation> <translation id="7951605113561734721">Indique les certificats clients qui doivent être enregistrés au niveau de l'appareil à l'aide du protocole de gestion des appareils.</translation> @@ -4733,6 +4828,9 @@ <translation id="7953256619080733119">Hôtes d'exception manuelle des utilisateurs gérés</translation> <translation id="7956210013490975468">Configure le service proxy du système pour <ph name="PRODUCT_OS_NAME" />.</translation> <translation id="7958537754689366707">La saisie du mot de passe est requise toutes les 12 heures</translation> +<translation id="7960293328203000385">Définit la liste des utilisateurs autorisés à se connecter à l'appareil. Les entrées se présentent sous la forme suivante : <ph name="USER_ALLOWLIST_ENTRY_FORMAT" /> (<ph name="USER_ALLOWLIST_ENTRY_EXAMPLE" />, par exemple). Pour autoriser des utilisateurs arbitraires sur un domaine, utilisez les entrées sous la forme suivante : <ph name="USER_ALLOWLIST_ENTRY_WILDCARD" />. + + Si cette règle n'est pas configurée, aucune restriction ne s'applique quant aux utilisateurs autorisés à se connecter. Notez que la création d'utilisateurs nécessite toujours de configurer correctement la règle <ph name="DEVICE_ALLOW_NEW_USERS_POLICY_NAME" />.</translation> <translation id="7961779417826583251">Désactiver l'application des règles de transparence des certificats pour une liste d'autorités de certification héritées</translation> <translation id="7973609468423251675">Cette règle étant obsolète, elle sera supprimée dans la version 85 de <ph name="PRODUCT_OS_NAME" />. (Veuillez utiliser la règle <ph name="POWER_MANAGEMENT_IDLE_SETTINGS_POLICY_NAME" />.) @@ -5126,6 +5224,14 @@ Elle vise à permettre aux entreprises qui utilisent encore le protocole HTTP/0.9 à migrer leurs serveurs vers une version plus récente. Elle sera supprimée prochainement. Si cette règle n'est pas configurée, le protocole HTTP/0.9 est désactivé sur les ports non définis par défaut.</translation> +<translation id="8504725006737796967">Permet de spécifier les imprimantes auxquelles les utilisateurs ont accès. + + Cette règle n'est utilisée que si <ph name="PRINTERS_WHITELIST" /> est sélectionné dans la règle <ph name="BULK_PRINTERS_ACCESS_MODE_POLICY_NAME" />. + + Si cette règle est configurée, seules les imprimantes dont l'ID correspond aux valeurs définies dans celle-ci sont proposées aux utilisateurs. Ces ID doivent correspondre à ceux indiqués dans les champs "id" ou "guid" du fichier spécifié dans la règle <ph name="BULK_PRINTERS_POLICY_NAME" />. + + Cette règle étant obsolète, veuillez utiliser à la place la règle <ph name="PRINTERS_BULK_ALLOWLIST_POLICY_NAME" />. + </translation> <translation id="8507835864888987300">Définit une version cible pour les mises à jour automatiques. Cette règle spécifie le préfixe de la version cible que <ph name="PRODUCT_OS_NAME" /> doit installer. Si la version installée sur l'appareil est antérieure au préfixe défini, la dernière version associée à ce préfixe est installée. Si l'appareil exécute déjà une version ultérieure, les effets varient en fonction de la valeur de la règle <ph name="DEVICE_ROLLBACK_TO_TARGET_VERSION_POLICY_NAME" />. Comme l'illustre l'exemple suivant, le format du préfixe tient compte des composants :
diff --git a/components/policy/resources/policy_templates_id.xtb b/components/policy/resources/policy_templates_id.xtb index 07176c7..76fb8e6 100644 --- a/components/policy/resources/policy_templates_id.xtb +++ b/components/policy/resources/policy_templates_id.xtb
@@ -374,6 +374,12 @@ <translation id="1561967320164410511">U2F ditambah beberapa ekstensi untuk masing-masing pengesahan</translation> <translation id="1575015449587326319">Kebijakan konfigurasi untuk Konektor Chrome Enterprise OnFileDownloaded</translation> <translation id="1583248206450240930">Gunakan <ph name="PRODUCT_FRAME_NAME" /> jika tidak diubah</translation> +<translation id="1587671452159346389">Mengontrol printer mana dari <ph name="DEVICE_PRINTERS_POLICY_NAME" /> yang tersedia bagi pengguna. + + Menetapkan kebijakan akses mana yang digunakan untuk konfigurasi printer massal. Jika <ph name="PRINTERS_ALLOW_ALL" /> dipilih, semua printer akan ditampilkan. Jika <ph name="PRINTERS_BLOCKLIST" /> dipilih, <ph name="DEVICE_PRINTERS_BLOCKLIST_POLICY_NAME" /> akan digunakan untuk membatasi akses ke printer tertentu. Jika <ph name="PRINTERS_ALLOWLIST" /> dipilih, <ph name="DEVICE_PRINTERS_ALLOWLIST_POLICY_NAME" /> hanya akan menetapkan printer yang dapat dipilih. + + Jika kebijakan ini tidak disetel, <ph name="PRINTERS_ALLOW_ALL" /> akan diberlakukan. + </translation> <translation id="1588240398285670601">Setelan Browser</translation> <translation id="1588456836529393506">Jika menyetel kebijakan, Anda akan dapat membuat daftar pola URL yang menentukan situs mana yang otomatis diizinkan untuk mengakses perangkat USB dengan ID vendor dan produk tertentu. Setiap item daftar harus memiliki perangkat dan URL agar kebijakan menjadi valid. Setiap item di perangkat dapat memiliki kolom ID produk dan ID vendor. ID yang Anda hapus akan diperlakukan sebagai karakter pengganti dengan satu pengecualian: Anda tidak dapat menentukan ID produk tanpa menentukan ID vendor. Jika tidak, kebijakan tidak akan valid. @@ -1107,6 +1113,22 @@ Jika kebijakan disetel ke Nonaktif, peringatan keamanan akan dicegah muncul saat Chrome diluncurkan dengan tanda command line yang berpotensi berbahaya. Di <ph name="MS_WIN_NAME" />, fungsi ini hanya tersedia di instance yang dihubungkan ke domain <ph name="MS_AD_NAME" />, dijalankan di Windows 10 Pro, atau didaftarkan di Pengelolaan Cloud Browser Chrome. Di <ph name="MAC_OS_NAME" />, fungsi ini hanya tersedia di instance yang dikelola melalui MDM, atau dihubungkan ke domain melalui MCX.</translation> +<translation id="2621383458880689826">Memberikan konfigurasi untuk printer perusahaan yang terikat ke perangkat. + + Kebijakan ini memungkinkan Anda memberikan konfigurasi printer untuk perangkat <ph name="PRODUCT_OS_NAME" />. Formatnya sama dengan kamus NativePrinters, dengan tambahan kolom "id" atau "guid" per printer yang diperlukan untuk pemberian atau pemblokiran izin. + + Ukuran file tidak boleh lebih dari 5 MB dan harus dienkode dalam format JSON. File yang berisi sekitar 21.000 printer diperkirakan akan dienkode menjadi file berukuran 5 MB. Hash kriptografi digunakan untuk memverifikasi integritas download. + + File didownload dan disimpan di cache. File akan didownload ulang setiap kali URL atau hash berubah. + + Jika kebijakan ini disetel, <ph name="PRODUCT_OS_NAME" /> akan mendownload file untuk konfigurasi printer dan menyediakan printer sesuai dengan <ph name="DEVICE_NATIVE_PRINTERS_ACCESS_MODE" />, <ph name="DEVICE_NATIVE_PRINTERS_WHITELIST_POLICY_NAME" />, dan <ph name="DEVICE_NATIVE_PRINTERS_BLACKLIST_POLICY_NAME" />. + + Kebijakan ini tidak memengaruhi kemampuan pengguna untuk mengonfigurasi printer di tiap perangkat. Kebijakan ini ditujukan sebagai tambahan untuk konfigurasi printer yang ditentukan oleh tiap pengguna. + + Kebijakan ini bersifat tambahan untuk <ph name="BULK_PRINTERS_POLICY_NAME" />. + + Jika kebijakan ini tidak disetel, tidak akan ada printer perangkat, dan kebijakan <ph name="DEVICE_NATIVE_PRINTERS_POLICY_PATTERN" /> yang lain akan diabaikan. + </translation> <translation id="2623014935069176671">Tunggu aktivitas pengguna awal</translation> <translation id="262740370354162807">Aktifkan penyerahan dokumen ke <ph name="CLOUD_PRINT_NAME" /></translation> <translation id="2632538643061793322">Jika menyetel kebijakan, Anda akan dapat menyetel daftar pola URL yang menentukan situs mana yang dapat meminta izin kepada pengguna untuk mengakses perangkat USB. @@ -1133,6 +1155,7 @@ Jika kebijakan ini tidak ditetapkan, setelan defaultnya adalah tidak diizinkan untuk pengguna yang dikelola dan diizinkan untuk pengguna yang tidak dikelola.</translation> <translation id="2660846099862559570">Jangan pernah gunakan proxy</translation> +<translation id="2664682171745499686">Menyembunyikan peringatan domain yang mirip di domain</translation> <translation id="2665422249821137126">Mengaktifkan kursor besar di layar login</translation> <translation id="2672012807430078509">Kontrol yang mengaktifkan NTLM sebagai protokol autentikasi untuk pemasangan SMB</translation> <translation id="2678503605767349615">Sertifikat Klien seluruh perangkat yang diperlukan</translation> @@ -1272,6 +1295,12 @@ Jika setelan ini diaktifkan, Pratinjau Cetak akan menggunakan printer default sistem OS sebagai pilihan tujuan default.</translation> <translation id="285627849510728211">Menetapkan konfigurasi hari mode pengisian daya baterai lanjutan</translation> <translation id="2856674246949497058">Rollback dan tetap menggunakan versi target jika versi OS lebih baru dari target. Lakukan powerwash selama prosesnya.</translation> +<translation id="2869140260739354012">Mengontrol printer mana dari <ph name="DEVICE_PRINTERS_POLICY" /> yang tersedia bagi pengguna. + + Menetapkan kebijakan akses mana yang digunakan untuk konfigurasi printer massal. Jika <ph name="PRINTERS_ALLOW_ALL" /> dipilih, semua printer akan ditampilkan. Jika <ph name="PRINTERS_BLACKLIST" /> dipilih, <ph name="DEVICE_NATIVE_PRINTERS_BLACKLIST" /> akan digunakan untuk membatasi akses ke printer tertentu. Jika <ph name="PRINTERS_WHITELIST" /> dipilih, <ph name="DEVICE_NATIVE_PRINTERS_WHITELIST" /> hanya akan menetapkan printer yang dapat dipilih. + + Jika kebijakan ini tidak disetel, <ph name="PRINTERS_ALLOW_ALL" /> akan diberlakukan. + </translation> <translation id="2869762730352628426">Mengaktifkan klik otomatis di layar login</translation> <translation id="2872961005593481000">Matikan</translation> <translation id="2874209944580848064">Catatan untuk perangkat <ph name="PRODUCT_OS_NAME" /> yang mendukung aplikasi Android:</translation> @@ -1314,11 +1343,6 @@ Catatan: Kebijakan ini mengarah ke file XML dalam format yang sama seperti kebijakan <ph name="IEEM_SITELIST_POLICY" /> <ph name="IE_PRODUCT_NAME" />. Kebijakan ini akan memuat aturan dari file XML, tanpa membagikan aturan tersebut ke <ph name="IE_PRODUCT_NAME" />. Baca selengkapnya terkait kebijakan <ph name="IEEM_SITELIST_POLICY" /> <ph name="IE_PRODUCT_NAME" /> (https://docs.microsoft.com/internet-explorer/ie11-deploy-guide/what-is-enterprise-mode)</translation> <translation id="2952347049958405264">Pembatasan:</translation> -<translation id="2956777931324644324">Kebijakan ini dihentikan sejak <ph name="PRODUCT_NAME" /> versi 36. - - Menentukan apakah ekstensi sertifikat terikat domain TLS sebaiknya diaktifkan atau tidak. - - Setelan ini digunakan untuk mengaktifkan ekstensi sertifikat terikat domain TLS untuk pengujian. Setelan eksperimental ini akan dibuang di masa mendatang.</translation> <translation id="2957047180944828740">Menentukan apakah akan mengizinkan situs yang tidak aman untuk membuat permintaan ke endpoint jaringan yang lebih pribadi</translation> <translation id="2957506574938329824">Jangan izinkan situs apa pun meminta akses ke perangkat Bluetooth melalui API Bluetooth Web</translation> <translation id="2957513448235202597">Jenis akun untuk autentikasi <ph name="HTTP_NEGOTIATE" /></translation> @@ -1858,7 +1882,6 @@ Jika kebijakan ini tidak disetel, setelan default-nya tidak diizinkan bagi pengguna yang dikelola perusahaan dan diizinkan bagi pengguna yang tidak dikelola.</translation> <translation id="3803171355925844705">Jangan izinkan situs apa pun memuat konten campuran</translation> -<translation id="3805659594028420438">Aktifkan ekstensi sertifikat terikat domain TLS (tidak lagi digunakan)</translation> <translation id="3808945828600697669">Tentukan daftar plugin yang dinonaktifkan</translation> <translation id="3810642039169532482">Mengaktifkan fitur aksesibilitas dikte di layar login. @@ -1888,6 +1911,12 @@ <translation id="3838094946886335701">Jika menyetel kebijakan (sebagai direkomendasikan saja), Anda akan dapat mendaftarkan daftar pengendali protokol, yang digabungkan dengan yang didaftarkan pengguna, sehingga keduanya dapat digunakan. Setel properti "protokol" ke skema, seperti "mailto", dan setel properti "URL" ke pola URL aplikasi yang menangani skema yang ditentukan dalam kolom "protokol". Pola dapat mencakup placeholder "%s", yang diganti dengan URL yang ditangani. Pengguna tidak dapat menghapus pengendali protokol yang didaftarkan oleh kebijakan. Namun, dengan menginstal pengendali default baru, pengguna dapat mengubah pengendali protokol yang diinstal oleh kebijakan.</translation> +<translation id="3848118497246496090">Menentukan printer yang tidak dapat digunakan pengguna. + + Kebijakan ini hanya digunakan jika <ph name="PRINTERS_BLACKLIST" /> dipilih untuk <ph name="DEVICE_NATIVE_PRINTERS_ACCESS_MODE" />. + + Jika kebijakan ini digunakan, semua printer akan tersedia bagi pengguna, kecuali ID yang dicantumkan di kebijakan ini. ID harus sesuai dengan kolom "id" atau "guid" dalam file yang ditentukan di <ph name="DEVICE_PRINTERS_POLICY" />. + </translation> <translation id="3851039766298741586">Laporkan informasi tentang sesi kios aktif, misalnya ID dan versi aplikasi. @@ -2028,6 +2057,12 @@ <translation id="3965339130942650562">Waktu tunggu sampai proses keluar pengguna nganggur dieksekusi</translation> <translation id="3973371701361892765">Jangan sembunyikan rak secara otomatis</translation> <translation id="3979738908158213640">URL yang akan diberi akses untuk melakukan pengesahan perangkat saat autentikasi SAML</translation> +<translation id="3980024487013511975">Menentukan printer yang tidak dapat digunakan pengguna. + + Kebijakan ini hanya digunakan jika <ph name="PRINTERS_BLOCKLIST" /> dipilih untuk <ph name="DEVICE_PRINTERS_ACCESS_MODE_POLICY_NAME" />. + + Jika kebijakan ini digunakan, semua printer akan tersedia bagi pengguna, kecuali ID yang dicantumkan di kebijakan ini. ID harus sesuai dengan kolom "id" atau "guid" dalam file yang ditentukan di <ph name="DEVICE_PRINTERS_POLICY_NAME" />. + </translation> <translation id="3984028218719007910">Menentukan apakah <ph name="PRODUCT_OS_NAME" /> menyimpan data akun lokal setelah keluar. Jika disetel ke true, maka tidak ada akun yang terus-menerus disimpan oleh <ph name="PRODUCT_OS_NAME" /> dan semua data dari sesi pengguna akan dihapus setelah keluar. Jika kebijakan ini disetel ke false atau tidak dikonfigurasi, perangkat dapat menyimpan data pengguna lokal (yang dienkripsi).</translation> <translation id="398884292557092447">Jika kebijakan disetel ke Benar (True) atau tidak disetel, pengguna akan dapat mengontrol saran isi otomatis untuk kartu kredit di UI. @@ -2235,6 +2270,12 @@ Jika tidak disetel, situs akan dapat meminta akses tetapi pengguna dapat mengubah setelan ini.</translation> <translation id="4285674129118156176">Mengizinkan pengguna yang tak terafiliasi menggunakan ARC</translation> +<translation id="4309562700894844665">Menentukan printer yang dapat digunakan pengguna. + + Kebijakan ini hanya digunakan jika <ph name="PRINTERS_WHITELIST" /> dipilih untuk <ph name="DEVICE_NATIVE_PRINTERS_ACCESS_MODE" /> + + Jika kebijakan ini digunakan, hanya printer dengan ID yang cocok dengan nilai di kebijakan ini yang tersedia bagi pengguna. ID harus sesuai dengan kolom "id" atau "guid" dalam file yang ditentukan di <ph name="DEVICE_PRINTERS_POLICY" />. + </translation> <translation id="4311195029067684288">Penuh</translation> <translation id="4313767483634435271">Alamat MAC dok yang ditetapkan untuk perangkat</translation> <translation id="4322842393287974810">Izinkan peluncuran otomatis dengan aplikasi kios tanpa penundaan untuk mengontrol versi <ph name="PRODUCT_OS_NAME" /></translation> @@ -2567,11 +2608,6 @@ Jika kebijakan tidak disetel, <ph name="PRODUCT_NAME" /> hanya akan terhubung ke perangkat Cast di RFC1918/RFC4193, kecuali fitur CastAllowAllIPs diaktifkan.</translation> <translation id="489803897780524242">Parameter yang mengendalikan penempatan istilah penelusuran untuk penyedia penelusuran default</translation> <translation id="4899708173828500852">Aktifkan Safe Browsing</translation> -<translation id="4902163780937592202">Mengaktifkan penggabungan kebijakan daftar penginstalan ekstensi <ph name="EXTENSION_INSTALL_BLOCKLIST_POLICY_NAME" />, <ph name="EXTENSION_INSTALL_ALLOWLIST_POLICY_NAME" />, dan <ph name="EXTENSION_INSTALL_FORCELIST_POLICY_NAME" />. - - Jika Anda mengaktifkan setelan ini, nilai dari kebijakan platform perangkat, kebijakan cloud perangkat, dan kebijakan platform pengguna akan digabungkan menjadi satu daftar dan digunakan sebagai satu kesatuan utuh, bukan hanya menggunakan nilai dari satu sumber yang memiliki prioritas tertinggi. - - Jika setelan ini dinonaktifkan atau tidak disetel, hanya entri daftar dari sumber dengan prioritas tertinggi yang akan diambil. Semua sumber lainnya akan ditampilkan sebagai konflik tetapi diabaikan.</translation> <translation id="4906194810004762807">Segarkan peringkat untuk Kebijakan Perangkat</translation> <translation id="4917385247580444890">Kuat</translation> <translation id="4919122295221518724">Aktifkan perlakuan yang lebih ketat untuk konten campuran</translation> @@ -2881,6 +2917,22 @@ Jika kebijakan ini ditetapkan ke "Paksa login ke browser", sebuah dialog untuk memilih akun akan ditampilkan dan pengguna harus memilih serta login ke salah satu akun agar dapat menggunakan browser. Hal ini memastikan bahwa, untuk akun terkelola, kebijakan yang terkait dengan akun tersebut diterapkan dan diberlakukan. Secara default, langkah ini mengaktifkan sinkronisasi Chrome untuk akun tersebut, kecuali jika sinkronisasi dinonaktifkan oleh admin domain atau melalui kebijakan "SyncDisabled". Nilai default BrowserGuestModeEnabled akan ditetapkan ke Salah. Perlu diketahui bahwa profil yang ada serta belum ditandatangani akan dikunci dan tidak dapat diakses setelah kebijakan ini diaktifkan. Untuk mengetahui informasi selengkapnya, lihat artikel pusat bantuan: https://support.google.com/chrome/a/answer/7572556. Opsi ini tidak mendukung Linux dan Android, dan akan dikembalikan ke kebijakan "Aktifkan login browser" jika digunakan. Jika kebijakan ini tidak ditetapkan, pengguna dapat memutuskan apakah mereka ingin mengaktifkan opsi login browser dan menggunakannya jika dirasa sesuai.</translation> +<translation id="5327325901414715560">Memberikan konfigurasi untuk printer perusahaan yang terikat ke perangkat. + + Kebijakan ini memungkinkan Anda memberikan konfigurasi printer untuk perangkat <ph name="PRODUCT_OS_NAME" />. Formatnya sama dengan kamus NativePrinters, dengan tambahan kolom "id" atau "guid" per printer yang diperlukan untuk pemberian atau pemblokiran izin. + + Ukuran file tidak boleh lebih dari 5 MB dan harus dienkode dalam format JSON. File yang berisi sekitar 21.000 printer diperkirakan akan dienkode menjadi file berukuran 5 MB. Hash kriptografi digunakan untuk memverifikasi integritas download. + + File didownload dan disimpan di cache. File akan didownload ulang setiap kali URL atau hash berubah. + + Jika kebijakan ini disetel, <ph name="PRODUCT_OS_NAME" /> akan mendownload file untuk konfigurasi printer dan menyediakan printer sesuai dengan <ph name="DEVICE_PRINTERS_ACCESS_MODE_POLICY_NAME" />, <ph name="DEVICE_PRINTERS_ALLOWLIST_POLICY_NAME" />, dan <ph name="DEVICE_PRINTERS_BLOCKLIST_POLICY_NAME" />. + + Kebijakan ini tidak memengaruhi kemampuan pengguna untuk mengonfigurasi printer di tiap perangkat. Kebijakan ini ditujukan sebagai tambahan untuk konfigurasi printer yang ditentukan oleh tiap pengguna. + + Kebijakan ini bersifat tambahan untuk <ph name="PRINTERS_BULK_CONFIGURATION_POLICY_NAME" />. + + Jika kebijakan ini tidak disetel, tidak akan ada printer perangkat, dan kebijakan <ph name="DEVICE_PRINTERS_POLICY_PATTERN" /> yang lain akan diabaikan. + </translation> <translation id="532848608876725157">Aktifkan DNS-over-HTTPS dengan fallback yang tidak aman</translation> <translation id="5329007337159326804">Peringatan: Kebijakan versi TLS maksimum akan dihapus sepenuhnya dari <ph name="PRODUCT_NAME" /> mulai sekitar versi 75 (sekitar bulan Juni 2019). @@ -3019,7 +3071,6 @@ Jika kebijakan disetel ke Salah (False), <ph name="PRODUCT_NAME" /> tidak dapat menampilkan informasi produk sebagai konten tab penuh. Menyetel kebijakan akan mengontrol penyajian informasi promosi tab penuh. Hal ini termasuk konten seperti halaman sambutan yang membantu pengguna login ke <ph name="PRODUCT_NAME" />, menyetel <ph name="PRODUCT_NAME" /> sebagai browser default pengguna, atau menginformasikan fitur produk kepada pengguna.</translation> -<translation id="5447306928176905178">Aktifkan pelaporan info memori (JS heap size) ke halaman (dipensiunkan)</translation> <translation id="5450893456912604446">Mengonfigurasi URL halaman beranda default di <ph name="PRODUCT_NAME" /> dan mencegah pengguna mengubahnya. Halaman beranda adalah halaman yang dibuka oleh tombol Layar Utama. Di desktop, halaman yang terbuka saat browser diluncurkan akan dikontrol oleh kebijakan RestoreOnStartup. @@ -3444,6 +3495,12 @@ <ph name="PRODUCT_NAME" /> akan mengelola konten direktori utama volume. Agar tidak kehilangan data atau mengalami error lainnya, jangan menetapkan kebijakan ini ke direktori utama atau semua direktori yang digunakan untuk tujuan lainnya. Lihat variabel yang dapat Anda gunakan (https://www.chromium.org/administrators/policy-list-3/user-data-directory-variables).</translation> <translation id="6083631234867522991">Windows (klien Windows):</translation> +<translation id="6086225644749063677">Menentukan printer yang dapat digunakan pengguna. + + Kebijakan ini hanya digunakan jika <ph name="PRINTERS_ALLOWLIST" /> dipilih untuk <ph name="DEVICE_PRINTERS_ACCESS_MODE_POLICY_NAME" /> + + Jika kebijakan ini digunakan, hanya printer dengan ID yang cocok dengan nilai di kebijakan ini yang tersedia bagi pengguna. ID harus sesuai dengan kolom "id" atau "guid" dalam file yang ditentukan di <ph name="DEVICE_PRINTERS_POLICY_NAME" />. + </translation> <translation id="608788685013546076">Menetapkan ambang batas pergeseran puncak daya baterai dalam persen</translation> <translation id="6089679180657323464">Mengontrol setelan pengontrol diagnostik dan telemetri wilco.</translation> <translation id="6091233616732024397">Paksa pengguna login untuk menggunakan browser</translation> @@ -3937,6 +3994,11 @@ Perlu diketahui bahwa pengguna akan dapat mengakses layanan Google dalam kondisi tidak terautentikasi dengan memblokir cookienya.</translation> <translation id="6843296367238757293">Kebijakan ini tidak digunakan lagi. Penggunaannya tidak disarankan. Baca selengkapnya di https://support.google.com/chrome/a/answer/7643500</translation> +<translation id="6846126863870444592">Kebijakan ini menentukan ekstensi yang diizinkan untuk melewati dialog konfirmasi tugas pencetakan ketika menggunakan fungsi <ph name="PRINTING_API" /> <ph name="SUBMIT_JOB_FUNCTION" /> untuk mengirimkan tugas pencetakan. + + Jika ekstensi tidak ada dalam daftar, atau daftar tidak ditetapkan, dialog konfirmasi tugas pencetakan akan ditampilkan ke pengguna untuk setiap panggilan fungsi <ph name="SUBMIT_JOB_FUNCTION" />. + + Kebijakan ini tidak digunakan lagi. Sebagai gantinya, gunakan <ph name="PRINTING_API_EXTENSIONS_ALLOWLIST_POLICY_NAME" />.</translation> <translation id="684856667300805181">Kebijakan ini dihapus dalam <ph name="PRODUCT_NAME" /> 68 dan digantikan oleh <ph name="ARC_GLS_POLICY_NAME" />.</translation> <translation id="6851199885688265233">Mengaktifkan fitur aksesibilitas sorotan kursor</translation> <translation id="6851315055469993882">Mengaktifkan cache autentikasi HTTP yang tercakup secara global</translation> @@ -3956,11 +4018,6 @@ Jika kebijakan ini tidak disetel, baik pengguna yang dikelola maupun tidak dikelola perusahaan akan diizinkan secara default.</translation> <translation id="6864244339257535116">Izinkan upload dan download file yang dilindungi sandi</translation> -<translation id="687046793986382807">Kebijakan ini telah dihentikan pada <ph name="PRODUCT_NAME" /> versi 35. - - Bagaimanapun juga info memori dilaporkan ke halaman, terlepas dari nilai opsinya, namun ukuran yang dilaporkan - dikuantisasi dan tingkat pembaruan dibatasi karena alasan keamanan. Untuk memperoleh data akurat dalam waktu nyata, - silakan gunakan alat seperti Telemetri.</translation> <translation id="68798513449385583">Tunda download hingga mengetahui hasil pemindaian</translation> <translation id="6889123056995503704">Pengguna akan menentukan perilaku downgrade saluran rilis</translation> <translation id="6894178810167845842">URL halaman Tab Baru</translation> @@ -3993,6 +4050,13 @@ <translation id="6907778402784621686">Blokir konten tidak aman di situs ini</translation> <translation id="6908640907898649429">Mengonfigurasi penyedia penelusuran default. Anda dapat menentukan penyedia penelusuran default yang akan digunakan pengguna atau memilih menonaktifkan penelusuran default.</translation> <translation id="6913068954484253496">Izinkan <ph name="PRODUCT_NAME" /> untuk tersambung ke perangkat Cast di semua alamat IP.</translation> +<translation id="6916817094593836501">Kebijakan ini mencegah tampilan peringatan URL yang mirip di situs yang tercantum. Peringatan ini biasanya ditampilkan di situs yang diyakini <ph name="PRODUCT_NAME" /> mencoba melakukan spoofing pada situs lain yang biasa dikunjungi pengguna. + + Jika kebijakan ini diaktifkan dan disetel ke satu atau beberapa domain, halaman peringatan yang mirip tidak akan ditampilkan saat pengguna mengunjungi halaman di domain tersebut. + + Jika kebijakan ini dinonaktifkan, tidak disetel, atau disetel ke daftar kosong, peringatan akan muncul di situs yang dikunjungi pengguna. + + Hostname dapat diizinkan menggunakan pencocokan host lengkap, atau pencocokan domain apa pun. Misalnya, URL seperti "https://foo.example.com/bar" dapat memiliki peringatan yang disembunyikan jika daftar ini menyertakan "foo.example.com" atau "example.com".</translation> <translation id="6922884955650325312">Blokir plugin <ph name="FLASH_PLUGIN_NAME" /></translation> <translation id="6923731550900440989">Mengaktifkan sorotan kursor teks di layar login</translation> <translation id="6924223708804692571">Menonaktifkan secara paksa bahasa pemeriksaan ejaan. Bahasa yang tidak dikenal dalam daftar tersebut akan diabaikan. @@ -4742,7 +4806,6 @@ <translation id="793134539373873765">Tentukan apakah p2p akan digunakan untuk payload pembaruan OS. Jika disetel ke True, perangkat akan membagi dan berusaha menggunakan payload pembaruan pada LAN, serta berpotensi mengurangi penggunaan dan kepadatan bandwidth internet. Jika payload pembaruan tidak tersedia di LAN, perangkat tersebut akan kembali mendownload dari server yang diperbarui. Jika disetel ke False atau tidak dikonfigurasi, p2p tidak akan digunakan.</translation> <translation id="7933141401888114454">Mengaktifkan pembuatan pengguna yang dilindungi</translation> <translation id="793473937901685727">Menyetel ketersediaan sertifikat untuk aplikasi ARC</translation> -<translation id="7937491150792971922">Gabungkan kebijakan daftar instal ekstensi dari beberapa sumber</translation> <translation id="7937766917976512374">Izinkan atau tolak penangkapan video</translation> <translation id="7941975817681987555">Jangan memprediksi tindakan jaringan di koneksi jaringan apa pun</translation> <translation id="7951605113561734721">Menentukan sertifikat klien di seluruh perangkat yang seharusnya didaftarkan menggunakan protokol pengelolaan perangkat.</translation> @@ -4763,6 +4826,9 @@ <translation id="7953256619080733119">Hosting pengecualian manual pengguna yang dikelola</translation> <translation id="7956210013490975468">Mengonfigurasi layanan System-proxy untuk <ph name="PRODUCT_OS_NAME" />.</translation> <translation id="7958537754689366707">Sandi harus dimasukkan setiap dua belas jam</translation> +<translation id="7960293328203000385">Menetapkan daftar pengguna yang diizinkan untuk login ke perangkat. Entri memiliki format <ph name="USER_ALLOWLIST_ENTRY_FORMAT" />, misalnya <ph name="USER_ALLOWLIST_ENTRY_EXAMPLE" />. Untuk mengizinkan sembarang pengguna di suatu domain, gunakan entri berformat <ph name="USER_ALLOWLIST_ENTRY_WILDCARD" />. + + Jika kebijakan ini tidak dikonfigurasi, semua pengguna akan diizinkan untuk login. Perlu diperhatikan bahwa pembuatan pengguna baru tetap mengharuskan kebijakan <ph name="DEVICE_ALLOW_NEW_USERS_POLICY_NAME" /> dikonfigurasi dengan tepat.</translation> <translation id="7961779417826583251">Nonaktifkan penerapan Transparansi Sertifikat untuk daftar Otoritas Sertifikat Lama</translation> <translation id="7973609468423251675">Perhatikan bahwa kebijakan ini sudah tidak digunakan lagi dan akan dihapus di <ph name="PRODUCT_OS_NAME" /> versi 85. Sebagai gantinya, gunakan <ph name="POWER_MANAGEMENT_IDLE_SETTINGS_POLICY_NAME" />.
diff --git a/components/policy/resources/policy_templates_it.xtb b/components/policy/resources/policy_templates_it.xtb index ad4522a8..abec552 100644 --- a/components/policy/resources/policy_templates_it.xtb +++ b/components/policy/resources/policy_templates_it.xtb
@@ -361,6 +361,12 @@ <translation id="1561967320164410511">U2F più estensioni per singola attestazione</translation> <translation id="1575015449587326319">Criterio di configurazione per il connettore OnFileDownloaded di Chrome Enterprise</translation> <translation id="1583248206450240930">Utilizza <ph name="PRODUCT_FRAME_NAME" /> per impostazione predefinita</translation> +<translation id="1587671452159346389">Consente di stabilire quali stampanti del criterio <ph name="DEVICE_PRINTERS_POLICY_NAME" /> sono disponibili agli utenti. + + Determina quale criterio di accesso utilizzare per la configurazione collettiva delle stampanti. Se viene selezionata l'opzione <ph name="PRINTERS_ALLOW_ALL" />, vengono mostrate tutte le stampanti. Se viene selezionata l'opzione <ph name="PRINTERS_BLOCKLIST" />, viene utilizzato <ph name="DEVICE_PRINTERS_BLOCKLIST_POLICY_NAME" /> per limitare l'accesso a stampanti specifiche. Se viene selezionata l'opzione <ph name="PRINTERS_ALLOWLIST" />, <ph name="DEVICE_PRINTERS_ALLOWLIST_POLICY_NAME" /> stabilisce soltanto le stampanti selezionabili. + + Se questo criterio non viene impostato, viene utilizzata l'opzione <ph name="PRINTERS_ALLOW_ALL" />. + </translation> <translation id="1588240398285670601">Impostazioni del browser</translation> <translation id="1588456836529393506">Se il criterio viene configurato, puoi impostare un elenco di pattern URL che specificano i siti a cui viene concessa automaticamente l'autorizzazione di accesso a un dispositivo USB con gli ID fornitore e prodotto indicati. Affinché il criterio sia valido, ogni elemento dell'elenco deve contenere sia dispositivi sia URL. Ogni elemento nei dispositivi può contenere un campo ID fornitore e un campo ID prodotto. Gli eventuali ID omessi verranno considerati caratteri jolly con l'eccezione che non è possibile specificare un ID prodotto senza specificare anche un ID fornitore. In caso contrario, il criterio non sarà valido. @@ -1086,6 +1092,22 @@ Se il criterio viene impostato su Disattivato, viene impedita la visualizzazione degli avvisi di sicurezza quando Chrome viene avviato con flag della riga di comando potenzialmente pericolosi. Su <ph name="MS_WIN_NAME" />, questa funzionalità è disponibile soltanto sulle istanze che fanno parte di un dominio <ph name="MS_AD_NAME" />, sono in esecuzione su Windows 10 Pro o sono registrate in Chrome Browser Cloud Management. Su <ph name="MAC_OS_NAME" />, questa funzionalità è disponibile soltanto sulle istanze gestite tramite MDM o aggiunte a un dominio tramite MCX.</translation> +<translation id="2621383458880689826">Consente di specificare le configurazioni delle stampanti aziendali associate ai dispositivi. + + Questo criterio consente di fornire configurazioni delle stampanti ai dispositivi <ph name="PRODUCT_OS_NAME" />. Il formato corrisponde a quello del dizionario NativePrinters, con un campo "id" o "guid" aggiuntivo obbligatorio per ciascuna stampante ai fini dell'autorizzazione o del blocco della stessa. + + La dimensione del file non deve superare 5 MB e deve essere codificata in JSON. È stato stimato che un file contenente circa 21.000 stampanti viene codificato come file di 5 MB. L'hash di crittografia viene utilizzato per verificare l'integrità del download. + + Il file viene scaricato e memorizzato nella cache. Verrà scaricato nuovamente ogni volta che l'URL o l'hash cambiano. + + Se il criterio è impostato, <ph name="PRODUCT_OS_NAME" /> scaricherà il file per le configurazioni delle stampanti e renderà disponibili le stampanti in base a <ph name="DEVICE_NATIVE_PRINTERS_ACCESS_MODE" />, <ph name="DEVICE_NATIVE_PRINTERS_WHITELIST_POLICY_NAME" /> e <ph name="DEVICE_NATIVE_PRINTERS_BLACKLIST_POLICY_NAME" />. + + Questo criterio non influisce sulla possibilità per gli utenti di configurare le stampanti su singoli dispositivi. È supplementare alla configurazione delle stampanti da parte dei singoli utenti. + + Si tratta di un criterio aggiuntivo rispetto al criterio <ph name="BULK_PRINTERS_POLICY_NAME" />. + + Se il criterio non viene impostato, non ci saranno stampanti per i dispositivi e gli altri criteri <ph name="DEVICE_NATIVE_PRINTERS_POLICY_PATTERN" /> verranno ignorati. + </translation> <translation id="2623014935069176671">Attesa dell'attività iniziale dell'utente</translation> <translation id="262740370354162807">Attiva l'invio di documenti a <ph name="CLOUD_PRINT_NAME" /></translation> <translation id="2632538643061793322">Se il criterio viene configurato, puoi elencare i pattern URL che specificano i siti che possono chiedere agli utenti l'autorizzazione di accesso a un dispositivo USB. @@ -1112,6 +1134,7 @@ Se questa norma non viene impostata, per impostazione predefinita non sarà disponibile per gli utenti gestiti, mentre lo sarà invece per gli utenti non gestiti.</translation> <translation id="2660846099862559570">Non utilizzare mai un proxy</translation> +<translation id="2664682171745499686">Elimina gli avvisi di domini simili dai domini</translation> <translation id="2665422249821137126">Attiva il puntatore grande nella schermata di accesso</translation> <translation id="2672012807430078509">Controlla l'attivazione del protocollo di autenticazione NTLM per i montaggi SMB</translation> <translation id="2678503605767349615">Certificati client a livello di dispositivo richiesti</translation> @@ -1251,6 +1274,12 @@ Se attivi questa impostazione, in Anteprima di stampa viene usata la stampante predefinita del sistema operativo come destinazione predefinita.</translation> <translation id="285627849510728211">Imposta la configurazione giornaliera per la modalità di ricarica avanzata della batteria</translation> <translation id="2856674246949497058">Esegui il rollback e rimani nella versione target se la versione del sistema operativo è più recente di quella target. Esegui un powerwash durante la procedura.</translation> +<translation id="2869140260739354012">Consente di stabilire quali stampanti del criterio <ph name="DEVICE_PRINTERS_POLICY" /> sono disponibili agli utenti. + + Determina quale criterio di accesso utilizzare per la configurazione collettiva delle stampanti. Se viene selezionata l'opzione <ph name="PRINTERS_ALLOW_ALL" />, vengono mostrate tutte le stampanti. Se viene selezionata l'opzione <ph name="PRINTERS_BLACKLIST" />, viene utilizzato <ph name="DEVICE_NATIVE_PRINTERS_BLACKLIST" /> per limitare l'accesso a stampanti specifiche. Se viene selezionata l'opzione <ph name="PRINTERS_WHITELIST" />, <ph name="DEVICE_NATIVE_PRINTERS_WHITELIST" /> stabilisce soltanto le stampanti selezionabili. + + Se questo criterio non viene impostato, viene utilizzata l'opzione <ph name="PRINTERS_ALLOW_ALL" />. + </translation> <translation id="2869762730352628426">Attiva la funzione di clic automatico nella schermata di accesso</translation> <translation id="2872961005593481000">Spegni</translation> <translation id="2874209944580848064">Nota per i dispositivi <ph name="PRODUCT_OS_NAME" /> che supportano le app Android:</translation> @@ -1293,11 +1322,6 @@ Nota: questo criterio rimanda a un file XML nello stesso formato del criterio <ph name="IEEM_SITELIST_POLICY" /> di <ph name="IE_PRODUCT_NAME" />. Se viene impostato, le regole vengono caricate da un file XML senza essere condivise con <ph name="IE_PRODUCT_NAME" />. Leggi ulteriori informazioni sul criterio <ph name="IEEM_SITELIST_POLICY" /> di <ph name="IE_PRODUCT_NAME" /> (https://docs.microsoft.com/internet-explorer/ie11-deploy-guide/what-is-enterprise-mode)</translation> <translation id="2952347049958405264">Limitazioni:</translation> -<translation id="2956777931324644324">Questa norma è stata ritirata a partire dalla versione 36 di <ph name="PRODUCT_NAME" />. - - Consente di specificare se attivare o meno l'estensione di certificati associati al dominio TLS. - - Questa impostazione viene utilizzata per attivare l'estensione di certificati associati al dominio TLS per l'esecuzione di test. Questa impostazione sperimentale verrà rimossa in futuro.</translation> <translation id="2957047180944828740">Consente di specificare se consentire ai siti web non sicuri di effettuare richieste agli endpoint di rete con un livello di protezione più alto</translation> <translation id="2957506574938329824">Non consentire ad alcun sito di richiedere l'accesso ai dispositivi Bluetooth tramite l'API Web Bluetooth</translation> <translation id="2957513448235202597">Tipo di account per l'autenticazione <ph name="HTTP_NEGOTIATE" /></translation> @@ -1838,7 +1862,6 @@ Se questa norma non viene impostata, per impostazione predefinita la funzione non è consentita per gli utenti gestiti dall'azienda ed è consentita per gli utenti non gestiti.</translation> <translation id="3803171355925844705">Non consentire il caricamento di contenuti misti in nessun sito</translation> -<translation id="3805659594028420438">Attiva estensione di certificati associati al dominio TLS (obsoleta)</translation> <translation id="3808945828600697669">Specifica un elenco dei plug-in disattivati</translation> <translation id="3810642039169532482">Consente di attivare la funzione di accessibilità di dettatura nella schermata di accesso. @@ -1868,6 +1891,12 @@ <translation id="3838094946886335701">Se il criterio viene impostato (solo come consigliato), puoi registrare un elenco di gestori di protocolli che vengono uniti a quelli registrati dall'utente, con conseguente utilizzo di entrambi i gruppi. Imposta la proprietà "protocollo" sullo schema (ad esempio "mailto") e la proprietà "URL" sul pattern URL dell'applicazione che gestisce lo schema specificato nel campo "protocollo". Il pattern può includere un segnaposto "%s", che viene sostituito dall'URL gestito. Gli utenti non possono rimuovere un gestore di protocollo registrato tramite il criterio. Se però installano un nuovo gestore predefinito, possono cambiare i gestori di protocolli installati in base al criterio.</translation> +<translation id="3848118497246496090">Consente di specificare le stampanti non utilizzabili da un utente. + + Questo criterio viene utilizzato soltanto se l'opzione <ph name="PRINTERS_BLACKLIST" /> è selezionata per <ph name="DEVICE_NATIVE_PRINTERS_ACCESS_MODE" />. + + Se viene utilizzato questo criterio, l'utente avrà a disposizione tutte le stampanti tranne quelle i cui ID sono elencati in questo criterio. Gli ID devono corrispondere ai campi "id" o "guid" del file specificato nel criterio <ph name="DEVICE_PRINTERS_POLICY" />. + </translation> <translation id="3851039766298741586">Consente di segnalare informazioni sulla sessione kiosk attiva, ad esempio l'ID e la versione dell'applicazione. Se la norma viene impostata su false, le informazioni relative alla sessione kiosk non verranno segnalate. Se viene impostata su true o non viene impostata, tali informazioni verranno segnalate.</translation> @@ -2005,6 +2034,12 @@ <translation id="3965339130942650562">Timeout fino a esecuzione uscita utente non attivo</translation> <translation id="3973371701361892765">Non nascondere mai automaticamente lo shelf</translation> <translation id="3979738908158213640">URL a cui verrà concesso l'accesso per eseguire l'attestazione del dispositivo durante l'autenticazione SAML</translation> +<translation id="3980024487013511975">Consente di specificare le stampanti non utilizzabili da un utente. + + Questo criterio viene utilizzato soltanto se l'opzione <ph name="PRINTERS_BLOCKLIST" /> è selezionata per <ph name="DEVICE_PRINTERS_ACCESS_MODE_POLICY_NAME" />. + + Se viene utilizzato questo criterio, l'utente avrà a disposizione tutte le stampanti tranne quelle i cui ID sono elencati in questo criterio. Gli ID devono corrispondere ai campi "id" o "guid" del file specificato nel criterio <ph name="DEVICE_PRINTERS_POLICY_NAME" />. + </translation> <translation id="3984028218719007910">Consente di stabilire se tenere o meno memorizzati in <ph name="PRODUCT_OS_NAME" /> i dati degli account locali dopo l'uscita. Se la norma viene impostata su true, in <ph name="PRODUCT_OS_NAME" /> non verranno conservati gli account persistenti e tutti i dati della sessione utente verranno eliminati dopo l'uscita. Se la norma viene impostata su false o non viene configurata, il dispositivo potrebbe conservare i dati utente locali (criptati).</translation> <translation id="398884292557092447">Se il criterio viene impostato su true o se non viene configurato, gli utenti possono controllare i suggerimenti di compilazione automatica per le carte di credito nella UI. @@ -2212,6 +2247,12 @@ Se non viene configurato, i siti web possono richiedere l'accesso, ma gli utenti possono modificare l'impostazione.</translation> <translation id="4285674129118156176">Consenti agli utenti non affiliati di usare ARC</translation> +<translation id="4309562700894844665">Consente di specificare le stampanti utilizzabili da un utente. + + Questo criterio viene utilizzato soltanto se viene selezionata l'opzione <ph name="PRINTERS_WHITELIST" /> per <ph name="DEVICE_NATIVE_PRINTERS_ACCESS_MODE" />. + + Se viene utilizzato questo criterio, solo le stampanti con ID corrispondenti ai valori del criterio saranno disponibili per l'utente. Gli ID devono corrispondere ai campi "id" o "guid" del file specificato nel criterio <ph name="DEVICE_PRINTERS_POLICY" />. + </translation> <translation id="4311195029067684288">Full</translation> <translation id="4313767483634435271">Indirizzo MAC designato del dock del dispositivo</translation> <translation id="4322842393287974810">Consenti all'app kiosk avviata automaticamente senza ritardo di controllare la versione di <ph name="PRODUCT_OS_NAME" /></translation> @@ -2545,11 +2586,6 @@ Se il criterio non viene configurato, <ph name="PRODUCT_NAME" /> si connetterà ai dispositivi di trasmissione solo su indirizzi RFC1918/RFC4193, a meno che la funzionalità CastAllowAllIPs non sia attivata.</translation> <translation id="489803897780524242">Parametro di controllo sostituzione termini di ricerca per fornitore ricerca predefinito</translation> <translation id="4899708173828500852">Consenti Navigazione sicura</translation> -<translation id="4902163780937592202">Consente di unire i criteri relativi all'elenco di installazione delle estensioni <ph name="EXTENSION_INSTALL_BLOCKLIST_POLICY_NAME" />, <ph name="EXTENSION_INSTALL_ALLOWLIST_POLICY_NAME" /> e <ph name="EXTENSION_INSTALL_FORCELIST_POLICY_NAME" />. - - Se questa impostazione viene attivata, i valori dei criteri relativi alla piattaforma della macchina, al cloud della macchina e alla piattaforma dell'utente vengono uniti in un unico elenco e usati in toto invece di usare soltanto i valori della singola origine con la massima priorità. - - Se questa impostazione viene disattivata o se non viene configurata, vengono recuperate soltanto le voci dell'elenco dell'origine con la massima priorità e tutte le altre origini vengono mostrate come in conflitto, ma ignorate.</translation> <translation id="4906194810004762807">Frequenza di aggiornamento per norma dispositivo</translation> <translation id="4917385247580444890">Forte</translation> <translation id="4919122295221518724">Attiva trattamento più restrittivo per i contenuti misti</translation> @@ -2859,6 +2895,22 @@ Se il criterio viene impostato su "Forza accesso al browser", all'utente verrà mostrata una finestra di dialogo di selezione dell'account, da cui dovrà scegliere un account a cui accedere per usare il browser. Questa misura garantisce l'applicazione, nell'ambito degli account gestiti, dei criteri associati all'account. La funzione Sincronizzazione Chrome viene attivata per impostazione predefinita per l'account, ad eccezione del caso in cui la sincronizzazione sia stata disattivata dall'amministratore di dominio o tramite il criterio "SyncDisabled". Il valore predefinito del criterio BrowserGuestModeEnabled sarà falso. Tieni presente che i profili esistenti a cui non viene eseguito l'accesso saranno bloccati e inaccessibili dopo l'attivazione di questo criterio. Per ulteriori informazioni, leggi il seguente articolo del Centro assistenza: https://support.google.com/chrome/a/answer/7572556. Questa opzione non supporta Linux e Android e, se utilizzata in tali ambienti, imposterà "Attiva accesso al browser". Se questo criterio non è impostato, l'utente potrà decidere se attivare o meno l'opzione di accesso al browser e di usarla in base alle necessità.</translation> +<translation id="5327325901414715560">Consente di specificare le configurazioni delle stampanti aziendali associate ai dispositivi. + + Questo criterio consente di fornire configurazioni delle stampanti ai dispositivi <ph name="PRODUCT_OS_NAME" />. Il formato corrisponde a quello del dizionario NativePrinters, con un campo "id" o "guid" aggiuntivo obbligatorio per ciascuna stampante ai fini dell'autorizzazione o del blocco della stessa. + + La dimensione del file non deve superare 5 MB e deve essere codificata in JSON. È stato stimato che un file contenente circa 21.000 stampanti viene codificato come file di 5 MB. L'hash di crittografia viene utilizzato per verificare l'integrità del download. + + Il file viene scaricato e memorizzato nella cache. Verrà scaricato nuovamente ogni volta che l'URL o l'hash cambiano. + + Se il criterio è impostato, <ph name="PRODUCT_OS_NAME" /> scaricherà il file per le configurazioni delle stampanti e renderà disponibili le stampanti in base a <ph name="DEVICE_PRINTERS_ACCESS_MODE_POLICY_NAME" />, <ph name="DEVICE_PRINTERS_ALLOWLIST_POLICY_NAME" /> e <ph name="DEVICE_PRINTERS_BLOCKLIST_POLICY_NAME" />. + + Questo criterio non influisce sulla possibilità per gli utenti di configurare le stampanti su singoli dispositivi. È supplementare alla configurazione delle stampanti da parte dei singoli utenti. + + Si tratta di un criterio aggiuntivo rispetto al criterio <ph name="PRINTERS_BULK_CONFIGURATION_POLICY_NAME" />. + + Se il criterio non viene impostato, non ci saranno stampanti per i dispositivi e gli altri criteri <ph name="DEVICE_PRINTERS_POLICY_PATTERN" /> verranno ignorati. + </translation> <translation id="532848608876725157">Attiva DNS over HTTPS con fallback non sicuro</translation> <translation id="5329007337159326804">Attenzione: la norma Versione TLS massima verrà interamente rimossa da <ph name="PRODUCT_NAME" /> con la versione 75 (orientativamente giugno 2019). @@ -2996,7 +3048,6 @@ Se il criterio viene impostato su false, <ph name="PRODUCT_NAME" /> non può mostrare le informazioni sul prodotto come contenuti a scheda intera. La configurazione del criterio consente di controllare la presentazione delle pagine di benvenuto che aiutano gli utenti ad accedere a <ph name="PRODUCT_NAME" />, di impostare <ph name="PRODUCT_NAME" /> come browser predefinito degli utenti oppure di fornire informazioni sulle caratteristiche del prodotto.</translation> -<translation id="5447306928176905178">Attiva le informazioni relative ai rapporti sulla memoria (dimensioni heap JS) per la pagina (obsoleto)</translation> <translation id="5450893456912604446">Consente di configurare l'URL predefinito della home page di <ph name="PRODUCT_NAME" /> e di impedire agli utenti di modificarlo. La home page è la pagina che viene aperta facendo clic sul pulsante Home. Sui computer desktop, le pagine che si aprono all'avvio vengono stabilite dai criteri RestoreOnStartup. @@ -3420,6 +3471,12 @@ <ph name="PRODUCT_NAME" /> gestisce i contenuti della directory principale di un volume. Per prevenire la perdita di dati o altri errori, non impostare questo criterio nella directory principale né sulle directory utilizzate per altri scopi. Vedi le variabili che puoi utilizzare (https://www.chromium.org/administrators/policy-list-3/user-data-directory-variables).</translation> <translation id="6083631234867522991">Windows (client Windows):</translation> +<translation id="6086225644749063677">Consente di specificare le stampanti utilizzabili da un utente. + + Questo criterio viene utilizzato soltanto se viene selezionata l'opzione <ph name="PRINTERS_ALLOWLIST" /> per <ph name="DEVICE_PRINTERS_ACCESS_MODE_POLICY_NAME" />. + + Se viene utilizzato questo criterio, solo le stampanti con ID corrispondenti ai valori del criterio saranno disponibili per l'utente. Gli ID devono corrispondere ai campi "id" o "guid" del file specificato nel criterio <ph name="DEVICE_PRINTERS_POLICY_NAME" />. + </translation> <translation id="608788685013546076">Imposta un valore percentuale per il limite di consumo della batteria per la variazione dei picchi energetici</translation> <translation id="6089679180657323464">Consente di stabilire le impostazioni del controller DTC (Diagnostics and Telemetry Controller) wilco.</translation> <translation id="6091233616732024397">Obbliga gli utenti ad eseguire l'accesso per poter usare il browser</translation> @@ -3908,6 +3965,11 @@ Tieni presente che gli utenti potranno accedere ai servizi Google in uno stato non autenticato bloccando i loro cookie.</translation> <translation id="6843296367238757293">Questa norma è obsoleta. Ne sconsigliamo l'utilizzo. Leggi ulteriori informazioni all'indirizzo https://support.google.com/chrome/a/answer/7643500</translation> +<translation id="6846126863870444592">Questo criterio specifica le estensioni consentite per ignorare la finestra di dialogo di conferma del processo di stampa utilizzando la funzione<ph name="SUBMIT_JOB_FUNCTION" /> di <ph name="PRINTING_API" /> per l'invio di un processo di stampa. + + Se un'estensione non è presente nell'elenco o non è configurato alcun elenco, la finestra di dialogo di conferma del processo di stampa verrà visualizzata dall'utente per ogni chiamata funzione <ph name="SUBMIT_JOB_FUNCTION" />. + + Questo criterio è deprecato, al suo posto utilizza <ph name="PRINTING_API_EXTENSIONS_ALLOWLIST_POLICY_NAME" />.</translation> <translation id="684856667300805181">Questa norma è stata rimossa in <ph name="PRODUCT_NAME" /> 68 e sostituita da <ph name="ARC_GLS_POLICY_NAME" />.</translation> <translation id="6851199885688265233">Attiva la funzione di accessibilità di evidenziazione del cursore</translation> <translation id="6851315055469993882">Attiva cache di autenticazione HTTP con ambito globale</translation> @@ -3927,11 +3989,6 @@ Se questo criterio non viene configurato, per impostazione predefinita la funzionalità è consentita sia per gli utenti gestiti a livello aziendale sia per quelli non gestiti.</translation> <translation id="6864244339257535116">Consenti sia caricamenti sia download di file protetti da password</translation> -<translation id="687046793986382807">Questa norma è stata ritirata a partire dalla versione 35 di <ph name="PRODUCT_NAME" />. - - Le informazioni sulla memoria sono comunque riportate sulla pagina, indipendentemente dal valore opzione, ma le dimensioni segnalate presentano - restrizioni e la frequenza di aggiornamento è stata limitata per motivi di sicurezza. Per acquisire dati precisi in tempo reale, - utilizza strumenti come Telemetry.</translation> <translation id="68798513449385583">Ritarda download finché il risultato dell'analisi non viene reso noto</translation> <translation id="6889123056995503704">Gli utenti decidono il comportamento del downgrade del canale</translation> <translation id="6894178810167845842">URL della pagina Nuova scheda</translation> @@ -3964,6 +4021,13 @@ <translation id="6907778402784621686">Blocca contenuti non sicuri su questi siti</translation> <translation id="6908640907898649429">Configura il provider di ricerca predefinito. Puoi specificare il provider di ricerca predefinito che l'utente utilizzerà oppure scegliere di disattivare la ricerca predefinita.</translation> <translation id="6913068954484253496">Consenti a <ph name="PRODUCT_NAME" /> di connettersi ai dispositivi Cast su tutti gli indirizzi IP.</translation> +<translation id="6916817094593836501">Questo criterio impedisce la visualizzazione di avvisi di URL simili sui siti elencati. Questi avvisi sono solitamente mostrati sui siti in cui <ph name="PRODUCT_NAME" /> crede che sia in atto un tentativo di spoofing di un altro sito noto all'utente. + + Se il criterio non viene attivato e viene impostato su uno o più domini, non verrà visualizzata alcuna pagina di avviso di somiglianza quando l'utente visita le pagine di quel dominio. + + Se il criterio è disattivato, non impostato o impostato su un elenco vuoto, gli avvisi potrebbero essere visualizzati su qualunque sito visitato dall'utente. + + Un nome host può essere consentito nel caso di una completa corrispondenza del nome host o della corrispondenza con un qualsiasi dominio. Ad esempio, gli avvisi per un URL come "https://foo.example.com/bar" potrebbero essere eliminati se l'elenco include "foo.example.com" o "example.com".</translation> <translation id="6922884955650325312">Blocca il plug-in <ph name="FLASH_PLUGIN_NAME" /></translation> <translation id="6923731550900440989">Attiva l'evidenziazione del cursore del testo nella schermata di accesso</translation> <translation id="6924223708804692571">Forza la disattivazione delle lingue per correttore ortografico. Le lingue non riconosciute di quell'elenco verranno ignorate. @@ -4715,7 +4779,6 @@ <translation id="793134539373873765">Consente di specificare se p2p deve essere utilizzato per i payload di aggiornamento del sistema operativo. Se questa norma viene impostata su True, i dispositivi condivideranno e proveranno a consumare i payload di aggiornamento sulla LAN, riducendo potenzialmente l'utilizzo e la congestione della larghezza di banda Internet. Se il payload di aggiornamento non è disponibile sulla LAN, il dispositivo ripiegherà sul download da un server di aggiornamento. Se la norma viene impostata su False o non viene configurata, non verrà utilizzato p2p.</translation> <translation id="7933141401888114454">Attivazione della creazione di utenti controllati</translation> <translation id="793473937901685727">Imposta la disponibilità dei certificati per le app ARC</translation> -<translation id="7937491150792971922">Unisci norme di più fonti relative all'elenco di installazione delle estensioni</translation> <translation id="7937766917976512374">Consenti o nega acquisizione video</translation> <translation id="7941975817681987555">Non prevedere le azioni di rete su qualsiasi connessione di rete</translation> <translation id="7951605113561734721">Consente di specificare i certificati client a livello di dispositivo che dovrebbero essere registrati usando il protocollo di gestione del dispositivo.</translation> @@ -4736,6 +4799,9 @@ <translation id="7953256619080733119">Host delle eccezioni manuali per gli utenti gestiti</translation> <translation id="7956210013490975468">Configura il servizio proxy di sistema per <ph name="PRODUCT_OS_NAME" /></translation> <translation id="7958537754689366707">Richiedi inserimento della password ogni dodici ore</translation> +<translation id="7960293328203000385">Determina l'elenco di utenti autorizzati ad accedere al dispositivo. Le voci sono nel formato <ph name="USER_ALLOWLIST_ENTRY_FORMAT" />, ad esempio <ph name="USER_ALLOWLIST_ENTRY_EXAMPLE" />. Per autorizzare utenti arbitrari su un dominio, le voci devono essere nel formato <ph name="USER_ALLOWLIST_ENTRY_WILDCARD" />. + + Se questo criterio non viene configurato, non ci sono limitazioni in termini di utenti autorizzati ad accedere. Tieni presente che la creazione di nuovi utenti richiede comunque la corretta configurazione del criterio <ph name="DEVICE_ALLOW_NEW_USERS_POLICY_NAME" />.</translation> <translation id="7961779417826583251">Disattiva l'applicazione di Certificate Transparency per un elenco di autorità di certificazione precedenti</translation> <translation id="7973609468423251675">Tieni presente che questo criterio è obsoleto e verrà rimosso nella versione 85 di <ph name="PRODUCT_OS_NAME" />. Usa il criterio <ph name="POWER_MANAGEMENT_IDLE_SETTINGS_POLICY_NAME" />.
diff --git a/components/policy/resources/policy_templates_ja.xtb b/components/policy/resources/policy_templates_ja.xtb index 8806334..2888077 100644 --- a/components/policy/resources/policy_templates_ja.xtb +++ b/components/policy/resources/policy_templates_ja.xtb
@@ -373,6 +373,12 @@ <translation id="1561967320164410511">U2F と個人認証用拡張機能</translation> <translation id="1575015449587326319">OnFileDownloaded Chrome Enterprise コネクタの設定ポリシー</translation> <translation id="1583248206450240930">デフォルトで <ph name="PRODUCT_FRAME_NAME" /> を使用する</translation> +<translation id="1587671452159346389">ユーザーが <ph name="DEVICE_PRINTERS_POLICY_NAME" /> のどのプリンタを使用できるかを制御します。 + + このポリシーは、プリンタの一括設定で使用するアクセス ポリシーを指定するものです。<ph name="PRINTERS_ALLOW_ALL" /> を選択した場合、すべてのプリンタが表示されます。<ph name="PRINTERS_BLOCKLIST" /> を選択した場合、<ph name="DEVICE_PRINTERS_BLOCKLIST_POLICY_NAME" /> で指定されたプリンタへのアクセスが制限されます。<ph name="PRINTERS_ALLOWLIST" /> を選択した場合、<ph name="DEVICE_PRINTERS_ALLOWLIST_POLICY_NAME" /> で指定されたプリンタのみが選択可能になります。 + + このポリシーを設定しない場合、<ph name="PRINTERS_ALLOW_ALL" /> を選択した場合と同じ動作になります。 + </translation> <translation id="1588240398285670601">ブラウザの設定</translation> <translation id="1588456836529393506">このポリシーでは、特定のベンダー ID と製品 ID の USB デバイスへのアクセスを自動的に許可するサイトの URL パターンリストを指定できます。リストの各項目では、デバイスと URL を指定する必要があります。デバイスの項目では、ベンダー ID と製品 ID を指定できます。指定されていない ID はワイルドカードとして扱われますが、製品 ID だけを指定してベンダー ID を省くことはできません。製品 ID だけを指定した場合、ポリシーは無効になります。 @@ -1086,6 +1092,22 @@ このポリシーを無効に設定した場合、危険性のあるコマンドライン フラグ付きで Chrome が起動したときにセキュリティ警告は表示されません。 <ph name="MS_WIN_NAME" /> では、この機能は <ph name="MS_AD_NAME" /> ドメインに追加されたインスタンス、Windows 10 Pro で実行されているインスタンス、Chrome ブラウザ クラウド管理に登録されているインスタンスでのみ使用できます。<ph name="MAC_OS_NAME" /> では、この機能は MDM を介して管理されるか MCX を介してドメインに追加されたインスタンスでのみ使用できます。</translation> +<translation id="2621383458880689826">デバイスに接続された企業プリンタの設定を指定します。 + + このポリシーを使用すると、<ph name="PRODUCT_OS_NAME" /> デバイスのプリンタ設定を指定できます。フォーマットは NativePrinters ディクショナリと同じですが、ホワイトリストまたはブラックリストに登録するプリンタごとに「id」または「guid」フィールドを追加で指定する必要があります。 + + このファイルのサイズは 5 MB 以下で、JSON でエンコードされている必要があります。5 MB は、約 2,1000 台のプリンタを指定してエンコードしたファイルに相当します。ファイルが完全にダウンロードされたかどうかの確認には、暗号化ハッシュが使用されます。 + + ファイルはダウンロードされた後、キャッシュされます。URL またはハッシュに変更があった場合は再度ダウンロードされます。 + + このポリシーを設定した場合、<ph name="PRODUCT_OS_NAME" /> によってプリンタ設定ファイルがダウンロードされ、<ph name="DEVICE_NATIVE_PRINTERS_ACCESS_MODE" />、<ph name="DEVICE_NATIVE_PRINTERS_WHITELIST_POLICY_NAME" />、<ph name="DEVICE_NATIVE_PRINTERS_BLACKLIST_POLICY_NAME" /> に沿ってプリンタが利用可能になります。 + + このポリシーでは、ユーザーが各自のデバイスでプリンタを設定できるかどうかは制御されません。このポリシーは、個々のユーザーのプリンタ設定をサポートすることを目的としたものです。 + + これは <ph name="BULK_PRINTERS_POLICY_NAME" /> の追加ポリシーです。 + + このポリシーを設定しない場合、デバイス プリンタは存在しないことになり、他の <ph name="DEVICE_NATIVE_PRINTERS_POLICY_PATTERN" /> ポリシーは無視されます。 + </translation> <translation id="2623014935069176671">最初のユーザー操作を待機する</translation> <translation id="262740370354162807"><ph name="CLOUD_PRINT_NAME" /> へのドキュメントの送信を有効にします。</translation> <translation id="2632538643061793322">このポリシーでは、USB デバイスへのアクセス許可をユーザーに要求できるサイトの URL パターンリストを指定できます。 @@ -1113,6 +1135,7 @@ このポリシーが未設定の場合、デフォルトの設定は、管理対象ユーザーに対しては「許可しない」、管理対象外のユーザーに対しては「許可する」となります。</translation> <translation id="2660846099862559570">プロキシを使用しない</translation> +<translation id="2664682171745499686">偽ドメインの警告を表示しないドメインを指定する</translation> <translation id="2665422249821137126">ログイン画面で大きいカーソルを有効にする</translation> <translation id="2672012807430078509">SMB マウントの認証プロトコルとして NTLM を有効にするかどうかを設定する</translation> <translation id="2678503605767349615">必要なデバイス共通のクライアント証明書</translation> @@ -1253,6 +1276,12 @@ この設定を有効にした場合、印刷プレビューではデフォルトの出力先としてオペレーティング システムのデフォルト プリンタが使用されます。</translation> <translation id="285627849510728211">詳細なバッテリー充電モードの曜日の設定を行う</translation> <translation id="2856674246949497058">OS のバージョンが対象バージョンより新しい場合に、対象バージョンに戻してそのバージョンを維持します。このプロセスでは Powerwash が行われます。</translation> +<translation id="2869140260739354012">ユーザーが <ph name="DEVICE_PRINTERS_POLICY" /> のどのプリンタを使用できるかを制御します。 + + このポリシーは、プリンタの一括設定で使用するアクセス ポリシーを指定するものです。<ph name="PRINTERS_ALLOW_ALL" /> を選択した場合、すべてのプリンタが表示されます。<ph name="PRINTERS_BLACKLIST" /> を選択した場合、<ph name="DEVICE_NATIVE_PRINTERS_BLACKLIST" /> で指定されたプリンタへのアクセスが制限されます。<ph name="PRINTERS_WHITELIST" /> を選択した場合、<ph name="DEVICE_NATIVE_PRINTERS_WHITELIST" /> で指定されたプリンタのみが選択可能になります。 + + このポリシーを設定しない場合、<ph name="PRINTERS_ALLOW_ALL" /> を選択した場合と同じ動作になります。 + </translation> <translation id="2869762730352628426">ログイン画面で自動クリックを有効にする</translation> <translation id="2872961005593481000">終了</translation> <translation id="2874209944580848064">Android アプリをサポートする <ph name="PRODUCT_OS_NAME" /> デバイスに関する注意:</translation> @@ -1295,11 +1324,6 @@ 注: このポリシーは、<ph name="IE_PRODUCT_NAME" /> の <ph name="IEEM_SITELIST_POLICY" /> ポリシーと同じ形式の XML ファイルを指します。XML ファイルからルールを読み込みますが、それらのルールは <ph name="IE_PRODUCT_NAME" /> と共有されません。詳細については、<ph name="IE_PRODUCT_NAME" /> の <ph name="IEEM_SITELIST_POLICY" /> ポリシー(https://docs.microsoft.com/internet-explorer/ie11-deploy-guide/what-is-enterprise-mode)をご覧ください。</translation> <translation id="2952347049958405264">制限事項:</translation> -<translation id="2956777931324644324">このポリシーは <ph name="PRODUCT_NAME" /> バージョン 36 で廃止されました。 - - TLS ドメイン固定証明書の拡張機能を有効にするかどうかを指定します。 - - この設定は、テスト目的で TLS ドメイン固定証明書の拡張機能を有効にするために使用されます。この設定は試験運用的なものであり、今後削除される予定です。</translation> <translation id="2957047180944828740">より限定されたプライベート ネットワークのエンドポイントに対して、安全でないウェブサイトからのリクエスト実行を許可するかどうかを指定します</translation> <translation id="2957506574938329824">すべてのサイトに対して Web Bluetooth API による Bluetooth デバイスへのアクセスを許可しない</translation> <translation id="2957513448235202597">「<ph name="HTTP_NEGOTIATE" />」認証用のアカウントの種類</translation> @@ -1834,7 +1858,6 @@ このポリシーが未設定の場合、デフォルトの設定は、企業の管理対象ユーザーに対しては「許可しない」、管理対象外のユーザーに対しては「許可する」となります。</translation> <translation id="3803171355925844705">すべてのサイトに対して混合コンテンツの読み込みを許可しない</translation> -<translation id="3805659594028420438">TLS ドメイン固定証明書の拡張機能を有効にする(サポート終了)</translation> <translation id="3808945828600697669">無効なプラグインのリストを指定する</translation> <translation id="3810642039169532482">ログイン画面で音声入力ユーザー補助機能を有効にします。 @@ -1864,6 +1887,12 @@ <translation id="3838094946886335701">このポリシーを設定した場合(推奨)、プロトコル ハンドラのリストを登録できます。プロトコル ハンドラはユーザーが登録するプロトコル ハンドラと統合され、両方のセットが使用されます。protocol プロパティには「mailto」などのスキームを設定します。URL プロパティには、「protocol」フィールドで指定したスキームを処理するアプリケーションの URL パターンを設定します。このパターンに「%s」プレースホルダを含めて、処理された URL で置き換えることもできます。 ユーザーはポリシーで登録されたプロトコル ハンドラを削除することはできません。ただし、新しいデフォルトのハンドラをインストールすることにより、ポリシーでインストールされたプロトコル ハンドラを変更できます。</translation> +<translation id="3848118497246496090">ユーザーに使用を許可しないプリンタを指定します。 + + このポリシーは、<ph name="DEVICE_NATIVE_PRINTERS_ACCESS_MODE" /> の値に <ph name="PRINTERS_BLACKLIST" /> が選択されている場合にのみ使用されます。 + + このポリシーが使用される場合、ユーザーはこのポリシーで指定されている ID 以外のすべてのプリンタを使用できます。この ID は、<ph name="DEVICE_PRINTERS_POLICY" /> で指定されたファイル内の「id」または「guid」フィールドに対応している必要があります。 + </translation> <translation id="3851039766298741586">アクティブなキオスク セッションに関する情報(アプリケーション ID、 バージョンなど)を報告します。 @@ -2003,6 +2032,12 @@ <translation id="3965339130942650562">アイドル状態のユーザーがログアウトされるまでのタイムアウト</translation> <translation id="3973371701361892765">シェルフを自動的に非表示にしない</translation> <translation id="3979738908158213640">SAML 認証中にデバイス認証のためのアクセスが許可される URL</translation> +<translation id="3980024487013511975">ユーザーに使用を許可しないプリンタを指定します。 + + このポリシーは、<ph name="DEVICE_PRINTERS_ACCESS_MODE_POLICY_NAME" /> の値に <ph name="PRINTERS_BLOCKLIST" /> が選択されている場合にのみ使用されます。 + + このポリシーが使用される場合、ユーザーはこのポリシーで指定されている ID 以外のすべてのプリンタを使用できます。この ID は、<ph name="DEVICE_PRINTERS_POLICY_NAME" /> で指定されたファイル内の「id」または「guid」フィールドに対応している必要があります。 + </translation> <translation id="3984028218719007910">ログアウト後に <ph name="PRODUCT_OS_NAME" /> がローカル アカウントのデータを保持するかどうかを指定します。true に設定した場合、<ph name="PRODUCT_OS_NAME" /> は永続的アカウントを保持していないため、ユーザー セッションのすべてのデータがログアウト後に破棄されます。このポリシーを false に設定した場合または未設定の場合、デバイスは(暗号化された)ローカル ユーザー データを保持できます。</translation> <translation id="398884292557092447">このポリシーを True に設定するか未設定のままにした場合、ユーザーは UI でクレジット カードの自動入力候補を管理できます。 @@ -2210,6 +2245,12 @@ このポリシーを未設定のままにした場合、ウェブサイトによるアクセス要求は許可されますが、ユーザーはこの設定を変更できます。</translation> <translation id="4285674129118156176">外部のユーザーに ARC の使用を許可する</translation> +<translation id="4309562700894844665">ユーザーに使用を許可するプリンタを指定します。 + + このポリシーは、<ph name="DEVICE_NATIVE_PRINTERS_ACCESS_MODE" /> の値に <ph name="PRINTERS_WHITELIST" /> が選択されている場合にのみ使用されます。 + + このポリシーが使用される場合、ユーザーはこのポリシーで指定されている値に ID が一致するプリンタのみを使用できます。この ID は、<ph name="DEVICE_PRINTERS_POLICY" /> で指定されたファイル内の「id」または「guid」フィールドに対応している必要があります。 + </translation> <translation id="4311195029067684288">フル</translation> <translation id="4313767483634435271">デバイスで指定されたホルダーの MAC アドレス</translation> <translation id="4322842393287974810">遅延なしで自動開始されるキオスクアプリから <ph name="PRODUCT_OS_NAME" /> のバージョンを制御できるようにする</translation> @@ -2537,11 +2578,6 @@ このポリシーを未設定のままにした場合は、CastAllowAllIPs 機能がオンになっていなければ、RFC1918 と RFC4193 のキャスト デバイスにのみ <ph name="PRODUCT_NAME" /> を接続します。</translation> <translation id="489803897780524242">デフォルトの検索プロバイダに対する検索キーワードの置き換えを指定するパラメータ</translation> <translation id="4899708173828500852">セーフ ブラウジングを有効にする</translation> -<translation id="4902163780937592202">拡張機能インストール リスト ポリシー <ph name="EXTENSION_INSTALL_BLOCKLIST_POLICY_NAME" />、<ph name="EXTENSION_INSTALL_ALLOWLIST_POLICY_NAME" />、<ph name="EXTENSION_INSTALL_FORCELIST_POLICY_NAME" /> を統合できるようにします。 - - この設定を有効にした場合は、マシン プラットフォーム ポリシー、マシン クラウド ポリシー、ユーザー プラットフォーム ポリシーの値が 1 つのリストに統合されます。優先度の最も高いソースを 1 つ選んでその値を使用する代わりに、統合されたリストがひとまとまりに使用されるようになります。 - - この設定を無効にするか未設定のままにした場合は、優先度の最も高いソースのリストエントリのみが使用されます。その他すべてのソースは競合するものとして表示されますが、無視されます。</translation> <translation id="4906194810004762807">デバイスポリシーの更新間隔</translation> <translation id="4917385247580444890">強い</translation> <translation id="4919122295221518724">混合コンテンツの厳密な取り扱いを有効にする</translation> @@ -2840,6 +2876,22 @@ このポリシーが「ブラウザのログインを必須とする」に設定されている場合、ユーザーにはアカウント選択のダイアログが表示されます。ブラウザを使用するには、いずれかのアカウントを選択してログインする必要があります。管理対象アカウントの場合、この設定を使用することで、アカウントに関連付けられているポリシーの適用を徹底できます。対象のアカウントでは Chrome 同期もデフォルトでオンになります(ドメインの管理者または「SyncDisabled」ポリシーによって同期が無効に設定されている場合を除く)。また、BrowserGuestModeEnabled のデフォルト値は false になります。このポリシーを有効にした後、ログインしていない既存のプロフィールはロックされ、アクセスできなくなります。詳しくはヘルプセンター記事(https://support.google.com/chrome/a/answer/7572556)をご覧ください。このオプションは Linux と Android には対応していません。Linux または Android でこのオプションを使用した場合は、「ブラウザのログインを有効にする」の設定に置き換えられます。 このポリシーが未設定の場合、ユーザーはブラウザのログイン オプションを有効にするかどうかを自分で判断し、状況に応じて使用することができます。</translation> +<translation id="5327325901414715560">デバイスに接続された企業プリンタの設定を指定します。 + + このポリシーを使用すると、<ph name="PRODUCT_OS_NAME" /> デバイスのプリンタ設定を指定できます。フォーマットは NativePrinters ディクショナリと同じですが、ホワイトリストまたはブラックリストに登録するプリンタごとに「id」または「guid」フィールドを追加で指定する必要があります。 + + このファイルのサイズは 5 MB 以下で、JSON でエンコードされている必要があります。5 MB は、約 2,1000 台のプリンタを指定してエンコードしたファイルに相当します。ファイルが完全にダウンロードされたかどうかの確認には、暗号化ハッシュが使用されます。 + + ファイルはダウンロードされた後、キャッシュされます。URL またはハッシュに変更があった場合は再度ダウンロードされます。 + + このポリシーを設定した場合、<ph name="PRODUCT_OS_NAME" /> によってプリンタ設定ファイルがダウンロードされ、<ph name="DEVICE_PRINTERS_ACCESS_MODE_POLICY_NAME" />、<ph name="DEVICE_PRINTERS_ALLOWLIST_POLICY_NAME" />、<ph name="DEVICE_PRINTERS_BLOCKLIST_POLICY_NAME" /> に沿ってプリンタが利用可能になります。 + + このポリシーでは、ユーザーが各自のデバイスでプリンタを設定できるかどうかは制御されません。このポリシーは、個々のユーザーのプリンタ設定をサポートすることを目的としたものです。 + + これは <ph name="PRINTERS_BULK_CONFIGURATION_POLICY_NAME" /> の追加ポリシーです。 + + このポリシーを設定しない場合、デバイス プリンタは存在しないことになり、他の <ph name="DEVICE_PRINTERS_POLICY_PATTERN" /> ポリシーは無視されます。 + </translation> <translation id="532848608876725157">DNS-over-HTTPS を有効にする(安全でないフォールバックあり)</translation> <translation id="5329007337159326804">警告: TLS の最大バージョン ポリシーは <ph name="PRODUCT_NAME" /> のバージョン 75 前後で完全に削除されます(2019 年 6 月頃)。 @@ -2976,7 +3028,6 @@ このポリシーを False に設定した場合、<ph name="PRODUCT_NAME" /> のタブ全体にサービス情報は表示されません。 このポリシーを設定した場合、「ようこそ」ページを表示するかどうかを制御できます。「ようこそ」ページでは、ユーザーは <ph name="PRODUCT_NAME" /> にログインしたり、<ph name="PRODUCT_NAME" /> をデフォルトのブラウザとして設定したりできます。また、サービスの機能に関する情報を表示することもできます。</translation> -<translation id="5447306928176905178">メモリ情報(JavaScript のヒープ サイズ)がページに報告されるようにする(サポート終了)</translation> <translation id="5450893456912604446"><ph name="PRODUCT_NAME" /> にデフォルトのホームページの URL を設定するとともに、ユーザーがこの設定を変更できないようにします。 ホームページとはホームボタンで開くページです。パソコンの場合、起動時に開くページは RestoreOnStartup ポリシーで制御します。 @@ -3398,6 +3449,12 @@ <ph name="PRODUCT_NAME" /> では、ボリュームのルート ディレクトリのコンテンツが管理されます。したがって、データの消失やその他のエラーを避けるため、ルート ディレクトリや他の用途で使用されてるディレクトリは指定しないでください。使用できる変数については、https://www.chromium.org/administrators/policy-list-3/user-data-directory-variables をご覧ください。</translation> <translation id="6083631234867522991">Windows(Windows クライアント):</translation> +<translation id="6086225644749063677">ユーザーに使用を許可するプリンタを指定します。 + + このポリシーは、<ph name="DEVICE_PRINTERS_ACCESS_MODE_POLICY_NAME" /> の値に <ph name="PRINTERS_ALLOWLIST" /> が選択されている場合にのみ使用されます。 + + このポリシーが使用される場合、ユーザーはこのポリシーで指定されている値に ID が一致するプリンタのみを使用できます。この ID は、<ph name="DEVICE_PRINTERS_POLICY_NAME" /> で指定されたファイル内の「id」または「guid」フィールドに対応している必要があります。 + </translation> <translation id="608788685013546076">電力ピークシフトのバッテリーのしきい値をパーセントで設定する</translation> <translation id="6089679180657323464">Wilco の診断およびテレメトリー用コントローラの設定を制御します。</translation> <translation id="6091233616732024397">ブラウザを使用するにはログインを必須とする</translation> @@ -3871,6 +3928,11 @@ なお、ユーザーは Cookie をブロックすることで、承認されていない状態でも Google のサービスにアクセスできます。</translation> <translation id="6843296367238757293">このポリシーはサポートを終了しているため、使用しないことをおすすめします。詳しくは、https://support.google.com/chrome/a/answer/7643500 をご覧ください。</translation> +<translation id="6846126863870444592">このポリシーでは、<ph name="PRINTING_API" /> の <ph name="SUBMIT_JOB_FUNCTION" /> 関数を使って印刷ジョブを送信する際に、印刷ジョブの確認ダイアログをスキップできる拡張機能を指定します。 + + このポリシーで拡張機能を指定しない場合、またはこのポリシー自体を設定しない場合、<ph name="SUBMIT_JOB_FUNCTION" /> 関数の呼び出し時には必ず印刷ジョブの確認ダイアログが表示されます。 + + このポリシーはサポートが終了しています。代わりに <ph name="PRINTING_API_EXTENSIONS_ALLOWLIST_POLICY_NAME" /> を使用してください。</translation> <translation id="684856667300805181">このポリシーは <ph name="PRODUCT_NAME" /> 68 で削除され、<ph name="ARC_GLS_POLICY_NAME" /> に置き換えられました。</translation> <translation id="6851199885688265233">「カーソルによるハイライト表示」のユーザー補助機能を有効にする</translation> <translation id="6851315055469993882">グローバルなスコープでの HTTP 認証キャッシュを有効にする</translation> @@ -3890,11 +3952,6 @@ このポリシーを未設定のままにした場合、デフォルトでは、企業で管理されているユーザーと管理されていないユーザーのいずれもニアバイシェアを有効にできます。</translation> <translation id="6864244339257535116">パスワードで保護されているファイルのアップロードとダウンロードを許可する</translation> -<translation id="687046793986382807">このポリシーは <ph name="PRODUCT_NAME" /> バージョン 35 で廃止されました。 - - オプションの値に関係なく、メモリ情報はページに報告されますが、報告されるサイズは近似値となり、 - セキュリティ上の理由から更新頻度は制限されます。リアルタイムで正確なデータを得るには、 - Telemetry などのツールをご利用ください。</translation> <translation id="68798513449385583">スキャンの結果がわかるまでダウンロードを遅らせる</translation> <translation id="6889123056995503704">ユーザーがチャンネル ダウングレードの動作を決定する</translation> <translation id="6894178810167845842">新しいタブページ URL</translation> @@ -3925,6 +3982,13 @@ <translation id="6907778402784621686">指定サイトで安全でないコンテンツをブロックする</translation> <translation id="6908640907898649429">デフォルトの検索プロバイダを設定します。ユーザーが使用するデフォルトの検索プロバイダを指定するか、既定の検索を無効にすることができます。</translation> <translation id="6913068954484253496">すべての IP アドレスのキャスト デバイスに接続することを <ph name="PRODUCT_NAME" /> に許可する</translation> +<translation id="6916817094593836501">このポリシーでは、偽 URL の警告を表示しないサイトを指定できます。通常、偽 URL の警告は、ユーザーがよく使用しているサイトになりすましていると <ph name="PRODUCT_NAME" /> で判断したサイトに対して表示されます。 + + このポリシーを有効にして、ドメインを 1 つ以上指定した場合、ユーザーがそのドメインのページにアクセスしても、偽 URL の警告ページは表示されません。 + + こポリシーを無効にした場合や未設定のままにした場合、または空白のリストを指定した場合、ユーザーがアクセスする任意のサイトに対して警告が表示されます。 + + 警告は、指定したドメインと完全に一致する、または一部が一致するホストについて表示されなくなります。たとえば、リストに「foo.example.com」または「example.com」と指定した場合、「https://foo.example.com/bar」の URL について警告は表示されません。</translation> <translation id="6922884955650325312"><ph name="FLASH_PLUGIN_NAME" /> プラグインをブロックする</translation> <translation id="6923731550900440989">ログイン画面でテキストカーソルによるハイライト表示を有効にする</translation> <translation id="6924223708804692571">言語のスペルチェックを自動的に無効にします。指定した言語のうち認識されないものは無視されます。 @@ -4663,7 +4727,6 @@ <translation id="793134539373873765">p2p を OS 更新ペイロードに使用するかどうかを指定します。True に設定すると、デバイスは LAN 上で更新ペイロードを共有し、使用しようとするため、インターネット帯域幅の使用と混雑が削減される可能性があります。更新ペイロードが LAN 上で使用できない場合、デバイスは更新サーバーからのダウンロードにフォールバックします。False に設定するか、何も設定しない場合、p2p は使用されません。</translation> <translation id="7933141401888114454">監視対象ユーザーを作成できるようにする</translation> <translation id="793473937901685727">ARC アプリで証明書を使用できるかどうかを設定します</translation> -<translation id="7937491150792971922">複数のソースの拡張機能インストール リスト ポリシーを統合する</translation> <translation id="7937766917976512374">動画キャプチャを許可または拒否する</translation> <translation id="7941975817681987555">ネットワーク接続でネットワーク動作を予測しない</translation> <translation id="7951605113561734721">デバイス管理プロトコルを使用した登録が必要なデバイス共通のクライアント証明書を指定します。</translation> @@ -4684,6 +4747,9 @@ <translation id="7953256619080733119">管理対象ユーザーの手動による例外管理 - ホスト</translation> <translation id="7956210013490975468"><ph name="PRODUCT_OS_NAME" /> のシステム プロキシ サービスを設定します。</translation> <translation id="7958537754689366707">12 時間ごとにパスワードの入力を求める</translation> +<translation id="7960293328203000385">デバイスへのログインを許可するユーザーのリストを定義します。リストの項目は <ph name="USER_ALLOWLIST_ENTRY_FORMAT" />(例: <ph name="USER_ALLOWLIST_ENTRY_EXAMPLE" />)の形式で指定します。ドメイン上の任意のユーザーを許可するには、<ph name="USER_ALLOWLIST_ENTRY_WILDCARD" /> の形式で指定します。 + + このポリシーを設定しない場合は、すべてのユーザーのログインが許可されます。ただし、新しいユーザーを作成するには、<ph name="DEVICE_ALLOW_NEW_USERS_POLICY_NAME" /> ポリシーを適切に設定する必要があります。</translation> <translation id="7961779417826583251">リストで指定されたレガシー認証局に対して Certificate Transparency(証明書の透明性)の適用を無効にする</translation> <translation id="7973609468423251675">このポリシーはサポートが終了しており、<ph name="PRODUCT_OS_NAME" /> バージョン 85 で削除されます。代わりに <ph name="POWER_MANAGEMENT_IDLE_SETTINGS_POLICY_NAME" /> を使用してください。
diff --git a/components/policy/resources/policy_templates_ko.xtb b/components/policy/resources/policy_templates_ko.xtb index 2ca264c..ba0359b 100644 --- a/components/policy/resources/policy_templates_ko.xtb +++ b/components/policy/resources/policy_templates_ko.xtb
@@ -375,6 +375,12 @@ <translation id="1561967320164410511">개별 인증을 위한 U2F 및 확장 프로그램</translation> <translation id="1575015449587326319">OnFileDownloaded Chrome Enterprise Connector 설정 정책</translation> <translation id="1583248206450240930">기본으로 <ph name="PRODUCT_FRAME_NAME" /> 사용</translation> +<translation id="1587671452159346389"><ph name="DEVICE_PRINTERS_POLICY_NAME" /> 정책의 프린터 중 어떤 프린터가 사용자에게 제공될지 관리합니다. + + 일괄 프린터 설정에 사용할 액세스 정책을 지정합니다. <ph name="PRINTERS_ALLOW_ALL" />을 선택하면 모든 프린터가 표시됩니다. <ph name="PRINTERS_BLOCKLIST" />을 선택하면 <ph name="DEVICE_PRINTERS_BLOCKLIST_POLICY_NAME" />를 사용해 지정된 프린터 액세스를 제한합니다. <ph name="PRINTERS_ALLOWLIST" />를 선택하면 <ph name="DEVICE_PRINTERS_ALLOWLIST_POLICY_NAME" />가 선택 가능한 프린터만 지정합니다. + + 정책을 설정하지 않으면 <ph name="PRINTERS_ALLOW_ALL" />이 기본적으로 사용됩니다. + </translation> <translation id="1588240398285670601">브라우저 설정</translation> <translation id="1588456836529393506">정책을 설정하면 주어진 공급업체 및 제품 ID로 USB 기기에 대한 액세스 권한을 자동으로 받는 사이트를 지정하는 URL 패턴 목록을 작성할 수 있습니다. 정책이 유효하려면 각 목록 항목에 기기와 URL이 있어야 합니다. 기기의 각 항목에는 공급업체 ID 및 제품 ID 입력란이 포함될 수 있습니다. 공급업체 ID를 지정하지 않으면 제품 ID도 지정할 수 없다는 하나의 예외 사항을 제외하면 생략한 모든 ID는 와일드 카드로 취급됩니다. 이를 따르지 않으면 정책이 유효하지 않습니다. @@ -1104,6 +1110,22 @@ 사용 안함으로 설정하면 잠재적으로 위험한 명령줄 플래그와 함께 Chrome이 실행되었을 때 보안 경고가 표시되지 않습니다. <ph name="MS_WIN_NAME" />의 경우 이 기능은 <ph name="MS_AD_NAME" /> 도메인에 연결된 인스턴스, Windows 10 Pro에서 실행되는 인스턴스, Chrome 브라우저 클라우드 관리에 등록된 인스턴스에서만 사용할 수 있습니다. <ph name="MAC_OS_NAME" />의 경우 이 기능은 MDM을 통해 관리되는 인스턴스 또는 MCX를 통해 도메인에 연결된 인스턴스에서만 사용할 수 있습니다.</translation> +<translation id="2621383458880689826">기기에 연결된 회사 프린터의 설정을 제공합니다. + + 이 정책을 사용하면 <ph name="PRODUCT_OS_NAME" /> 기기에 프린터 설정을 제공할 수 있습니다. 형식은 NativePrinters 사전과 동일하며, 허용 목록 또는 차단 목록을 사용하려면 프린터마다 'id' 또는 'guid' 필드가 추가로 필요합니다. + + 파일 크기는 5MB를 초과할 수 없으며 JSON으로 인코딩되어야 합니다. 5MB는 약 21,000대의 프린터가 포함된 파일을 인코딩했을 때 예상할 수 있는 크기입니다. 암호화 해시는 다운로드 파일의 무결성을 확인하는 데 사용됩니다. + + 파일이 다운로드 및 캐시되며 URL이나 해시가 변경될 때마다 다시 다운로드됩니다. + + 정책을 설정하면 <ph name="PRODUCT_OS_NAME" />에서 프린터 설정 파일을 다운로드하고 <ph name="DEVICE_NATIVE_PRINTERS_ACCESS_MODE" />, <ph name="DEVICE_NATIVE_PRINTERS_WHITELIST_POLICY_NAME" />, <ph name="DEVICE_NATIVE_PRINTERS_BLACKLIST_POLICY_NAME" />에 따라 프린터를 사용할 수 있게 됩니다. + + 이 정책은 사용자가 개별 기기에서 프린터를 설정할 수 있는지에 영향을 미치지 않으며, 개별 사용자의 프린터 설정을 보완하기 위한 것입니다. + + 이 정책은 <ph name="BULK_PRINTERS_POLICY_NAME" />에 추가되는 정책입니다. + + 정책을 설정하지 않으면 기기 프린터가 사용되지 않으며 다른 <ph name="DEVICE_NATIVE_PRINTERS_POLICY_PATTERN" /> 정책이 무시됩니다. + </translation> <translation id="2623014935069176671">첫 번째 사용자 활동 기다리기</translation> <translation id="262740370354162807"><ph name="CLOUD_PRINT_NAME" />(으)로 문서 제출 사용</translation> <translation id="2632538643061793322">정책을 설정하면 사용자에게 USB 기기 액세스를 요청할 수 있는 사이트를 지정하는 URL 패턴 목록을 만들 수 있습니다. @@ -1130,6 +1152,7 @@ 이 정책을 설정하지 않고 그대로 두면 기본적으로 관리되는 사용자에게는 허용되지 않고 관리되지 않는 사용자에게는 허용됩니다.</translation> <translation id="2660846099862559570">프록시 사용하지 않음</translation> +<translation id="2664682171745499686">도메인에 유사한 도메인 경고 숨기기</translation> <translation id="2665422249821137126">로그인 화면에서 큰 커서 사용</translation> <translation id="2672012807430078509">SMB 마운트용 인증 프로토콜로 NTLM을 사용할지 여부를 제어합니다.</translation> <translation id="2678503605767349615">기기 수준 필수 클라이언트 인증서</translation> @@ -1269,6 +1292,12 @@ 이 설정을 사용하면 인쇄 미리보기에서 OS 시스템 기본 프린터를 기본 선택으로 사용합니다.</translation> <translation id="285627849510728211">고급 배터리 충전 모드 주간 구성 설정</translation> <translation id="2856674246949497058">OS 버전이 대상 버전보다 높은 경우 대상 버전으로 롤백하고 버전을 유지합니다. 이 과정 중에 파워워시를 실행합니다.</translation> +<translation id="2869140260739354012"><ph name="DEVICE_PRINTERS_POLICY" /> 정책의 프린터 중 어떤 프린터가 사용자에게 제공될지 관리합니다. + + 일괄 프린터 설정에 사용할 액세스 정책을 지정합니다. <ph name="PRINTERS_ALLOW_ALL" />을 선택하면 모든 프린터가 표시됩니다. <ph name="PRINTERS_BLACKLIST" />을 선택하면 <ph name="DEVICE_NATIVE_PRINTERS_BLACKLIST" />를 사용해 지정된 프린터 액세스를 제한합니다. <ph name="PRINTERS_WHITELIST" />를 선택하면 <ph name="DEVICE_NATIVE_PRINTERS_WHITELIST" />가 선택 가능한 프린터만 지정합니다. + + 정책을 설정하지 않으면 <ph name="PRINTERS_ALLOW_ALL" />이 기본적으로 사용됩니다. + </translation> <translation id="2869762730352628426">로그인 화면에서 자동 클릭 사용</translation> <translation id="2872961005593481000">종료</translation> <translation id="2874209944580848064">Android 앱을 지원하는 <ph name="PRODUCT_OS_NAME" /> 기기 관련 주의사항:</translation> @@ -1311,11 +1340,6 @@ 참고: 이 정책은 <ph name="IE_PRODUCT_NAME" />의 <ph name="IEEM_SITELIST_POLICY" /> 정책과 동일한 형식의 XML 파일로 연결됩니다. 정책은 XML 파일에서 규칙을 로드하지만 이를 <ph name="IE_PRODUCT_NAME" />와 공유하지는 않습니다. <ph name="IE_PRODUCT_NAME" />의 <ph name="IEEM_SITELIST_POLICY" /> 정책(https://docs.microsoft.com/internet-explorer/ie11-deploy-guide/what-is-enterprise-mode)을 자세히 살펴보세요.</translation> <translation id="2952347049958405264">제한사항:</translation> -<translation id="2956777931324644324">이 정책은 <ph name="PRODUCT_NAME" /> 버전 36을 기준으로 지원 중단되었습니다. - - TLS 도메인 바인딩 인증서 확장 프로그램 사용 설정 여부를 지정합니다. - - 이 설정은 TLS 도메인 바인딩 인증서를 테스트용으로 설정하는 데 사용됩니다. 이 실험적 설정은 향후 삭제됩니다.</translation> <translation id="2957047180944828740">안전하지 않은 웹사이트가 비공개 네트워크 엔드포인트에 요청할 수 있도록 허용할지 지정</translation> <translation id="2957506574938329824">어떤 사이트든지 Web Bluetooth API를 통해 블루투스 기기에 대한 액세스를 요청하도록 허용하지 않습니다.</translation> <translation id="2957513448235202597"><ph name="HTTP_NEGOTIATE" /> 인증의 계정 유형</translation> @@ -1853,7 +1877,6 @@ 이 정책이 설정되지 않으면 기본적으로 엔터프라이즈 관리 사용자의 경우 사용 중지되고 관리되지 않는 사용자의 경우 사용 설정됩니다.</translation> <translation id="3803171355925844705">모든 사이트에서 혼합 콘텐츠 로드 허용 안함</translation> -<translation id="3805659594028420438">TLS 도메인 바인딩 인증서 확장 프로그램 사용(지원 중단됨)</translation> <translation id="3808945828600697669">사용 중지된 플러그인 목록 지정</translation> <translation id="3810642039169532482">로그인 화면에서 음성기록 접근성 기능을 사용합니다. @@ -1883,6 +1906,12 @@ <translation id="3838094946886335701">정책을 설정하면(권장되는 방식으로만) 프로토콜 핸들러 목록을 등록할 수 있으며, 여기에는 사용자가 등록한 핸들러가 병합되므로 두 핸들러가 모두 사용됩니다. '프로토콜' 속성을 'mailto'와 같은 스키마로, 'URL' 속성을 '프로토콜' 필드에 지정된 스키마를 처리하는 애플리케이션의 URL 패턴으로 설정합니다. 패턴에는 '%s' 자리표시자가 포함될 수 있으며, 이 부분은 처리된 URL로 교체됩니다. 사용자는 정책에 의해 등록된 프로토콜 핸들러를 삭제할 수 없습니다. 그러나 새 기본 핸들러를 설치하여 정책에 따라 설치된 프로토콜 핸들러를 변경할 수는 있습니다.</translation> +<translation id="3848118497246496090">사용자가 사용할 수 없는 프린터를 지정합니다. + + 이 정책은 <ph name="PRINTERS_BLACKLIST" />이 <ph name="DEVICE_NATIVE_PRINTERS_ACCESS_MODE" />로 선택된 경우에만 사용됩니다. + + 정책을 사용하면 ID가 이 정책에 명시된 프린터를 제외한 모든 프린터가 사용자에게 제공됩니다. ID는 <ph name="DEVICE_PRINTERS_POLICY" />에 지정된 파일 내 'id' 또는 'guid' 필드와 일치해야 합니다. + </translation> <translation id="3851039766298741586">활성 키오스크 세션에 대한 정보 (예: 애플리케이션 ID 및 버전)를 보고합니다. @@ -2023,6 +2052,12 @@ <translation id="3965339130942650562">유휴 상태인 사용자의 로그아웃이 실행되기까지 시간 제한</translation> <translation id="3973371701361892765">실행기를 자동으로 숨기지 않음</translation> <translation id="3979738908158213640">SAML 인증을 하는 동안 기기 증명을 실행할 권한이 부여되는 URL입니다.</translation> +<translation id="3980024487013511975">사용자가 사용할 수 없는 프린터를 지정합니다. + + 이 정책은 <ph name="PRINTERS_BLOCKLIST" />이 <ph name="DEVICE_PRINTERS_ACCESS_MODE_POLICY_NAME" />로 선택된 경우에만 사용됩니다. + + 정책을 사용하면 ID가 이 정책에 명시된 프린터를 제외한 모든 프린터가 사용자에게 제공됩니다. ID는 <ph name="DEVICE_PRINTERS_POLICY_NAME" />에 지정된 파일 내 'id' 또는 'guid' 필드와 일치해야 합니다. + </translation> <translation id="3984028218719007910"><ph name="PRODUCT_OS_NAME" />이(가) 로그아웃 뒤에 로컬 계정 데이터를 유지할 지를 결정합니다. true로 설정하면, <ph name="PRODUCT_OS_NAME" />이(가) 유지하는 영구 계정이 없으며 사용자 세션의 모든 데이터가 로그아웃 뒤에 삭제됩니다. 이 정책이 false로 설정되거나 구성되지 않으면 기기는 암호화된 로컬 사용자 데이터를 유지합니다.</translation> <translation id="398884292557092447">정책을 True로 설정하거나 설정하지 않으면 사용자가 UI에서 신용카드의 자동 완성 추천을 제어할 수 있습니다. @@ -2230,6 +2265,12 @@ 정책을 설정하지 않으면 웹사이트에서 액세스 권한을 요청할 수 있지만, 사용자가 이 설정을 변경할 수 있습니다.</translation> <translation id="4285674129118156176">제휴되지 않은 사용자가 ARC를 사용할 수 있게 허용</translation> +<translation id="4309562700894844665">사용자가 사용할 수 있는 프린터를 지정합니다. + + 이 정책은 <ph name="PRINTERS_WHITELIST" />가 <ph name="DEVICE_NATIVE_PRINTERS_ACCESS_MODE" />로 선택된 경우에만 사용됩니다. + + 정책을 사용하면 ID가 이 정책에 있는 값과 일치하는 프린터만 사용자에게 제공됩니다. ID는 <ph name="DEVICE_PRINTERS_POLICY" />에 지정된 파일 내 'id' 또는 'guid' 필드와 일치해야 합니다. + </translation> <translation id="4311195029067684288">Full</translation> <translation id="4313767483634435271">기기에서 지정된 도크 MAC 주소</translation> <translation id="4322842393287974810">지연 없이 자동 실행된 키오스크 앱에서 <ph name="PRODUCT_OS_NAME" /> 버전을 제어하도록 허용합니다.</translation> @@ -2570,11 +2611,6 @@ 정책을 설정하지 않으면 CastAllowAllIPs 기능이 사용 설정되어 있지 않은 한 <ph name="PRODUCT_NAME" />이(가) RFC1918/RFC4193에서만 Cast 기기에 연결됩니다.</translation> <translation id="489803897780524242">기본 검색 공급자의 검색어 위치를 조정하는 매개변수</translation> <translation id="4899708173828500852">세이프 브라우징 사용</translation> -<translation id="4902163780937592202">확장 프로그램 설치 목록 정책 <ph name="EXTENSION_INSTALL_BLOCKLIST_POLICY_NAME" />, <ph name="EXTENSION_INSTALL_ALLOWLIST_POLICY_NAME" />, <ph name="EXTENSION_INSTALL_FORCELIST_POLICY_NAME" />를 병합합니다. - - 이 설정을 사용하면 우선순위가 가장 높은 한 출처의 값만 사용하는 대신 머신 플랫폼 정책, 머신 클라우드 정책, 사용자 플랫폼 정책의 값이 하나의 목록으로 병합되어 함께 사용됩니다. - - 설정을 사용하지 않거나 설정하지 않으면 우선순위가 가장 높은 출처의 목록 항목만 가져오며 다른 모든 출처는 충돌되지만 무시된 것으로 표시됩니다.</translation> <translation id="4906194810004762807">기기 정책 새로고침 빈도</translation> <translation id="4917385247580444890">강력</translation> <translation id="4919122295221518724">혼합 콘텐츠에 엄격한 처리 방식 사용</translation> @@ -2889,6 +2925,22 @@ 정책을 '브라우저 로그인 강제 사용'으로 설정하면 사용자에게 계정 선택 대화상자가 표시되며, 계정을 선택하여 로그인해야 브라우저를 사용할 수 있습니다. 관리 계정의 경우 이 설정을 통해 계정과 관련된 정책을 적용 및 시행할 수 있습니다. 도메인 관리자가 동기화를 사용 중지하거나 'SyncDisabled' 정책으로 동기화가 사용 중지되지 않은 이상 계정에서 Chrome 동기화가 기본적으로 사용 설정됩니다. 또한 BrowserGuestModeEnabled의 기본값은 False로 설정됩니다. 이 정책을 사용 설정하면 로그인되지 않은 기존 프로필은 잠겨서 액세스할 수 없게 됩니다. 자세한 내용은 다음 고객센터 도움말을 참조하세요. https://support.google.com/chrome/a/answer/7572556. 이 옵션은 Linux 및 Android를 지원하지 않으며, Linux 및 Android를 사용할 경우 '브라우저 로그인 사용'으로 대체됩니다. 정책을 설정하지 않으면 사용자가 브라우저 로그인 옵션을 사용할지 결정하고 필요에 따라 사용할 수 있습니다.</translation> +<translation id="5327325901414715560">기기에 연결된 회사 프린터의 설정을 제공합니다. + + 이 정책을 사용하면 <ph name="PRODUCT_OS_NAME" /> 기기에 프린터 설정을 제공할 수 있습니다. 형식은 NativePrinters 사전과 동일하며, 허용 목록 또는 차단 목록을 사용하려면 프린터마다 'id' 또는 'guid' 필드가 추가로 필요합니다. + + 파일 크기는 5MB를 초과할 수 없으며 JSON으로 인코딩되어야 합니다. 5MB는 약 21,000대의 프린터가 포함된 파일을 인코딩했을 때 예상할 수 있는 크기입니다. 암호화 해시는 다운로드 파일의 무결성을 확인하는 데 사용됩니다. + + 파일이 다운로드 및 캐시되며 URL이나 해시가 변경될 때마다 다시 다운로드됩니다. + + 정책을 설정하면 <ph name="PRODUCT_OS_NAME" />에서 프린터 설정 파일을 다운로드하고 <ph name="DEVICE_PRINTERS_ACCESS_MODE_POLICY_NAME" />, <ph name="DEVICE_PRINTERS_ALLOWLIST_POLICY_NAME" />, <ph name="DEVICE_PRINTERS_BLOCKLIST_POLICY_NAME" />에 따라 프린터를 사용할 수 있게 됩니다. + + 이 정책은 사용자가 개별 기기에서 프린터를 설정할 수 있는지에 영향을 미치지 않으며, 개별 사용자의 프린터 설정을 보완하기 위한 것입니다. + + 이 정책은 <ph name="PRINTERS_BULK_CONFIGURATION_POLICY_NAME" />에 추가되는 정책입니다. + + 정책을 설정하지 않으면 기기 프린터가 사용되지 않으며 다른 <ph name="DEVICE_PRINTERS_POLICY_PATTERN" /> 정책이 무시됩니다. + </translation> <translation id="532848608876725157">안전하지 않은 대체를 포함하여 DNS-over-HTTPS 사용</translation> <translation id="5329007337159326804">경고: 최대 TLS 버전 정책이 <ph name="PRODUCT_NAME" /> 버전 75쯤에서 완전히 삭제됩니다(2019년 6월경). @@ -3026,7 +3078,6 @@ 정책을 False로 설정하면 <ph name="PRODUCT_NAME" />에서 제품 정보를 전체 탭 콘텐츠로 표시하지 않습니다. 이 정책은 전체 탭 프로모션 정보의 표시를 제어합니다. 여기에는 사용자가 <ph name="PRODUCT_NAME" />에 로그인하도록 하는 시작 페이지를 표시하거나, <ph name="PRODUCT_NAME" />을 사용자의 기본 브라우저로 설정하거나, 다른 방식으로 제품 기능을 안내하는 콘텐츠가 포함됩니다.</translation> -<translation id="5447306928176905178">메모리 정보(JS 더미 크기)를 페이지로 보고하기 사용(지원 중단됨)</translation> <translation id="5450893456912604446"><ph name="PRODUCT_NAME" />에서 기본 홈페이지 URL을 구성하고 사용자가 변경하지 못하게 차단합니다. 홈페이지는 홈 버튼을 눌렀을 때 열리는 페이지입니다. 데스크톱의 경우 시작 시 열리는 페이지는 RestoreOnStartup 정책으로 제어됩니다. @@ -3452,6 +3503,12 @@ <ph name="PRODUCT_NAME" />은 볼륨의 루트 디렉터리의 콘텐츠를 관리합니다. 따라서 데이터 손실 및 기타 오류를 방지하려면 이 정책을 루트 디렉터리나 기타 목적으로 사용되는 디렉터리로 설정해서는 안 됩니다. https://www.chromium.org/administrators/policy-list-3/user-data-directory-variables에서 사용 가능한 변수를 확인할 수 있습니다.</translation> <translation id="6083631234867522991">Windows(Windows 클라이언트):</translation> +<translation id="6086225644749063677">사용자가 사용할 수 있는 프린터를 지정합니다. + + 이 정책은 <ph name="PRINTERS_ALLOWLIST" />가 <ph name="DEVICE_PRINTERS_ACCESS_MODE_POLICY_NAME" />로 선택된 경우에만 사용됩니다. + + 정책을 사용하면 ID가 이 정책에 있는 값과 일치하는 프린터만 사용자에게 제공됩니다. ID는 <ph name="DEVICE_PRINTERS_POLICY_NAME" />에 지정된 파일 내 'id' 또는 'guid' 필드와 일치해야 합니다. + </translation> <translation id="608788685013546076">전력 피크 시프트 배터리 임계값을 퍼센트로 설정</translation> <translation id="6089679180657323464">Wilco 진단 및 텔레메트리 컨트롤러 설정을 제어합니다.</translation> <translation id="6091233616732024397">사용자가 브라우저를 사용하려면 로그인하도록 강제</translation> @@ -3945,6 +4002,11 @@ 참고: 사용자가 쿠키를 차단하면 인증되지 않은 상태로 Google 서비스에 액세스할 수 있습니다.</translation> <translation id="6843296367238757293">지원 중단된 정책입니다. 사용하지 마시기 바랍니다. https://support.google.com/chrome/a/answer/7643500에서 자세히 알아보세요.</translation> +<translation id="6846126863870444592">이 정책을 사용하면 허용된 확장 프로그램이 인쇄 작업 전송에 <ph name="PRINTING_API" /> 함수 <ph name="SUBMIT_JOB_FUNCTION" />을 사용할 경우 인쇄 작업 확인 대화상자를 건너뛰게 할 수 있습니다. + + 확장 프로그램이 목록에 없거나 목록이 설정되지 않은 경우 <ph name="SUBMIT_JOB_FUNCTION" /> 함수가 호출될 때마다 인쇄 작업 확인 대화상자가 사용자에게 표시됩니다. + + 이 정책은 지원 중단되었으므로 <ph name="PRINTING_API_EXTENSIONS_ALLOWLIST_POLICY_NAME" /> 정책을 대신 사용하세요.</translation> <translation id="684856667300805181">이 정책은 <ph name="PRODUCT_NAME" /> 68에서 삭제되었으며 <ph name="ARC_GLS_POLICY_NAME" />(으)로 교체되었습니다.</translation> <translation id="6851199885688265233">커서 강조표시 접근성 기능 사용</translation> <translation id="6851315055469993882">전역적으로 범위가 지정된 HTTP 인증 캐시 사용 설정</translation> @@ -3964,11 +4026,6 @@ 정책을 설정하지 않으면 기업 관리 사용자 및 관리되지 않는 사용자 모두 기본적으로 Nearby Share를 사용 설정할 수 있습니다.</translation> <translation id="6864244339257535116">비밀번호로 보호된 파일의 업로드 및 다운로드 허용</translation> -<translation id="687046793986382807">이 정책은 <ph name="PRODUCT_NAME" /> 버전 35를 기준으로 지원이 중단되었습니다. - - 메모리 정보는 옵션 값과 관계없이 페이지에 보고되지만 보안 상의 이유로 보고되는 - 크기가 정량화되고 업데이트 빈도가 제한됩니다. 정확한 실시간 데이터를 얻으려면 - 원격계측기와 같은 도구를 사용하시기 바랍니다.</translation> <translation id="68798513449385583">스캔 평가가 확인될 때까지 다운로드 지연</translation> <translation id="6889123056995503704">사용자가 채널 다운그레이드 동작 결정</translation> <translation id="6894178810167845842">새 탭 페이지 URL</translation> @@ -4001,6 +4058,13 @@ <translation id="6907778402784621686">이 사이트에서 안전하지 않은 콘텐츠 차단</translation> <translation id="6908640907898649429">기본 검색 공급자를 설정합니다. 사용자가 사용할 기본 검색 공급자를 지정하거나 기본 검색을 사용 중지하도록 선택할 수 있습니다.</translation> <translation id="6913068954484253496"><ph name="PRODUCT_NAME" />에서 모든 IP 주소의 Cast 기기에 연결하도록 허용</translation> +<translation id="6916817094593836501">이 정책은 목록에 포함된 사이트에서는 유사한 URL 경고를 표시하지 않도록 차단합니다. 이러한 경고는 일반적으로 <ph name="PRODUCT_NAME" />에서 사용자에게 익숙한 다른 사이트를 스푸핑하려는 것으로 판단하는 사이트에 표시됩니다. + + 이 정책을 사용 설정하고 하나 이상의 도메인에 설정하면 사용자가 설정된 도메인의 페이지에 방문할 경우 유사함 경고 페이지가 표시되지 않습니다. + + 정책을 사용 중지하거나 설정하지 않거나 빈 목록으로 설정하면 사용자가 방문하는 모든 사이트에 경고가 표시될 수 있습니다. + + 완전한 호스트 일치 또는 모든 도메인 일치를 통해 호스트 이름을 허용할 수 있습니다. 예를 들어, 이 목록에 'foo.example.com' 또는 'example.com'이 포함될 경우 'https://foo.example.com/bar' 같은 URL에는 경고가 표시되지 않을 수 있습니다.</translation> <translation id="6922884955650325312"><ph name="FLASH_PLUGIN_NAME" /> 플러그인 차단</translation> <translation id="6923731550900440989">로그인 화면에서 캐럿 강조표시 사용</translation> <translation id="6924223708804692571">맞춤법 검사 언어를 강제로 사용 중지합니다. 목록에서 인식할 수 없는 언어는 무시됩니다. @@ -4756,7 +4820,6 @@ <translation id="793134539373873765">OS 업데이트 페이로드에 p2p를 사용할지 여부를 지정합니다. True로 설정되면 기기는 LAN에서 업데이트 페이로드를 공유하고 소비하려고 시도하여 인터넷 대역폭 사용량 및 혼잡을 줄일 수 있습니다. LAN에서 업데이트 페이로드를 사용할 수 없는 경우 기기는 다시 업데이트 서버로부터 다운로드합니다. False로 설정되었거나 아무런 설정이 없는 경우 p2p가 사용되지 않습니다.</translation> <translation id="7933141401888114454">관리 대상 사용자 생성을 허용합니다.</translation> <translation id="793473937901685727">ARC 앱에 인증서 사용 가능 여부 설정</translation> -<translation id="7937491150792971922">여러 출처의 확장 프로그램 설치 목록 정책 병합</translation> <translation id="7937766917976512374">동영상 캡처 허용 또는 거부</translation> <translation id="7941975817681987555">모든 네트워크 연결의 네트워크 활동 예측 안함</translation> <translation id="7951605113561734721">기기 관리 프로토콜을 사용하여 등록해야 하는 기기 수준 클라이언트 인증서를 지정합니다.</translation> @@ -4777,6 +4840,9 @@ <translation id="7953256619080733119">관리 사용자 직접 예외 호스트</translation> <translation id="7956210013490975468"><ph name="PRODUCT_OS_NAME" />의 시스템 프록시 서비스를 구성합니다.</translation> <translation id="7958537754689366707">12시간마다 비밀번호를 입력해야 합니다.</translation> +<translation id="7960293328203000385">기기에 로그인할 수 있는 사용자 목록을 정의합니다. <ph name="USER_ALLOWLIST_ENTRY_FORMAT" /> 형식(예: <ph name="USER_ALLOWLIST_ENTRY_EXAMPLE" />)의 항목이 사용됩니다. 도메인에 임의의 사용자를 허용하려면 <ph name="USER_ALLOWLIST_ENTRY_WILDCARD" /> 형식의 항목을 사용합니다. + + 이 정책이 설정되지 않으면 어떤 사용자가 로그인할 수 있는지에 관한 제한이 없습니다. 새 사용자를 만들기 위해서는 <ph name="DEVICE_ALLOW_NEW_USERS_POLICY_NAME" /> 정책이 적절히 설정되어야 합니다.</translation> <translation id="7961779417826583251">기존 인증서 권한 목록에 인증서 투명성 시행 사용 중지</translation> <translation id="7973609468423251675">이 정책은 지원이 중단되었으며 <ph name="PRODUCT_OS_NAME" /> 버전 85에서 삭제될 예정입니다. 대신 <ph name="POWER_MANAGEMENT_IDLE_SETTINGS_POLICY_NAME" /> 정책을 사용하세요.
diff --git a/components/policy/resources/policy_templates_nl.xtb b/components/policy/resources/policy_templates_nl.xtb index bf5c5ce..43ec6ab 100644 --- a/components/policy/resources/policy_templates_nl.xtb +++ b/components/policy/resources/policy_templates_nl.xtb
@@ -363,6 +363,12 @@ <translation id="1561967320164410511">U2F plus extensies voor individuele bevestiging</translation> <translation id="1575015449587326319">Configuratiebeleid voor de Chrome Enterprise-connector OnFileDownloaded</translation> <translation id="1583248206450240930"><ph name="PRODUCT_FRAME_NAME" /> standaard gebruiken</translation> +<translation id="1587671452159346389">Hiermee wordt beheerd welke printers uit <ph name="DEVICE_PRINTERS_POLICY_NAME" /> beschikbaar zijn voor gebruikers. + + Hiermee wordt aangegeven welk toegangsbeleid wordt gebruikt voor bulksgewijze printerconfiguratie. Als <ph name="PRINTERS_ALLOW_ALL" /> is geselecteerd, worden alle printers weergegeven. Als <ph name="PRINTERS_BLOCKLIST" /> is geselecteerd, wordt <ph name="DEVICE_PRINTERS_BLOCKLIST_POLICY_NAME" /> gebruikt om de toegang tot de opgegeven printers te beperken. Als <ph name="PRINTERS_ALLOWLIST" /> is geselecteerd, geeft <ph name="DEVICE_PRINTERS_ALLOWLIST_POLICY_NAME" /> alleen de printers aan die kunnen worden geselecteerd. + + Als dit beleid niet is ingesteld, wordt er uitgegaan van <ph name="PRINTERS_ALLOW_ALL" />. + </translation> <translation id="1588240398285670601">Browserinstellingen</translation> <translation id="1588456836529393506">Als je het beleid instelt, kun je een lijst met URL-patronen opgeven met de sites die automatisch toegangsrechten krijgen voor een USB-apparaat met de opgegeven leveranciers- en product-ID's. Het beleid is alleen geldig als elk lijstitem apparaten en URL's bevat. Elk item in apparaten kan een veld voor de leverancier-ID en een veld voor de product-ID bevatten. Elke ID die je weglaat, wordt als jokerteken behandeld, met één uitzondering: je kunt geen product-ID opgeven als je niet ook een leverancier-ID opgeeft. Als je dit niet doet, is het beleid niet geldig. @@ -1083,6 +1089,22 @@ Als dit beleid is uitgeschakeld, worden er geen beveiligingswaarschuwingen weergegeven als Chrome wordt gestart met bepaalde mogelijk schadelijke opdrachtregelmarkeringen. In <ph name="MS_WIN_NAME" /> is deze functionaliteit alleen beschikbaar voor instanties die zijn gekoppeld aan een <ph name="MS_AD_NAME" />-domein, worden uitgevoerd in Windows 10 Pro of zijn ingeschreven voor 'Cloudbeheer voor de Chrome-browser'. In <ph name="MAC_OS_NAME" /> is deze functionaliteit alleen beschikbaar voor instanties die via MDM worden beheerd of via MCX aan een domein zijn gekoppeld.</translation> +<translation id="2621383458880689826">Biedt configuraties voor bedrijfsprinters die aan apparaten zijn gekoppeld. + + Met dit beleid kun je printerconfiguraties leveren aan <ph name="PRODUCT_OS_NAME" />-apparaten. De indeling is hetzelfde als de NativePrinters-woordenlijst, met een extra verplicht ID- of GUID-veld per printer voor de toelatings- of blokkeringslijst. + + Het bestand mag niet groter zijn dan 5 MB en moet zijn gecodeerd in JSON. Naar schatting wordt een bestand met ongeveer 21.000 printers gecodeerd als een bestand van 5 MB. De cryptografische hash wordt gebruikt om de integriteit van de download te verifiëren. + + Het bestand wordt gedownload en opgeslagen in het cachegeheugen. Het wordt opnieuw gedownload als de URL of de hash wordt gewijzigd. + + Als dit beleid is ingesteld, downloadt <ph name="PRODUCT_OS_NAME" /> het bestand voor printerconfiguraties en worden printers beschikbaar in overeenstemming met <ph name="DEVICE_NATIVE_PRINTERS_ACCESS_MODE" />, <ph name="DEVICE_NATIVE_PRINTERS_WHITELIST_POLICY_NAME" /> en <ph name="DEVICE_NATIVE_PRINTERS_BLACKLIST_POLICY_NAME" />. + + Dit beleid is niet van invloed op de mogelijkheid van gebruikers om printers op afzonderlijke apparaten in te stellen. Het is bedoeld als aanvulling op de printerinstellingen van afzonderlijke gebruikers. + + Dit beleid is een aanvulling op <ph name="BULK_PRINTERS_POLICY_NAME" />. + + Als dit beleid niet is ingesteld, zijn er geen apparaatprinters en worden de andere beleidsregels '<ph name="DEVICE_NATIVE_PRINTERS_POLICY_PATTERN" />' genegeerd. + </translation> <translation id="2623014935069176671">Wachten op initiële gebruikersactiviteit</translation> <translation id="262740370354162807">Verzenden van documenten naar <ph name="CLOUD_PRINT_NAME" /> inschakelen</translation> <translation id="2632538643061793322">Als je het beleid instelt, kun je een lijst met URL-patronen maken om op te geven welke sites gebruikers mogen vragen om toegang tot een USB-apparaat. @@ -1109,6 +1131,7 @@ Als dit beleid niet wordt ingesteld, is sms-synchronisatie standaard niet toegestaan voor beheerde gebruikers en wel toegestaan voor niet-beheerde gebruikers.</translation> <translation id="2660846099862559570">Nooit een proxy gebruiken</translation> +<translation id="2664682171745499686">Waarschuwingen voor nagebootste domeinen onderdrukken voor domeinen</translation> <translation id="2665422249821137126">De grote muisaanwijzer op het inlogscherm inschakelen</translation> <translation id="2672012807430078509">Bepaalt of NTLM is ingeschakeld als verificatieprotocol voor SMB-activeringen</translation> <translation id="2678503605767349615">Vereiste clientcertificaten voor het hele apparaat</translation> @@ -1248,6 +1271,12 @@ Als je deze instelling inschakelt, gebruikt Afdrukvoorbeeld de standaardprinter van het besturingssysteem als standaardbestemming.</translation> <translation id="285627849510728211">Dagconfiguratie voor geavanceerde batterijoplaadmodus instellen</translation> <translation id="2856674246949497058">Herstel en blijf op de doelversie als de OS-versie nieuwer is dan de doelversie. Voer een powerwash uit tijdens het proces.</translation> +<translation id="2869140260739354012">Hiermee wordt beheerd welke printers uit <ph name="DEVICE_PRINTERS_POLICY" /> beschikbaar zijn voor gebruikers. + + Hiermee wordt aangegeven welk toegangsbeleid wordt gebruikt voor bulksgewijze printerconfiguratie. Als <ph name="PRINTERS_ALLOW_ALL" /> is geselecteerd, worden alle printers weergegeven. Als <ph name="PRINTERS_BLACKLIST" /> is geselecteerd, wordt <ph name="DEVICE_NATIVE_PRINTERS_BLACKLIST" /> gebruikt om de toegang tot de opgegeven printers te beperken. Als <ph name="PRINTERS_WHITELIST" /> is geselecteerd, geeft <ph name="DEVICE_NATIVE_PRINTERS_WHITELIST" /> alleen de printers aan die kunnen worden geselecteerd. + + Als dit beleid niet is ingesteld, wordt er uitgegaan van <ph name="PRINTERS_ALLOW_ALL" />. + </translation> <translation id="2869762730352628426">Automatisch klikken op het inlogscherm inschakelen</translation> <translation id="2872961005593481000">Afsluiten</translation> <translation id="2874209944580848064">Opmerking voor <ph name="PRODUCT_OS_NAME" />-apparaten die Android-apps ondersteunen:</translation> @@ -1290,11 +1319,6 @@ Opmerking: Dit beleid verwijst naar een XML-bestand met dezelfde indeling als het beleid <ph name="IEEM_SITELIST_POLICY" /> van <ph name="IE_PRODUCT_NAME" />. Hiermee worden regels vanuit een XML-bestand geladen, zonder dat deze regels worden gedeeld met <ph name="IE_PRODUCT_NAME" />. Bekijk meer informatie over het beleid <ph name="IEEM_SITELIST_POLICY" /> van <ph name="IE_PRODUCT_NAME" /> (https://docs.microsoft.com/internet-explorer/ie11-deploy-guide/what-is-enterprise-mode)</translation> <translation id="2952347049958405264">Beperkingen:</translation> -<translation id="2956777931324644324">Dit beleid is buiten gebruik gesteld vanaf <ph name="PRODUCT_NAME" /> versie 36. - - Geeft aan of de extensie voor TLS-domeingebonden certificaten moet worden ingeschakeld. - - Deze instelling wordt gebruikt om de extensie voor TLS-domeingebonden certificaten in te schakelen voor testdoeleinden. Deze experimentele instelling wordt in de toekomst verwijderd.</translation> <translation id="2957047180944828740">Hiermee geef je aan of niet-beveiligde websites verzoeken mogen sturen naar meer-privé netwerkeindpunten</translation> <translation id="2957506574938329824">Niet toestaan dat sites toegang tot Bluetooth-apparaten vragen via de Web Bluetooth API</translation> <translation id="2957513448235202597">Accounttype voor <ph name="HTTP_NEGOTIATE" />-verificatie</translation> @@ -1830,7 +1854,6 @@ Als dit beleid niet wordt ingesteld, geldt de standaardwaarde 'niet toegestaan' voor beheerde Enterprise-gebruikers en 'toegestaan' voor niet-beheerde gebruikers.</translation> <translation id="3803171355925844705">Niet toestaan dat sites gemengde content laden</translation> -<translation id="3805659594028420438">Extensie TLS-domeingebonden certificaten inschakelen (afgekeurd)</translation> <translation id="3808945828600697669">Een lijst met uitgeschakelde plug-ins specificeren</translation> <translation id="3810642039169532482">De toegankelijkheidsfunctie voor dicteren op het inlogscherm inschakelen. @@ -1860,6 +1883,12 @@ <translation id="3838094946886335701">Als je het beleid instelt (alleen zoals aanbevolen), kun je een lijst met protocolhandlers registreren. Deze worden samengevoegd met de protocolhandlers die de gebruiker registreert, waarna beide sets gebruikt worden. Stel de eigenschap 'protocol' in op het schema, zoals 'mailto', en stel de eigenschap 'URL' in op het URL-patroon van de app die het schema verwerkt dat in het veld 'protocol' wordt gespecificeerd. Het patroon mag de tijdelijke aanduiding '%s' bevatten die wordt vervangen door de verwerkte URL. Gebruikers kunnen een protocolhandler niet verwijderen als deze is geregistreerd door een beleid. Als ze een nieuwe standaard handler installeren, kunnen ze de protocolhandlers wijzigen die door het beleid zijn geïnstalleerd.</translation> +<translation id="3848118497246496090">Geeft aan welke printers een gebruiker niet kan gebruiken. + + Dit beleid wordt alleen gebruikt als <ph name="PRINTERS_BLACKLIST" /> is gekozen voor <ph name="DEVICE_NATIVE_PRINTERS_ACCESS_MODE" />. + + Als dit beleid wordt gebruikt, zijn alle printers voor de gebruiker beschikbaar, behalve de ID's in dit beleid. De ID's moeten overeenkomen met het ID- of GUID-veld in het bestand dat is opgegeven in <ph name="DEVICE_PRINTERS_POLICY" />. + </translation> <translation id="3851039766298741586">Informatie rapporteren over de actieve kiosksessie, zoals de ID en versie van de app. @@ -1999,6 +2028,12 @@ <translation id="3965339130942650562">Time-out tot de inactieve gebruiker is uitgelogd</translation> <translation id="3973371701361892765">Archief nooit automatisch verbergen</translation> <translation id="3979738908158213640">URL's die toegang krijgen om apparaatattesten uit te voeren tijdens SAML-verificatie</translation> +<translation id="3980024487013511975">Geeft aan welke printers een gebruiker niet kan gebruiken. + + Dit beleid wordt alleen gebruikt als <ph name="PRINTERS_BLOCKLIST" /> is gekozen voor <ph name="DEVICE_PRINTERS_ACCESS_MODE_POLICY_NAME" />. + + Als dit beleid wordt gebruikt, zijn alle printers voor de gebruiker beschikbaar, behalve de ID's in dit beleid. De ID's moeten overeenkomen met het ID- of GUID-veld in het bestand dat is opgegeven in <ph name="DEVICE_PRINTERS_POLICY_NAME" />. + </translation> <translation id="3984028218719007910">Bepaalt of <ph name="PRODUCT_OS_NAME" /> na het afmelden lokale accountgegevens bewaart. Als dit is ingesteld op 'true', bewaart <ph name="PRODUCT_OS_NAME" /> geen bestaande accounts en worden alle gegevens over de gebruikerssessie na het afmelden gewist. Als dit beleid is ingesteld op 'false' of niet is geconfigureerd, bewaart het apparaat mogelijk (gecodeerde) lokale gebruikersgegevens.</translation> <translation id="398884292557092447">Als je het beleid instelt op True of niet instelt, krijgen gebruikers de controle over 'Automatisch aanvullen' voor creditcards in de UI. @@ -2206,6 +2241,12 @@ Als je het beleid niet instelt, vragen websites om toegang maar kunnen gebruikers deze instelling wijzigen.</translation> <translation id="4285674129118156176">Toestaan dat niet-gelieerde gebruikers ARC gebruiken</translation> +<translation id="4309562700894844665">Hiermee worden de printers gespecificeerd die een gebruiker kan gebruiken. + + Dit beleid wordt alleen gebruikt als <ph name="PRINTERS_WHITELIST" /> is gekozen voor <ph name="DEVICE_NATIVE_PRINTERS_ACCESS_MODE" /> + +Als dit beleid wordt gebruikt, zijn alleen de printers met ID's die overeenkomen met de waarden in dit beleid beschikbaar voor de gebruiker. De ID's moeten overeenkomen met het ID- of GUID-veld in het bestand dat is opgegeven in <ph name="DEVICE_PRINTERS_POLICY" />. + </translation> <translation id="4311195029067684288">Full</translation> <translation id="4313767483634435271">Toegewezen MAC-adres van dock van apparaat</translation> <translation id="4322842393287974810">Toestaan dat de kiosk-app die automatisch zonder vertraging is gestart, de <ph name="PRODUCT_OS_NAME" />-versie beheert</translation> @@ -2545,11 +2586,6 @@ Als je het beleid niet instelt, maakt <ph name="PRODUCT_NAME" /> alleen verbinding met cast-apparaten op RFC1918/RFC4193, tenzij de functie CastAllowAllIPs is ingeschakeld.</translation> <translation id="489803897780524242">Parameter die plaatsing van zoektermen beheert voor de standaardzoekprovider</translation> <translation id="4899708173828500852">Safe Browsing inschakelen</translation> -<translation id="4902163780937592202">Hiermee worden de lijstbeleidsregels <ph name="EXTENSION_INSTALL_BLOCKLIST_POLICY_NAME" />, <ph name="EXTENSION_INSTALL_ALLOWLIST_POLICY_NAME" /> en <ph name="EXTENSION_INSTALL_FORCELIST_POLICY_NAME" /> voor installatie van extensies samengevoegd. - - Als je deze instelling inschakelt, worden de waarden van de beleidsregels voor het machineplatform, de machinecloud en het gebruikersplatform samengevoegd tot één lijst. Bovendien worden ze als één geheel gebruikt in plaats van alleen de waarden van de bron met de hoogste prioriteit te gebruiken. - - Als je deze instelling uitschakelt of niet instelt, worden alleen lijstitems uit de bron met de hoogste prioriteit meegenomen. Alle andere bronnen worden wel als conflicten weergegeven, maar worden genegeerd.</translation> <translation id="4906194810004762807">Vernieuwingsfrequentie voor apparaatbeleid</translation> <translation id="4917385247580444890">Sterk</translation> <translation id="4919122295221518724">Strengere behandeling van gecombineerde content inschakelen</translation> @@ -2856,6 +2892,22 @@ Als het beleid is ingesteld op 'Inloggen bij browser afdwingen', krijgt de gebruiker een dialoogvenster voor accountselectie te zien en moet deze een account kiezen en inloggen om de browser te gebruiken. Dit zorgt ervoor dat voor beheerde accounts de aan het account gekoppelde beleidsregels worden toegepast en afgedwongen. Hiermee wordt Chrome-synchronisatie standaard ingeschakeld voor het account, behalve als synchronisatie is uitgeschakeld door de domeinbeheerder of via het beleid 'SyncDisabled'. De standaardwaarde van 'BrowserGuestModeEnabled' wordt ingesteld op 'False'. Houd er rekening mee dat bestaande, niet-ingelogde profielen worden vergrendeld en niet toegankelijk zijn na inschakeling van dit beleid. Bekijk het Helpcentrum-artikel voor meer informatie: https://support.google.com/chrome/a/answer/7572556. Deze optie wordt niet ondersteund voor Linux en Android en wordt bij gebruik op de reserveoptie 'Inloggen bij browser inschakelen' gezet. Als dit beleid niet is ingesteld, kan de gebruiker bepalen of deze de optie voor inloggen bij de browser wil inschakelen en deze naar wens gebruiken.</translation> +<translation id="5327325901414715560">Biedt configuraties voor bedrijfsprinters die aan apparaten zijn gekoppeld. + + Met dit beleid kun je printerconfiguraties leveren aan <ph name="PRODUCT_OS_NAME" />-apparaten. De indeling is hetzelfde als de NativePrinters-woordenlijst, met een extra verplicht ID- of GUID-veld per printer voor de toelatings- of blokkeringslijst. + + Het bestand mag niet groter zijn dan 5 MB en moet zijn gecodeerd in JSON. Naar schatting wordt een bestand met ongeveer 21.000 printers gecodeerd als een bestand van 5 MB. De cryptografische hash wordt gebruikt om de integriteit van de download te verifiëren. + + Het bestand wordt gedownload en opgeslagen in het cachegeheugen. Het wordt opnieuw gedownload als de URL of de hash wordt gewijzigd. + + Als dit beleid is ingesteld, downloadt <ph name="PRODUCT_OS_NAME" /> het bestand voor printerconfiguraties en worden printers beschikbaar in overeenstemming met <ph name="DEVICE_PRINTERS_ACCESS_MODE_POLICY_NAME" />, <ph name="DEVICE_PRINTERS_ALLOWLIST_POLICY_NAME" /> en <ph name="DEVICE_PRINTERS_BLOCKLIST_POLICY_NAME" />. + + Dit beleid is niet van invloed op de mogelijkheid van gebruikers om printers op afzonderlijke apparaten in te stellen. Het is bedoeld als aanvulling op de printerinstellingen van afzonderlijke gebruikers. + + Dit beleid is een aanvulling op <ph name="PRINTERS_BULK_CONFIGURATION_POLICY_NAME" />. + + Als dit beleid niet is ingesteld, zijn er geen apparaatprinters en worden de andere beleidsregels '<ph name="DEVICE_PRINTERS_POLICY_PATTERN" />' genegeerd. + </translation> <translation id="532848608876725157">DNS-over-HTTPS met onveilige fallback inschakelen</translation> <translation id="5329007337159326804">Waarschuwing: Het beleid voor de maximale TLS-versie wordt rond versie 75 (rond juni 2019) volledig verwijderd uit <ph name="PRODUCT_NAME" />. @@ -2995,7 +3047,6 @@ Als je het beleid instelt op False, kan <ph name="PRODUCT_NAME" /> geen productinformatie op een volledig tabblad weergeven. Deze instelling bepaalt de presentatie van de welkomstpagina's waar gebruikers kunnen inloggen op <ph name="PRODUCT_NAME" />, <ph name="PRODUCT_NAME" /> kunnen instellen als standaardbrowser van de gebruiker of anderszins kunnen worden geïnformeerd over productfuncties.</translation> -<translation id="5447306928176905178">Het rapporteren van geheugengegevens (JS-heapgrootte) aan de pagina inschakelen (verouderd)</translation> <translation id="5450893456912604446">Hiermee stel je de standaard-URL voor de homepage in <ph name="PRODUCT_NAME" /> in en voorkom je dat gebruikers deze kunnen wijzigen. De homepage is de pagina die wordt geopend met de startknop. Op desktop bepaalt het beleid RestoreOnStartup welke pagina's worden geopend als de browser wordt opgestart. @@ -3419,6 +3470,12 @@ <ph name="PRODUCT_NAME" /> beheert de inhoud van de root-map van een volume. Als je gegevensverlies of andere fouten wilt voorkomen, moet je dit beleid niet instellen op de root-map of een directory die voor andere doeleinden wordt gebruikt. Bekijk de variabelen die je kunt gebruiken (https://www.chromium.org/administrators/policy-list-3/user-data-directory-variables).</translation> <translation id="6083631234867522991">Windows (Windows-clients):</translation> +<translation id="6086225644749063677">Hiermee worden de printers gespecificeerd die een gebruiker kan gebruiken. + + Dit beleid wordt alleen gebruikt als <ph name="PRINTERS_ALLOWLIST" /> is gekozen voor <ph name="DEVICE_PRINTERS_ACCESS_MODE_POLICY_NAME" /> + +Als dit beleid wordt gebruikt, zijn alleen de printers met ID's die overeenkomen met de waarden in dit beleid beschikbaar voor de gebruiker. De ID's moeten overeenkomen met het ID- of GUID-veld in het bestand dat is opgegeven in <ph name="DEVICE_PRINTERS_POLICY_NAME" />. + </translation> <translation id="608788685013546076">Drempel voor stroompiekverschuiving van batterij instellen in procenten</translation> <translation id="6089679180657323464">Hiermee beheer je de instellingen voor wilco DTC.</translation> <translation id="6091233616732024397">Gebruikers dwingen in te loggen om de browser te gebruiken</translation> @@ -3908,6 +3965,11 @@ Gebruikers met een niet-bevoegde status kunnen toegang krijgen tot Google-services door cookies te blokkeren.</translation> <translation id="6843296367238757293">Dit beleid is beëindigd. Het gebruik ervan wordt afgeraden. Ga naar https://support.google.com/chrome/a/answer/7643500 voor meer informatie</translation> +<translation id="6846126863870444592">Dit beleid specificeert de extensies die het bevestigingsdialoogvenster voor afdruktaken mogen overslaan als ze de <ph name="PRINTING_API" />-functie <ph name="SUBMIT_JOB_FUNCTION" /> gebruiken om een afdruktaak te sturen. + + Als een extensie niet in de lijst staat of de lijst niet is ingesteld, krijgt de gebruiker het bevestigingsdialoogvenster voor afdruktaken te zien voor elke <ph name="SUBMIT_JOB_FUNCTION" />-functieaanroep. + + Dit beleid is verouderd. Gebruik in plaats daarvan <ph name="PRINTING_API_EXTENSIONS_ALLOWLIST_POLICY_NAME" />.</translation> <translation id="684856667300805181">Dit beleid is in <ph name="PRODUCT_NAME" /> 68 verwijderd en vervangen door <ph name="ARC_GLS_POLICY_NAME" />.</translation> <translation id="6851199885688265233">De toegankelijkheidsfunctie voor cursormarkering inschakelen</translation> <translation id="6851315055469993882">HTTP auth-cache met wereldwijd bereik inschakelen</translation> @@ -3927,9 +3989,6 @@ Als je dit beleid niet instelt, is de standaardoptie toegestaan voor zowel zakelijk beheerde gebruikers als niet-beheerde gebruikers.</translation> <translation id="6864244339257535116">Uploads en downloads van bestanden met wachtwoordbeveiliging toestaan</translation> -<translation id="687046793986382807">Dit beleid wordt niet meer gebruikt sinds <ph name="PRODUCT_NAME" /> versie 35. - -Geheugengegevens worden in alle gevallen aan de pagina gerapporteerd, afgezien van de optiewaarde, maar de gerapporteerde grootten zijn gekwantiseerd en de snelheid van updates is om veiligheidsredenen beperkt. Om nauwkeurige realtime gegevens te verkrijgen, gebruik je tools zoals Telemetry.</translation> <translation id="68798513449385583">Downloads uitstellen totdat het scanresultaat bekend is</translation> <translation id="6889123056995503704">De gebruiker bepaalt het downgradegedrag voor kanalen</translation> <translation id="6894178810167845842">URL van pagina 'Nieuw tabblad'</translation> @@ -3962,6 +4021,13 @@ <translation id="6907778402784621686">Niet-beveiligde content op deze sites blokkeren</translation> <translation id="6908640907898649429">Hiermee wordt de standaardzoekprovider geconfigureerd. Je kunt de standaardzoekprovider specificeren die de gebruiker gaat gebruiken, of je kunt ervoor kiezen de standaardzoekfunctie uit te schakelen.</translation> <translation id="6913068954484253496"><ph name="PRODUCT_NAME" /> toestaan om verbinding te maken met Cast-apparaten op alle IP-adressen.</translation> +<translation id="6916817094593836501">Dit beleid voorkomt dat er waarschuwingen worden weergegeven voor nagebootste URL's op de vermelde sites. Deze waarschuwingen worden meestal weergegeven op sites waarvan <ph name="PRODUCT_NAME" /> denkt dat deze mogelijk een andere site probeert te spoofen die bij de gebruiker bekend is. + + Als je het beleid inschakelt en instelt op een of meer domeinen, worden er geen waarschuwingen voor nagebootste URL's weergegeven als de gebruiker pagina's in dat domein bezoekt. + + Als dit beleid is uitgeschakeld, niet is ingesteld of is ingesteld op een lege lijst, kunnen er waarschuwingen worden weergegeven op elke site die de gebruiker bezoekt. + + Een hostnaam kan worden toegestaan als deze exact overeenkomt met een host of overeenkomt met een domein. Voor een URL zoals "https://foo.example.com/bar" kunnen waarschuwingen bijvoorbeeld worden onderdrukt als deze lijst "foo.example.com" of "example.com" bevat.</translation> <translation id="6922884955650325312">De <ph name="FLASH_PLUGIN_NAME" />-plug-in blokkeren</translation> <translation id="6923731550900440989">De markering van het caret-teken op het inlogscherm inschakelen.</translation> <translation id="6924223708804692571">Talen voor spellingcontrole worden gedwongen uitgeschakeld. Niet-herkende talen in de lijst worden genegeerd. @@ -4715,7 +4781,6 @@ <translation id="793134539373873765">Specificeert of p2p wordt gebruikt voor netto-updateladingen voor het besturingssysteem. Als dit is ingesteld op 'True', proberen apparaten netto-updateladingen (payloads) op te halen via het LAN, waardoor bandbreedtegebruik en vertraging kunnen worden verminderd. Als de netto-updatelading niet beschikbaar is via het LAN, gaat het apparaat over tot downloaden via een updateserver. Als deze instelling is ingesteld op 'False' of niet is geconfigureerd, wordt 2p2 niet gebruikt.</translation> <translation id="7933141401888114454">Maken van bewaakte gebruikers inschakelen</translation> <translation id="793473937901685727">Certificaatbeschikbaarheid instellen voor ARC-apps</translation> -<translation id="7937491150792971922">Lijstbeleidsregels voor installatie van extensies van meerdere bronnen samenvoegen</translation> <translation id="7937766917976512374">Het opnemen van video's toestaan of weigeren</translation> <translation id="7941975817681987555">Geen netwerkacties voorspellen voor een netwerkverbinding</translation> <translation id="7951605113561734721">Specificeert clientcertificaten voor het hele apparaat die moeten worden ingeschreven via het protocol voor apparaatbeheer.</translation> @@ -4736,6 +4801,9 @@ <translation id="7953256619080733119">Hosts van handmatige uitzonderingen voor beheerde gebruikers</translation> <translation id="7956210013490975468">Configureert de systeemproxyservice voor <ph name="PRODUCT_OS_NAME" />.</translation> <translation id="7958537754689366707">Het wachtwoord moet elke twaalf uur worden opgegeven</translation> +<translation id="7960293328203000385">Definieert de lijst met gebruikers die toestemming hebben om op het apparaat in te loggen. De invoer heeft de vorm <ph name="USER_ALLOWLIST_ENTRY_FORMAT" />, zoals <ph name="USER_ALLOWLIST_ENTRY_EXAMPLE" />. Als je willekeurige gebruikers toegang wilt geven tot een domein, gebruik je invoer in de vorm <ph name="USER_ALLOWLIST_ENTRY_WILDCARD" />. + + Als dit beleid niet is geconfigureerd, zijn er geen beperkingen voor welke gebruikers mogen inloggen. Als je nieuwe gebruikers wilt maken, moet het beleid <ph name="DEVICE_ALLOW_NEW_USERS_POLICY_NAME" /> correct zijn ingesteld.</translation> <translation id="7961779417826583251">Handhaving van Certificaattransparantie voor een lijst met certificeringsinstanties uitschakelen</translation> <translation id="7973609468423251675">Dit beleid is beëindigd en wordt verwijderd in <ph name="PRODUCT_OS_NAME" />-versie 85. Gebruik in plaats daarvan <ph name="POWER_MANAGEMENT_IDLE_SETTINGS_POLICY_NAME" />.
diff --git a/components/policy/resources/policy_templates_pt-BR.xtb b/components/policy/resources/policy_templates_pt-BR.xtb index c9f4efb5..c71a35ca 100644 --- a/components/policy/resources/policy_templates_pt-BR.xtb +++ b/components/policy/resources/policy_templates_pt-BR.xtb
@@ -1326,11 +1326,6 @@ Observação: esta política aponta para um arquivo XML no mesmo formato que a política <ph name="IEEM_SITELIST_POLICY" /> do <ph name="IE_PRODUCT_NAME" />. As regras são carregadas de um arquivo XML e não são compartilhadas com o <ph name="IE_PRODUCT_NAME" />. Leia mais sobre a política <ph name="IEEM_SITELIST_POLICY" /> do <ph name="IE_PRODUCT_NAME" /> (https://docs.microsoft.com/internet-explorer/ie11-deploy-guide/what-is-enterprise-mode)</translation> <translation id="2952347049958405264">Restrições:</translation> -<translation id="2956777931324644324">Esta política foi retirada de circulação a partir da versão 36 do <ph name="PRODUCT_NAME" />. - - Especifica se a extensão dos certificados vinculados ao domínio TLS deve ser ativada. - - Essa extensão é usada para ativar a extensão dos certificados vinculados ao domínio TLS para testes. Essa configuração experimental será removida no futuro.</translation> <translation id="2957047180944828740">Especifica se sites não seguros podem fazer solicitações para endpoints de uma rede mais privada</translation> <translation id="2957506574938329824">Não permite que nenhum site solicite acesso a dispositivos Bluetooth por meio da API Web Bluetooth</translation> <translation id="2957513448235202597">Tipo de conta para autenticação <ph name="HTTP_NEGOTIATE" /></translation> @@ -1862,7 +1857,6 @@ Se esta política não for definida, o comportamento padrão será não permitir o login para usuários gerenciados por empresas e permitir o login para usuários não gerenciados.</translation> <translation id="3803171355925844705">Não permitir que nenhum site carregue conteúdo misto</translation> -<translation id="3805659594028420438">Ativar extensão dos certificados vinculados ao domínio TLS (obsoleto)</translation> <translation id="3808945828600697669">Especificar uma lista de plug-ins desativados</translation> <translation id="3810642039169532482">Ativar o recurso de acessibilidade de ditado na tela de login. @@ -2587,11 +2581,6 @@ Se a política não for definida, o <ph name="PRODUCT_NAME" /> será conectado aos dispositivos Cast apenas em RFC1918/RFC4193, exceto se o recurso CastAllowAllIPs estiver ativado.</translation> <translation id="489803897780524242">Parâmetro que controla o posicionamento do termo de pesquisa para o provedor de pesquisa padrão</translation> <translation id="4899708173828500852">Ativar Navegação segura</translation> -<translation id="4902163780937592202">Ativa a mesclagem das políticas de lista <ph name="EXTENSION_INSTALL_BLOCKLIST_POLICY_NAME" />, <ph name="EXTENSION_INSTALL_ALLOWLIST_POLICY_NAME" /> e <ph name="EXTENSION_INSTALL_FORCELIST_POLICY_NAME" /> para instalação de extensões. - - Se você ativar essa configuração, os valores da política da plataforma de máquina, da política da nuvem de máquina e da política da plataforma de usuário serão mesclados em uma única lista e usados em combinação, em vez de usar apenas os valores da fonte única com maior prioridade. - - Se você desativar ou não definir essa configuração, apenas as entradas da lista da fonte de maior prioridade serão usadas, e todas as outras fontes serão exibidas como conflitos, mas ignoradas.</translation> <translation id="4906194810004762807">Taxa de atualização da Política de dispositivos</translation> <translation id="4917385247580444890">Forte</translation> <translation id="4919122295221518724">Ativar tratamento mais rigoroso para conteúdo misto</translation> @@ -3044,7 +3033,6 @@ Se ela for definida como falsa, o <ph name="PRODUCT_NAME" /> não poderá mostrar informações do produto como conteúdo em guia cheia. Esta política controla a apresentação das informações promocionais em uma guia inteira. Isso inclui conteúdo como as páginas de boas-vindas que ajudam os usuários a fazer login em <ph name="PRODUCT_NAME" />, definir <ph name="PRODUCT_NAME" /> como navegador padrão ou descobrir os recursos do produto.</translation> -<translation id="5447306928176905178">Ativar relatórios de informação de memória (JS tamanho da pilha) para a página (obsoleta)</translation> <translation id="5450893456912604446">Configura o URL padrão da página inicial no <ph name="PRODUCT_NAME" /> e impede que os usuários o modifiquem. A página inicial é aquela aberta pelo botão "Página inicial". No computador, as páginas que são abertas na inicialização são controladas pelas políticas RestoreOnStartup. @@ -3610,7 +3598,7 @@ Se esta configuração for definida como falsa ou não for definida, a nova implementação será usada e poderá causar possíveis problemas de compatibilidade específicos da empresa. - Esta política será removida depois de alguns marcos. + Esta política será removida após o lançamento de alguns recursos. Para ver detalhes sobre <ph name="CORS" />, acesse: <ph name="CORS_HELP_URL" />. @@ -3985,11 +3973,6 @@ Se esta política não for definida, o padrão será permitido tanto para usuários gerenciados por empresas quanto para usuários não gerenciados.</translation> <translation id="6864244339257535116">Permitir upload e download de arquivos protegidos por senha</translation> -<translation id="687046793986382807">Esta política foi desativada a partir da versão 35 do <ph name="PRODUCT_NAME" />. - - De alguma forma, as informações da memória são reportadas à página, independentemente do valor da opção. No entanto, os tamanhos reportados são - quantificados, e a taxa de atualizações é limitada por motivos de segurança. Para obter dados precisos em tempo real, - utilize ferramentas como o Telemetry.</translation> <translation id="68798513449385583">Atrasar downloads até que o resultado da verificação seja conhecido</translation> <translation id="6889123056995503704">O usuário decide o comportamento de downgrade de canal</translation> <translation id="6894178810167845842">URL da página "Nova guia"</translation> @@ -4347,11 +4330,11 @@ A pesquisa e a instalação automáticas de plug-ins ausentes não são mais compatíveis.</translation> <translation id="7267809745244694722">Teclas de mídia padrão para teclas de função</translation> <translation id="7271085005502526897">Importar homepage do navegador padrão na primeira execução</translation> -<translation id="7271181393214180342">Definir a política como "Ativada" faz com que a autenticação HTTP respeite a aprovação pela política KDC. Em outras palavras, o <ph name="PRODUCT_NAME" /> delegará credenciais de usuário para o serviço acessado se o KDC definir <ph name="OK_AS_DELEGATE" /> em um ticket de serviço. Consulte RFC 5896 (https://tools.ietf.org/html/rfc5896.html, link em inglês). O serviço também precisa ter a permissão de <ph name="AUTH_NEGOTIATE_DELEGATE_ALLOWLIST_POLICY_NAME" />. +<translation id="7271181393214180342">Definir a política como "Ativada" faz com que a autenticação HTTP respeite a aprovação pela política de KDC. Em outras palavras, o <ph name="PRODUCT_NAME" /> delegará credenciais de usuário para o serviço acessado se o KDC definir <ph name="OK_AS_DELEGATE" /> em um ticket de serviço. Consulte RFC 5896 (https://tools.ietf.org/html/rfc5896.html, link em inglês). O serviço também precisa ter a permissão de <ph name="AUTH_NEGOTIATE_DELEGATE_ALLOWLIST_POLICY_NAME" />. - Definir a política como "Desativada" ou deixá-la sem definição faz com que a KDC seja ignorada nas plataformas compatíveis, e somente <ph name="AUTH_NEGOTIATE_DELEGATE_ALLOWLIST_POLICY_NAME" /> será respeitada. + Definir a política como "Desativada" ou deixá-la sem definição faz com que a política de KDC seja ignorada nas plataformas compatíveis, e somente <ph name="AUTH_NEGOTIATE_DELEGATE_ALLOWLIST_POLICY_NAME" /> será respeitada. - No <ph name="MS_WIN_NAME" />, a política KDC sempre é respeitada.</translation> + No <ph name="MS_WIN_NAME" />, a política de KDC sempre é respeitada.</translation> <translation id="7273823081800296768">Se esta definição estiver ativada ou não estiver configurada, os usuários podem optar por parear clientes e hosts no momento da conexão, eliminando a necessidade de inserir um PIN todas as vezes. Se esta definição estiver desativada, esse recurso não fica disponível.</translation> @@ -4779,7 +4762,6 @@ <translation id="793134539373873765">Especifica se p2p deve ser usado para cargas de atualização do sistema operacional. Se for definido como verdadeiro, os dispositivos compartilharão e tentarão consumir as cargas de atualização na LAN, possivelmente reduzindo o uso de largura de banda de Internet e o congestionamento. Se a carga de atualização não estiver disponível na LAN, o dispositivo voltará a fazer download a partir de um servidor de atualização. Se for definido como falso ou não for configurado, o p2p não será usado.</translation> <translation id="7933141401888114454">Ativar a criação de usuários supervisionados</translation> <translation id="793473937901685727">Definir a disponibilidade do certificado para apps ARC</translation> -<translation id="7937491150792971922">Mesclar políticas de lista para instalação de extensões de diversas fontes</translation> <translation id="7937766917976512374">Permitir ou negar captura de vídeo</translation> <translation id="7941975817681987555">Não prever ações da rede em nenhuma conexão de rede</translation> <translation id="7951605113561734721">Especifica os certificados do cliente em todo o dispositivo que deveriam ser registrados usando o protocolo de gerenciamento do dispositivo.</translation>
diff --git a/components/policy/resources/policy_templates_ru.xtb b/components/policy/resources/policy_templates_ru.xtb index f6172309..6314612 100644 --- a/components/policy/resources/policy_templates_ru.xtb +++ b/components/policy/resources/policy_templates_ru.xtb
@@ -22,6 +22,13 @@ Поддерживаются следующие языки: af, bg, ca, cs, da, de, el, en-AU, en-CA, en-GB, en-US, es, es-419, es-AR, es-ES, es-MX, es-US, et, fa, fo, fr, he, hi, hr, hu, id, it, ko, lt, lv, nb, nl, pl, pt-BR, pt-PT, ro, ru, sh, sk, sl, sq, sr, sv, ta, tg, tr, uk, vi.</translation> <translation id="1019101089073227242">Указать каталог для пользовательских данных</translation> +<translation id="1021843807738753764"> Правило больше не поддерживается и будет удалено из <ph name="PRODUCT_OS_NAME" /> 89. Вместо него для настройки предупреждений о конфиденциальности управляемых гостевых сеансов используйте правило <ph name="MANAGED_GUEST_SESSION_PRIVACY_WARNINGS_POLICY_NAME" />. + + Оно позволяет настроить показ уведомлений об автоматических запусках управляемых гостевых сеансов в <ph name="PRODUCT_OS_NAME" />. + + Если для правила задано значение True, уведомление с предупреждением о конфиденциальности закроется через несколько секунд после появления. + + Если установлено значение False или правило не настроено, уведомление не исчезнет, пока пользователь не скроет его сам.</translation> <translation id="1022361784792428773">Идентификаторы расширений, которые запрещено устанавливать пользователям ("*" запрещает установку всех расширений)</translation> <translation id="102492767056134033">Режим по умолчанию для экранной клавиатуры на экране входа</translation> <translation id="1027000705181149370">Определяет, будут ли аутентификационные файлы cookie от поставщика идентификационной информации SAML передаваться в профиль пользователя при входе в аккаунт. @@ -267,6 +274,20 @@ Если правило включено или не настроено, при переходе по URL сможет выполняться прокрутка до указанного текстового фрагмента. Если правило отключено, прокрутка до указанного текстового фрагмента при переходе по URL выполняться не будет.</translation> +<translation id="1469072784237350146">Позволяет разрешать или запрещать для небезопасных сайтов отправку запросов к конечным точкам более частной сети. + + Это правило основано на спецификации CORS-RFC1918. Подробнее: https://wicg.github.io/cors-rfc1918. + + Конечная точка в сети считается более частной, чем какая-либо другая, если: + 1) ее IP-адрес – localhost, а у другой – не localhost; + 2) ее IP-адрес является частным, а у другой – общедоступным. + В дальнейшем, в зависимости от изменения спецификации, это правило может применяться ко всем запросам из различных источников, направляемым к частным IP-адресам или к адресу localhost. + + Сайт считается безопасным, если он соответствует определению безопасного контекста, приведенному на странице https://developer.mozilla.org/ru/docs/Web/Security/Secure_Contexts. В противном случае сайт обрабатывается как небезопасный. + + Если правило не настроено или задано значение False, поведение запросов, которые отправляются из небезопасных источников к конечным точкам частной сети, будет зависеть от пользовательских настроек функции <ph name="BLOCK_INSECURE_PRIVATE_NETWORK_REQUESTS_FEATURE_NAME" />. Их можно задать с помощью экспериментальных функций или командной строки. + + Если задано значение True, небезопасные сайты смогут отправлять запросы к конечным точкам любых сетей, к которым применяются другие проверки происхождения.</translation> <translation id="1474273443907024088">Позволяет отключить TLS False Start</translation> <translation id="1477934438414550161">TLS 1.2</translation> <translation id="1479427764273213107">Это правило задает список USB-устройств, которые можно использовать напрямую в веб-приложениях через chrome.usb API (в обход драйвера ядра). Каждая запись содержит пару идентификаторов (продавца и товара), которая позволяет точно определить устройство. @@ -1277,11 +1298,7 @@ Обратите внимание, что это правило указывает на XML-файл в том же формате, что и правило <ph name="IEEM_SITELIST_POLICY" /> для <ph name="IE_PRODUCT_NAME" />. Элементы списка загружаются из XML-файла без предоставления доступа к ним браузеру <ph name="IE_PRODUCT_NAME" />. Более подробные сведения о правиле <ph name="IEEM_SITELIST_POLICY" /> для <ph name="IE_PRODUCT_NAME" /> можно найти на странице https://docs.microsoft.com/internet-explorer/ie11-deploy-guide/what-is-enterprise-mode.</translation> <translation id="2952347049958405264">Ограничения:</translation> -<translation id="2956777931324644324">Это правило не используется, начиная с версии <ph name="PRODUCT_NAME" /> 36. - - Оно определяет, использовать ли TLS-расширение для сертификатов, привязанных к домену. - - Эта настройка используется для тестирования TLS-расширения для сертификатов, привязанных к домену. Она является экспериментальной, и в будущем мы ее удалим.</translation> +<translation id="2957047180944828740">Позволяет разрешать или запрещать для небезопасных сайтов отправку запросов к конечным точкам более частной сети.</translation> <translation id="2957506574938329824">Запретить всем сайтам запрашивать доступ к Bluetooth-устройствам через Web Bluetooth API</translation> <translation id="2957513448235202597">Тип аккаунта для аутентификации <ph name="HTTP_NEGOTIATE" /></translation> <translation id="2959469725686993410">Для определения часового пояса всегда отправлять данные о точках доступа Wi-Fi на сервер</translation> @@ -1821,7 +1838,6 @@ Если правило не задано, по умолчанию настройка отключена для корпоративных аккаунтов и включена для остальных пользователей.</translation> <translation id="3803171355925844705">Запретить загрузку смешанного контента на всех сайтах</translation> -<translation id="3805659594028420438">Использовать TLS-расширение для сертификатов, привязанных к домену (устаревшее правило)</translation> <translation id="3808945828600697669">Список неактивных подключаемых модулей</translation> <translation id="3810642039169532482">Это правило включает специальную возможность – голосовой ввод на экране входа. @@ -2534,11 +2550,6 @@ Если правило не настроено, то модуль <ph name="PRODUCT_NAME" /> подключается только по адресам стандарта RFC1918/RFC4193 кроме случаев, когда активирована функция CastAllowAllIPs.</translation> <translation id="489803897780524242">Параметр, контролирующий размещение поискового запроса для поисковой системы по умолчанию</translation> <translation id="4899708173828500852">Включить безопасный просмотр</translation> -<translation id="4902163780937592202">Позволяет объединить правила <ph name="EXTENSION_INSTALL_BLOCKLIST_POLICY_NAME" />, <ph name="EXTENSION_INSTALL_ALLOWLIST_POLICY_NAME" /> и <ph name="EXTENSION_INSTALL_FORCELIST_POLICY_NAME" />, которые относятся к спискам расширений, разрешенных к установке. - - Если это правило включено, то значения правил, относящихся к компьютерам, облачным сервисам и пользовательским платформам, объединяются в один список, который затем используется. В противном случае использовалось бы только одно из правил, имеющее наивысший приоритет. - - Если правило отключено или не настроено, используется только правило с наивысшим приоритетом. Все остальные правила считаются конфликтующими и игнорируются.</translation> <translation id="4906194810004762807">Частота обновлений политики устройств</translation> <translation id="4917385247580444890">Сильный</translation> <translation id="4919122295221518724">Включение более строгой обработки смешанного контента</translation> @@ -2983,7 +2994,6 @@ Если указано значение False, <ph name="PRODUCT_NAME" /> не будет показывать такой контент. С помощью этого правила настраивается представление стартовых страниц, на которых пользователи могут войти в <ph name="PRODUCT_NAME" />, выбрать <ph name="PRODUCT_NAME" /> браузером по умолчанию или узнать о его функциях.</translation> -<translation id="5447306928176905178">Передавать на страницу информацию об использовании памяти JavaScript (устарело)</translation> <translation id="5450893456912604446">Настраивает URL главной страницы по умолчанию в <ph name="PRODUCT_NAME" /> и запрещает пользователям изменять его. Главная страница открывается при нажатии соответствующей кнопки. На компьютере страницы, открывающиеся при запуске браузера, определяются правилом RestoreOnStartup. @@ -3154,6 +3164,9 @@ Если правило не задано, виртуальная клавиатура будет отключена, но пользователи смогут включить ее. Примечание. Вы можете настроить, где будет показана клавиатура, с помощью эвристических методов.</translation> +<translation id="5657752663637568277">Это правило определяет, будут ли в окне печати или в настройках показываться предупреждения о прекращении поддержки сервиса "<ph name="CLOUD_PRINT_NAME" />". + Если задано значение True, то они не будут появляться. + Если задано значение False или правило не настроено, то пользователи увидят эти предупреждения.</translation> <translation id="5666457529647159548">Разрешить пользователям управлять установленными сертификатами клиентов</translation> <translation id="567377007899266033">Если задано значение True, в Google отправляются отчеты об основных событиях установки расширений, которая была выполнена в соответствии с каким-либо правилом. Если указано значение False, события не регистрируются. Если правило не настроено, для него по умолчанию устанавливается значение True.</translation> <translation id="5676740747107495269">Показывать специальные возможности в области уведомлений на экране входа</translation> @@ -3379,6 +3392,12 @@ Отключение этого правила окажет негативный эффект на безопасность и стабильность Chrome, поскольку внутри процессов средства обработки Chrome будет разрешена загрузка неизвестного и потенциально вредоносного кода. Подробную информацию можно найти здесь: https://chromium.googlesource.com/chromium/src/+/master/docs/design/sandbox.md#Process-mitigation-policies.</translation> <translation id="6048199181629830227">Включить управление режимом пиковой нагрузки</translation> +<translation id="6054485492411959335">Это правило определяет принтеры, с которыми может работать пользователь. + + Применимо только в том случае, если в правиле <ph name="PRINTERS_BULK_ACCESS_MODE_POLICY_NAME" /> задан параметр <ph name="PRINTERS_ALLOWLIST" />. + + Когда правило настроено, пользователь может работать только с теми принтерами, идентификаторы которых в нем указаны. Эти идентификаторы должны соответствовать значениям полей id и guid в файле, указанном в правиле <ph name="PRINTERS_BULK_CONFIGURATION_POLICY_NAME" />. + </translation> <translation id="6066761914755798079">Если правило <ph name="DEFAULT_SEARCH_PROVIDER_ENABLED_POLICY_NAME" /> включено, то параметр <ph name="DEFAULT_SEARCH_PROVIDER_SUGGEST_URL_POLICY_NAME" /> задает URL поисковой системы, используемой для предоставления подсказок. В URL должна быть строка <ph name="SEARCH_TERM_MARKER" />, которая во время отправки запроса заменяется на текст пользователя. URL поисковой системы Google можно указать так: <ph name="GOOGLE_SUGGEST_SEARCH_URL" />.</translation> @@ -3909,15 +3928,10 @@ Если правило не задано, по умолчанию настройка включена независимо от того, управляют ли аккаунтом того или иного пользователя администраторы организации.</translation> <translation id="6864244339257535116">Разрешить загрузку и скачивание файлов, защищенных паролем</translation> -<translation id="687046793986382807">Это правило не действует в <ph name="PRODUCT_NAME" />, начиная с версии 35. - - Информация о памяти передается на страницу в любом случае, независимо от заданного - значения. Однако передаваемые данные разбиваются на группы определенного размера, а - частота обновлений ограничивается из соображений безопасности. Чтобы получать точные - данные в режиме реального времени, используйте такие инструменты, как Telemetry.</translation> <translation id="68798513449385583">Задерживать доставку скачанных файлов, пока не станет известен результат проверки</translation> <translation id="6889123056995503704">Позволить пользователям определять, что будет происходить при переходе на более стабильную версию Chrome OS</translation> <translation id="6894178810167845842">URL страницы быстрого доступа</translation> +<translation id="6897730193187922386">Блокирует сообщения о прекращении поддержки сервиса "<ph name="CLOUD_PRINT_NAME" />".</translation> <translation id="6899705656741990703">Автоматически определять настройки прокси-сервера</translation> <translation id="6902561336084511004">Устанавливает конфигурацию доступных серверов печати. @@ -4693,7 +4707,6 @@ <translation id="793134539373873765">Определяет, будет ли использоваться одноранговая сеть p2p при обновлении операционной системы. Если задано значение "True", обмен данными между устройствами и обновление будут выполняться в сети LAN, что позволит сократить пропускную способность и перегрузку интернет-канала. Если в сети LAN обновление не поддерживается, устройство будет скачивать его со специального сервера. Если задано значение "False" или значение не задано, одноранговая сеть не будет использоваться.</translation> <translation id="7933141401888114454">Включает поддержку контролируемых профилей</translation> <translation id="793473937901685727">Настроить доступ к сертификатам для приложений ARC</translation> -<translation id="7937491150792971922">Объединить правила установки расширений из нескольких источников в один список</translation> <translation id="7937766917976512374">Включение или отключение функции захвата видео</translation> <translation id="7941975817681987555">Никогда не предопределять параметры сети</translation> <translation id="7951605113561734721">Позволяет указать сертификаты клиента на уровне устройства, которые необходимо зарегистрировать с помощью протокола управления устройством.</translation> @@ -5104,6 +5117,14 @@ Это правило позволяет компаниям перевести существующие серверы с HTTP/0.9 на другой протокол. В дальнейшем оно будет удалено. Если правило не настроено, протокол HTTP/0.9 будет отключен для портов, не заданных по умолчанию.</translation> +<translation id="8504725006737796967">Это правило определяет, какие принтеры доступны пользователю. + + Оно используется только в том случае, если в правиле <ph name="BULK_PRINTERS_ACCESS_MODE_POLICY_NAME" /> указан список разрешенных принтеров <ph name="PRINTERS_WHITELIST" />. + + Если правило включено, пользователь может работать только с теми принтерами, идентификаторы которых совпадают с заданными значениями. Эти идентификаторы должны соответствовать значениям полей id и guid в файле, указанном в правиле <ph name="BULK_PRINTERS_POLICY_NAME" />. + + Это правило больше не поддерживается. Вместо него используется правило <ph name="PRINTERS_BULK_ALLOWLIST_POLICY_NAME" />. + </translation> <translation id="8507835864888987300">Правило позволяет задать префикс целевой версии для обновления <ph name="PRODUCT_OS_NAME" />. Если на устройстве установлена версия ниже, чем в префиксе, система будет обновлена до указанной версии. Если на устройстве установлена более поздняя версия, система обновится согласно значению параметра <ph name="DEVICE_ROLLBACK_TO_TARGET_VERSION_POLICY_NAME" />. Префикс можно отформатировать следующим образом:
diff --git a/components/policy/resources/policy_templates_th.xtb b/components/policy/resources/policy_templates_th.xtb index d937e7a8..5b965c4 100644 --- a/components/policy/resources/policy_templates_th.xtb +++ b/components/policy/resources/policy_templates_th.xtb
@@ -365,6 +365,12 @@ <translation id="1561967320164410511">U2F พร้อมส่วนขยายสำหรับการรับรองแต่ละรายการ</translation> <translation id="1575015449587326319">นโยบายการกำหนดค่าสำหรับเครื่องมือเชื่อมต่อ Chrome Enterprise OnFileDownloaded</translation> <translation id="1583248206450240930">ใช้ <ph name="PRODUCT_FRAME_NAME" /> โดยค่าเริ่มต้น</translation> +<translation id="1587671452159346389">ควบคุมว่าจะให้เครื่องพิมพ์ใดจาก <ph name="DEVICE_PRINTERS_POLICY_NAME" /> พร้อมใช้งานสำหรับผู้ใช้ + + กำหนดนโยบายการเข้าถึงที่จะนำมาใช้สำหรับการกำหนดค่าเครื่องพิมพ์แบบกลุ่ม หากเลือก <ph name="PRINTERS_ALLOW_ALL" /> ระบบจะแสดงเครื่องพิมพ์ทั้งหมด หากเลือก <ph name="PRINTERS_BLOCKLIST" /> ระบบจะใช้ <ph name="DEVICE_PRINTERS_BLOCKLIST_POLICY_NAME" /> ในการจำกัดการเข้าถึงเครื่องพิมพ์ที่ระบุ หากเลือก <ph name="PRINTERS_ALLOWLIST" /> <ph name="DEVICE_PRINTERS_ALLOWLIST_POLICY_NAME" /> จะกำหนดเฉพาะเครื่องพิมพ์ที่เลือกได้ + + หากไม่ได้ตั้งค่านโยบายนี้ไว้ ระบบจะถือว่าเลือก <ph name="PRINTERS_ALLOW_ALL" /> ไว้ + </translation> <translation id="1588240398285670601">การตั้งค่าเบราว์เซอร์</translation> <translation id="1588456836529393506">การตั้งค่านโยบายจะให้คุณสร้างรายการรูปแบบ URL ซึ่งระบุเว็บไซต์ที่ได้รับสิทธิ์โดยอัตโนมัติให้เข้าถึงอุปกรณ์ USB ที่มีรหัสผู้ให้บริการและรหัสผลิตภัณฑ์ที่กำหนด โดยแต่ละรายการย่อยในรายการจะต้องมีอุปกรณ์และ URL นโยบายจึงจะมีผล แต่ละรายการในอุปกรณ์อาจมีช่องรหัสผู้ให้บริการและรหัสผลิตภัณฑ์ รหัสที่คุณไม่ได้รวมไว้ในรายการจะถือว่าเป็นไวลด์การ์ดโดยมีข้อยกเว้นข้อเดียว นั่นคือคุณจะระบุรหัสผลิตภัณฑ์โดยไม่ระบุรหัสผู้ให้บริการด้วยไม่ได้ มิเช่นนั้นนโยบายจะไม่มีผล @@ -1082,6 +1088,22 @@ การตั้งค่านโยบายเป็น "ปิดใช้" จะทำให้ระบบไม่แสดงคำเตือนด้านความปลอดภัยเมื่อมีการเปิดใช้ Chrome โดยมีการติดธงบรรทัดคำสั่งที่อาจเป็นอันตราย ใน <ph name="MS_WIN_NAME" /> ฟังก์ชันการทำงานนี้ใช้ได้เฉพาะในอินสแตนซ์ที่เข้าร่วมโดเมน <ph name="MS_AD_NAME" />, ทำงานใน Windows 10 Pro หรือลงทะเบียนในการจัดการระบบคลาวด์ของเบราว์เซอร์ Chrome ใน <ph name="MAC_OS_NAME" /> ฟังก์ชันการทำงานนี้ใช้ได้เฉพาะในอินสแตนซ์ที่จัดการผ่าน MDM หรือเข้าร่วมโดเมนผ่าน MCX</translation> +<translation id="2621383458880689826">จัดเตรียมการกำหนดค่าสำหรับเครื่องพิมพ์องค์กรที่เชื่อมโยงกับอุปกรณ์ + + นโยบายนี้ให้คุณระบุการกำหนดค่าเครื่องพิมพ์ให้แก่อุปกรณ์ <ph name="PRODUCT_OS_NAME" /> รูปแบบจะเหมือนกับพจนานุกรม NativePrinters แต่มีช่อง "id" หรือ "guid" ที่จำเป็นต้องกรอกเพิ่มเข้ามาสำหรับเครื่องพิมพ์แต่ละเครื่องเพื่อใช้ระบุว่าอยู่ในรายการที่อนุญาตหรือไม่อนุญาต + + ไฟล์ต้องมีขนาดไม่เกิน 5 MB และต้องเข้ารหัสเป็น JSON ไฟล์ที่ระบุเครื่องพิมพ์ประมาณ 21,000 เครื่องคาดว่าจะเข้ารหัสได้เป็นไฟล์ขนาด 5 MB 1 ไฟล์ และจะใช้แฮชแบบเข้ารหัสเพื่อยืนยันความสมบูรณ์ของการดาวน์โหลด + + ระบบจะดาวน์โหลดและเก็บแคชของไฟล์ไว้ แล้วจะดาวน์โหลดอีกครั้งเมื่อ URL หรือแฮชมีการเปลี่ยนแปลง + + หากตั้งค่านโยบายนี้ <ph name="PRODUCT_OS_NAME" /> จะดาวน์โหลดไฟล์สำหรับการกำหนดค่าเครื่องพิมพ์และทำให้เครื่องพิมพ์พร้อมใช้งานโดยสอดคล้องกับ <ph name="DEVICE_NATIVE_PRINTERS_ACCESS_MODE" />, <ph name="DEVICE_NATIVE_PRINTERS_WHITELIST_POLICY_NAME" /> และ <ph name="DEVICE_NATIVE_PRINTERS_BLACKLIST_POLICY_NAME" /> + + นโยบายนี้ไม่มีผลต่อความสามารถของผู้ใช้ในการกำหนดค่าเครื่องพิมพ์ในอุปกรณ์ใดๆ แต่เป็นเพียงนโยบายเพิ่มเติมสำหรับการกำหนดค่าเครื่องพิมพ์ของผู้ใช้แต่ละราย + + นโยบายนี้เป็นส่วนเพิ่มเติมของ <ph name="BULK_PRINTERS_POLICY_NAME" /> + + หากไม่ได้ตั้งค่านโยบายนี้ จะไม่มีเครื่องพิมพ์สำหรับอุปกรณ์และระบบจะเพิกเฉยต่อนโยบาย <ph name="DEVICE_NATIVE_PRINTERS_POLICY_PATTERN" /> อื่นๆ + </translation> <translation id="2623014935069176671">รอกิจกรรมเริ่มต้นของผู้ใช้</translation> <translation id="262740370354162807">เปิดใช้งานการส่งเอกสารไปยัง <ph name="CLOUD_PRINT_NAME" /></translation> <translation id="2632538643061793322">การตั้งค่านโยบายจะให้คุณสร้างรายการรูปแบบ URL ซึ่งระบุเว็บไซต์ที่ขอให้ผู้ใช้ให้สิทธิ์เข้าถึงอุปกรณ์ USB ได้ @@ -1108,6 +1130,7 @@ หากไม่ได้ตั้งค่านโยบายนี้ ระบบจะไม่อนุญาตให้ใช้ค่าเริ่มต้นสำหรับผู้ใช้ที่มีการจัดการ แต่จะอนุญาตสำหรับผู้ใช้ที่ไม่มีการจัดการ</translation> <translation id="2660846099862559570">ไม่ใช้พร็อกซี</translation> +<translation id="2664682171745499686">ระงับคำเตือนโดเมนที่เหมือนกันในหลายโดเมน</translation> <translation id="2665422249821137126">เปิดใช้เคอร์เซอร์ขนาดใหญ่ในหน้าจอการเข้าสู่ระบบ</translation> <translation id="2672012807430078509">ควบคุมการเปิดใช้ NTLM เป็นโปรโตคอลการตรวจสอบสิทธิ์สำหรับการต่อเชื่อม SMB</translation> <translation id="2678503605767349615">ต้องมีใบรับรองไคลเอ็นต์ระดับอุปกรณ์</translation> @@ -1246,6 +1269,12 @@ หากคุณเปิดใช้การตั้งค่านี้ หน้าตัวอย่างก่อนพิมพ์จะใช้เครื่องพิมพ์เริ่มต้นของระบบปฏิบัติการเป็นทางเลือกปลายทางเริ่มต้น</translation> <translation id="285627849510728211">ตั้งค่ากำหนดวันของโหมดการชาร์จแบตเตอรี่ขั้นสูง</translation> <translation id="2856674246949497058">ย้อนกลับไปใช้เวอร์ชันเป้าหมายและใช้เวอร์ชันเป้าหมายเสมอหากใช้ระบบปฏิบัติการเวอร์ชันที่ใหม่กว่า ทำ Powerwash ในขั้นตอนนี้</translation> +<translation id="2869140260739354012">ควบคุมว่าจะให้เครื่องพิมพ์ใดจาก <ph name="DEVICE_PRINTERS_POLICY" /> พร้อมใช้งานสำหรับผู้ใช้ + + กำหนดนโยบายการเข้าถึงที่จะนำมาใช้สำหรับการกำหนดค่าเครื่องพิมพ์แบบกลุ่ม หากเลือก <ph name="PRINTERS_ALLOW_ALL" /> ระบบจะแสดงเครื่องพิมพ์ทั้งหมด หากเลือก <ph name="PRINTERS_BLACKLIST" /> ระบบจะใช้ <ph name="DEVICE_NATIVE_PRINTERS_BLACKLIST" /> ในการจำกัดการเข้าถึงเครื่องพิมพ์ที่ระบุ หากเลือก <ph name="PRINTERS_WHITELIST" /> <ph name="DEVICE_NATIVE_PRINTERS_WHITELIST" /> จะกำหนดเฉพาะเครื่องพิมพ์ที่เลือกได้ + + หากไม่ได้ตั้งค่านโยบายนี้ไว้ ระบบจะถือว่าเลือก <ph name="PRINTERS_ALLOW_ALL" /> ไว้ + </translation> <translation id="2869762730352628426">เปิดใช้ฟีเจอร์คลิกอัตโนมัติในหน้าจอการเข้าสู่ระบบ</translation> <translation id="2872961005593481000">ปิด</translation> <translation id="2874209944580848064">หมายเหตุสำหรับอุปกรณ์ <ph name="PRODUCT_OS_NAME" /> ที่รองรับแอป Android:</translation> @@ -1288,11 +1317,6 @@ หมายเหตุ: นโยบายนี้ชี้ไปยังไฟล์ XML ในรูปแบบเดียวกับนโยบาย <ph name="IEEM_SITELIST_POLICY" /> ของ <ph name="IE_PRODUCT_NAME" /> โดยจะโหลดกฎจากไฟล์ XML แต่ไม่แชร์กฎเหล่านั้นกับ <ph name="IE_PRODUCT_NAME" /> ดูข้อมูลเพิ่มเติมเกี่ยวกับนโยบาย <ph name="IEEM_SITELIST_POLICY" /> ของ <ph name="IE_PRODUCT_NAME" /> ได้ที่ https://docs.microsoft.com/internet-explorer/ie11-deploy-guide/what-is-enterprise-mode</translation> <translation id="2952347049958405264">ข้อจำกัด:</translation> -<translation id="2956777931324644324">นโยบายนี้เลิกใช้งานแล้วตั้งแต่ <ph name="PRODUCT_NAME" /> เวอร์ชัน 36 - - ระบุว่าควรเปิดใช้ส่วนขยายใบรับรองที่ผูกกับโดเมน TLS ไหม - - ใช้การตั้งค่านี้เพื่อเปิดใช้ส่วนขยายใบรับรองที่ผูกกับโดเมน TLS สำหรับการทดสอบ ระบบจะลบการตั้งค่าเวอร์ชันทดลองนี้ในอนาคต</translation> <translation id="2957047180944828740">ระบุว่าจะอนุญาตให้เว็บไซต์ที่ไม่ปลอดภัยส่งคำขอไปยังปลายทางเครือข่ายที่มีความเป็นส่วนตัวมากกว่าหรือไม่</translation> <translation id="2957506574938329824">ไม่อนุญาตให้เว็บไซต์ใดๆ ขอสิทธิ์เข้าถึงอุปกรณ์บลูทูธผ่าน Web Bluetooth API</translation> <translation id="2957513448235202597">ประเภทบัญชีสำหรับการตรวจสอบสิทธิ์ <ph name="HTTP_NEGOTIATE" /></translation> @@ -1827,7 +1851,6 @@ หากไม่ได้ตั้งค่านโยบายนี้ ระบบจะไม่อนุญาตให้ใช้ค่าเริ่มต้นกับผู้ใช้ที่มีการจัดการโดยองค์กรและอนุญาตให้ใช้กับผู้ใช้ที่ไม่มีการจัดการ</translation> <translation id="3803171355925844705">ไม่อนุญาตให้เว็บไซต์ใดๆ โหลดเนื้อหาผสม</translation> -<translation id="3805659594028420438">เปิดใช้ส่วนขยายใบรับรองที่ผูกกับโดเมน TLS (เลิกใช้แล้ว)</translation> <translation id="3808945828600697669">ระบุรายการปลั๊กอินที่ปิดใช้งาน</translation> <translation id="3810642039169532482">เปิดใช้ฟีเจอร์การช่วยเหลือพิเศษสำหรับการเขียนตามคำบอกในหน้าจอการเข้าสู่ระบบ @@ -1857,6 +1880,12 @@ <translation id="3838094946886335701">การตั้งค่านโยบาย (ตามที่แนะนำเท่านั้น) จะให้คุณลงทะเบียนรายการเครื่องจัดการโปรโตคอล ซึ่งรวมเข้ากับรายการที่ผู้ใช้ลงทะเบียน และทำให้มีการนำทั้ง 2 ชุดไปใช้งาน ตั้งค่าพร็อพเพอร์ตี้ "โปรโตคอล" เป็นรูปแบบ เช่น "mailto" และตั้งค่าพร็อพเพอร์ตี้ "URL" เป็นรูปแบบ URL ของแอปพลิเคชันที่จัดการรูปแบบที่ระบุไว้ในช่อง "โปรโตคอล" รูปแบบ URL อาจมีตัวยึดตำแหน่ง "%s" ได้ ซึ่ง URL ที่มีการจัดการจะมาแทนที่ ผู้ใช้จะนำเครื่องจัดการโปรโตคอลที่นโยบายลงทะเบียนไว้ออกไม่ได้ แต่หากติดตั้งเครื่องจัดการเริ่มต้นเครื่องใหม่ ก็จะเปลี่ยนเครื่องจัดการโปรโตคอลที่นโยบายติดตั้งไว้ได้</translation> +<translation id="3848118497246496090">ระบุเครื่องพิมพ์ที่ผู้ใช้ใช้งานไม่ได้ + + ใช้นโยบายนี้ต่อเมื่อเลือก <ph name="PRINTERS_BLACKLIST" /> สำหรับ <ph name="DEVICE_NATIVE_PRINTERS_ACCESS_MODE" /> เท่านั้น + + ถ้าใช้นโยบายนี้ ผู้ใช้จะใช้เครื่องพิมพ์ได้ทุกเครื่องยกเว้นเครื่องที่มีรหัสตามที่ระบุไว้ในนโยบายนี้ รหัสดังกล่าวต้องตรงกับช่อง "id" หรือ "guid" ในไฟล์ที่ระบุใน <ph name="DEVICE_PRINTERS_POLICY" /> + </translation> <translation id="3851039766298741586">รายงานข้อมูลเกี่ยวกับเซสชันคีออสก์ที่ใช้งาน เช่น รหัสและเวอร์ชันของแอปพลิเคชัน @@ -1993,6 +2022,12 @@ <translation id="3965339130942650562">หมดเวลาจนกว่าจะดำเนินการออกจากระบบของผู้ใช้ที่ไม่มีการใช้งาน</translation> <translation id="3973371701361892765">ไม่ซ่อนชั้นวางอัตโนมัติเลย</translation> <translation id="3979738908158213640">URL ที่จะได้รับสิทธิ์เข้าถึงเพื่อทำการรับรองอุปกรณ์ในระหว่างการตรวจสอบสิทธิ์ SAML</translation> +<translation id="3980024487013511975">ระบุเครื่องพิมพ์ที่ผู้ใช้ใช้งานไม่ได้ + + ใช้นโยบายนี้ต่อเมื่อเลือก <ph name="PRINTERS_BLOCKLIST" /> สำหรับ <ph name="DEVICE_PRINTERS_ACCESS_MODE_POLICY_NAME" /> เท่านั้น + + ถ้าใช้นโยบายนี้ ผู้ใช้จะใช้เครื่องพิมพ์ได้ทุกเครื่องยกเว้นเครื่องที่มีรหัสตามที่ระบุไว้ในนโยบายนี้ รหัสดังกล่าวต้องตรงกับช่อง "id" หรือ "guid" ในไฟล์ที่ระบุใน <ph name="DEVICE_PRINTERS_POLICY_NAME" /> + </translation> <translation id="3984028218719007910">กำหนดว่าจะให้ <ph name="PRODUCT_OS_NAME" /> เก็บข้อมูลบัญชีในตัวเครื่องหลังจากที่ออกจากระบบหรือไม่ หากตั้งค่าเป็น "จริง" <ph name="PRODUCT_OS_NAME" /> จะไม่เก็บบัญชีใดๆ ไว้อย่างถาวร และข้อมูลทั้งหมดจากเซสชันผู้ใช้จะถูกยกเลิกหลังจากที่ออกจากระบบ ถ้านโยบายนี้ถูกกำหนดเป็น "เท็จ" หรือไม่กำหนดค่า อุปกรณ์อาจเก็บข้อมูลผู้ใช้ในตัวเครื่องไว้ (โดยที่เข้ารหัส)</translation> <translation id="398884292557092447">การตั้งค่านโยบายเป็น "จริง" หรือไม่ได้ตั้งค่าหมายความว่าผู้ใช้จะควบคุมคำแนะนำการป้อนข้อความอัตโนมัติสำหรับบัตรเครดิตใน UI ได้ @@ -2200,6 +2235,12 @@ การไม่ตั้งค่าจะให้เว็บไซต์ขอสิทธิ์เข้าถึงได้ แต่ผู้ใช้เปลี่ยนการตั้งค่านี้ได้</translation> <translation id="4285674129118156176">อนุญาตให้ผู้ใช้ที่ไม่ได้เป็นพาร์ทเนอร์ใช้ ARC</translation> +<translation id="4309562700894844665">ระบุเครื่องพิมพ์ที่ผู้ใช้ใช้งานได้ + + ใช้นโยบายนี้ต่อเมื่อเลือก <ph name="PRINTERS_WHITELIST" /> สำหรับ <ph name="DEVICE_NATIVE_PRINTERS_ACCESS_MODE" /> เท่านั้น + + ถ้าใช้นโยบายนี้ ผู้ใช้จะใช้งานได้เฉพาะเครื่องพิมพ์ที่มีรหัสตรงกับค่าในนโยบาย รหัสดังกล่าวต้องตรงกับช่อง "id" หรือ "guid" ในไฟล์ที่ระบุใน <ph name="DEVICE_PRINTERS_POLICY" /> + </translation> <translation id="4311195029067684288">เต็ม</translation> <translation id="4313767483634435271">ที่อยู่ MAC ของแท่นชาร์จที่กำหนดของอุปกรณ์</translation> <translation id="4322842393287974810">อนุญาตแอปคีออสก์ที่เปิดอัตโนมัติด้วยความล่าช้าเป็น 0 เพื่อควบคุมเวอร์ชันของ <ph name="PRODUCT_OS_NAME" /></translation> @@ -2531,11 +2572,6 @@ การไม่ตั้งค่านโยบายจะเชื่อมต่อ <ph name="PRODUCT_NAME" /> กับอุปกรณ์แคสต์เฉพาะในที่อยู่ RFC1918/RFC4193 เท่านั้น เว้นเสียแต่ว่ามีการเปิดใช้ฟีเจอร์ CastAllowAllIPs</translation> <translation id="489803897780524242">พารามิเตอร์ที่ควบคุมตำแหน่งข้อความค้นหาสำหรับผู้ให้บริการค้นหาในค่าเริ่มต้น</translation> <translation id="4899708173828500852">เปิดใช้ Google Safe Browsing</translation> -<translation id="4902163780937592202">เปิดใช้การรวมนโยบายรายการติดตั้งส่วนขยาย <ph name="EXTENSION_INSTALL_BLOCKLIST_POLICY_NAME" />, <ph name="EXTENSION_INSTALL_ALLOWLIST_POLICY_NAME" /> และ <ph name="EXTENSION_INSTALL_FORCELIST_POLICY_NAME" /> - - หากคุณเปิดใช้การตั้งค่านี้ ค่าจากนโยบายแพลตฟอร์มของเครื่อง นโยบายระบบคลาวด์ของเครื่อง และนโยบายแพลตฟอร์มของผู้ใช้จะรวมกันเป็นรายการเดียว และระบบจะใช้รายการนี้ทั้งรายการแทนที่จะใช้เฉพาะค่าจากแหล่งที่มาแห่งเดียวที่มีลำดับความสำคัญสูงสุด - - หากคุณปิดใช้การตั้งค่านี้หรือไม่ได้ตั้งค่า ระบบจะใช้เฉพาะรายการจากแหล่งที่มาที่มีลำดับความสำคัญสูงสุด และแหล่งที่มาอื่นๆ ทั้งหมดจะแสดงเป็นความขัดแย้งแต่ระบบจะไม่สนใจ</translation> <translation id="4906194810004762807">อัตราการรีเฟรชสำหรับนโยบายอุปกรณ์</translation> <translation id="4917385247580444890">แรง</translation> <translation id="4919122295221518724">เปิดใช้การดูแลที่เข้มงวดขึ้นสำหรับเนื้อหาผสม</translation> @@ -2842,6 +2878,22 @@ หากตั้งค่านโยบายนี้เป็น "บังคับให้ลงชื่อเข้าใช้เบราว์เซอร์" ระบบจะแสดงกล่องโต้ตอบการเลือกบัญชีและบังคับให้ผู้ใช้ต้องเลือกลงชื่อเข้าใช้บัญชีเพื่อที่จะใช้เบราว์เซอร์ ในกรณีของบัญชีที่จัดการ วิธีนี้ช่วยให้แน่ใจว่าจะมีการใช้งานและบังคับใช้นโยบายที่เกี่ยวข้องกับบัญชีนั้น การตั้งค่าดังกล่าวจะเปิดฟีเจอร์การซิงค์ของ Chrome สำหรับบัญชีนั้นไว้โดยค่าเริ่มต้น ยกเว้นกรณีที่ผู้ดูแลระบบโดเมนปิดใช้การซิงค์หรือการซิงค์ถูกปิดผ่านทางนโยบาย "SyncDisabled" ค่าเริ่มต้นของ BrowserGuestModeEnabled จะตั้งไว้เป็น "เท็จ" โปรดทราบว่าโปรไฟล์ที่ไม่ได้ลงชื่อเข้าใช้ที่มีอยู่จะถูกล็อกและเข้าถึงไม่ได้หลังจากเปิดใช้นโยบายนี้แล้ว ดูข้อมูลเพิ่มเติมได้จากบทความในศูนย์ช่วยเหลือที่ https://support.google.com/chrome/a/answer/7572556 ตัวเลือกนี้ใช้กับ Linux และ Android ไม่ได้และจะเปลี่ยนกลับไปเป็น "เปิดใช้การลงชื่อเข้าใช้เบราว์เซอร์" หากมีการใช้ตัวเลือกนี้ หากไม่ได้ตั้งค่านโยบายนี้ ผู้ใช้จะตัดสินใจเองได้ว่าจะเปิดใช้ตัวเลือกการลงชื่อเข้าใช้เบราว์เซอร์หรือไม่ และใช้งานได้ตามที่เห็นสมควร</translation> +<translation id="5327325901414715560">จัดเตรียมการกำหนดค่าสำหรับเครื่องพิมพ์องค์กรที่เชื่อมโยงกับอุปกรณ์ + + นโยบายนี้ให้คุณระบุการกำหนดค่าเครื่องพิมพ์ให้แก่อุปกรณ์ <ph name="PRODUCT_OS_NAME" /> รูปแบบจะเหมือนกับพจนานุกรม NativePrinters แต่มีช่อง "id" หรือ "guid" ที่จำเป็นต้องกรอกเพิ่มเข้ามาสำหรับเครื่องพิมพ์แต่ละเครื่องเพื่อใช้ระบุว่าอยู่ในรายการที่อนุญาตหรือไม่อนุญาต + + ไฟล์ต้องมีขนาดไม่เกิน 5 MB และต้องเข้ารหัสเป็น JSON ไฟล์ที่ระบุเครื่องพิมพ์ประมาณ 21,000 เครื่องคาดว่าจะเข้ารหัสได้เป็นไฟล์ขนาด 5 MB 1 ไฟล์ และจะใช้แฮชแบบเข้ารหัสเพื่อยืนยันความสมบูรณ์ของการดาวน์โหลด + + ระบบจะดาวน์โหลดและเก็บแคชของไฟล์ไว้ แล้วจะดาวน์โหลดอีกครั้งเมื่อ URL หรือแฮชมีการเปลี่ยนแปลง + + หากตั้งค่านโยบายนี้ <ph name="PRODUCT_OS_NAME" /> จะดาวน์โหลดไฟล์สำหรับการกำหนดค่าเครื่องพิมพ์และทำให้เครื่องพิมพ์พร้อมใช้งานโดยสอดคล้องกับ <ph name="DEVICE_PRINTERS_ACCESS_MODE_POLICY_NAME" />, <ph name="DEVICE_PRINTERS_ALLOWLIST_POLICY_NAME" /> และ <ph name="DEVICE_PRINTERS_BLOCKLIST_POLICY_NAME" /> + + นโยบายนี้ไม่มีผลต่อความสามารถของผู้ใช้ในการกำหนดค่าเครื่องพิมพ์ในอุปกรณ์ใดๆ แต่เป็นเพียงนโยบายเพิ่มเติมสำหรับการกำหนดค่าเครื่องพิมพ์ของผู้ใช้แต่ละราย + + นโยบายนี้เป็นส่วนเพิ่มเติมของ <ph name="PRINTERS_BULK_CONFIGURATION_POLICY_NAME" /> + + หากไม่ได้ตั้งค่านโยบายนี้ จะไม่มีเครื่องพิมพ์สำหรับอุปกรณ์และระบบจะเพิกเฉยต่อนโยบาย <ph name="DEVICE_PRINTERS_POLICY_PATTERN" /> อื่นๆ + </translation> <translation id="532848608876725157">เปิดใช้โหมด DNS-over-HTTPS ที่มีการถอยหลังกลับที่ไม่ปลอดภัย</translation> <translation id="5329007337159326804">คำเตือน: เราจะนำนโยบาย TLS เวอร์ชันสูงสุดออกจาก <ph name="PRODUCT_NAME" /> ทั้งหมดประมาณเวอร์ชัน 75 (ช่วงเดือนมิถุนายน 2019) @@ -2979,7 +3031,6 @@ การตั้งค่านโยบายเป็น "เท็จ" ป้องกันไม่ให้ <ph name="PRODUCT_NAME" /> แสดงข้อมูลผลิตภัณฑ์เป็นเนื้อหาแบบเต็มแท็บ การตั้งค่านโยบายจะเป็นการควบคุมการนำเสนอหน้ายินดีต้อนรับซึ่งช่วยให้ผู้ใช้ลงชื่อเข้าใช้ <ph name="PRODUCT_NAME" />, กำหนดให้ <ph name="PRODUCT_NAME" /> เป็นเบราว์เซอร์เริ่มต้นของผู้ใช้ หรือให้ข้อมูลเกี่ยวกับฟีเจอร์ของผลิตภัณฑ์</translation> -<translation id="5447306928176905178">เปิดการรายงานข้อมูลหน่วยความจำ (JS ขนาดใหญ่) บนหน้า (กำหนดให้เลิกใช้แล้ว)</translation> <translation id="5450893456912604446">กำหนดค่า URL ของหน้าแรกเริ่มต้นใน <ph name="PRODUCT_NAME" /> และป้องกันไม่ให้ผู้ใช้เปลี่ยนหน้าดังกล่าว หน้าแรกคือหน้าที่เปิดโดยปุ่ม "หน้าแรก" หน้าที่เปิดขึ้นเมื่อเปิดเบราว์เซอร์บนเดสก์ท็อปจะควบคุมด้วยนโยบาย RestoreOnStartup @@ -3401,6 +3452,12 @@ <ph name="PRODUCT_NAME" /> จะจัดการเนื้อหาของไดเรกทอรีรูทของวอลุ่ม ดังนั้นเพื่อหลีกเลี่ยงการสูญหายของข้อมูลหรือข้อผิดพลาดอื่นๆ โปรดอย่าตั้งค่านโยบายนี้เป็นไดเรกทอรีรูทหรือไดเรกทอรีอื่นที่ใช้สำหรับวัตถุประสงค์อื่นๆ ดูตัวแปรที่คุณใช้ได้ ( https://www.chromium.org/administrators/policy-list-3/user-data-directory-variables )</translation> <translation id="6083631234867522991">Windows (ไคลเอ็นต์ของ Windows):</translation> +<translation id="6086225644749063677">ระบุเครื่องพิมพ์ที่ผู้ใช้ใช้งานได้ + + ใช้นโยบายนี้ต่อเมื่อเลือก <ph name="PRINTERS_ALLOWLIST" /> สำหรับ <ph name="DEVICE_PRINTERS_ACCESS_MODE_POLICY_NAME" /> เท่านั้น + + ถ้าใช้นโยบายนี้ ผู้ใช้จะใช้งานได้เฉพาะเครื่องพิมพ์ที่มีรหัสตรงกับค่าในนโยบาย รหัสดังกล่าวต้องตรงกับช่อง "id" หรือ "guid" ในไฟล์ที่ระบุใน <ph name="DEVICE_PRINTERS_POLICY_NAME" /> + </translation> <translation id="608788685013546076">กำหนดเกณฑ์ระดับแบตเตอรี่สำหรับโหมดพาวเวอร์พีคชิฟต์เป็นเปอร์เซ็นต์</translation> <translation id="6089679180657323464">ควบคุมการตั้งค่าตัวควบคุมการวินิจฉัยและการวัดและส่งข้อมูลทางไกลของ Wilco</translation> <translation id="6091233616732024397">บังคับให้ผู้ใช้ลงชื่อเข้าใช้เพื่อใช้เบราว์เซอร์</translation> @@ -3890,6 +3947,11 @@ โปรดทราบว่าผู้ใช้จะยังเข้าถึงบริการต่างๆ ของ Google ในสถานะที่ไม่ผ่านการรับรองได้ด้วยการบล็อกคุกกี้</translation> <translation id="6843296367238757293">นโยบายนี้เลิกใช้งานแล้ว เราไม่แนะนำให้ใช้นโยบายนี้ อ่านเพิ่มเติมที่ https://support.google.com/chrome/a/answer/7643500</translation> +<translation id="6846126863870444592">นโยบายนี้ระบุส่วนขยายที่อนุญาตให้ข้ามกล่องโต้ตอบการยืนยันงานพิมพ์เมื่อส่วนขยายนั้นใช้ฟังก์ชัน <ph name="SUBMIT_JOB_FUNCTION" /> ของ <ph name="PRINTING_API" /> เพื่อส่งงานพิมพ์ + + หากส่วนขยายใดไม่อยู่ในรายการหรือไม่ได้ตั้งค่ารายการไว้ ระบบจะแสดงกล่องโต้ตอบการยืนยันงานพิมพ์ให้ผู้ใช้เห็นทุกครั้งที่มีการเรียกใช้ฟังก์ชัน <ph name="SUBMIT_JOB_FUNCTION" /> + + นโยบายนี้เลิกใช้งานไปแล้ว โปรดใช้ <ph name="PRINTING_API_EXTENSIONS_ALLOWLIST_POLICY_NAME" /> แทน</translation> <translation id="684856667300805181">เราได้นำนโยบายนี้ออกจาก <ph name="PRODUCT_NAME" /> 68 และใช้ <ph name="ARC_GLS_POLICY_NAME" /> แทน</translation> <translation id="6851199885688265233">เปิดใช้ฟีเจอร์การช่วยเหลือพิเศษสำหรับการไฮไลต์เคอร์เซอร์</translation> <translation id="6851315055469993882">เปิดใช้แคชการตรวจสอบสิทธิ์ HTTP ที่มีขอบเขตทั่วไป</translation> @@ -3909,11 +3971,6 @@ หากไม่ได้ตั้งค่านโยบายนี้ ทั้งผู้ใช้ที่มีองค์กรเป็นผู้จัดการและผู้ใช้ที่ไม่มีการจัดการจะใช้ค่าเริ่มต้นได้</translation> <translation id="6864244339257535116">อนุญาตทั้งการอัปโหลดและการดาวน์โหลดไฟล์ที่ป้องกันด้วยรหัสผ่าน</translation> -<translation id="687046793986382807">นโยบายนี้เลิกใช้งานแล้วนับตั้งแต่ <ph name="PRODUCT_NAME" /> เวอร์ชัน 35 - - อย่างไรก็ตาม ข้อมูลหน่วยความจำจะได้รับการรายงานบนหน้า ไม่ว่าค่าของตัวเลือกจะเป็นอย่างไร แต่ขนาดที่รายงาน - จะได้รับการแบ่งนับและมีการจำกัดอัตราของการอัปเดตเนื่องด้วยเหตุผลด้านความปลอดภัย หากต้องการได้ข้อมูลที่แม่นยำแบบเรียลไทม์ - โปรดใช้เครื่องมืออย่างเช่น การวัดและส่งข้อมูลทางไกล</translation> <translation id="68798513449385583">ถ่วงเวลาการดาวน์โหลดจนกว่าจะรู้คำตัดสินเรื่องการสแกน</translation> <translation id="6889123056995503704">ผู้ใช้จะเป็นผู้ตัดสินใจเลือกลักษณะการทำงานของการดาวน์เกรดเวอร์ชัน</translation> <translation id="6894178810167845842">URL หน้าแท็บใหม่</translation> @@ -3946,6 +4003,13 @@ <translation id="6907778402784621686">บล็อกเนื้อหาที่ไม่ปลอดภัยในเว็บไซต์เหล่านี้</translation> <translation id="6908640907898649429">กำหนดค่าผู้ให้บริการการค้นหาเริ่มต้น คุณสามารถระบุผู้ให้บริการการค้นหาเริ่มต้นที่ผู้ใช้จะใช้หรือเลือกปิดใช้งานการค้นหาเริ่มต้น</translation> <translation id="6913068954484253496">อนุญาตให้ <ph name="PRODUCT_NAME" /> เชื่อมต่อกับอุปกรณ์แคสต์ในที่อยู่ IP ทั้งหมด</translation> +<translation id="6916817094593836501">นโยบายนี้จะป้องกันไม่ให้แสดงคำเตือน URL ที่เหมือนกันบนเว็บไซต์ที่ระบุไว้ คำเตือนเหล่านี้จะแสดงเป็นปกติบนเว็บไซต์ที่ <ph name="PRODUCT_NAME" /> เชื่อว่าอาจกำลังพยายามปลอมแปลงเว็บไซต์อื่นที่ผู้ใช้คุ้นเคย + + หากเปิดใช้นโยบายและตั้งค่าให้ใช้กับหนึ่งโดเมนขึ้นไป จะไม่มีการแสดงคำเตือนหน้าที่เหมือนกันเมื่อผู้ใช้เข้าชมหน้าเว็บไซต์บนโดเมนนั้น + + หากไม่ได้เปิดใช้นโยบาย ไม่ได้ตั้งค่า หรือตั้งค่าให้ใช้กับรายการที่ว่างเปล่า คำเตือนอาจปรากฎขึ้นบนหน้าเว็บไซต์ที่ผู้ใช้เข้าชม + + อนุญาตชื่อโฮสต์ที่ตรงกับโฮสต์ทุกประการหรือตรงกับโดเมนใดๆ ก็ได้ ตัวอย่างเช่น URL อย่าง "https://foo.example.com/bar" อาจระงับคำเตือนหากมี "foo.example.com" หรือ "example.com" อยู่ในรายการ</translation> <translation id="6922884955650325312">บล็อกปลั๊กอิน <ph name="FLASH_PLUGIN_NAME" /></translation> <translation id="6923731550900440989">เปิดใช้ฟีเจอร์การไฮไลต์เคอร์เซอร์ข้อความในหน้าจอการเข้าสู่ระบบ</translation> <translation id="6924223708804692571">บังคับให้ปิดใช้การตรวจตัวสะกดของภาษาต่างๆ ระบบจะไม่สนใจภาษาที่ไม่รู้จักในรายการนั้น @@ -4695,7 +4759,6 @@ <translation id="793134539373873765">ระบุว่าจะใช้ p2p สำหรับส่วนข้อมูลการอัปเดต OS ไหม หากตั้งค่าเป็น "จริง" อุปกรณ์จะแชร์และพยายามรับส่วนข้อมูลการอัปเดตบน LAN ซึ่งอาจลดแบนด์วิดท์และความคับคั่งในอินเทอร์เน็ต หากส่วนข้อมูลการอัปเดตไม่พร้อมใช้งานบน LAN อุปกรณ์จะกลับไปใช้การดาวน์โหลดจากเซิร์ฟเวอร์การอัปเดต หากตั้งค่าเป็น "เท็จ" หรือไม่กำหนดค่า p2p จะไม่ถูกใช้งาน</translation> <translation id="7933141401888114454">เปิดใช้งานการสร้างผู้ใช้ภายใต้การดูแล</translation> <translation id="793473937901685727">ตั้งค่าความพร้อมใช้งานของใบรับรองสำหรับแอป ARC</translation> -<translation id="7937491150792971922">รวมนโยบายรายการการติดตั้งส่วนขยายจากแหล่งที่มาหลายๆ แห่ง</translation> <translation id="7937766917976512374">อนุญาตหรือปฏิเสธการจับวิดีโอ</translation> <translation id="7941975817681987555">อย่าคาดการณ์การทำงานของเครือข่ายจากการเชื่อมต่อเครือข่ายใดๆ</translation> <translation id="7951605113561734721">ระบุใบรับรองไคลเอ็นต์ระดับอุปกรณ์ที่ต้องลงทะเบียนโดยใช้โปรโตคอลการจัดการอุปกรณ์</translation> @@ -4716,6 +4779,9 @@ <translation id="7953256619080733119">โฮสต์ข้อยกเว้นแบบกำหนดเองของผู้ใช้ที่ได้รับการจัดการ</translation> <translation id="7956210013490975468">กำหนดค่าบริการพร็อกซีของระบบสำหรับ <ph name="PRODUCT_OS_NAME" /></translation> <translation id="7958537754689366707">ต้องป้อนรหัสผ่านทุก 12 ชั่วโมง</translation> +<translation id="7960293328203000385">กำหนดรายชื่อผู้ใช้ที่ได้รับอนุญาตให้เข้าสู่ระบบอุปกรณ์โดยใช้รูปแบบ <ph name="USER_ALLOWLIST_ENTRY_FORMAT" /> เช่น <ph name="USER_ALLOWLIST_ENTRY_EXAMPLE" /> หากต้องการอนุญาตผู้ใช้ใดก็ได้ในโดเมน ให้ใช้รูปแบบ <ph name="USER_ALLOWLIST_ENTRY_WILDCARD" /> + + หากไม่กำหนดค่านโยบายนี้ ก็จะไม่มีการจำกัดผู้ใช้ที่ได้รับอนุญาตให้ลงชื่อเข้าใช้ โปรดทราบว่าการสร้างผู้ใช้ใหม่ยังคงต้องมีการกำหนดค่าของนโยบาย <ph name="DEVICE_ALLOW_NEW_USERS_POLICY_NAME" /> อย่างเหมาะสม</translation> <translation id="7961779417826583251">ปิดการบังคับใช้ความโปร่งใสของใบรับรองสำหรับรายการผู้ออกใบรับรองเดิม</translation> <translation id="7973609468423251675">โปรดทราบว่าจะมีการเลิกใช้งานและนำนโยบายนี้ออกใน <ph name="PRODUCT_OS_NAME" /> เวอร์ชัน 85 โปรดใช้ <ph name="POWER_MANAGEMENT_IDLE_SETTINGS_POLICY_NAME" /> แทน
diff --git a/components/policy/resources/policy_templates_tr.xtb b/components/policy/resources/policy_templates_tr.xtb index 3ec20162..2de600bf 100644 --- a/components/policy/resources/policy_templates_tr.xtb +++ b/components/policy/resources/policy_templates_tr.xtb
@@ -1295,11 +1295,6 @@ Not: Bu politika, <ph name="IE_PRODUCT_NAME" /> tarayıcısının <ph name="IEEM_SITELIST_POLICY" /> politikasıyla aynı biçimde bir XML dosyasına yönlendirir. Bu politika, bir XML dosyasından kurallar yükler, ancak bu kuralları <ph name="IE_PRODUCT_NAME" /> ile paylaşmaz. <ph name="IE_PRODUCT_NAME" /> tarayıcısının <ph name="IEEM_SITELIST_POLICY" /> politikası hakkında daha fazla bilgi edinin ( https://docs.microsoft.com/internet-explorer/ie11-deploy-guide/what-is-enterprise-mode)</translation> <translation id="2952347049958405264">Kısıtlamalar:</translation> -<translation id="2956777931324644324">Bu politika, <ph name="PRODUCT_NAME" /> 36. sürümü itibariyle geri çekilmiştir. - - TLS alan adına bağlı sertifikalar uzantısının etkinleştirilip etkinleştirilmeyeceğini belirtir. - - Bu ayar TLS alan adına bağlı sertifikalar uzantısını test etme amacıyla etkinleştirmek için kullanılır. Bu deneysel ayar, gelecekte kaldırılacaktır.</translation> <translation id="2957047180944828740">Güvenli olmayan web sitelerinin, daha özel ağ uç noktalarına istekte bulunmasına izin verilip verilmeyeceğini belirtir</translation> <translation id="2957506574938329824">Hiçbir sitenin Web Bluetooth API'sı aracılığıyla Bluetooth hizmetlerine erişim istemesine izin verme</translation> <translation id="2957513448235202597"><ph name="HTTP_NEGOTIATE" /> kimlik doğrulaması için hesap türü</translation> @@ -1840,7 +1835,6 @@ Bu politika ayarlanmadan bırakılırsa, varsayılan olarak kuruluş tarafından yönetilen kullanıcılara izin verilmezken, yönetilmeyen kullanıcılara izin verilir.</translation> <translation id="3803171355925844705">Hiçbir sitenin engellenebilir karma içerik yüklemesine izin verme</translation> -<translation id="3805659594028420438">TLS alan adına bağlı sertifikalar uzantısını etkinleştir (kullanımdan kaldırıldı)</translation> <translation id="3808945828600697669">Devre dışı bırakılan eklentilerin listesini belirt</translation> <translation id="3810642039169532482">Giriş ekranında dikte erişilebilirlik özelliğini etkinleştirin. @@ -2554,11 +2548,6 @@ Politika ayarlanmadan bırakılırsa <ph name="PRODUCT_NAME" /> yalnızca RFC1918/RFC4193 adreslerinde yayın cihazlarına bağlanır (CastAllowAllIPs özelliği açılmazsa).</translation> <translation id="489803897780524242">Varsayılan arama sağlayıcısı için arama terimi yerleştirmeyi kontrol eden parametre</translation> <translation id="4899708173828500852">Güvenli Taramayı etkinleştir</translation> -<translation id="4902163780937592202"><ph name="EXTENSION_INSTALL_BLOCKLIST_POLICY_NAME" />, <ph name="EXTENSION_INSTALL_ALLOWLIST_POLICY_NAME" /> ve <ph name="EXTENSION_INSTALL_FORCELIST_POLICY_NAME" /> uzantı yükleme listesi politikalarının birleştirilmesini sağlar. - - Bu ayarı etkinleştirirseniz makine platformu politikası, makine bulutu politikası ve kullanıcı platformu politikası değerleri tek bir listede birleştirilir ve sadece en yüksek önceliğe sahip tek kaynaktan alınan değerleri kullanmak yerine bir bütün olarak kullanılır. - - Bu ayarı devre dışı veya ayarlanmamış olarak bırakırsanız sadece en yüksek önceliğe sahip kaynağın liste girişleri alınır, diğer tüm kaynaklar uyuşmazlık olarak gösterilerek yoksayılır.</translation> <translation id="4906194810004762807">Aygıt Politikası için yenileme hızı</translation> <translation id="4917385247580444890">Güçlü</translation> <translation id="4919122295221518724">Karma içeriğin işlenmesini daha sıkı hale getir</translation> @@ -3006,7 +2995,6 @@ Politikayı False (Yanlış) değerine ayarlamak, <ph name="PRODUCT_NAME" /> ürününün ürün bilgilerini tam sekme içeriği olarak göstermesini önler. Bu politika, kullanıcıların <ph name="PRODUCT_NAME" /> ürününde oturum açmalarına, <ph name="PRODUCT_NAME" /> ürününü kullanıcının varsayılan tarayıcısı olarak ayarlamasına veya ürün özellikleriyle ilgili diğer bilgileri almalarına yardımcı olan karşılama sayfalarının sunulmasını kontrol eder.</translation> -<translation id="5447306928176905178">Bellek bilgilerini (JS yığın boyutu) sayfada raporlamayı etkinleştir (kullanımdan kaldırıldı)</translation> <translation id="5450893456912604446"><ph name="PRODUCT_NAME" /> ürününde varsayılan ana sayfa URL'sini yapılandırır ve kullanıcıların bu ayarı değiştirmesini önler. Ana sayfa, Ana Sayfa düğmesine basıldığında açılan sayfadır. Masaüstünde, başlangıçta açılan sayfalar RestoreOnStartup politikalarıyla kontrol edilir. @@ -3937,11 +3925,6 @@ Bu politika ayarlanmadan bırakılırsa hem kurumsal olarak yönetilen kullanıcılar hem de yönetilmeyen kullanıcılar için varsayılana izin verilir.</translation> <translation id="6864244339257535116">Şifre korumalı dosyaların hem yüklenmesine hem de indirilmesine izin ver</translation> -<translation id="687046793986382807">Bu politika, <ph name="PRODUCT_NAME" /> sürüm 35 itibarı ile kullanımdan kaldırılmıştır. - - Bellek bilgisi, seçenek değerinden bağımsız olarak her şekilde sayfada raporlanır, ancak - raporlanan boyutlar sayısal hale getirilir ve güncelleme hızı güvenlik nedeniyle sınırlanır. Gerçek zamanlı - doğru veriler edinmek için lütfen Telemetry gibi araçlar kullanın.</translation> <translation id="68798513449385583">Tarama sonucu öğrenilene kadar indirilenleri ertele</translation> <translation id="6889123056995503704">Kanal sürümü değiştirme davranışına kullanıcı karar verir</translation> <translation id="6894178810167845842">Yeni Sekme sayfasının URL'si</translation> @@ -4354,7 +4337,7 @@ Dosya indirilir ve önbelleğe alınır. URL veya karma her değiştiğinde bu tekrar indirilir. - Bu politika ayarlanmazsa <ph name="PRODUCT_OS_NAME" /> dosyayı yazıcı yapılandırmaları için indirecektir ve yazıcıları<ph name="BULK_PRINTERS_ACCESS_MODE_POLICY_NAME" />, <ph name="BULK_PRINTERS_WHITELIST" />, ve <ph name="BULK_PRINTERS_BLACKLIST" /> uyarınca kullanılabilir hale getirecektir. + Bu politika ayarlanmazsa <ph name="PRODUCT_OS_NAME" /> dosyayı yazıcı yapılandırmaları için indirecektir ve yazıcıları <ph name="BULK_PRINTERS_ACCESS_MODE_POLICY_NAME" />, <ph name="BULK_PRINTERS_WHITELIST" /> ve <ph name="BULK_PRINTERS_BLACKLIST" /> uyarınca kullanılabilir hale getirecektir. Bu politikayı ayarlarsanız kullanıcılar değiştiremez veya geçersiz kılamaz. @@ -4728,7 +4711,6 @@ <translation id="793134539373873765">OS güncelleme yükleri için p2p'nin kullanılıp kullanılmayacağını belirtir. Doğru seçeneğine ayarlanırsa, cihazlar LAN üzerindeki yükleri paylaşır ve kullanmaya çalışır, bu da İnternet bant genişliği kullanımını ve tıkanıklığını potansiyel olarak azaltır. Güncelleme yükü LAN'da kullanılamıyorsa, cihaz bir güncelleme sunucusundan indirme işlemine geçer. Yanlış seçeneğine ayarlanırsa veya yapılandırılmazsa p2p kullanılmaz.</translation> <translation id="7933141401888114454">Denetlenen kullanıcılar oluşturmayı etkinleştir</translation> <translation id="793473937901685727">ARC uygulamaları için sertifika kullanılabilirliğini ayarla</translation> -<translation id="7937491150792971922">Uzantı yükleme listesi politikalarını birden çok kaynaktan birleştir</translation> <translation id="7937766917976512374">Video yakalamaya izin verme veya reddetme</translation> <translation id="7941975817681987555">Ağ bağlantılarında ağ işlemlerini tahmin etme</translation> <translation id="7951605113561734721">Cihaz yönetim protokolü kullanılarak kaydolunması gereken, cihaz genelinde istemci sertifikalarını belirtir.</translation>
diff --git a/components/policy/resources/policy_templates_uk.xtb b/components/policy/resources/policy_templates_uk.xtb index e01790b..bf78741 100644 --- a/components/policy/resources/policy_templates_uk.xtb +++ b/components/policy/resources/policy_templates_uk.xtb
@@ -374,6 +374,12 @@ <translation id="1561967320164410511">Автентифікація U2F і розширення для особистого підтвердження</translation> <translation id="1575015449587326319">Правило для налаштування конектора Chrome Enterprise OnFileDownloaded</translation> <translation id="1583248206450240930">Використовувати <ph name="PRODUCT_FRAME_NAME" /> за умовчанням</translation> +<translation id="1587671452159346389">Контролює те, які принтери з правила <ph name="DEVICE_PRINTERS_POLICY_NAME" /> доступні для користувачів. + + Указує, яке правило доступу діє для групового налаштування принтерів. Якщо вибрано значення <ph name="PRINTERS_ALLOW_ALL" />, видно всі принтери. Якщо вибрано значення <ph name="PRINTERS_BLOCKLIST" />, правило <ph name="DEVICE_PRINTERS_BLOCKLIST_POLICY_NAME" /> обмежує доступ до певних принтерів. Якщо вибрано значення <ph name="PRINTERS_ALLOWLIST" />, правило <ph name="DEVICE_PRINTERS_ALLOWLIST_POLICY_NAME" /> надає доступ лише до тих принтерів, які можна вибрати. + + Якщо правило не налаштовано, застосовується значення <ph name="PRINTERS_ALLOW_ALL" />. + </translation> <translation id="1588240398285670601">Налаштування веб-переглядача</translation> <translation id="1588456836529393506">Налаштувавши це правило, ви зможете вказати список шаблонів URL-адрес, що визначають сайти, які автоматично отримують дозвіл на доступ до пристроїв USB з певними ідентифікаторами постачальника й продукту. Щоб це правило було дійсним, кожний елемент списку має містити пристрої та URL-адреси. Кожний елемент на пристрої може містити поля для ідентифікаторів постачальника й продукту. Будь-який пропущений ідентифікатор вважається символом підстановки. Винятком є випадок, коли ідентифікатор продукту не можна вказати без ідентифікатора постачальника. Інакше правило буде недійсним. @@ -1107,6 +1113,22 @@ Якщо це правило деактивовано, такі застереження не з'являються. У <ph name="MS_WIN_NAME" /> ця функція доступна лише для Windows 10 Pro або версій, зареєстрованих у домені <ph name="MS_AD_NAME" /> чи в Керуванні хмарними сервісами для веб-переглядача Chrome. У <ph name="MAC_OS_NAME" /> ця функція доступна лише для версій, у яких працює додаток Керування мобільними пристроями або які зареєстровано в домені через MCX.</translation> +<translation id="2621383458880689826">Надає налаштування принтерів підприємства, які зв'язані з пристроями. + + Це правило дає змогу вказати налаштування принтера для пристроїв <ph name="PRODUCT_OS_NAME" />. Формат збігається зі словником NativePrinters, але з обов'язковим додатковим полем "id" або "guid" для кожного принтера, який додається в білий чи чорний список. + + Розмір файлу не може перевищувати 5 МБ, а його кодування має бути у форматі JSON. Файл розміром 5 МБ містить приблизно 21 000 принтерів. Криптографічний хеш використовується для перевірки цілісності завантаження. + + Файл завантажується й додається в кеш. Якщо URL-адреса або хеш змінюються, файл завантажується повторно. + + Якщо це правило налаштовано, <ph name="PRODUCT_OS_NAME" /> завантажуватиме файл для налаштування принтерів і надаватиме доступ до принтерів відповідно до правил <ph name="DEVICE_NATIVE_PRINTERS_ACCESS_MODE" />, <ph name="DEVICE_NATIVE_PRINTERS_WHITELIST_POLICY_NAME" /> і <ph name="DEVICE_NATIVE_PRINTERS_BLACKLIST_POLICY_NAME" />. + + Це правило не впливає на здатність користувачів налаштовувати принтери для окремих пристроїв. Воно доповнює такі налаштування. + + Це правило доповнює <ph name="BULK_PRINTERS_POLICY_NAME" />. + + Якщо це правило не налаштовано, не буде принтерів для окремих пристроїв, а інші правила <ph name="DEVICE_NATIVE_PRINTERS_POLICY_PATTERN" /> ігноруватимуться. + </translation> <translation id="2623014935069176671">Чекати на першу дію користувача</translation> <translation id="262740370354162807">Дозволяє надсилати документи в службу <ph name="CLOUD_PRINT_NAME" /></translation> <translation id="2632538643061793322">Налаштувавши це правило, ви зможете вказати список шаблонів URL-адрес, що визначають сайти, які можуть запитувати дозвіл на доступ до пристрою USB. @@ -1133,6 +1155,7 @@ Якщо це правило не налаштовано, функція синхронізації буде доступна лише користувачам, якими не керує адміністратор.</translation> <translation id="2660846099862559570">Ніколи не використовувати проксі-сервер</translation> +<translation id="2664682171745499686">Блокувати попередження про схожі домени на сторінках певних доменів</translation> <translation id="2665422249821137126">Увімкнути великий курсор на екрані входу</translation> <translation id="2672012807430078509">Указує, чи можна вмикати NTLM як протокол автентифікації для підключення SMB</translation> <translation id="2678503605767349615">Обов'язкові сертифікати клієнтів на рівні пристрою</translation> @@ -1272,6 +1295,12 @@ Якщо це правило ввімкнено, у режимі попереднього перегляду друку використовуватиметься принтер операційної системи за умовчанням.</translation> <translation id="285627849510728211">Налаштувати режим покращеного заряджання акумулятора для кожного дня</translation> <translation id="2856674246949497058">Відкочуватися до цільової версії та використовувати її, якщо версія ОС новіша. Під час процедури виконується Powerwash.</translation> +<translation id="2869140260739354012">Контролює те, які принтери з правила <ph name="DEVICE_PRINTERS_POLICY" /> доступні для користувачів. + + Указує, яке правило доступу діє для групового налаштування принтерів. Якщо вибрано значення <ph name="PRINTERS_ALLOW_ALL" />, видно всі принтери. Якщо вибрано значення <ph name="PRINTERS_BLACKLIST" />, правило <ph name="DEVICE_NATIVE_PRINTERS_BLACKLIST" /> обмежує доступ до певних принтерів. Якщо вибрано значення <ph name="PRINTERS_WHITELIST" />, правило <ph name="DEVICE_NATIVE_PRINTERS_WHITELIST" /> надає доступ лише до тих принтерів, які можна вибрати. + + Якщо правило не налаштовано, застосовується значення <ph name="PRINTERS_ALLOW_ALL" />. + </translation> <translation id="2869762730352628426">Увімкнути функцію "Автоклік" на екрані входу</translation> <translation id="2872961005593481000">Завершити роботу</translation> <translation id="2874209944580848064">Примітка для пристроїв <ph name="PRODUCT_OS_NAME" />, які підтримують додатки Android.</translation> @@ -1313,11 +1342,6 @@ Примітка: це правило вказує на файл XML у тому ж форматі, що й правило <ph name="IEEM_SITELIST_POLICY" /> в <ph name="IE_PRODUCT_NAME" />. Воно завантажує правила з файлу XML, не надсилаючи їх в <ph name="IE_PRODUCT_NAME" />. Докладніше про правило <ph name="IEEM_SITELIST_POLICY" /> в <ph name="IE_PRODUCT_NAME" /> читайте на сторінці https://docs.microsoft.com/internet-explorer/ie11-deploy-guide/what-is-enterprise-mode</translation> <translation id="2952347049958405264">Обмеження:</translation> -<translation id="2956777931324644324">Це правило не підтримується від 36-ї версії <ph name="PRODUCT_NAME" />. - - Указує, чи вмикати розширення пов’язаних із доменом сертифікатів TLS. - - Це налаштування використовується, щоб вмикати розширення пов’язаних із доменом сертифікатів TLS для тестування. Це експериментальне налаштування буде видалено згодом.</translation> <translation id="2957047180944828740">Визначає, чи можуть незахищені веб-сайти надсилати запити більш приватним кінцевим точкам мережі</translation> <translation id="2957506574938329824">Заборонити всім сайтам запитувати доступ до пристроїв Bluetooth через API Web Bluetooth</translation> <translation id="2957513448235202597">Тип облікового запису для автентифікації <ph name="HTTP_NEGOTIATE" /></translation> @@ -1858,7 +1882,6 @@ Якщо це правило не налаштовано, спосіб входу за умовчанням буде доступний лише користувачам, якими не керує адміністратор.</translation> <translation id="3803171355925844705">Заборонити всім сайтам завантажувати змішаний контент</translation> -<translation id="3805659594028420438">Увімкнути розширення пов’язаних із доменом сертифікатів TLS (більше не підтримується)</translation> <translation id="3808945828600697669">Указати список вимкнених плагінів</translation> <translation id="3810642039169532482">Увімкнути спеціальну можливість "Диктування" на екрані входу. @@ -1888,6 +1911,12 @@ <translation id="3838094946886335701">Налаштувавши це правило (лише як рекомендоване), ви зможете зареєструвати список обробників протоколів, які об'єднуються з тими, що реєструє користувач, використовуючи обидва набори. Для властивості "protocol" потрібно вказати схему, як-от mailto, а для властивості "URL" – шаблон URL-адреси додатка, який обробляє схему, указану в полі "protocol". Шаблон може містити заповнювач "%s", який замінює оброблена URL-адреса. Користувачі не можуть видалити обробник протоколів, зареєстрований цим правилом. Проте, установивши новий обробник за умовчанням, вони зможуть змінити обробники протоколів, установлених правилом.</translation> +<translation id="3848118497246496090">Указує принтери, недоступні користувачеві. + + Це правило застосовується, лише якщо для <ph name="PRINTERS_BLACKLIST" /> вибрано значення <ph name="DEVICE_NATIVE_PRINTERS_ACCESS_MODE" />. + + Якщо це правило застосовується, користувачам недоступні лише принтери з переліченими в ньому ідентифікаторами. Ідентифікатори мають відповідати полю "id" або "guid" у файлі, указаному в правилі <ph name="DEVICE_PRINTERS_POLICY" />. + </translation> <translation id="3851039766298741586">Надсилати інформацію про активний сеанс термінала, як-от ідентифікатор і версію додатка. @@ -2028,6 +2057,12 @@ <translation id="3965339130942650562">Час очікування до виходу неактивного користувача</translation> <translation id="3973371701361892765">Ніколи автоматично не ховати полицю</translation> <translation id="3979738908158213640">URL-адреси, які зможуть засвідчувати пристрої під час автентифікації SAML</translation> +<translation id="3980024487013511975">Указує принтери, недоступні користувачеві. + + Це правило застосовується, лише якщо для <ph name="PRINTERS_BLOCKLIST" /> вибрано значення <ph name="DEVICE_PRINTERS_ACCESS_MODE_POLICY_NAME" />. + + Якщо це правило застосовується, користувачам недоступні лише принтери з переліченими в ньому ідентифікаторами. Ідентифікатори мають відповідати полю "id" або "guid" у файлі, указаному в правилі <ph name="DEVICE_PRINTERS_POLICY_NAME" />. + </translation> <translation id="3984028218719007910">Визначає, чи <ph name="PRODUCT_OS_NAME" /> зберігає локальні дані облікового запису після виходу. Якщо значення встановлено як "true", <ph name="PRODUCT_OS_NAME" /> не зберігає постійні облікові записи, а всі дані сеансу користувача будуть видалені після виходу. Якщо значення правила встановлено як "false" або правило не налаштовано, пристрій може зберігати (зашифровані) локальні дані користувача.</translation> <translation id="398884292557092447">Якщо для цього правила вибрано значення True або його не налаштовано, користувачі можуть керувати підказками автозаповнення даних кредитних карток в інтерфейсі. @@ -2235,6 +2270,12 @@ Якщо це правило не налаштовано, веб-сайти зможуть запитувати дозвіл, але користувачі матимуть можливість змінити цей параметр.</translation> <translation id="4285674129118156176">Надавати стороннім користувачам доступ до ARC</translation> +<translation id="4309562700894844665">Указує принтери, доступні користувачеві. + + Це правило застосовується, якщо для <ph name="DEVICE_NATIVE_PRINTERS_ACCESS_MODE" /> вибрано <ph name="PRINTERS_WHITELIST" /> + + Якщо це правило застосовується, користувачам доступні лише принтери з переліченими в ньому ідентифікаторами. Ідентифікатори мають відповідати полю "id" або "guid" у файлі, указаному в правилі <ph name="DEVICE_PRINTERS_POLICY" />. + </translation> <translation id="4311195029067684288">Full</translation> <translation id="4313767483634435271">Призначена пристрою MAC-адреса док-станції</translation> <translation id="4322842393287974810">Дозволити додатку-терміналу, який запускається автоматично та без затримки, керувати версією <ph name="PRODUCT_OS_NAME" /></translation> @@ -2565,11 +2606,6 @@ Якщо це правило не налаштовано, технологія <ph name="PRODUCT_NAME" /> підключається до пристроїв для трансляції лише за адресами RFC1918/RFC4193 (якщо функцію CastAllowAllIPs не ввімкнено).</translation> <translation id="489803897780524242">Параметр, який керує розташуванням пошукового терміна для пошукової системи за умовчанням</translation> <translation id="4899708173828500852">Увімкнути функцію безпечного перегляду</translation> -<translation id="4902163780937592202">Дає змогу об'єднати правила <ph name="EXTENSION_INSTALL_BLOCKLIST_POLICY_NAME" />, <ph name="EXTENSION_INSTALL_ALLOWLIST_POLICY_NAME" /> і <ph name="EXTENSION_INSTALL_FORCELIST_POLICY_NAME" /> зі списку встановлення розширень. - - Якщо цей параметр увімкнено, значення з правил платформи пристрою, хмари пристрою й платформи користувача об'єднуються в один список і діють разом (замість значень з одного джерела з найвищим пріоритетом). - - Якщо цей параметр вимкнений або неналаштований, беруться лише записи з джерела з найвищим пріоритетом, а всі інші джерела показуються як конфліктні й ігноруються.</translation> <translation id="4906194810004762807">Частота оновлення політики пристрою</translation> <translation id="4917385247580444890">Потужний</translation> <translation id="4919122295221518724">Увімкнути ретельнішу обробку змішаного контенту</translation> @@ -2885,6 +2921,22 @@ Якщо для правила вибрано значення "Force browser sign-in" (Примусовий вхід в обліковий запис у веб-переглядачі), на екрані з'являтиметься діалогове вікно з пропозицією вибрати обліковий запис і ввійти в нього, щоб користуватися веб-переглядачем. Цей варіант підходить для керованих облікових записів, оскільки забезпечує застосування правил, пов'язаних з окремими обліковими записами. Синхронізацію Chrome увімкнено в обліковому записі за умовчанням, окрім випадків, коли її вимкнув адміністратор домену або діє правило SyncDisabled. Для правила BrowserGuestModeEnabled за умовчанням буде вибрано значення False. Зверніть увагу, що після ввімкнення цього правила наявні профілі, у які не виконано вхід, буде заблоковано. Докладніше читайте в цій довідковій статті: https://support.google.com/chrome/a/answer/7572556. Ця функція не підтримується в Linux і Android, тому в ній буде застосоване значення "Enable browser sign-in" (Увімкнути вхід в обліковий запис у веб-переглядачі). Якщо це правило не налаштовано, користувач зможе самостійно вмикати або вимикати опцію входу в обліковий запис у веб-переглядачі.</translation> +<translation id="5327325901414715560">Надає налаштування принтерів підприємства, які зв'язані з пристроями. + + Це правило дає змогу вказати налаштування принтера для пристроїв <ph name="PRODUCT_OS_NAME" />. Формат збігається зі словником NativePrinters, але з обов'язковим додатковим полем "id" або "guid" для кожного принтера, який додається в білий чи чорний список. + + Розмір файлу не може перевищувати 5 МБ, а його кодування має бути у форматі JSON. Файл розміром 5 МБ містить приблизно 21 000 принтерів. Криптографічний хеш використовується для перевірки цілісності завантаження. + + Файл завантажується й додається в кеш. Якщо URL-адреса або хеш змінюються, файл завантажується повторно. + + Якщо це правило налаштовано, <ph name="PRODUCT_OS_NAME" /> завантажуватиме файл для налаштування принтерів і надаватиме доступ до принтерів відповідно до правил <ph name="DEVICE_PRINTERS_ACCESS_MODE_POLICY_NAME" />, <ph name="DEVICE_PRINTERS_ALLOWLIST_POLICY_NAME" /> і <ph name="DEVICE_PRINTERS_BLOCKLIST_POLICY_NAME" />. + + Це правило не впливає на здатність користувачів налаштовувати принтери для окремих пристроїв. Воно доповнює такі налаштування. + + Це правило доповнює <ph name="PRINTERS_BULK_CONFIGURATION_POLICY_NAME" />. + + Якщо це правило не налаштовано, не буде принтерів для окремих пристроїв, а інші правила <ph name="DEVICE_PRINTERS_POLICY_PATTERN" /> ігноруватимуться. + </translation> <translation id="532848608876725157">Увімкнути DNS-over-HTTPS із небезпечним резервним варіантом</translation> <translation id="5329007337159326804">Застереження: правило максимальної версії TLS буде повністю видалено з <ph name="PRODUCT_NAME" /> 75 і новіших версій (приблизно в червні 2019 року). @@ -3023,7 +3075,6 @@ Якщо для нього вибрано значення False, <ph name="PRODUCT_NAME" /> не показуватиме користувачам дані про продукт на всю вкладку. Це правило керує показом сторінок привітання, які допомагають користувачам увійти в <ph name="PRODUCT_NAME" /> чи вибрати <ph name="PRODUCT_NAME" /> веб-переглядачем за умовчанням або іншим чином повідомляють про функції продукту.</translation> -<translation id="5447306928176905178">Увімкнути повідомлення з інформацією про пам’ять (розмір динамічної пам’яті JavaScript) для сторінки (не рекомендується)</translation> <translation id="5450893456912604446">Налаштовує URL-адресу домашньої сторінки за умовчанням у <ph name="PRODUCT_NAME" /> і забороняє користувачам змінювати її. Домашня сторінка – це та, яка відкривається кнопкою "Домашня сторінка". На комп'ютері сторінками, які відкриваються під час запуску, керують правила RestoreOnStartup. @@ -3446,6 +3497,12 @@ <ph name="PRODUCT_NAME" /> керує вмістом кореневого каталогу тому. Щоб уникнути втрат даних та інших помилок, не налаштовуйте для цього правила кореневий каталог або каталог, який використовується для інших цілей. Список можливих змінних доступний на сторінці https://www.chromium.org/administrators/policy-list-3/user-data-directory-variables.</translation> <translation id="6083631234867522991">Windows (клієнти Windows):</translation> +<translation id="6086225644749063677">Указує принтери, доступні користувачеві. + + Це правило застосовується, якщо для <ph name="DEVICE_PRINTERS_ACCESS_MODE_POLICY_NAME" /> вибрано <ph name="PRINTERS_ALLOWLIST" /> + + Якщо це правило застосовується, користувачам доступні лише принтери з переліченими в ньому ідентифікаторами. Ідентифікатори мають відповідати полю "id" або "guid" у файлі, указаному в правилі <ph name="DEVICE_PRINTERS_POLICY_NAME" />. + </translation> <translation id="608788685013546076">Налаштовувати граничне значення зміни піку потужності акумулятора у відсотках</translation> <translation id="6089679180657323464">Керує налаштуваннями контролера діагностики й телеметрії Wilco.</translation> <translation id="6091233616732024397">Змушувати користувачів входити в обліковий запис у веб-переглядачі</translation> @@ -3936,6 +3993,11 @@ Зауважте: користувачі матимуть доступ до сервісів Google, не входячи в обліковий запис, якщо заблокують файли cookie.</translation> <translation id="6843296367238757293">Це правило не підтримується. Радимо не застосовувати його. Докладніше читайте на сторінці https://support.google.com/chrome/a/answer/7643500</translation> +<translation id="6846126863870444592">Це правило визначає розширення, яким дозволено пропускати вікно підтвердження завдання друку, якщо для його надсилання використовується функція <ph name="PRINTING_API" /> <ph name="SUBMIT_JOB_FUNCTION" />. + + Якщо розширення немає в списку або список не створено, вікно підтвердження завдання друку показуватиметься під час кожного виклику функції <ph name="SUBMIT_JOB_FUNCTION" />. + + Це правило більше не підтримується. Натомість використовуйте правило <ph name="PRINTING_API_EXTENSIONS_ALLOWLIST_POLICY_NAME" />.</translation> <translation id="684856667300805181">Це правило видалено в <ph name="PRODUCT_NAME" /> 68 і замінено правилом <ph name="ARC_GLS_POLICY_NAME" />.</translation> <translation id="6851199885688265233">Увімкнути спеціальну можливість "Виділення курсора"</translation> <translation id="6851315055469993882">Увімкнути загальну область кешу HTTP-авторизації</translation> @@ -3955,11 +4017,6 @@ Якщо це правило не налаштовано, за умовчанням цю функцію зможуть вмикати користувачі, якими керує адміністратор і якими він не керує.</translation> <translation id="6864244339257535116">Дозволити додавати й завантажувати файли, захищені паролем</translation> -<translation id="687046793986382807">Це правило не підтримується від 35-ї версії <ph name="PRODUCT_NAME" />. - - Інформація про пам’ять повідомляється сторінці, незалежно від значення параметра, але розміри, які надсилаються, - квантуються, а частоту оновлень обмежено з міркувань безпеки. Щоб отримувати точні дані в режимі реального часу, - скористайтеся відповідним інструментом, як-от Telemetry.</translation> <translation id="68798513449385583">Відкласти завантаження, доки не надійдуть результати перевірки</translation> <translation id="6889123056995503704">Користувач вибирає поведінку під час повернення до попередньої версії</translation> <translation id="6894178810167845842">URL-адреса сторінки нової вкладки</translation> @@ -3992,6 +4049,13 @@ <translation id="6907778402784621686">Блокувати незахищений контент на цих сайтах</translation> <translation id="6908640907898649429">Налаштовує пошукову службу за умовчанням. Можна вказати пошукову службу за умовчанням, яку користувач використовуватиме, або вимкнути пошук за умовчанням.</translation> <translation id="6913068954484253496">Дозволити <ph name="PRODUCT_NAME" /> під’єднуватися до пристроїв Cast на всіх IP-адресах.</translation> +<translation id="6916817094593836501">Це правило не дозволяє показувати попередження про схожі URL-адреси на перелічених сайтах. Такі попередження зазвичай з'являються на сайтах, які <ph name="PRODUCT_NAME" /> відносить до таких, що можуть підміняти інші знайомі користувачу сайти. + + Якщо це правило активовано й у ньому вказано принаймні один домен, попередження про схожі URL-адреси не з'являтиметься на сторінках у таких доменах. + + Якщо це правило деактивовано, не налаштовано або для нього вказано порожній список, попередження можуть з'являтися на всіх сайтах. + + Попередження не з'являтиметься на сайті, якщо ім'я хосту або домен збігаються з даними, указаними в білому списку. Наприклад, на сторінці з URL-адресою https://foo.example.com/bar попередження блокуватимуться, якщо в списку вказано foo.example.com або example.com.</translation> <translation id="6922884955650325312">Блокувати плагін <ph name="FLASH_PLUGIN_NAME" /></translation> <translation id="6923731550900440989">Увімкнути функцію "Виділення символу вставки" на екрані входу</translation> <translation id="6924223708804692571">Примусово вимикає мови перевірки орфографії. Нерозпізнані мови в цьому списку ігноруються. @@ -4745,7 +4809,6 @@ <translation id="793134539373873765">Указує, чи має використовуватися p2p (однорангове з’єднання) для даних оновлення ОС. Якщо для цього правила встановлено значення "true", пристрої обмінюватимуться даними й намагатимуться використовувати дані оновлення в LAN, що потенційно може знижувати використання пропускної спроможності й перевантаження каналів інтернет-зв’язку. Якщо дані оновлення не доступні через LAN, пристрій завантажуватиме їх із сервера оновлення. Якщо для цього правила встановлено значення "false" або його не налаштовано, p2p не використовуватиметься.</translation> <translation id="7933141401888114454">Вмикає створення контрольованих користувачів</translation> <translation id="793473937901685727">Налаштування доступності сертифікатів для додатків ARC</translation> -<translation id="7937491150792971922">Об’єднати правила списку встановлення розширень із кількох джерел</translation> <translation id="7937766917976512374">Дозволити чи заборонити запис відео</translation> <translation id="7941975817681987555">Не передбачати дії в мережі</translation> <translation id="7951605113561734721">Визначає сертифікати клієнтів на рівні пристрою, які потрібно реєструвати через протокол керування пристроєм.</translation> @@ -4766,6 +4829,9 @@ <translation id="7953256619080733119">Установлені вручну винятки хостів керованого користувача</translation> <translation id="7956210013490975468">Налаштовує сервіс "Проксі системи" для <ph name="PRODUCT_OS_NAME" />.</translation> <translation id="7958537754689366707">Пароль потрібно вводити кожні 12 годин</translation> +<translation id="7960293328203000385">Визначає список користувачів, яким дозволено входити на пристрої. Записи створюються у форматі <ph name="USER_ALLOWLIST_ENTRY_FORMAT" />, як-от <ph name="USER_ALLOWLIST_ENTRY_EXAMPLE" />. Щоб надати доступ до домену довільним користувачам, використовуйте формат <ph name="USER_ALLOWLIST_ENTRY_WILDCARD" />. + + Якщо це правило не налаштовано, обмежень для входу користувачів немає. Зауважте, що для створення нових користувачів усе ж потрібно відповідно налаштувати правило <ph name="DEVICE_ALLOW_NEW_USERS_POLICY_NAME" />.</translation> <translation id="7961779417826583251">Вимкнути застосування перевірки сертифіката для списку застарілих центрів сертифікації</translation> <translation id="7973609468423251675">Зауважте, що це правило більше не підтримується та буде вилучене в <ph name="PRODUCT_OS_NAME" /> версії 85. Натомість використовуйте правило <ph name="POWER_MANAGEMENT_IDLE_SETTINGS_POLICY_NAME" />.
diff --git a/components/policy/resources/policy_templates_vi.xtb b/components/policy/resources/policy_templates_vi.xtb index a17bb768..bb4d64f 100644 --- a/components/policy/resources/policy_templates_vi.xtb +++ b/components/policy/resources/policy_templates_vi.xtb
@@ -375,6 +375,12 @@ <translation id="1561967320164410511">Tiện ích U2F+ để chứng thực cá nhân</translation> <translation id="1575015449587326319">Chính sách cấu hình dành cho Trình kết nối OnFileDownloaded của Chrome Enterprise</translation> <translation id="1583248206450240930">Sử dụng <ph name="PRODUCT_FRAME_NAME" /> theo mặc định</translation> +<translation id="1587671452159346389">Kiểm soát những máy in trong <ph name="DEVICE_PRINTERS_POLICY_NAME" /> mà người dùng có thể sử dụng. + + Chỉ định chính sách truy cập dùng cho cấu hình máy in số lượng lớn. Nếu bạn chọn <ph name="PRINTERS_ALLOW_ALL" />, tất cả máy in sẽ hiển thị. Nếu bạn chọn <ph name="PRINTERS_BLOCKLIST" />, <ph name="DEVICE_PRINTERS_BLOCKLIST_POLICY_NAME" /> sẽ được dùng để hạn chế việc truy cập vào những máy in đã chỉ định. Nếu bạn chọn <ph name="PRINTERS_ALLOWLIST" />, <ph name="DEVICE_PRINTERS_ALLOWLIST_POLICY_NAME" /> sẽ chỉ chỉ định những máy in có thể chọn được. + + Nếu bạn không đặt chính sách này, <ph name="PRINTERS_ALLOW_ALL" /> sẽ là tùy chọn mặc định. + </translation> <translation id="1588240398285670601">Cài đặt của trình duyệt</translation> <translation id="1588456836529393506">Nếu đặt chính sách này, bạn có thể thiết lập danh sách các mẫu URL chỉ định những trang web được hệ thống tự động cấp quyền truy cập vào thiết bị USB bằng mã sản phẩm và mã nhà cung cấp đã cho. Từng mục trong danh sách phải chứa các thiết bị và URL thì chính sách này mới hợp lệ. Mỗi mục trong các thiết bị có thể chứa trường mã sản phẩm và mã nhà cung cấp. Mọi mã bạn bỏ qua đều được coi là ký tự đại diện trừ trường hợp: Bạn không thể chỉ định mã sản phẩm nếu không chỉ định cả mã nhà cung cấp. Trong trường hợp khác, chính sách này sẽ không hợp lệ. @@ -1107,6 +1113,22 @@ Khi bạn đặt chính sách này thành Tắt, cảnh báo bảo mật sẽ không hiện ra khi Chrome được chạy bằng cờ hiệu dòng lệnh có thể nguy hiểm. Trên <ph name="MS_WIN_NAME" />, chức năng này chỉ có ở những phiên bản liên kết với một miền <ph name="MS_AD_NAME" />, chạy trên Windows 10 Pro, hoặc đã đăng ký tùy chọn Quản lý trình duyệt Chrome qua đám mây. Trên <ph name="MAC_OS_NAME" />, chức năng này chỉ có ở những phiên bản được quản lý qua MDM, hoặc liên kết với một miền qua MCX.</translation> +<translation id="2621383458880689826">Cung cấp cấu hình máy in dành cho doanh nghiệp được kết nối với các thiết bị. + + Chính sách này cho phép bạn cung cấp cấu hình máy in cho các thiết bị <ph name="PRODUCT_OS_NAME" />. Định dạng này giống với định dạng của từ điển NativePrinters có thêm trường "id" hoặc "guid" bắt buộc trên mỗi máy in để đưa vào danh sách cho phép hoặc danh sách cấm. + + Kích thước tệp không được vượt quá 5 MB và phải được mã hóa ở định dạng JSON. Theo ước tính, tệp có chứa khoảng 21.000 máy in sẽ mã hóa dưới dạng tệp 5 MB. Hàm băm mật mã dùng để xác minh tính toàn vẹn của tệp tải xuống. + + Tệp sẽ được tải xuống và lưu vào bộ nhớ đệm. Tệp này sẽ được tải lại xuống mỗi khi URL hoặc hàm băm thay đổi. + + Nếu bạn đặt chính sách này, <ph name="PRODUCT_OS_NAME" /> sẽ tải tệp cấu hình máy in xuống và cung cấp các máy in theo đúng <ph name="DEVICE_NATIVE_PRINTERS_ACCESS_MODE" />, <ph name="DEVICE_NATIVE_PRINTERS_WHITELIST_POLICY_NAME" /> và <ph name="DEVICE_NATIVE_PRINTERS_BLACKLIST_POLICY_NAME" />. + + Chính sách này không ảnh hưởng đến việc người dùng có thể định cấu hình máy in trên từng thiết bị hay không. Chính sách này nhằm bổ sung cho quá trình định cấu hình máy in theo từng người dùng. + + Chính sách này bổ sung cho <ph name="BULK_PRINTERS_POLICY_NAME" />. + + Nếu bạn không đặt chính sách này, hệ thống sẽ không bỏ qua máy in được kết nối với thiết bị cũng như các chính sách <ph name="DEVICE_NATIVE_PRINTERS_POLICY_PATTERN" /> khác. + </translation> <translation id="2623014935069176671">Đợi hoạt động người dùng đầu tiên</translation> <translation id="262740370354162807">Cho phép gửi tài liệu tới <ph name="CLOUD_PRINT_NAME" /></translation> <translation id="2632538643061793322">Nếu đặt chính sách này, bạn có thể liệt kê các mẫu URL chỉ định những trang web có thể yêu cầu người dùng cấp quyền truy cập vào thiết bị USB. @@ -1133,6 +1155,7 @@ Nếu không đặt chính sách này, chế độ mặc định sẽ là không được phép đối với người dùng được quản lý và được phép đối với người dùng không được quản lý.</translation> <translation id="2660846099862559570">Không bao giờ sử dụng proxy</translation> +<translation id="2664682171745499686">Chặn các cảnh báo tương tự về miền trên các miền</translation> <translation id="2665422249821137126">Bật con trỏ lớn trên màn hình đăng nhập</translation> <translation id="2672012807430078509">Kiểm soát việc bật NTLM làm giao thức xác thực cho các điểm kết nối SMB</translation> <translation id="2678503605767349615">Chứng chỉ ứng dụng bắt buộc cho toàn thiết bị</translation> @@ -1272,6 +1295,12 @@ Nếu bạn bật cài đặt này, tính năng Xem trước bản in sẽ chọn máy in có sẵn trong hệ điều hành làm máy in mặc định.</translation> <translation id="285627849510728211">Đặt cấu hình ngày cho chế độ sạc pin nâng cao</translation> <translation id="2856674246949497058">Hạ cấp và tiếp tục sử dụng phiên bản đích nếu phiên bản hệ điều hành mới hơn phiên bản đích. Thực hiện powerwash trong quá trình này.</translation> +<translation id="2869140260739354012">Kiểm soát những máy in trong <ph name="DEVICE_PRINTERS_POLICY" /> mà người dùng có thể sử dụng. + + Chỉ định chính sách truy cập dùng cho cấu hình máy in số lượng lớn. Nếu bạn chọn <ph name="PRINTERS_ALLOW_ALL" />, tất cả máy in sẽ hiển thị. Nếu bạn chọn <ph name="PRINTERS_BLACKLIST" />, <ph name="DEVICE_NATIVE_PRINTERS_BLACKLIST" /> sẽ được dùng để hạn chế việc truy cập vào những máy in đã chỉ định. Nếu bạn chọn <ph name="PRINTERS_WHITELIST" />, <ph name="DEVICE_NATIVE_PRINTERS_WHITELIST" /> sẽ chỉ chỉ định những máy in có thể chọn được. + + Nếu bạn không đặt chính sách này, <ph name="PRINTERS_ALLOW_ALL" /> sẽ là tùy chọn mặc định. + </translation> <translation id="2869762730352628426">Bật chế độ tự động nhấp trên màn hình đăng nhập</translation> <translation id="2872961005593481000">Tắt</translation> <translation id="2874209944580848064">Lưu ý dành cho thiết bị <ph name="PRODUCT_OS_NAME" /> hỗ trợ ứng dụng Android:</translation> @@ -1314,11 +1343,6 @@ Lưu ý: Chính sách này trỏ tới một tệp XML có cùng định dạng với chính sách <ph name="IEEM_SITELIST_POLICY" /> của <ph name="IE_PRODUCT_NAME" />. URL này sẽ tải các quy tắc từ một tệp XML nhưng không chia sẻ những quy tắc đó với <ph name="IE_PRODUCT_NAME" />. Hãy đọc thêm về chính sách <ph name="IEEM_SITELIST_POLICY" /> của <ph name="IE_PRODUCT_NAME" /> (https://docs.microsoft.com/internet-explorer/ie11-deploy-guide/what-is-enterprise-mode)</translation> <translation id="2952347049958405264">Hạn chế:</translation> -<translation id="2956777931324644324">Chính sách này ngừng hoạt động kể từ phiên bản 36 của <ph name="PRODUCT_NAME" />. - - Chỉ định xem có cần bật tiện ích chứng chỉ giới hạn miền TLS hay không. - - Cài đặt này được sử dụng để bật tiện ích chứng chỉ giới hạn miền TLS dành cho thử nghiệm. Cài đặt thử nghiệm này sẽ bị xóa trong tương lai.</translation> <translation id="2957047180944828740">Chỉ định xem có cho phép các trang web không an toàn gửi yêu cầu đến các thiết bị đầu cuối trên mạng riêng hay không</translation> <translation id="2957506574938329824">Không cho phép bất kỳ trang web nào yêu cầu quyền truy cập vào thiết bị Bluetooth qua API Web Bluetooth</translation> <translation id="2957513448235202597">Loại tài khoản để xác thực <ph name="HTTP_NEGOTIATE" /></translation> @@ -1858,7 +1882,6 @@ Nếu bạn không đặt chính sách này, thì tùy chọn cài đặt mặc định sẽ không được cho phép cho người dùng do doanh nghiệp quan lý và được cho phép cho người dùng không được quản lý.</translation> <translation id="3803171355925844705">Không cho phép bất kỳ trang web nào tải nội dung hỗn hợp</translation> -<translation id="3805659594028420438">Bật tiện ích chứng chỉ giới hạn miền TLS (không được chấp thuận)</translation> <translation id="3808945828600697669">Chỉ định danh sách các plugin bị vô hiệu hóa</translation> <translation id="3810642039169532482">Bật tính năng hỗ trợ tiếp cận về đọc chính tả trên màn hình đăng nhập. @@ -1888,6 +1911,12 @@ <translation id="3838094946886335701">Nếu đặt chính sách này (chỉ khi khuyên dùng), thì bạn có thể đăng ký danh sách các trình xử lý giao thức (sẽ hợp nhất với các trình xử lý giao thức mà người dùng đăng ký) để đưa vào sử dụng. Hãy đặt thuộc tính "giao thức" thành lược đồ, chẳng hạn như "mailto", và đặt thuộc tính "URL" thành mẫu URL của ứng dụng xử lý lược đồ được chỉ định trong trường "giao thức". Mẫu này có thể bao gồm trình giữ chỗ "%s" (thay bằng URL đã xử lý). Người dùng không thể xóa trình xử lý giao thức do chính sách đăng ký. Tuy nhiên, họ có thể thay đổi các trình xử lý giao thức do chính sách cài đặt bằng cách cài đặt một trình xử lý mặc định mới.</translation> +<translation id="3848118497246496090">Chỉ định những máy in mà người dùng không thể sử dụng. + + Chính sách này chỉ được dùng nếu bạn chọn <ph name="PRINTERS_BLACKLIST" /> cho <ph name="DEVICE_NATIVE_PRINTERS_ACCESS_MODE" />. + + Nếu bạn sử dụng chính sách này, tất cả máy in sẽ được cung cấp cho người dùng ngoại trừ những mã nhận dạng được liệt kê trong chính sách này. Các mã nhận dạng này phải tương ứng với các trường "id" hoặc "guid" ở tệp đã chỉ định trong <ph name="DEVICE_PRINTERS_POLICY" />. + </translation> <translation id="3851039766298741586">Báo cáo thông tin về phiên kiosk hiện hoạt, chẳng hạn như ID và phiên bản ứng dụng. @@ -2028,6 +2057,12 @@ <translation id="3965339130942650562">Thời gian chờ cho tới khi đăng xuất của người dùng không hoạt động được thực thi</translation> <translation id="3973371701361892765">Không bao giờ tự động ẩn giá</translation> <translation id="3979738908158213640">Các URL sẽ được cấp quyền truy cập để chứng thực thiết bị trong khi xác thực SAML</translation> +<translation id="3980024487013511975">Chỉ định những máy in mà người dùng không thể sử dụng. + + Chính sách này chỉ được dùng nếu bạn chọn <ph name="PRINTERS_BLOCKLIST" /> cho <ph name="DEVICE_PRINTERS_ACCESS_MODE_POLICY_NAME" />. + + Nếu bạn sử dụng chính sách này, tất cả máy in sẽ được cung cấp cho người dùng ngoại trừ những mã nhận dạng được liệt kê trong chính sách này. Các mã nhận dạng này phải tương ứng với các trường "id" hoặc "guid" ở tệp đã chỉ định trong <ph name="DEVICE_PRINTERS_POLICY_NAME" />. + </translation> <translation id="3984028218719007910">Xác định liệu <ph name="PRODUCT_OS_NAME" /> có lưu dữ liệu tài khoản trên máy sau khi đăng xuất hay không. Nếu được đặt thành đúng, không có tài khoản lâu dài nào được <ph name="PRODUCT_OS_NAME" /> lưu và tất cả các dữ liệu từ phiên của người dùng sẽ bị hủy bỏ sau khi đăng xuất. Nếu chính sách này được đặt thành sai hoặc không được định cấu hình, thiết bị có thể lưu lại dữ liệu người dùng trên máy (được mã hóa).</translation> <translation id="398884292557092447">Nếu bạn đặt chính sách này thành True hoặc không đặt, thì người dùng có thể kiểm soát các nội dung đề xuất tự động điền cho thẻ tín dụng trong giao diện người dùng. @@ -2234,6 +2269,12 @@ Khi bạn không đặt chính sách này, các trang web có thể yêu cầu quyền truy cập, nhưng người dùng có thể thay đổi tùy chọn cài đặt này.</translation> <translation id="4285674129118156176">Cho phép người dùng không được liên kết sử dụng ARC</translation> +<translation id="4309562700894844665">Chỉ định những máy in mà người dùng có thể sử dụng. + + Chính sách này chỉ được dùng nếu bạn chọn <ph name="PRINTERS_WHITELIST" /> cho <ph name="DEVICE_NATIVE_PRINTERS_ACCESS_MODE" /> + + Nếu bạn sử dụng chính sách này, chỉ những máy in có mã nhận dạng khớp với các giá trị trong chính sách này mới được cung cấp cho người dùng. Các mã nhận dạng này phải tương ứng với trường "id" hoặc "guid" ở tệp đã chỉ định trong <ph name="DEVICE_PRINTERS_POLICY" />. + </translation> <translation id="4311195029067684288">Đầy</translation> <translation id="4313767483634435271">Địa chỉ MAC chỉ định cho đế sạc của thiết bị</translation> <translation id="4322842393287974810">Cho phép ứng dụng kiosk tự động khởi chạy với độ trễ bằng không kiểm soát phiên bản <ph name="PRODUCT_OS_NAME" /></translation> @@ -2574,11 +2615,6 @@ Nếu bạn không đặt chính sách này, thì <ph name="PRODUCT_NAME" /> sẽ chỉ kết nối với các thiết bị truyền trên địa chỉ RFC1918/RFC4193, trừ khi tính năng CastAllowAllIPs được bật.</translation> <translation id="489803897780524242">Tham số kiểm soát vị trí cụm từ tìm kiếm cho nhà cung cấp dịch vụ tìm kiếm mặc định</translation> <translation id="4899708173828500852">Bật Duyệt web an toàn</translation> -<translation id="4902163780937592202">Bật các chính sách hợp nhất danh sách cài đặt tiện ích <ph name="EXTENSION_INSTALL_BLOCKLIST_POLICY_NAME" />, <ph name="EXTENSION_INSTALL_ALLOWLIST_POLICY_NAME" /> và <ph name="EXTENSION_INSTALL_FORCELIST_POLICY_NAME" />. - - Nếu bạn bật tùy chọn cài đặt này, thì các giá trị trong chính sách nền tảng của máy, chính sách đám mây của máy và chính sách nền tảng của người dùng sẽ được hợp nhất thành một danh sách và được sử dụng toàn bộ thay vì chỉ sử dụng các giá trị từ một nguồn có mức ưu tiên cao nhất. - - Nếu bạn tắt hoặc không đặt tùy chọn cài đặt này, thì chỉ các mục danh sách từ nguồn có mức ưu tiên cao nhất mới được sử dụng, còn tất cả các nguồn khác sẽ hiển thị dưới dạng nguồn xung đột nhưng bị bỏ qua.</translation> <translation id="4906194810004762807">Chính sách tốc độ làm mới cho thiết bị</translation> <translation id="4917385247580444890">Mạnh</translation> <translation id="4919122295221518724">Cho phép thắt chặt việc xử lý nội dung hỗn hợp</translation> @@ -2894,6 +2930,22 @@ Nếu bạn đặt chính sách này thành "Buộc đăng nhập vào trình duyệt", thì người dùng sẽ thấy hộp thoại lựa chọn tài khoản và phải chọn rồi đăng nhập vào một tài khoản để sử dụng trình duyệt. Điều này đảm bảo rằng đối với tài khoản được quản lý, các chính sách liên kết với tài khoản sẽ được áp dụng và thực thi. Theo mặc định, việc này sẽ bật tính năng đồng bộ hóa trên Chrome cho tài khoản, trừ khi quản trị viên miền hoặc chính sách "SyncDisabled" đã tắt tính năng đó. Giá trị mặc định của BrowserGuestModeEnabled sẽ được đặt thành false. Lưu ý rằng sau khi bạn bật chính sách này, các hồ sơ chưa ký hiện tại sẽ bị khóa và không truy cập được. Để biết thêm thông tin, hãy xem bài viết này trong trung tâm trợ giúp: https://support.google.com/chrome/a/answer/7572556. Tùy chọn này không hỗ trợ Linux và Android, đồng thời sẽ là phương án dự phòng cho tùy chọn "Cho phép đăng nhập vào trình duyệt" nếu được dùng. Nếu bạn không đặt chính sách này, thì người dùng có thể chọn bật tùy chọn đăng nhập vào trình duyệt và sử dụng khi thấy phù hợp.</translation> +<translation id="5327325901414715560">Cung cấp cấu hình máy in dành cho doanh nghiệp được kết nối với các thiết bị. + + Chính sách này cho phép bạn cung cấp cấu hình máy in cho các thiết bị <ph name="PRODUCT_OS_NAME" />. Định dạng này giống với định dạng của từ điển NativePrinters có thêm trường "id" hoặc "guid" bắt buộc trên mỗi máy in để đưa vào danh sách cho phép hoặc danh sách cấm. + + Kích thước tệp không được vượt quá 5 MB và phải được mã hóa ở định dạng JSON. Theo ước tính, tệp có chứa khoảng 21.000 máy in sẽ mã hóa dưới dạng tệp 5 MB. Hàm băm mật mã dùng để xác minh tính toàn vẹn của tệp tải xuống. + + Tệp sẽ được tải xuống và lưu vào bộ nhớ đệm. Tệp này sẽ được tải lại xuống mỗi khi URL hoặc hàm băm thay đổi. + + Nếu bạn đặt chính sách này, <ph name="PRODUCT_OS_NAME" /> sẽ tải tệp cấu hình máy in xuống và cung cấp các máy in theo đúng <ph name="DEVICE_PRINTERS_ACCESS_MODE_POLICY_NAME" />, <ph name="DEVICE_PRINTERS_ALLOWLIST_POLICY_NAME" /> và <ph name="DEVICE_PRINTERS_BLOCKLIST_POLICY_NAME" />. + + Chính sách này không ảnh hưởng đến việc người dùng có thể định cấu hình máy in trên từng thiết bị hay không. Chính sách này nhằm bổ sung cho quá trình định cấu hình máy in theo từng người dùng. + + Chính sách này bổ sung cho <ph name="PRINTERS_BULK_CONFIGURATION_POLICY_NAME" />. + + Nếu bạn không đặt chính sách này, hệ thống sẽ không bỏ qua máy in được kết nối với thiết bị cũng như các chính sách <ph name="DEVICE_PRINTERS_POLICY_PATTERN" /> khác. + </translation> <translation id="532848608876725157">Bật chế độ DNS qua HTTPS có phương án dự phòng cho truy vấn không an toàn</translation> <translation id="5329007337159326804">Cảnh báo: Chúng tôi sẽ xóa hoàn toàn chính sách phiên bản TLS tối đa khỏi <ph name="PRODUCT_NAME" /> từ khoảng phiên bản 75 (vào khoảng tháng 6 năm 2019). @@ -3032,7 +3084,6 @@ Nếu bạn đặt chính sách này thành False, thì <ph name="PRODUCT_NAME" /> sẽ không hiển thị thông tin sản phẩm dưới dạng nội dung toàn bộ thẻ. Việc đặt chính sách này sẽ kiểm soát cách trình bày trang chào mừng nhằm giúp người dùng đăng nhập vào <ph name="PRODUCT_NAME" />, đặt <ph name="PRODUCT_NAME" /> làm trình duyệt mặc định của người dùng hoặc thông báo cho người dùng về các tính năng của sản phẩm.</translation> -<translation id="5447306928176905178">Bật báo cáo thông tin bộ nhớ (kích thước khối xếp JS) tới trang (không dùng nữa)</translation> <translation id="5450893456912604446">Định cấu hình URL trang chủ mặc định trong <ph name="PRODUCT_NAME" /> và ngăn không cho người dùng thay đổi URL đó. Trang chủ là trang mở ra khi người dùng nhấn nút Trang chủ. Trên màn hình, các trang mở ra khi khởi động chịu sự kiểm soát của chính sách RestoreOnStartup. @@ -3458,6 +3509,12 @@ <ph name="PRODUCT_NAME" /> sẽ quản lý nội dung của thư mục gốc trên ổ đĩa. Vì vậy, để tránh mất dữ liệu hoặc các lỗi khác, không đặt chính sách này thành thư mục gốc hoặc bất kỳ thư mục nào được dùng cho các mục đích khác. Hãy xem các biến bạn có thể sử dụng (https://www.chromium.org/administrators/policy-list-3/user-data-directory-variables).</translation> <translation id="6083631234867522991">Windows (ứng dụng Windows):</translation> +<translation id="6086225644749063677">Chỉ định những máy in mà người dùng có thể sử dụng. + + Chính sách này chỉ được dùng nếu bạn chọn <ph name="PRINTERS_ALLOWLIST" /> cho <ph name="DEVICE_PRINTERS_ACCESS_MODE_POLICY_NAME" /> + + Nếu bạn sử dụng chính sách này, chỉ những máy in có mã nhận dạng khớp với các giá trị trong chính sách này mới được cung cấp cho người dùng. Các mã nhận dạng này phải tương ứng với trường "id" hoặc "guid" ở tệp đã chỉ định trong <ph name="DEVICE_PRINTERS_POLICY_NAME" />. + </translation> <translation id="608788685013546076">Đặt ngưỡng pin cho chế độ chuyển đổi điện năng cao điểm theo phần trăm</translation> <translation id="6089679180657323464">Kiểm soát các tùy chọn cài đặt của bộ điều khiển đo từ xa và chẩn đoán wilco.</translation> <translation id="6091233616732024397">Buộc người dùng đăng nhập để sử dụng trình duyệt</translation> @@ -3951,6 +4008,11 @@ Xin lưu ý rằng người dùng có thể truy cập vào các dịch vụ của Google ở trạng thái chưa xác thực bằng cách chặn cookie của các dịch vụ đó.</translation> <translation id="6843296367238757293">Chính sách này không còn dùng nữa. Bạn không nên sử dụng chính sách này. Đọc thêm tại https://support.google.com/chrome/a/answer/7643500</translation> +<translation id="6846126863870444592">Chính sách này chỉ định các tiện ích được phép bỏ qua hộp thoại xác nhận lệnh in khi dùng hàm <ph name="SUBMIT_JOB_FUNCTION" /> của <ph name="PRINTING_API" /> để gửi lệnh in. + + Nếu một tiện ích không có trong danh sách này hoặc danh sách này chưa được đặt, thì hộp thoại xác nhận lệnh in sẽ hiển thị với người dùng đối với mọi lệnh gọi hàm <ph name="SUBMIT_JOB_FUNCTION" />. + + Chính sách này không còn dùng nữa, vui lòng sử dụng <ph name="PRINTING_API_EXTENSIONS_ALLOWLIST_POLICY_NAME" />.</translation> <translation id="684856667300805181">Chính sách này đã bị xóa trong <ph name="PRODUCT_NAME" /> 68 và thay thế bằng <ph name="ARC_GLS_POLICY_NAME" />.</translation> <translation id="6851199885688265233">Bật tính năng hỗ trợ tiếp cận về làm nổi bật con trỏ</translation> <translation id="6851315055469993882">Bật bộ nhớ đệm xác thực HTTP có phạm vi toàn cầu</translation> @@ -3970,11 +4032,6 @@ Nếu bạn không đặt chính sách này, thì tùy chọn mặc định sẽ được phép áp dụng cho cả người dùng do doanh nghiệp quản lý và người dùng không được quản lý.</translation> <translation id="6864244339257535116">Cho phép tải lên và tải xuống các tệp được bảo vệ bằng mật khẩu</translation> -<translation id="687046793986382807">Chính sách này sẽ được xóa bỏ kể từ phiên bản 35 của <ph name="PRODUCT_NAME" />. - - Thông tin bộ nhớ vẫn được báo cáo tới trang bất kể giá trị tùy chọn như thế nào. Tuy nhiên, kích thước được báo cáo - được lượng tử hóa và tốc độ cập nhật bị giới hạn vì lý do bảo mật. Để có dữ liệu chính xác trong thời gian thực, - hãy sử dụng các công cụ như Telemetry.</translation> <translation id="68798513449385583">Trì hoãn tệp tải xuống cho đến khi biết kết quả quét</translation> <translation id="6889123056995503704">Người dùng sẽ quyết định chế độ hạ cấp kênh</translation> <translation id="6894178810167845842">URL trang Thẻ mới</translation> @@ -4007,6 +4064,13 @@ <translation id="6907778402784621686">Chặn nội dung không an toàn trên các trang web này</translation> <translation id="6908640907898649429">Định cấu hình nhà cung cấp dịch vụ tìm kiếm mặc định. Bạn có thể chỉ định nhà cung cấp dịch vụ tìm kiếm mặc định mà người dùng sẽ sử dụng hoặc chọn tắt tìm kiếm mặc định.</translation> <translation id="6913068954484253496">Cho phép <ph name="PRODUCT_NAME" /> kết nối với Thiết bị truyền trên tất cả các địa chỉ IP.</translation> +<translation id="6916817094593836501">Chính sách này ngăn không cho hiển thị các cảnh báo tương tự về URL trên những trang web có trong danh sách. Các cảnh báo này thường hiển thị trên những trang web mà <ph name="PRODUCT_NAME" /> cho là có thể đang cố giả mạo một trang web khác quen thuộc với người dùng. + + Nếu bạn bật và đặt chính sách này cho một hoặc nhiều miền, thì sẽ không có trang cảnh báo tương tự nào hiển thị khi người dùng truy cập vào các trang trên miền đó. + + Nếu bạn tắt, không đặt hoặc đặt chính sách này thành danh sách trống, thì các cảnh báo có thể xuất hiện trên bất kỳ trang web nào mà người dùng truy cập. + + Một tên máy chủ có thể được phép nếu trùng khớp hoàn toàn với máy chủ hoặc trùng khớp với bất kỳ miền nào. Ví dụ: một URL như "https://foo.example.com/bar" có thể không hiển thị cảnh báo nếu danh sách này có "foo.example.com" hoặc "example.com".</translation> <translation id="6922884955650325312">Chặn plugin <ph name="FLASH_PLUGIN_NAME" /></translation> <translation id="6923731550900440989">Bật tính năng làm nổi bật dấu chèn trên màn hình đăng nhập</translation> <translation id="6924223708804692571">Buộc tắt các ngôn ngữ có tính năng kiểm tra chính tả. Các ngôn ngữ không nhận dạng được trong danh sách đó sẽ bị bỏ qua. @@ -4758,7 +4822,6 @@ <translation id="793134539373873765">Chỉ định có sử dụng p2p cho các phần tải dữ liệu cập nhật OS không. Nếu được đặt thành True, các thiết bị sẽ chia sẻ và cố gắng sử dụng các phần tải dữ liệu cập nhật trên LAN, có thể làm giảm nghẽn và mức sử dụng băng thông Internet. Nếu phần tải dữ liệu cập nhật không khả dụng trên LAN, thiết bị sẽ quay lại tải xuống từ máy chủ cập nhật. Nếu được đặt thành False hay không được định cấu hình, p2p sẽ không được sử dụng.</translation> <translation id="7933141401888114454">Cho phép tạo người dùng được giám sát</translation> <translation id="793473937901685727">Đặt mức độ khả dụng của chứng chỉ cho ứng dụng ARC</translation> -<translation id="7937491150792971922">Các chính sách hợp nhất danh sách cài đặt tiện ích từ nhiều nguồn</translation> <translation id="7937766917976512374">Cho phép hoặc từ chối quay video</translation> <translation id="7941975817681987555">Không dự đoán tác vụ mạng trên kết nối mạng bất kỳ</translation> <translation id="7951605113561734721">Chỉ định chứng chỉ ứng dụng cần được đăng ký bằng giao thức quản lý thiết bị cho toàn thiết bị.</translation> @@ -4779,6 +4842,9 @@ <translation id="7953256619080733119">Lưu trữ ngoại lệ hướng dẫn người dùng được quản lý</translation> <translation id="7956210013490975468">Định cấu hình dịch vụ Proxy hệ thống cho <ph name="PRODUCT_OS_NAME" />.</translation> <translation id="7958537754689366707">Yêu cầu cứ 12 giờ nhập mật khẩu một lần</translation> +<translation id="7960293328203000385">Xác định danh sách những người dùng được phép đăng nhập vào thiết bị. Các mục sẽ có dạng <ph name="USER_ALLOWLIST_ENTRY_FORMAT" />, chẳng hạn như <ph name="USER_ALLOWLIST_ENTRY_EXAMPLE" />. Để cho phép người dùng bất kỳ trên một miền, hãy sử dụng các mục có dạng <ph name="USER_ALLOWLIST_ENTRY_WILDCARD" />. + + Nếu bạn không định cấu hình chính sách này, tất cả người dùng đều được phép đăng nhập. Lưu ý rằng việc tạo người dùng mới sẽ vẫn yêu cầu phải định cấu hình chính sách <ph name="DEVICE_ALLOW_NEW_USERS_POLICY_NAME" /> một cách phù hợp.</translation> <translation id="7961779417826583251">Tắt mục cài đặt buộc thực thi Tính minh bạch của chứng chỉ cho một danh sách Tổ chức phát hành chứng chỉ kế thừa</translation> <translation id="7973609468423251675">Lưu ý rằng chúng tôi không dùng chính sách này nữa và sẽ xóa khỏi <ph name="PRODUCT_OS_NAME" /> phiên bản 85. Thay vào đó, vui lòng sử dụng <ph name="POWER_MANAGEMENT_IDLE_SETTINGS_POLICY_NAME" />.
diff --git a/components/policy/resources/policy_templates_zh-CN.xtb b/components/policy/resources/policy_templates_zh-CN.xtb index d6f158f30e..83184d2 100644 --- a/components/policy/resources/policy_templates_zh-CN.xtb +++ b/components/policy/resources/policy_templates_zh-CN.xtb
@@ -22,6 +22,13 @@ 目前支持的语言包括:af、bg、ca、cs、da、de、el、en-AU、en-CA、en-GB、en-US、es、es-419、es-AR、es-ES、es-MX、es-US、et、fa、fo、fr、he、hi、hr、hu、id、it、ko、lt、lv、nb、nl、pl、pt-BR、pt-PT、ro、ru、sh、sk、sl、sq、sr、sv、ta、tg、tr、uk、vi。</translation> <translation id="1019101089073227242">设置用户数据目录</translation> +<translation id="1021843807738753764"> 请注意,此政策已被弃用,并将从 <ph name="PRODUCT_OS_NAME" /> 89 版中移除。请改用 <ph name="MANAGED_GUEST_SESSION_PRIVACY_WARNINGS_POLICY_NAME" /> 来配置受管理访客会话的隐私权警告。 + + 此政策旨在控制 <ph name="PRODUCT_OS_NAME" />上受管理访客会话的自动启动通知。 + + 如果此政策设为 True,系统会在隐私权警告通知显示了数秒后关闭它。 + + 如果此政策设为 False 或未设置,系统则会将隐私权警告通知固定在屏幕上,直到用户关闭它为止。</translation> <translation id="1022361784792428773">应禁止用户安装的扩展程序的 ID(或者用“*”表示禁止安装所有扩展程序)</translation> <translation id="102492767056134033">设置屏幕键盘在登录屏幕上的默认状态</translation> <translation id="1027000705181149370">指定在用户登录期间由 SAML IdP 设置的身份验证 Cookie 是否应转移到用户的个人资料中。 @@ -267,6 +274,20 @@ 如果您启用了此政策或不配置此政策,系统将会根据网址将网页滚动至特定文本片段所在的位置。 如果您停用了此政策,系统便不会根据网址将网页滚动至特定文本片段所在的位置。</translation> +<translation id="1469072784237350146">此政策旨在控制是否允许不安全网站向更专用网络上的端点发送请求。 + + 此政策与 CORS-RFC1918 规范相关。如需了解详情,请参阅 https://wicg.github.io/cors-rfc1918。 + + 在以下情况下,某个网络上的端点会比另一个网络上的端点更专用: + 1) 该端点的 IP 地址是 localhost,另一个端点的 IP 地址不是 localhost。 + 2) 该端点的 IP 地址是专用的,另一个端点的 IP 地址是公开的。 + 日后,此政策可能会应用于针对专用 IP 或 localhost 发出的所有跨源请求,具体取决于相关规范的演变情况。 + + 如果某个网站符合 https://developer.mozilla.org/zh-CN/docs/Web/Security/Secure_Contexts 中所述的安全情境的定义,即会被视为安全网站。否则,便会被视为不安全情境。 + + 如果此政策未设置或设为 false,对于从不安全情境向更专用网络上的端点发送的请求,其默认行为将取决于用户针对 <ph name="BLOCK_INSECURE_PRIVATE_NETWORK_REQUESTS_FEATURE_NAME" /> 功能(此功能可通过现场试验来设置,也可在命令行中设置)指定的个人配置。 + + 如果此政策设为 true,系统将允许不安全网站向任意网络上的端点发送请求,但这些网站会受到其他跨源检查机制的约束。</translation> <translation id="1474273443907024088">停用 TLS False Start</translation> <translation id="1477934438414550161">TLS 1.2</translation> <translation id="1479427764273213107">通过设置此政策,您可以指定一个 USB 设备列表,在其中列出用户可从内核驱动程序分离以便直接在 Web 应用内通过 chrome.usb API 使用的 USB 设备。列表中的条目是成对的用于标识特定硬件的 USB 供应商标识符和产品标识符。 @@ -1262,11 +1283,7 @@ 注意:此政策指向一个与 <ph name="IE_PRODUCT_NAME" /> 的 <ph name="IEEM_SITELIST_POLICY" /> 政策采用相同格式的 XML 文件。此政策会加载 XML 文件中的规则,但不会与 <ph name="IE_PRODUCT_NAME" /> 共享这些规则。如需详细了解 <ph name="IE_PRODUCT_NAME" /> 的 <ph name="IEEM_SITELIST_POLICY" /> 政策,请访问 https://docs.microsoft.com/internet-explorer/ie11-deploy-guide/what-is-enterprise-mode</translation> <translation id="2952347049958405264">限制:</translation> -<translation id="2956777931324644324">此政策自36版<ph name="PRODUCT_NAME" />起已停止使用。 - - 用于指定是否启用TLS网域绑定证书扩展程序。 - - 此政策用于启用TLS网域绑定证书扩展程序,以便进行测试。这一实验性政策日后将会弃用。</translation> +<translation id="2957047180944828740">指定是否允许不安全网站向更专用网络上的端点发送请求</translation> <translation id="2957506574938329824">不允许任何网站通过 Web Bluetooth API 请求访问蓝牙设备</translation> <translation id="2957513448235202597">进行 <ph name="HTTP_NEGOTIATE" />身份验证时使用的帐号类型</translation> <translation id="2959469725686993410">解析时区时一律将 Wi-Fi 接入点发送给服务器</translation> @@ -1798,7 +1815,6 @@ 如果此政策未设置,默认情况下,受企业管理的用户不能使用 Smart Lock,不受管理的用户则能够使用 Smart Lock。</translation> <translation id="3803171355925844705">不允许任何网站加载混合内容</translation> -<translation id="3805659594028420438">启用TLS网域绑定证书扩展程序(已弃用)</translation> <translation id="3808945828600697669">指定已停用插件的列表</translation> <translation id="3810642039169532482">在登录屏幕上启用“语音输入”无障碍功能。 @@ -2502,11 +2518,6 @@ 如果您不设置此政策,<ph name="PRODUCT_NAME" /> 将会只连接到位于 RFC1918/RFC4193 的投射设备,除非 CastAllowAllIPs 功能已开启。</translation> <translation id="489803897780524242">此参数可控制是否为默认搜索服务提供商替换搜索字词</translation> <translation id="4899708173828500852">启用安全浏览</translation> -<translation id="4902163780937592202">允许合并扩展程序安装列表政策 <ph name="EXTENSION_INSTALL_BLOCKLIST_POLICY_NAME" />、<ph name="EXTENSION_INSTALL_ALLOWLIST_POLICY_NAME" /> 和 <ph name="EXTENSION_INSTALL_FORCELIST_POLICY_NAME" />。 - - 如果您启用了此设置,系统会将机器平台政策、机器云政策和用户平台政策的值合并到同一个列表内,并会将其作为一个整体使用(而不是仅使用优先级最高的那个来源中的值)。 - - 如果您停用了或未指定此设置,系统仅会从优先级最高的那个来源中获取列表条目;所有其他来源都会显示为与该来源冲突,但会被忽略。</translation> <translation id="4906194810004762807">设备策略的更新频率</translation> <translation id="4917385247580444890">强</translation> <translation id="4919122295221518724">为混合内容启用更严格的处理方式</translation> @@ -2945,7 +2956,6 @@ 如果此政策设为 False,则 <ph name="PRODUCT_NAME" /> 不会使用整个标签页显示产品信息。 此政策的设置将控制欢迎页面的展示方式,欢迎页面会帮助用户登录 <ph name="PRODUCT_NAME" />、将 <ph name="PRODUCT_NAME" /> 设置为用户的默认浏览器或向用户介绍产品功能。</translation> -<translation id="5447306928176905178">向网页报告内存信息(JS堆内存大小)(已停止使用)</translation> <translation id="5450893456912604446">配置 <ph name="PRODUCT_NAME" /> 中的默认主页网址,并禁止用户更改此配置。 主页是由“主页”按钮打开的网页。在桌面设备上,启动时打开的网页是由 RestoreOnStartup 政策控制的。 @@ -3116,6 +3126,9 @@ 如果您不设置此政策,该键盘会处于关闭状态,但用户可以更改它。 注意:您也可考虑使用启发法来确定何时显示该键盘。</translation> +<translation id="5657752663637568277">此政策旨在控制是否在打印预览对话框或设置页面内向用户显示 <ph name="CLOUD_PRINT_NAME" />弃用警告。 + 如果此政策设为 True,系统会隐藏弃用警告。 + 如果此政策设为 False 或未设置,系统会显示弃用警告。</translation> <translation id="5666457529647159548">允许用户管理已安装的客户端证书。</translation> <translation id="567377007899266033">如果此政策设为 True,系统便会向 Google 报告由政策触发的主要扩展程序安装事件。将此政策设为 False 意味着系统不会记录任何事件。如果此政策未设置,系统会将默认值设为 True。</translation> <translation id="5676740747107495269">在登录屏幕的系统任务栏菜单中显示无障碍选项</translation> @@ -3336,6 +3349,12 @@ 停用此政策会对 Chrome 的安全性和稳定性产生不利影响,因为在这种情况下,系统会允许未知的潜在恶意代码在 Chrome 的渲染程序进程中加载。如需了解详情,请参阅 https://chromium.googlesource.com/chromium/src/+/master/docs/design/sandbox.md#Process-mitigation-policies。</translation> <translation id="6048199181629830227">启用用电高峰转移电源管理</translation> +<translation id="6054485492411959335">此政策旨在指定用户可以使用的打印机。 + + 仅当为 <ph name="PRINTERS_BULK_ACCESS_MODE_POLICY_NAME" /> 选择了 <ph name="PRINTERS_ALLOWLIST" /> 时,才会用到此政策。 + + 如果您设置了此政策,用户将只能使用那些符合条件(ID 与此政策中所列的值匹配)的打印机。ID 必须与 <ph name="PRINTERS_BULK_CONFIGURATION_POLICY_NAME" /> 所指定文件内的“id”或“guid”字段相符。 + </translation> <translation id="6066761914755798079">如果 <ph name="DEFAULT_SEARCH_PROVIDER_ENABLED_POLICY_NAME" /> 已开启,您便可通过设置 <ph name="DEFAULT_SEARCH_PROVIDER_SUGGEST_URL_POLICY_NAME" /> 来指定用于提供搜索建议的搜索引擎网址。该网址应包含字符串<ph name="SEARCH_TERM_MARKER" />;当用户执行查询时,系统会将此字符串替换成用户的搜索字词。 您可按以下格式指定 Google 的搜索网址:<ph name="GOOGLE_SUGGEST_SEARCH_URL" />。</translation> @@ -3867,12 +3886,10 @@ 如果您不设置此政策,默认情况下,受企业管理的用户和不受管理的用户都能选择启用“附近分享”功能。</translation> <translation id="6864244339257535116">允许上传和下载受密码保护的文件</translation> -<translation id="687046793986382807">此政策自35版<ph name="PRODUCT_NAME" />起已停止使用。 - - 无论选项值是什么,系统都会向网页报告内存信息,但出于安全考虑,系统会限制所报告的内存大小,并会限制更新率。要获取准确的实时数据,请使用遥测等工具。</translation> <translation id="68798513449385583">延迟交付下载内容,直到获悉扫描结果</translation> <translation id="6889123056995503704">由用户决定版本降级行为</translation> <translation id="6894178810167845842">在新标签页中打开的页面网址</translation> +<translation id="6897730193187922386">禁止显示 <ph name="CLOUD_PRINT_NAME" />弃用消息</translation> <translation id="6899705656741990703">自动检测代理设置</translation> <translation id="6902561336084511004">提供可用打印服务器的配置。 @@ -4649,7 +4666,6 @@ <translation id="793134539373873765">指定是否对操作系统更新有效负荷使用 p2p。如果设置为 True,设备将共享并试图消耗局域网中的更新有效负荷,从而可能会减少互联网带宽使用量和拥堵。如果局域网中没有更新有效负荷,设备将回退到从更新服务器下载。如果设置为 False 或未配置,则不会使用 p2p。</translation> <translation id="7933141401888114454">允许创建受监管用户</translation> <translation id="793473937901685727">为 ARC 应用设置证书可用性</translation> -<translation id="7937491150792971922">合并来自多个来源的扩展程序安装列表政策</translation> <translation id="7937766917976512374">是否允许视频捕获</translation> <translation id="7941975817681987555">采用任何网络连接时,均不预测网络操作</translation> <translation id="7951605113561734721">指定应使用设备管理协议注册的设备级客户端证书。</translation> @@ -5056,6 +5072,14 @@ 此政策旨在让企业能够使现有服务器迁移到 HTTP/0.9 以外的协议版本,日后会被移除。 如果未设置此政策,非默认端口上将会停用 HTTP/0.9。</translation> +<translation id="8504725006737796967">此政策旨在指定用户可以使用的打印机。 + + 仅当为 <ph name="BULK_PRINTERS_ACCESS_MODE_POLICY_NAME" /> 选择了 <ph name="PRINTERS_WHITELIST" /> 时,才会用到此政策。 + + 如果您设置了此政策,用户将只能使用那些符合条件(ID 与此政策中所列的值匹配)的打印机。ID 必须与 <ph name="BULK_PRINTERS_POLICY_NAME" /> 所指定文件内的“id”或“guid”字段相符。 + + 此政策已被弃用,请改用 <ph name="PRINTERS_BULK_ALLOWLIST_POLICY_NAME" />。 + </translation> <translation id="8507835864888987300">为自动更新设定目标版本。 指定 <ph name="PRODUCT_OS_NAME" />应更新到的目标版本的前缀。如果相应设备所运行的版本早于指定的前缀,该设备便会更新到采用指定前缀的最新版本。如果相应设备所运行的版本已是较新版本,此政策的效果将会取决于 <ph name="DEVICE_ROLLBACK_TO_TARGET_VERSION_POLICY_NAME" /> 的值。前缀格式需按部分逐一指定,如下例所示:
diff --git a/components/policy/resources/policy_templates_zh-TW.xtb b/components/policy/resources/policy_templates_zh-TW.xtb index ebc6003..bb52926 100644 --- a/components/policy/resources/policy_templates_zh-TW.xtb +++ b/components/policy/resources/policy_templates_zh-TW.xtb
@@ -357,6 +357,12 @@ <translation id="1561967320164410511">用於個人認證的 U2F 和擴充功能</translation> <translation id="1575015449587326319">OnFileDownloaded Chrome Enterprise Connector 的配置政策</translation> <translation id="1583248206450240930">根據預設使用 <ph name="PRODUCT_FRAME_NAME" /></translation> +<translation id="1587671452159346389">根據 <ph name="DEVICE_PRINTERS_POLICY_NAME" /> 政策控管可供使用的印表機。 + + 這項政策可指派用於大量印表機設定的存取權政策。如果選取 <ph name="PRINTERS_ALLOW_ALL" />,系統會顯示所有印表機。如果選取 <ph name="PRINTERS_BLOCKLIST" />,系統會使用 <ph name="DEVICE_PRINTERS_BLOCKLIST_POLICY_NAME" /> 限制對特定印表機的存取權。如果選取 <ph name="PRINTERS_ALLOWLIST" />,<ph name="DEVICE_PRINTERS_ALLOWLIST_POLICY_NAME" /> 只會指派可選取的印表機。 + + 如果不設定這項政策,系統會自動採用 <ph name="PRINTERS_ALLOW_ALL" />。 + </translation> <translation id="1588240398285670601">瀏覽器設定</translation> <translation id="1588456836529393506">你可以透過這項政策建立網址模式清單,指定哪些網站會自動取得權限,可以存取具有指定廠商和產品 ID 的 USB 裝置。每一個清單項目都必須包含裝置和網址,這項政策才會生效。裝置中的每個項目可以包含廠商 ID 和產品 ID 欄位。如省略任何 ID,系統將視作萬用字元處理,但以下情況例外:如果未指定廠商 ID,也不可指定產品 ID。否則,這項政策將不會生效。 @@ -1077,6 +1083,22 @@ 如果將這項政策設為停用,在使用具有安全疑慮的指令列旗標啟動 Chrome 時,系統不會顯示安全性警告。 在 <ph name="MS_WIN_NAME" /> 上,這項功能僅適用於已加入 <ph name="MS_AD_NAME" /> 網域的執行個體、在 Windows 10 專業版上執行的執行個體,或是已註冊 Chrome 瀏覽器雲端管理服務的執行個體。在 <ph name="MAC_OS_NAME" /> 上,這項功能僅適用於透過行動裝置管理 (MDM) 進行管理或透過 MCX 加入網域的執行個體。</translation> +<translation id="2621383458880689826">為繫結至裝置的企業印表機提供設定。 + + 這項政策可讓你為 <ph name="PRODUCT_OS_NAME" />裝置提供印表機設定。格式與 NativePrinters 條目相符,每台印表機還有額外的「id」或「guid」必填欄位,用於將印表機加入許可清單或列入黑名單。 + + 檔案大小不得超過 5 MB,且必須使用 JSON 編碼。根據估計,一個 5 MB 的編碼檔案中可包含約 21,000 台印表機。系統會使用加密編譯雜湊碼驗證下載內容的完整性。 + + 系統會下載並快取這個檔案,只要網址或雜湊碼有任何變更,系統就會重新下載檔案。 + + 如果設定這項政策,<ph name="PRODUCT_OS_NAME" />會下載用於設定印表機的檔案,並按照 <ph name="DEVICE_NATIVE_PRINTERS_ACCESS_MODE" />、<ph name="DEVICE_NATIVE_PRINTERS_WHITELIST_POLICY_NAME" /> 和 <ph name="DEVICE_NATIVE_PRINTERS_BLACKLIST_POLICY_NAME" /> 政策提供可用的印表機。 + + 這項政策對使用者是否能在個別裝置上設定印表機沒有影響,而是補足個別使用者的印表機設定。 + + 這項政策是用來補充 <ph name="BULK_PRINTERS_POLICY_NAME" />。 + + 如果不設定這項政策,系統將不會提供任何裝置印表機,並且會忽略其他 <ph name="DEVICE_NATIVE_PRINTERS_POLICY_PATTERN" /> 政策。 + </translation> <translation id="2623014935069176671">等待初始使用者活動</translation> <translation id="262740370354162807">啟用「<ph name="CLOUD_PRINT_NAME" />」文件提交功能</translation> <translation id="2632538643061793322">你可以透過這項政策建立網址模式清單,用於指定可要求使用者授予 USB 裝置存取權的網站。 @@ -1102,6 +1124,7 @@ 如未設定這項政策,在預設情況下,受管理的使用者無法使用這項功能,未受管理的使用者則可使用這項功能。</translation> <translation id="2660846099862559570">永不使用 Proxy</translation> +<translation id="2664682171745499686">禁止在網域上顯示相似網域的警告訊息</translation> <translation id="2665422249821137126">在登入畫面上啟用大型游標</translation> <translation id="2672012807430078509">控管是否要為 SMB 掛接功能啟用 NTLM 驗證通訊協定</translation> <translation id="2678503605767349615">必須提供裝置通用用戶端憑證</translation> @@ -1237,6 +1260,12 @@ 如果啟用這項設定,預覽列印會使用作業系統預設印表機做為預設目的地選擇。</translation> <translation id="285627849510728211">設定日間進階充電模式配置</translation> <translation id="2856674246949497058">如果作業系統比目標版本還新,則復原並維持在目標版本,並在作業過程中執行 Powerwash。</translation> +<translation id="2869140260739354012">根據 <ph name="DEVICE_PRINTERS_POLICY" /> 政策控管可供使用的印表機。 + + 這項政策可指派用於大量印表機設定的存取權政策。如果選取 <ph name="PRINTERS_ALLOW_ALL" />,系統會顯示所有印表機。如果選取 <ph name="PRINTERS_BLACKLIST" />,系統會使用 <ph name="DEVICE_NATIVE_PRINTERS_BLACKLIST" /> 限制對特定印表機的存取權。如果選取 <ph name="PRINTERS_WHITELIST" />,<ph name="DEVICE_NATIVE_PRINTERS_WHITELIST" /> 只會指派可選取的印表機。 + + 如果不設定這項政策,系統會自動採用 <ph name="PRINTERS_ALLOW_ALL" />。 + </translation> <translation id="2869762730352628426">在登入畫面上啟用自動點擊功能</translation> <translation id="2872961005593481000">關閉</translation> <translation id="2874209944580848064">支援 Android 裝置的 <ph name="PRODUCT_OS_NAME" />裝置注意事項:</translation> @@ -1279,11 +1308,6 @@ 注意:這項政策指向和 <ph name="IE_PRODUCT_NAME" /> 的 <ph name="IEEM_SITELIST_POLICY" /> 政策採用相同格式的 XML 檔案。因此,系統會從 XML 檔案載入規則,但不會與 <ph name="IE_PRODUCT_NAME" /> 共用這些規則。如要進一步瞭解 <ph name="IE_PRODUCT_NAME" /> 的 <ph name="IEEM_SITELIST_POLICY" /> 政策,請前往 https://docs.microsoft.com/internet-explorer/ie11-deploy-guide/what-is-enterprise-mode</translation> <translation id="2952347049958405264">限制:</translation> -<translation id="2956777931324644324">我們已於 <ph name="PRODUCT_NAME" /> 版本 36 中移除這項政策。 - - 指定是否要啟用 TLS 網域專屬憑證擴充功能。 - - 這項實驗性設定是用來啟用 TLS 網域專屬憑證擴充功能以供測試,我們將於日後移除。</translation> <translation id="2957047180944828740">指定是否允許不安全網站向更私密的網站端點傳送要求</translation> <translation id="2957506574938329824">不允許任何網站透過 Web Bluetooth API 要求存取藍牙裝置</translation> <translation id="2957513448235202597"><ph name="HTTP_NEGOTIATE" /> 驗證模式的帳戶類型</translation> @@ -1732,13 +1756,13 @@ 如果不設定這項政策,系統預設會停用隨選朗讀功能,但使用者可以隨時啟用這項功能。</translation> <translation id="3591527072193107424">啟用「舊版瀏覽器支援」功能。</translation> <translation id="3591584750136265240">設定登入驗證行為</translation> -<translation id="3603469950773500315">在新版 <ph name="CORS" /> 模式中啟用緩和措施來放寬 <ph name="CORS" /> 檢查標準,讓擴充功能保持相容行為,並允許 <ph name="PRODUCT_NAME" /> 不需經過 <ph name="CORS" /> 檢查即可傳送指定標頭。 +<translation id="3603469950773500315">在新版 <ph name="CORS" /> 模式中啟用寬鬆檢查機制來放寬 <ph name="CORS" /> 檢查標準,讓擴充功能保持相容行為,並允許 <ph name="PRODUCT_NAME" /> 不需經過 <ph name="CORS" /> 檢查即可傳送指定標頭。 如果將這份清單設為空白,<ph name="PRODUCT_NAME" /> 會嘗試以相容方式執行擴充功能,且不會採用 <ph name="PRODUCT_NAME" /> 第 79 版的 <ph name="API" /> 變更,詳情請參閱 <ph name="WEB_REQUEST_API_MANUAL" />。 - 如果在這份清單中納入 <ph name="HTTP" /> 要求標頭名稱,則 <ph name="CORS" /> 檢查將忽略此處列出的標頭,並針對擴充功能啟用緩和措施。 + 如果在這份清單中納入 <ph name="HTTP" /> 要求標頭名稱,則 <ph name="CORS" /> 檢查將忽略此處列出的標頭,並針對擴充功能啟用寬鬆檢查機制。 - 如果未設定這份清單,則不會套用上述兩種緩和措施。 + 如果未設定這份清單,則不會套用上述兩種寬鬆檢查機制。 如要進一步瞭解 <ph name="CORS" />,請前往:<ph name="CORS_HELP_URL" />。 @@ -1813,7 +1837,6 @@ 如未設定這項政策,在預設情況下,受企業管理的使用者將無法使用 Smart Lock 登入功能,其他一般的使用者則可使用這項登入功能。</translation> <translation id="3803171355925844705">不允許任何網站載入複合型內容</translation> -<translation id="3805659594028420438">啟用 TLS 網域專屬憑證擴充功能 (已不適用)</translation> <translation id="3808945828600697669">指定停用的外掛程式清單</translation> <translation id="3810642039169532482">在登入畫面上啟用語音輸入無障礙功能。 @@ -1843,6 +1866,12 @@ <translation id="3838094946886335701">你可以透過這項政策 (只能設為「建議」) 註冊通訊協定處理常式的清單,其中的通訊協定處理常式會與使用者所註冊的合併,二種皆可供使用。請將「protocol」(通訊協定) 屬性設為「mailto」等類型的網路通訊協定配置,並將「URL」(網址) 屬性設為處理該網路通訊協定的應用程式所使用的網址模式 (這裡的網路通訊協定指的是「通訊協定」欄位中所指定的網路通訊協定配置)。模式可包含「%s」預留位置,將替換為受處理的網址。 使用者無法移除透過政策註冊的通訊協定處理常式,但可透過安裝新的預設處理常式,變更透過政策安裝的通訊協定處理常式。</translation> +<translation id="3848118497246496090">指定禁止使用的印表機。 + + 只有在為 <ph name="DEVICE_NATIVE_PRINTERS_ACCESS_MODE" /> 選擇 <ph name="PRINTERS_BLACKLIST" /> 的情況下,系統才會使用這項政策。 + + 如果使用這項政策,除了本政策中列出的 ID 之外,其他所有印表機皆可供使用。ID 必須與 <ph name="DEVICE_PRINTERS_POLICY" /> 政策中指定檔案的「id」或「guid」欄位相符。 + </translation> <translation id="3851039766298741586">回報執行中資訊站工作階段的相關資訊,例如 應用程式 ID 和版本。 @@ -1982,6 +2011,12 @@ <translation id="3965339130942650562">逾時直到閒置使用者登出</translation> <translation id="3973371701361892765">永不自動隱藏檔案櫃</translation> <translation id="3979738908158213640">可在 SAML 驗證期間取得執行裝置認證存取權的網址</translation> +<translation id="3980024487013511975">指定禁止使用的印表機。 + + 只有在為 <ph name="DEVICE_PRINTERS_ACCESS_MODE_POLICY_NAME" /> 選擇 <ph name="PRINTERS_BLOCKLIST" /> 的情況下,系統才會使用這項政策。 + + 如果使用這項政策,除了本政策中列出的 ID 之外,其他所有印表機皆可供使用。ID 必須與 <ph name="DEVICE_PRINTERS_POLICY_NAME" /> 政策中指定檔案的「id」或「guid」欄位相符。 + </translation> <translation id="3984028218719007910">決定登出後 <ph name="PRODUCT_OS_NAME" /> 是否要保留本機帳戶資料。如果設為 True,<ph name="PRODUCT_OS_NAME" /> 不會保留任何永久帳戶,並且在登出後會刪除使用者工作階段的所有資料。如果這項政策設為 False 或未設定,裝置會保留 (加密) 本機使用者資料。</translation> <translation id="398884292557092447">如果將這項政策設為 True 或不設定,使用者將可控管 UI 中的信用卡自動填入建議。 @@ -2192,6 +2227,12 @@ 如果不設定,網站可要求存取檔案和目錄,但使用者可以變更這項設定。</translation> <translation id="4285674129118156176">允許無關聯的使用者使用 ARC</translation> +<translation id="4309562700894844665">指定可供使用的印表機。 + + 只有在為 <ph name="DEVICE_NATIVE_PRINTERS_ACCESS_MODE" /> 選擇 <ph name="PRINTERS_WHITELIST" /> 的情況下,系統才會使用這項政策。 + + 如果使用這項政策,只有 ID 與這項政策值相符的印表機可供使用。ID 必須與 <ph name="DEVICE_PRINTERS_POLICY" /> 政策中指定檔案的「id」或「guid」欄位相符。 + </translation> <translation id="4311195029067684288">Full</translation> <translation id="4313767483634435271">裝置的指定座架 MAC 位址</translation> <translation id="4322842393287974810">允許使用無延遲資訊站應用程式的自動啟動功能來控制 <ph name="PRODUCT_OS_NAME" /> 版本</translation> @@ -2522,11 +2563,6 @@ 如果未設定這項政策,除非已啟用 CastAllowAllIPs 功能,否則系統只會將 <ph name="PRODUCT_NAME" /> 連線至 RFC1918/RFC4193 上的 Cast 裝置。</translation> <translation id="489803897780524242">可使用這個參數來決定是否要為預設搜尋服務商提供替代搜尋字詞。</translation> <translation id="4899708173828500852">啟用安全瀏覽</translation> -<translation id="4902163780937592202">允許合併擴充功能安裝清單政策 <ph name="EXTENSION_INSTALL_BLOCKLIST_POLICY_NAME" />、<ph name="EXTENSION_INSTALL_ALLOWLIST_POLICY_NAME" /> 和 <ph name="EXTENSION_INSTALL_FORCELIST_POLICY_NAME" />。 - - 如果啟用這項設定,系統會將裝置平台政策、裝置雲端政策和使用者平台政策的值合併為單一清單,並會使用整份清單,而不會只使用優先程度最高的單一來源值。 - - 如果停用這項設定或不設定,系統只會使用優先程度最高的來源所列出的項目,並將所有其他來源顯示為衝突項目並予以忽略。</translation> <translation id="4906194810004762807">裝置政策的重新整理頻率</translation> <translation id="4917385247580444890">強</translation> <translation id="4919122295221518724">使用較嚴格的混合內容處理方式</translation> @@ -2834,6 +2870,22 @@ 如果將這項政策設為「強制登入瀏覽器」,使用者會看到選取帳戶的對話方塊,而且必須選擇帳並登入戶才能使用瀏覽器。這樣可以確保系統在與該帳戶關聯的所有受管理帳戶中套用並強制執行相關政策。根據預設,這項設定會開啟帳戶的 Chrome 同步功能 (除非網域管理員已停用同步功能,或是另外設定了「SyncDisabled」政策)。BrowserGuestModeEnabled 的預設值將設為 False。請注意,啟用這項政策後,未經簽署的現有設定檔會遭到鎖定,無法再使用。詳情請參閱說明中心文章:https://support.google.com/chrome/a/answer/7572556。這個選項不支援 Linux 和 Android,如果你採用這個選項,系統將改為使用「允許登入瀏覽器」。 如果不設定這項政策,使用者可以決定是否要啟用瀏覽器登入選項,並視需要自行選用。</translation> +<translation id="5327325901414715560">為繫結至裝置的企業印表機提供設定。 + + 這項政策可讓你為 <ph name="PRODUCT_OS_NAME" />裝置提供印表機設定。格式與 NativePrinters 條目相符,每台印表機還有額外的「id」或「guid」必填欄位,用於將印表機加入許可清單或列入黑名單。 + + 檔案大小不得超過 5 MB,且必須使用 JSON 編碼。根據估計,一個 5 MB 的編碼檔案中可包含約 21,000 台印表機。系統會使用加密編譯雜湊碼驗證下載內容的完整性。 + + 系統會下載並快取這個檔案,只要網址或雜湊碼有任何變更,系統就會重新下載檔案。 + + 如果設定這項政策,<ph name="PRODUCT_OS_NAME" />會下載用於設定印表機的檔案,並按照 <ph name="DEVICE_PRINTERS_ACCESS_MODE_POLICY_NAME" />、<ph name="DEVICE_PRINTERS_ALLOWLIST_POLICY_NAME" /> 和 <ph name="DEVICE_PRINTERS_BLOCKLIST_POLICY_NAME" /> 政策提供可用的印表機。 + + 這項政策對使用者是否能在個別裝置上設定印表機沒有影響,而是補足個別使用者的印表機設定。 + + 這項政策是用來補充 <ph name="PRINTERS_BULK_CONFIGURATION_POLICY_NAME" />。 + + 如果不設定這項政策,系統將不會提供任何裝置印表機,並且會忽略其他 <ph name="DEVICE_PRINTERS_POLICY_PATTERN" /> 政策。 + </translation> <translation id="532848608876725157">啟用 DNS-over-HTTPS,而且可以改用不安全查詢</translation> <translation id="5329007337159326804">警告:自 <ph name="PRODUCT_NAME" /> 版本 75 (2019 年 6 月左右推出) 起,我們將全面移除 TLS 最高版本政策。 @@ -2971,7 +3023,6 @@ 如果將這項政策設為 False,<ph name="PRODUCT_NAME" /> 無法以整個分頁顯示產品資訊。 你可以透過這項政策控制歡迎頁面的顯示形式,協助使用者登入 <ph name="PRODUCT_NAME" />、將 <ph name="PRODUCT_NAME" /> 設為使用者的預設瀏覽器,或是向使用者介紹產品功能。</translation> -<translation id="5447306928176905178">在網頁上回報記憶體資訊 (JavaScript 堆積大小) (已不適用)</translation> <translation id="5450893456912604446">設定 <ph name="PRODUCT_NAME" /> 的預設首頁網址,並禁止使用者變更這項設定。 首頁是指點選首頁按鈕後開啟的網頁。以桌上型電腦來說,啟動時開啟的網頁由 RestoreOnStartup 政策控管。 @@ -3395,6 +3446,12 @@ <ph name="PRODUCT_NAME" /> 會管理磁碟區根目錄的內容。因此,請勿將這項政策設為根目錄或任何用於其他用途的目錄,以免遺失資料或發生其他錯誤。如要查看可使用的變數,請參閱 https://www.chromium.org/administrators/policy-list-3/user-data-directory-variables。</translation> <translation id="6083631234867522991">Windows (Windows 用戶端):</translation> +<translation id="6086225644749063677">指定可供使用的印表機。 + + 只有在為 <ph name="DEVICE_PRINTERS_ACCESS_MODE_POLICY_NAME" /> 選擇 <ph name="PRINTERS_ALLOWLIST" /> 的情況下,系統才會使用這項政策。 + + 如果使用這項政策,只有 ID 與這項政策值相符的印表機可供使用。ID 必須與 <ph name="DEVICE_PRINTERS_POLICY_NAME" /> 政策中指定檔案的「id」或「guid」欄位相符。 + </translation> <translation id="608788685013546076">設定用電尖峰轉移電池閾值 (以百分比為單位)</translation> <translation id="6089679180657323464">控管 wilco 診斷與遙測控制器設定。</translation> <translation id="6091233616732024397">強制使用者登入才能使用瀏覽器</translation> @@ -3880,6 +3937,11 @@ 請注意,使用者只要封鎖 Google 服務的 Cookie,即可在未經驗證的狀態下存取 Google 服務。</translation> <translation id="6843296367238757293">這項政策已遭到淘汰,因此不建議你使用此政策。詳情請參閱 https://support.google.com/chrome/a/answer/7643500</translation> +<translation id="6846126863870444592">這項政策可指定哪些擴充功能在使用 <ph name="PRINTING_API" /> 函式 <ph name="SUBMIT_JOB_FUNCTION" /> 傳送列印工作時,可以略過列印工作確認對話方塊。 + + 如果清單中未包含任何擴充功能,或是未設定清單,則使用者每次使用 <ph name="SUBMIT_JOB_FUNCTION" /> 函式呼叫時,系統都會顯示列印工作確認對話方塊。 + + 這項政策已遭淘汰,請改用 <ph name="PRINTING_API_EXTENSIONS_ALLOWLIST_POLICY_NAME" />。</translation> <translation id="684856667300805181">這項政策已在 <ph name="PRODUCT_NAME" /> 68 中遭到移除,並已由 <ph name="ARC_GLS_POLICY_NAME" /> 取代。</translation> <translation id="6851199885688265233">啟用游標醒目顯示無障礙功能</translation> <translation id="6851315055469993882">啟用全域範圍的 HTTP 驗證快取</translation> @@ -3899,9 +3961,6 @@ 如果不設定這項政策,預設值是允許受企業管理以及未受管理的使用者執行這項功能。</translation> <translation id="6864244339257535116">允許使用者上傳及下載受密碼保護的檔案</translation> -<translation id="687046793986382807">我們已於 <ph name="PRODUCT_NAME" /> 35 版中移除這項政策。 - - 無論其選項值為何,系統都會在網頁上回報記憶體資訊;但基於安全性考量,系統會限制回報的資料量以及更新頻率。如要取得即時準確資料,請使用 Telemetry 等工具。</translation> <translation id="68798513449385583">延遲下載,直到系統取得掃描結果</translation> <translation id="6889123056995503704">使用者決定版本降級行為</translation> <translation id="6894178810167845842">新分頁網址</translation> @@ -3935,6 +3994,15 @@ <translation id="6907778402784621686">封鎖這些網站上的不安全內容</translation> <translation id="6908640907898649429">設定預設搜尋引擎。你可以指定使用者要使用的預設搜尋引擎或選擇停用預設搜尋。</translation> <translation id="6913068954484253496">允許 <ph name="PRODUCT_NAME" /> 連線至所有 IP 位址上的 Cast 裝置。</translation> +<translation id="6916817094593836501">這項政策會禁止系統在列出的網站上顯示相似網址的警告訊息。一般而言,當 <ph name="PRODUCT_NAME" /> 認為網站可能試圖假冒成使用者熟悉的其他網站時,就會在網站上顯示這類警告訊息。 + + + 如果啟用這項政策並設為一或多個網域,當使用者造訪該網域的網頁時,系統不會顯示任何相似警告訊息網頁。 + + 如果停用這項政策、不設定或設為空白清單,系統可能會在使用者造訪的任何網站上顯示警告訊息。 + + + 系統可允許主機完全相符或網域相符的主機名稱。舉例來說,如果這份清單包含「foo.example.com」或「example.com」,「https://foo.example.com/bar」這類網址可能不會顯示警告訊息。</translation> <translation id="6922884955650325312">封鎖 <ph name="FLASH_PLUGIN_NAME" /> 外掛程式</translation> <translation id="6923731550900440989">在登入畫面上啟用插入點醒目顯示功能</translation> <translation id="6924223708804692571">這項政策會強制停用指定語言的拼字檢查功能。系統會忽略該清單中無法辨識的語言。 @@ -4679,7 +4747,6 @@ <translation id="793134539373873765">指定是否使用 P2P 更新裝載作業系統。如果設為 True,裝置將會在 LAN 上共用並嘗試使用更新裝載,藉此降低網際網路頻寬用量及減輕壅塞。如果 LAN 上未提供更新裝載,裝置將回歸至更新伺服器進行下載。如果設為 False 或未設定,則不會使用 P2P。</translation> <translation id="7933141401888114454">啟用建立受監管使用者的功能</translation> <translation id="793473937901685727">設定 ARC 應用程式的憑證可用性</translation> -<translation id="7937491150792971922">合併多個來源的擴充功能安裝清單政策</translation> <translation id="7937766917976512374">允許或拒絕擷取視訊</translation> <translation id="7941975817681987555">無論使用任何網路連線,皆不預測網路動作</translation> <translation id="7951605113561734721">指定應使用裝置管理通訊協定註冊的裝置通用用戶端憑證。</translation> @@ -4700,6 +4767,9 @@ <translation id="7953256619080733119">管理化環境下使用者手動建立的例外主機</translation> <translation id="7956210013490975468">設定 <ph name="PRODUCT_OS_NAME" />的系統 Proxy 服務。</translation> <translation id="7958537754689366707">每 12 小時需輸入密碼</translation> +<translation id="7960293328203000385">這項政策會定義可登入裝置的使用者清單,輸入項目格式為 <ph name="USER_ALLOWLIST_ENTRY_FORMAT" /> (例如 <ph name="USER_ALLOWLIST_ENTRY_EXAMPLE" />)。如要允許特定網域的任意使用者登入裝置,請使用 <ph name="USER_ALLOWLIST_ENTRY_WILDCARD" /> 格式輸入項目。 + + 如果不設定這項政策,所有使用者均可登入裝置。請注意,想要建立新使用者,你仍需適當地設定 <ph name="DEVICE_ALLOW_NEW_USERS_POLICY_NAME" /> 政策。</translation> <translation id="7961779417826583251">不針對列出的舊版憑證授權單位強制執行憑證透明化政策</translation> <translation id="7973609468423251675">請注意,這項政策已遭淘汰,並將在 <ph name="PRODUCT_OS_NAME" />第 85 版中移除。請改用 <ph name="POWER_MANAGEMENT_IDLE_SETTINGS_POLICY_NAME" />。
diff --git a/components/prerender/browser/prerender_manager.cc b/components/prerender/browser/prerender_manager.cc index dccf3d0..2ecd0d1 100644 --- a/components/prerender/browser/prerender_manager.cc +++ b/components/prerender/browser/prerender_manager.cc
@@ -402,7 +402,8 @@ auto dict_value = std::make_unique<base::DictionaryValue>(); dict_value->Set("history", prerender_history_->CopyEntriesAsValue()); dict_value->Set("active", GetActivePrerendersAsValue()); - dict_value->SetBoolean("enabled", delegate_->IsPredictionEnabled()); + dict_value->SetBoolean("enabled", + delegate_->IsNetworkPredictionPreferenceEnabled()); dict_value->SetString("disabled_note", delegate_->GetReasonForDisablingPrediction()); // If prerender is disabled via a flag this method is not even called. @@ -505,6 +506,26 @@ return base::SysInfo::IsLowEndDevice(); } +bool PrerenderManager::IsPredictionEnabled(Origin origin) { + DCHECK_CURRENTLY_ON(content::BrowserThread::UI); + + // <link rel=prerender> origins ignore the network state and the privacy + // settings. Web developers should be able prefetch with all possible privacy + // settings. This would avoid web devs coming up with creative ways to + // prefetch in cases they are not allowed to do so. + if (origin == ORIGIN_LINK_REL_PRERENDER_SAMEDOMAIN || + origin == ORIGIN_LINK_REL_PRERENDER_CROSSDOMAIN) { + return true; + } + + // TODO(crbug.com/1121970): Remove this check once we're no longer running the + // experiment "PredictivePrefetchingAllowedOnAllConnectionTypes". + if (delegate_->IsPredictionDisabledDueToNetwork(origin)) + return false; + + return delegate_->IsNetworkPredictionPreferenceEnabled(); +} + void PrerenderManager::MaybePreconnect(Origin origin, const GURL& url_arg) const { delegate_->MaybePreconnect(url_arg); @@ -541,7 +562,7 @@ return nullptr; } - if (!delegate_->IsPredictionEnabled(origin)) { + if (!IsPredictionEnabled(origin)) { FinalStatus final_status = delegate_->IsPredictionDisabledDueToNetwork(origin) ? FINAL_STATUS_CELLULAR_NETWORK
diff --git a/components/prerender/browser/prerender_manager.h b/components/prerender/browser/prerender_manager.h index 386a437fc..709cf6a0 100644 --- a/components/prerender/browser/prerender_manager.h +++ b/components/prerender/browser/prerender_manager.h
@@ -365,6 +365,9 @@ // Same as base::SysInfo::IsLowEndDevice(), overridden in tests. virtual bool IsLowEndDevice() const; + // Whether network prediction is enabled for prerender origin, |origin|. + bool IsPredictionEnabled(Origin origin); + private: friend class test_utils::PrerenderInProcessBrowserTest; friend class PrerenderContents;
diff --git a/components/prerender/browser/prerender_manager_delegate.cc b/components/prerender/browser/prerender_manager_delegate.cc index 34b5695..8e3bd99 100644 --- a/components/prerender/browser/prerender_manager_delegate.cc +++ b/components/prerender/browser/prerender_manager_delegate.cc
@@ -10,11 +10,7 @@ void PrerenderManagerDelegate::MaybePreconnect(const GURL& url) {} -bool PrerenderManagerDelegate::IsPredictionEnabled(Origin origin) { - return true; -} - -bool PrerenderManagerDelegate::IsPredictionEnabled() { +bool PrerenderManagerDelegate::IsNetworkPredictionPreferenceEnabled() { return true; }
diff --git a/components/prerender/browser/prerender_manager_delegate.h b/components/prerender/browser/prerender_manager_delegate.h index 5a5d602..36cdd202 100644 --- a/components/prerender/browser/prerender_manager_delegate.h +++ b/components/prerender/browser/prerender_manager_delegate.h
@@ -34,13 +34,12 @@ virtual std::unique_ptr<PrerenderContentsDelegate> GetPrerenderContentsDelegate() = 0; - // Check whether predictive loading of web pages is enabled for |origin|. - virtual bool IsPredictionEnabled(Origin origin); - - // Check whether predictive loading of web pages is enabled. - virtual bool IsPredictionEnabled(); + // Check whether the user has enabled predictive loading of web pages. + virtual bool IsNetworkPredictionPreferenceEnabled(); // Check whether predictive loading of web pages is disabled due to network. + // TODO(crbug.com/1121970): Remove this condition once we're no longer running + // the experiment "PredictivePrefetchingAllowedOnAllConnectionTypes". virtual bool IsPredictionDisabledDueToNetwork(Origin origin); // Gets the reason why predictive loading of web pages was disabld.
diff --git a/components/strings/components_strings_bn.xtb b/components/strings/components_strings_bn.xtb index 10b0ac72..98c418eb 100644 --- a/components/strings/components_strings_bn.xtb +++ b/components/strings/components_strings_bn.xtb
@@ -645,6 +645,7 @@ <translation id="362276910939193118">সম্পূর্ণ ইতিহাস দেখুন</translation> <translation id="3630155396527302611">নেটওয়ার্ক অ্যাক্সেস করতে এটি যদি ইতোমধ্যে মঞ্জুরিকৃত প্রোগ্রাম হিসাবে তালিকাতে থাকে, তাহলে তালিকাটি থেকে এটি সরানোর চেষ্টা করে আবার যোগ করে দেখুন।</translation> +<translation id="3630699740441428070">এই ডিভাইসের অ্যাডমিনিস্ট্রেটর আপনার নেটওয়ার্ক কানেকশন কনফিগার করেছেন। এর ফলে, আপনি যে ওয়েবসাইটগুলিতে যান সেগুলি সহ আপনার নেটওয়ার্ক ট্রাফিক তিনি দেখতে পাবেন।</translation> <translation id="3631244953324577188">বায়োমেট্রিক্স</translation> <translation id="3633738897356909127">Chrome আপডেট করার বোতাম, আপনার Chrome সেটিংসে Chrome আপডেট করতে Enter প্রেস করুন</translation> <translation id="3634530185120165534">ট্রে ৫</translation>
diff --git a/components/strings/components_strings_fr-CA.xtb b/components/strings/components_strings_fr-CA.xtb index 96e6c62..4f8fbd2 100644 --- a/components/strings/components_strings_fr-CA.xtb +++ b/components/strings/components_strings_fr-CA.xtb
@@ -1877,7 +1877,7 @@ <translation id="8793655568873652685"><ph name="ENROLLMENT_DOMAIN" /> a activé les connecteurs Chrome Enterprise dans votre navigateur. Ces connecteurs ont accès à certaines de vos données.</translation> <translation id="8805819170075074995">Entrée de liste « <ph name="LANGUAGE_ID" /> » : l'entrée a été ignorée, car elle est aussi incluse dans la politique SpellcheckLanguage.</translation> <translation id="8807160976559152894">Couper après chaque page</translation> -<translation id="8816395686387277279"><ph name="UPDATE_CHROME_FOCUSED_FRIENDLY_MATCH_TEXT" />, appuyez sur la touche Tabulation, puis sur la touche Entrée pour mettre à jour à jour Chrome dans les paramètres de Chrome</translation> +<translation id="8816395686387277279"><ph name="UPDATE_CHROME_FOCUSED_FRIENDLY_MATCH_TEXT" />, appuyez sur la touche Tabulation, puis sur la touche Entrée pour mettre à jour Chrome dans les paramètres de Chrome</translation> <translation id="8820817407110198400">Favoris</translation> <translation id="883848425547221593">Autres favoris</translation> <translation id="884264119367021077">Adresse d'expédition</translation>
diff --git a/components/strings/components_strings_fr.xtb b/components/strings/components_strings_fr.xtb index d1c45a5..60c3073 100644 --- a/components/strings/components_strings_fr.xtb +++ b/components/strings/components_strings_fr.xtb
@@ -642,6 +642,7 @@ <translation id="362276910939193118">Afficher l'historique complet</translation> <translation id="3630155396527302611">S'il est déjà répertorié en tant que programme autorisé à accéder au réseau, essayez de le supprimer de la liste, puis de le rajouter.</translation> +<translation id="3630699740441428070">Les administrateurs de cet appareil ont configuré votre connexion réseau grâce à laquelle ils ont la possibilité d'afficher le trafic de votre réseau, y compris les sites Web que vous consultez.</translation> <translation id="3631244953324577188">Biométrie</translation> <translation id="3633738897356909127">Bouton "Mise à jour de Chrome" : appuyer sur Entrée pour mettre à jour Chrome depuis les paramètres du navigateur</translation> <translation id="3634530185120165534">Bac 5</translation>
diff --git a/components/strings/components_strings_gl.xtb b/components/strings/components_strings_gl.xtb index 3e1b232..33c64d94 100644 --- a/components/strings/components_strings_gl.xtb +++ b/components/strings/components_strings_gl.xtb
@@ -641,6 +641,7 @@ <translation id="362276910939193118">Mostrar historial completo</translation> <translation id="3630155396527302611">Se xa está incluído como programa autorizado para acceder á rede, proba a eliminalo da lista e volver engadilo.</translation> +<translation id="3630699740441428070">Os administradores deste dispositivo configuraron a túa conexión de rede, o cal pode permitirlles ver o tráfico de rede, así como os sitios web que visitas.</translation> <translation id="3631244953324577188">Biométrica</translation> <translation id="3633738897356909127">Botón Actualizar Chrome. Preme Intro para actualizar Chrome desde a configuración do navegador</translation> <translation id="3634530185120165534">Bandexa 5</translation>
diff --git a/components/strings/components_strings_gu.xtb b/components/strings/components_strings_gu.xtb index 4c792b0..1a08b5b 100644 --- a/components/strings/components_strings_gu.xtb +++ b/components/strings/components_strings_gu.xtb
@@ -644,6 +644,7 @@ <translation id="362276910939193118">પૂર્ણ ઇતિહાસ બતાવો</translation> <translation id="3630155396527302611">જો તે પહેલાંથી જ નેટવર્ક ઍક્સેસ કરવા માટે મંજૂર પ્રોગ્રામ તરીકે સૂચિબદ્ધ હોય, તો તેને સૂચિમાંથી દૂર કરી અને તેને ફરીથી ઉમેરવાનો પ્રયાસ કરો.</translation> +<translation id="3630699740441428070">આ ડિવાઇસના વ્યવસ્થાપકોએ તમારું નેટવર્ક કનેક્શન ગોઠવ્યું છે, જે અનુસાર તેઓ તમે મુલાકાત લીધેલી વેબસાઇટ સહિત તમારો નેટવર્ક ટ્રાફિક જોઈ શકે તેમ બની શકે છે.</translation> <translation id="3631244953324577188">બાયોમેટ્રિક્સ</translation> <translation id="3633738897356909127">Chrome અપડેટ કરો બટન, તમારા Chrome સેટિંગમાંથી Chrome અપડેટ કરવા માટે Enter દબાવો</translation> <translation id="3634530185120165534">ટ્રે 5</translation>
diff --git a/components/strings/components_strings_mn.xtb b/components/strings/components_strings_mn.xtb index 8b25a17..2b5f995 100644 --- a/components/strings/components_strings_mn.xtb +++ b/components/strings/components_strings_mn.xtb
@@ -645,7 +645,7 @@ <translation id="362276910939193118">Түүхийг бүрнээр нь харуул</translation> <translation id="3630155396527302611">Хэрэв энэ программ нь сүлжээнд нэвтрэх зөвшөөрөлтэй программын жагсаалтад орсон бол жагсаалтаас устгаад, дахин нэмнэ үү.</translation> -<translation id="3630699740441428070">Энэ төхөөрөмжийн администраторууд таны зочилдог вэб сайтуудтай цуг сүлжээний ачааллыг тань харах боломжтойгоор сүлжээний холболтыг тохируулсан байна.</translation> +<translation id="3630699740441428070">Энэ төхөөрөмжийн администраторууд таны зочилдог вэб сайтуудыг оруулаад сүлжээний ачааллыг тань харах боломжтойгоор сүлжээний холболтыг тохируулсан байна.</translation> <translation id="3631244953324577188">Биометр</translation> <translation id="3633738897356909127">Chrome-г шинэчлэх товч, Chrome-н тохиргооноосоо Chrome-г шинэчлэхийн тулд Enter дарна уу</translation> <translation id="3634530185120165534">Гарах цаасны тавиур 5</translation>
diff --git a/components/strings/components_strings_ne.xtb b/components/strings/components_strings_ne.xtb index 3cdb86b..daa62d9 100644 --- a/components/strings/components_strings_ne.xtb +++ b/components/strings/components_strings_ne.xtb
@@ -641,6 +641,7 @@ <translation id="362276910939193118">पूर्ण इतिहास देखाउनुहोस्</translation> <translation id="3630155396527302611">यदि यसलाई नेटवर्कमा पहुँच गर्ने अनुमति भएको प्रोग्रामको रूपमा पहिले नै सूचीबद्ध गरिएको छ भने यसलाई सूचीबाट हटाएर फेरि थप्ने प्रयास गर्नुहोस्।</translation> +<translation id="3630699740441428070">यो यन्त्रका एड्मिनहरूले तपाईंले हेर्ने वेबसाइटलगायत तपाईंको नेटवर्क ट्राफिक हेर्न पाउने गरी तपाईंको नेटवर्क कनेक्सन कन्फिगर गर्नुभएको छ।</translation> <translation id="3631244953324577188">बायोमेट्रिक्स</translation> <translation id="3633738897356909127">'Chrome अपडेट गर्नुहोस्' नामक बटन, आफ्नो Chrome का सेटिङमा गई Chrome अपडेट गर्न Enter थिच्नुहोस्</translation> <translation id="3634530185120165534">ट्रे ५</translation>
diff --git a/components/strings/components_strings_or.xtb b/components/strings/components_strings_or.xtb index 8a876cc5..b6d4c16 100644 --- a/components/strings/components_strings_or.xtb +++ b/components/strings/components_strings_or.xtb
@@ -635,6 +635,7 @@ <translation id="36224234498066874">ବ୍ରାଉଜିଂ ଡାଟା ଖାଲି କରନ୍ତୁ...</translation> <translation id="362276910939193118">ସମ୍ପୂର୍ଣ୍ଣ ଇତିବୃତ୍ତି ଦେଖାନ୍ତୁ</translation> <translation id="3630155396527302611">ଯଦି ଏହାକୁ ନେଟ୍ୱାର୍କକୁ ଆକ୍ସେସ୍ କରିବା ପାଇଁ ଅନୁମତି ଦିଆଯାଇଥିବା ଗୋଟିଏ ପ୍ରୋଗ୍ରାମ୍ ଭାବେ ପୂର୍ବରୁ ତାଲିକାଭୁକ୍ତ କରାଯାଇଥାଏ, ତେବେ ତାଲିକାରୁ ଏହାକୁ କାଢ଼ି, ପୂନର୍ବାର ଯୋଗ କରିବା ପାଇଁ ଚେଷ୍ଟା କରନ୍ତୁ।</translation> +<translation id="3630699740441428070">ଏହି ଡିଭାଇସର ଆଡମିନିଷ୍ଟ୍ରେଟରମାନେ ଆପଣଙ୍କ ନେଟୱାର୍କ ସଂଯୋଗ କନଫିଗର୍ କରିଛନ୍ତି, ଯାହା ଆପଣ ଭିଜିଟ୍ କରିଥିବା ୱେବସାଇଟଗୁଡ଼ିକ ସମେତ, ଆପଣଙ୍କ ନେଟୱାର୍କ ଟ୍ରାଫିକକୁ ଦେଖିବା ପାଇଁ ସେମାନଙ୍କୁ ଅନୁମତି ଦେଇପାରେ।</translation> <translation id="3631244953324577188">ବାୟୋମେଟ୍ରିକ୍ସ</translation> <translation id="3633738897356909127">"Chrome ଅପଡେଟ୍ କରନ୍ତୁ" ବଟନ୍, ଆପଣଙ୍କ Chrome ସେଟିଂସରୁ Chrome ଅପଡେଟ୍ କରିବାକୁ Enter ଦବାନ୍ତୁ</translation> <translation id="3634530185120165534">ଟ୍ରେ 5</translation>
diff --git a/components/strings/components_strings_ru.xtb b/components/strings/components_strings_ru.xtb index e968f613..6988ad3 100644 --- a/components/strings/components_strings_ru.xtb +++ b/components/strings/components_strings_ru.xtb
@@ -637,6 +637,7 @@ <translation id="362276910939193118">Показать всю историю</translation> <translation id="3630155396527302611">Если программа входит в список тех, которым разрешен доступ к сети, удалите ее из списка и добавьте туда снова.</translation> +<translation id="3630699740441428070">Администраторы этого устройства настроили подключение к Интернету так, чтобы видеть ваш сетевой трафик, в том числе сайты, которые вы посещаете.</translation> <translation id="3631244953324577188">Биометрия</translation> <translation id="3633738897356909127">Кнопка "Обновить Chrome". Нажмите Ввод, чтобы обновить Chrome.</translation> <translation id="3634530185120165534">Лоток 5</translation>
diff --git a/components/strings/components_strings_ta.xtb b/components/strings/components_strings_ta.xtb index 8ee5000f..2c66808 100644 --- a/components/strings/components_strings_ta.xtb +++ b/components/strings/components_strings_ta.xtb
@@ -638,6 +638,7 @@ <translation id="362276910939193118">முழு வரலாற்றையும் காண்பி</translation> <translation id="3630155396527302611">இது நெட்வொர்க்கை அணுகுவதற்கு அனுமதிக்கப்பட்ட நிரலாக ஏற்கனவே பட்டியலிடப்பட்டிருந்தால், இதைப் பட்டியலில் இருந்து அகற்றி, மீண்டும் சேர்ப்பதற்கு முயலவும்.</translation> +<translation id="3630699740441428070">உங்கள் நெட்வொர்க் இணைப்பை இந்தச் சாதனத்தின் நிர்வாகிகள் உள்ளமைத்துள்ளனர். இதனால் நீங்கள் எந்த இணையதளங்களுக்குச் செல்கிறீர்கள் என்ற விவரம் உட்பட உங்கள் நெட்வொர்க் டிராஃபிக்குகளையும் அவர்களால் பார்க்க முடியும்.</translation> <translation id="3631244953324577188">பயோமெட்ரிக்ஸ்</translation> <translation id="3633738897356909127">’Chromeமைப் புதுப்பி’ பட்டன், Chrome அமைப்புகளில் Chromeமைப் புதுப்பிக்க Enter விசையை அழுத்துங்கள்</translation> <translation id="3634530185120165534">தட்டு 5</translation>
diff --git a/components/strings/components_strings_tr.xtb b/components/strings/components_strings_tr.xtb index c012c534..902fef5 100644 --- a/components/strings/components_strings_tr.xtb +++ b/components/strings/components_strings_tr.xtb
@@ -641,7 +641,7 @@ listeden kaldırıp tekrar eklemeyi deneyin.</translation> <translation id="3630699740441428070">Bu cihazın yöneticileri ağ bağlantınızı yapılandırdı. Bu sayede, ziyaret ettiğiniz web siteleri de dahil olmak üzere ağ trafiğinizi görebilirler.</translation> <translation id="3631244953324577188">Biyometri</translation> -<translation id="3633738897356909127">Chrome'u güncelle düğmesi button, Chrome ayarlarınızdan Chrome'u güncellemek için Enter'a basın</translation> +<translation id="3633738897356909127">Chrome'u güncelle düğmesi, Chrome ayarlarınızdan Chrome'u güncellemek için Enter'a basın</translation> <translation id="3634530185120165534">Tepsi 5</translation> <translation id="3640766068866876100">Index-4x6-Ext</translation> <translation id="3650584904733503804">Doğrulama başarılı</translation>
diff --git a/components/strings/components_strings_zh-CN.xtb b/components/strings/components_strings_zh-CN.xtb index 2c8af6c..3788282 100644 --- a/components/strings/components_strings_zh-CN.xtb +++ b/components/strings/components_strings_zh-CN.xtb
@@ -634,6 +634,7 @@ <translation id="36224234498066874">清除浏览数据...</translation> <translation id="362276910939193118">显示全部历史记录</translation> <translation id="3630155396527302611">如果它已在可访问网络的程序列表中,请尝试将它从该列表中移除,然后重新添加到其中。</translation> +<translation id="3630699740441428070">此设备的管理员已经配置了您的网络连接,这项连接可能会允许他们查看您的网络流量(包括您访问的网站)。</translation> <translation id="3631244953324577188">生物识别</translation> <translation id="3633738897356909127">“更新 Chrome”按钮,按 Enter 键即可前往 Chrome 设置以更新 Chrome</translation> <translation id="3634530185120165534">纸匣 5</translation>
diff --git a/components/sync/protocol/autofill_specifics.proto b/components/sync/protocol/autofill_specifics.proto index e760ffab..92aec9a 100644 --- a/components/sync/protocol/autofill_specifics.proto +++ b/components/sync/protocol/autofill_specifics.proto
@@ -210,6 +210,7 @@ } // Server-generated unique ID string. This is opaque to the client. + // This is the legacy version of |instrument_id|. optional string id = 1; // What the server thinks of this card. @@ -245,6 +246,10 @@ // Issuer of the card. optional CardIssuer card_issuer = 13; + + // Server-generated unique ID string. This is opaque to the client. + // |id| is the legacy version of this. + optional string instrument_id = 14; } // Different than an AutofillProfile because this represents some known address
diff --git a/components/sync/protocol/proto_visitors.h b/components/sync/protocol/proto_visitors.h index 4e6dfdd..3ef236e 100644 --- a/components/sync/protocol/proto_visitors.h +++ b/components/sync/protocol/proto_visitors.h
@@ -1116,6 +1116,7 @@ VISIT(bank_name); VISIT(nickname); VISIT(card_issuer); + VISIT(instrument_id); } VISIT_PROTO_FIELDS(const sync_pb::WalletMetadataSpecifics& proto) {
diff --git a/components/translate/core/language_detection/BUILD.gn b/components/translate/core/language_detection/BUILD.gn index 713c50dd..edfd796 100644 --- a/components/translate/core/language_detection/BUILD.gn +++ b/components/translate/core/language_detection/BUILD.gn
@@ -43,6 +43,7 @@ ":chinese_script_classifier", ":language_detection", "//base", + "//base/test:test_support", "//components/translate/core/common", "//testing/gtest", "//third_party/icu",
diff --git a/components/translate/core/language_detection/language_detection_util.cc b/components/translate/core/language_detection/language_detection_util.cc index 700360f3..d80136c 100644 --- a/components/translate/core/language_detection/language_detection_util.cc +++ b/components/translate/core/language_detection/language_detection_util.cc
@@ -92,9 +92,12 @@ const std::string utf8_text(base::UTF16ToUTF8(text)); // Make a prediction. + base::TimeTicks lang_id_start = base::TimeTicks::Now(); chrome_lang_id::NNetLanguageIdentifier lang_id; const chrome_lang_id::NNetLanguageIdentifier::Result lang_id_result = lang_id.FindTopNMostFreqLangs(utf8_text, /*num_langs=*/1).at(0); + base::UmaHistogramTimes("Translate.CLD3.TopLanguageEvaluationDuration", + base::TimeTicks::Now() - lang_id_start); const bool prediction_reliable = lang_id_result.is_reliable; const std::string& predicted_language = lang_id_result.language;
diff --git a/components/translate/core/language_detection/language_detection_util_unittest.cc b/components/translate/core/language_detection/language_detection_util_unittest.cc index b14331e571..bddd235 100644 --- a/components/translate/core/language_detection/language_detection_util_unittest.cc +++ b/components/translate/core/language_detection/language_detection_util_unittest.cc
@@ -6,6 +6,7 @@ #include "base/strings/string16.h" #include "base/strings/utf_string_conversions.h" +#include "base/test/metrics/histogram_tester.h" #include "components/translate/core/common/translate_constants.h" #include "testing/gtest/include/gtest/gtest.h" @@ -94,6 +95,7 @@ // Tests that the language meta tag providing wrong information is ignored by // LanguageDetectionUtil due to disagreement between meta tag and CLD. TEST_F(LanguageDetectionUtilTest, CLDDisagreeWithWrongLanguageCode) { + base::HistogramTester histogram_tester; base::string16 contents = base::ASCIIToUTF16( "<html><head><meta http-equiv='Content-Language' content='ja'></head>" "<body>This is a page apparently written in English. Even though " @@ -109,11 +111,14 @@ EXPECT_EQ(translate::kUnknownLanguageCode, language); EXPECT_EQ("en", cld_language); EXPECT_TRUE(is_cld_reliable); + histogram_tester.ExpectTotalCount( + "Translate.CLD3.TopLanguageEvaluationDuration", 1); } // Tests that the language meta tag providing "en-US" style information is // agreed by CLD. TEST_F(LanguageDetectionUtilTest, CLDAgreeWithLanguageCodeHavingCountryCode) { + base::HistogramTester histogram_tester; base::string16 contents = base::ASCIIToUTF16( "<html><head><meta http-equiv='Content-Language' content='en-US'></head>" "<body>This is a page apparently written in English. Even though " @@ -129,12 +134,15 @@ EXPECT_EQ("en", language); EXPECT_EQ("en", cld_language); EXPECT_TRUE(is_cld_reliable); + histogram_tester.ExpectTotalCount( + "Translate.CLD3.TopLanguageEvaluationDuration", 1); } // Tests that the language meta tag providing wrong information is ignored and // CLD's language will be adopted by LanguageDetectionUtil due to an invalid // meta tag. TEST_F(LanguageDetectionUtilTest, InvalidLanguageMetaTagProviding) { + base::HistogramTester histogram_tester; base::string16 contents = base::ASCIIToUTF16( "<html><head><meta http-equiv='Content-Language' content='utf-8'></head>" "<body>This is a page apparently written in English. Even though " @@ -150,11 +158,14 @@ EXPECT_EQ("en", language); EXPECT_EQ("en", cld_language); EXPECT_TRUE(is_cld_reliable); + histogram_tester.ExpectTotalCount( + "Translate.CLD3.TopLanguageEvaluationDuration", 1); } // Tests that the language meta tag providing wrong information is ignored // because of valid html lang attribute. TEST_F(LanguageDetectionUtilTest, AdoptHtmlLang) { + base::HistogramTester histogram_tester; base::string16 contents = base::ASCIIToUTF16( "<html lang='en'><head><meta http-equiv='Content-Language' content='ja'>" "</head><body>This is a page apparently written in English. Even though " @@ -170,6 +181,8 @@ EXPECT_EQ("en", language); EXPECT_EQ("en", cld_language); EXPECT_TRUE(is_cld_reliable); + histogram_tester.ExpectTotalCount( + "Translate.CLD3.TopLanguageEvaluationDuration", 1); } // Tests that languages that often have the wrong server configuration are
diff --git a/components/ui_devtools/views/view_element_unittest.cc b/components/ui_devtools/views/view_element_unittest.cc index 886b73be..962089d 100644 --- a/components/ui_devtools/views/view_element_unittest.cc +++ b/components/ui_devtools/views/view_element_unittest.cc
@@ -82,8 +82,8 @@ }; BEGIN_METADATA(NamedTestView, views::View) -ADD_PROPERTY_METADATA(NamedTestView, bool, BoolProperty) -ADD_PROPERTY_METADATA(NamedTestView, SkColor, ColorProperty) +ADD_PROPERTY_METADATA(bool, BoolProperty) +ADD_PROPERTY_METADATA(SkColor, ColorProperty) END_METADATA() class ViewElementTest : public views::ViewsTestBase {
diff --git a/components/url_formatter/BUILD.gn b/components/url_formatter/BUILD.gn index 3f9490b..fb476a27 100644 --- a/components/url_formatter/BUILD.gn +++ b/components/url_formatter/BUILD.gn
@@ -87,12 +87,4 @@ "//ui/gfx", "//url", ] - - if (is_android) { - sources += [ "url_formatter_android_unittest.cc" ] - deps += [ - "android:native_j_unittests_jni_headers", - "android:native_java_unittests_java", - ] - } }
diff --git a/components/url_formatter/DEPS b/components/url_formatter/DEPS index 70359141..142fdad 100644 --- a/components/url_formatter/DEPS +++ b/components/url_formatter/DEPS
@@ -4,6 +4,7 @@ "-content", "-ios", + "+content/public/test/android", "+net", "+ui/gfx", ]
diff --git a/components/url_formatter/android/BUILD.gn b/components/url_formatter/android/BUILD.gn index ca0460b..287b881c 100644 --- a/components/url_formatter/android/BUILD.gn +++ b/components/url_formatter/android/BUILD.gn
@@ -24,22 +24,19 @@ [ "java/src/org/chromium/components/url_formatter/UrlFormatter.java" ] } -android_library("native_java_unittests_java") { +android_library("url_formatter_javatests") { testonly = true + + sources = [ "javatests/src/org/chromium/components/url_formatter/UrlFormatterUnitTest.java" ] deps = [ ":url_formatter_java", "//base:base_java", + "//base:base_java_test_support", + "//content/public/test/android:content_java_test_support", + "//third_party/android_deps:androidx_core_core_java", + "//third_party/android_deps:androidx_test_runner_java", + "//third_party/android_support_test_runner:runner_java", "//third_party/junit", "//url:gurl_java", ] - sources = [ "native_java_unittests/src/org/chromium/components/url_formatter/UrlFormatterUnitTest.java" ] - - annotation_processor_deps = [ "//base/android/jni_generator:jni_processor" ] -} - -# See https://bugs.chromium.org/p/chromium/issues/detail?id=908819 for why we -# can't put 'java' in the name here. -generate_jni("native_j_unittests_jni_headers") { - testonly = true - sources = [ "native_java_unittests/src/org/chromium/components/url_formatter/UrlFormatterUnitTest.java" ] }
diff --git a/components/url_formatter/android/native_java_unittests/src/org/chromium/components/url_formatter/UrlFormatterUnitTest.java b/components/url_formatter/android/javatests/src/org/chromium/components/url_formatter/UrlFormatterUnitTest.java similarity index 73% rename from components/url_formatter/android/native_java_unittests/src/org/chromium/components/url_formatter/UrlFormatterUnitTest.java rename to components/url_formatter/android/javatests/src/org/chromium/components/url_formatter/UrlFormatterUnitTest.java index 78cac4f..6696a1c 100644 --- a/components/url_formatter/android/native_java_unittests/src/org/chromium/components/url_formatter/UrlFormatterUnitTest.java +++ b/components/url_formatter/android/javatests/src/org/chromium/components/url_formatter/UrlFormatterUnitTest.java
@@ -4,10 +4,16 @@ package org.chromium.components.url_formatter; -import org.junit.Assert; +import androidx.test.filters.SmallTest; -import org.chromium.base.annotations.CalledByNative; -import org.chromium.base.annotations.CalledByNativeJavaTest; +import org.junit.Assert; +import org.junit.Before; +import org.junit.Test; +import org.junit.runner.RunWith; + +import org.chromium.base.test.BaseJUnit4ClassRunner; +import org.chromium.base.test.util.Batch; +import org.chromium.content_public.browser.test.NativeLibraryTestUtils; /** * Unit tests for {@link UrlFormatter}. @@ -15,11 +21,16 @@ * These tests are basic sanity checks to ensure the plumbing is working correctly. The wrapped * functions are tested much more thoroughly elsewhere. */ +@RunWith(BaseJUnit4ClassRunner.class) +@Batch(Batch.UNIT_TESTS) public class UrlFormatterUnitTest { - @CalledByNative - private UrlFormatterUnitTest() {} + @Before + public void setUp() { + NativeLibraryTestUtils.loadNativeLibraryNoBrowserProcess(); + } - @CalledByNativeJavaTest + @Test + @SmallTest public void testFixupUrl() { Assert.assertEquals("http://google.com/", UrlFormatter.fixupUrl("google.com").getSpec()); Assert.assertEquals("chrome://version/", UrlFormatter.fixupUrl("about:").getSpec()); @@ -28,7 +39,8 @@ Assert.assertFalse(UrlFormatter.fixupUrl("0x100.0").isValid()); } - @CalledByNativeJavaTest + @Test + @SmallTest public void testFormatUrlForDisplayOmitUsernamePassword() { Assert.assertEquals("http://google.com/path", UrlFormatter.formatUrlForDisplayOmitUsernamePassword("http://google.com/path"));
diff --git a/components/url_formatter/url_formatter_android_unittest.cc b/components/url_formatter/url_formatter_android_unittest.cc deleted file mode 100644 index 8afe68eb..0000000 --- a/components/url_formatter/url_formatter_android_unittest.cc +++ /dev/null
@@ -1,24 +0,0 @@ -// Copyright 2020 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#include "base/android/jni_android.h" -#include "components/url_formatter/android/native_j_unittests_jni_headers/UrlFormatterUnitTest_jni.h" -#include "testing/gtest/include/gtest/gtest.h" - -using base::android::AttachCurrentThread; - -class UrlFormatterUnitTest : public ::testing::Test { - public: - UrlFormatterUnitTest() - : j_test_(Java_UrlFormatterUnitTest_Constructor(AttachCurrentThread())) {} - - const base::android::ScopedJavaGlobalRef<jobject>& j_test() { - return j_test_; - } - - private: - base::android::ScopedJavaGlobalRef<jobject> j_test_; -}; - -JAVA_TESTS(UrlFormatterUnitTest, j_test())
diff --git a/components/viz/service/BUILD.gn b/components/viz/service/BUILD.gn index a9d641d..9938173 100644 --- a/components/viz/service/BUILD.gn +++ b/components/viz/service/BUILD.gn
@@ -203,6 +203,7 @@ "//services/tracing/public/cpp:cpp", "//services/viz/privileged/mojom", "//skia:skcms", + "//third_party/libyuv", "//ui/display/types", ]
diff --git a/components/viz/service/display/DEPS b/components/viz/service/display/DEPS index 6ed6a7d..0822f58 100644 --- a/components/viz/service/display/DEPS +++ b/components/viz/service/display/DEPS
@@ -24,6 +24,7 @@ "+mojo/public/cpp/system", "+skia", "+third_party/khronos", + "+third_party/libyuv", "+third_party/skia", "+third_party/perfetto/protos/perfetto/trace/track_event", "+ui/latency",
diff --git a/components/viz/service/display/gl_renderer_copier.cc b/components/viz/service/display/gl_renderer_copier.cc index da684e5..cb8fc93 100644 --- a/components/viz/service/display/gl_renderer_copier.cc +++ b/components/viz/service/display/gl_renderer_copier.cc
@@ -25,6 +25,7 @@ #include "gpu/command_buffer/common/mailbox.h" #include "gpu/command_buffer/common/shared_image_usage.h" #include "gpu/command_buffer/common/sync_token.h" +#include "third_party/libyuv/include/libyuv/planar_functions.h" #include "third_party/skia/include/core/SkBitmap.h" #include "third_party/skia/include/core/SkImageInfo.h" #include "ui/gfx/color_space.h" @@ -422,10 +423,8 @@ } } } else { - for (int y = 0; y < size().height(); - ++y, src += src_bytes_per_row, dest += stride) { - memcpy(dest, src, src_bytes_per_row); - } + libyuv::CopyPlane(src, src_bytes_per_row, dest, stride, + src_bytes_per_row, size().height()); } gl->UnmapBufferCHROMIUM(GL_PIXEL_PACK_TRANSFER_BUFFER_CHROMIUM); } @@ -674,31 +673,23 @@ uint8_t* pixels = pixels_; if (pixels) { - const auto CopyPlane = [](const uint8_t* src, int src_stride, - int row_bytes, int num_rows, uint8_t* out, - int out_stride) { - for (int i = 0; i < num_rows; - ++i, src += src_stride, out += out_stride) { - memcpy(out, src, row_bytes); - } - }; const int y_stride = aligned_rect_.width(); const gfx::Vector2d result_offset = rect().OffsetFromOrigin() - aligned_rect_.OffsetFromOrigin(); const int y_start_offset = result_offset.y() * y_stride + result_offset.x(); - CopyPlane(pixels + y_start_offset, y_stride, size().width(), - size().height(), y_out, y_out_stride); + libyuv::CopyPlane(pixels + y_start_offset, y_stride, y_out, y_out_stride, + size().width(), size().height()); pixels += y_stride * aligned_rect_.height(); const int chroma_stride = aligned_rect_.width() / 2; const int chroma_start_offset = ((result_offset.y() / 2) * chroma_stride) + (result_offset.x() / 2); const int chroma_height = (size().height() + 1) / 2; - CopyPlane(pixels + chroma_start_offset, chroma_stride, chroma_row_bytes, - chroma_height, u_out, u_out_stride); + libyuv::CopyPlane(pixels + chroma_start_offset, chroma_stride, u_out, + u_out_stride, chroma_row_bytes, chroma_height); pixels += chroma_stride * (aligned_rect_.height() / 2); - CopyPlane(pixels + chroma_start_offset, chroma_stride, chroma_row_bytes, - chroma_height, v_out, v_out_stride); + libyuv::CopyPlane(pixels + chroma_start_offset, chroma_stride, v_out, + v_out_stride, chroma_row_bytes, chroma_height); } return !!pixels; }
diff --git a/components/viz/service/display_embedder/skia_output_device_x11.cc b/components/viz/service/display_embedder/skia_output_device_x11.cc index f1ce14e..ae0665b7 100644 --- a/components/viz/service/display_embedder/skia_output_device_x11.cc +++ b/components/viz/service/display_embedder/skia_output_device_x11.cc
@@ -85,20 +85,21 @@ BufferPresentedCallback feedback, std::vector<ui::LatencyInfo> latency_info) { StartSwapBuffers(std::move(feedback)); + if (!rect.IsEmpty()) { + auto ii = + SkImageInfo::MakeN32(rect.width(), rect.height(), kOpaque_SkAlphaType); + DCHECK_GE(pixels_->size(), ii.computeMinByteSize()); + SkPixmap sk_pixmap(ii, pixels_->data(), ii.minRowBytes()); + bool result = sk_surface_->readPixels(sk_pixmap, rect.x(), rect.y()); + LOG_IF(FATAL, !result) << "Failed to read pixels from offscreen SkSurface."; - auto ii = - SkImageInfo::MakeN32(rect.width(), rect.height(), kOpaque_SkAlphaType); - DCHECK_GE(pixels_->size(), ii.computeMinByteSize()); - SkPixmap sk_pixmap(ii, pixels_->data(), ii.minRowBytes()); - bool result = sk_surface_->readPixels(sk_pixmap, rect.x(), rect.y()); - LOG_IF(FATAL, !result) << "Failed to read pixels from offscreen SkSurface."; + // TODO(penghuang): Switch to XShmPutImage. + ui::DrawPixmap(x11::Connection::Get(), visual_, window_, gc_, sk_pixmap, + 0 /* src_x */, 0 /* src_y */, rect.x() /* dst_x */, + rect.y() /* dst_y */, rect.width(), rect.height()); - // TODO(penghuang): Switch to XShmPutImage. - ui::DrawPixmap(x11::Connection::Get(), visual_, window_, gc_, sk_pixmap, - 0 /* src_x */, 0 /* src_y */, rect.x() /* dst_x */, - rect.y() /* dst_y */, rect.width(), rect.height()); - - connection_->Flush(); + connection_->Flush(); + } FinishSwapBuffers(gfx::SwapCompletionResult(gfx::SwapResult::SWAP_ACK), gfx::Size(sk_surface_->width(), sk_surface_->height()), std::move(latency_info));
diff --git a/content/browser/BUILD.gn b/content/browser/BUILD.gn index 5d89f5e..ca566c1b 100644 --- a/content/browser/BUILD.gn +++ b/content/browser/BUILD.gn
@@ -546,6 +546,8 @@ "blob_storage/blob_storage_context_wrapper.h", "blob_storage/chrome_blob_storage_context.cc", "blob_storage/chrome_blob_storage_context.h", + "bluetooth/bluetooth_adapter_factory_wrapper.cc", + "bluetooth/bluetooth_adapter_factory_wrapper.h", "bluetooth/bluetooth_allowed_devices.cc", "bluetooth/bluetooth_allowed_devices.h", "bluetooth/bluetooth_allowed_devices_map.cc",
diff --git a/content/browser/accessibility/browser_accessibility_manager_android.cc b/content/browser/accessibility/browser_accessibility_manager_android.cc index 7abd3eb7..2a2fcccc 100644 --- a/content/browser/accessibility/browser_accessibility_manager_android.cc +++ b/content/browser/accessibility/browser_accessibility_manager_android.cc
@@ -231,6 +231,7 @@ break; case ui::AXEventGenerator::Event::ACCESS_KEY_CHANGED: case ui::AXEventGenerator::Event::ACTIVE_DESCENDANT_CHANGED: + case ui::AXEventGenerator::Event::ATK_TEXT_OBJECT_ATTRIBUTE_CHANGED: case ui::AXEventGenerator::Event::ATOMIC_CHANGED: case ui::AXEventGenerator::Event::BUSY_CHANGED: case ui::AXEventGenerator::Event::AUTO_COMPLETE_CHANGED:
diff --git a/content/browser/accessibility/browser_accessibility_manager_auralinux.cc b/content/browser/accessibility/browser_accessibility_manager_auralinux.cc index cffd90d4..5c1467ab 100644 --- a/content/browser/accessibility/browser_accessibility_manager_auralinux.cc +++ b/content/browser/accessibility/browser_accessibility_manager_auralinux.cc
@@ -203,9 +203,7 @@ case ui::AXEventGenerator::Event::INVALID_STATUS_CHANGED: FireEvent(node, ax::mojom::Event::kInvalidStatusChanged); break; - case ui::AXEventGenerator::Event::OBJECT_ATTRIBUTE_CHANGED: - // TODO(1108872): Fire event. - break; + case ui::AXEventGenerator::Event::ATK_TEXT_OBJECT_ATTRIBUTE_CHANGED: case ui::AXEventGenerator::Event::TEXT_ATTRIBUTE_CHANGED: FireTextAttributesChangedEvent(node); break; @@ -238,6 +236,7 @@ case ui::AXEventGenerator::Event::LIVE_STATUS_CHANGED: case ui::AXEventGenerator::Event::MULTILINE_STATE_CHANGED: case ui::AXEventGenerator::Event::MULTISELECTABLE_STATE_CHANGED: + case ui::AXEventGenerator::Event::OBJECT_ATTRIBUTE_CHANGED: case ui::AXEventGenerator::Event::OTHER_ATTRIBUTE_CHANGED: case ui::AXEventGenerator::Event::PLACEHOLDER_CHANGED: case ui::AXEventGenerator::Event::PORTAL_ACTIVATED:
diff --git a/content/browser/accessibility/browser_accessibility_manager_mac.mm b/content/browser/accessibility/browser_accessibility_manager_mac.mm index c4464948..f77433f 100644 --- a/content/browser/accessibility/browser_accessibility_manager_mac.mm +++ b/content/browser/accessibility/browser_accessibility_manager_mac.mm
@@ -406,6 +406,7 @@ mac_notification = NSAccessibilityMenuItemSelectedNotification; break; case ui::AXEventGenerator::Event::ACCESS_KEY_CHANGED: + case ui::AXEventGenerator::Event::ATK_TEXT_OBJECT_ATTRIBUTE_CHANGED: case ui::AXEventGenerator::Event::ATOMIC_CHANGED: case ui::AXEventGenerator::Event::AUTO_COMPLETE_CHANGED: case ui::AXEventGenerator::Event::BUSY_CHANGED:
diff --git a/content/browser/accessibility/browser_accessibility_manager_win.cc b/content/browser/accessibility/browser_accessibility_manager_win.cc index d626899f..7b5b8ae 100644 --- a/content/browser/accessibility/browser_accessibility_manager_win.cc +++ b/content/browser/accessibility/browser_accessibility_manager_win.cc
@@ -399,6 +399,7 @@ case ui::AXEventGenerator::Event::WIN_IACCESSIBLE_STATE_CHANGED: FireWinAccessibilityEvent(EVENT_OBJECT_STATECHANGE, node); break; + case ui::AXEventGenerator::Event::ATK_TEXT_OBJECT_ATTRIBUTE_CHANGED: case ui::AXEventGenerator::Event::AUTO_COMPLETE_CHANGED: case ui::AXEventGenerator::Event::DOCUMENT_TITLE_CHANGED: case ui::AXEventGenerator::Event::FOCUS_CHANGED:
diff --git a/content/browser/accessibility/cross_platform_accessibility_browsertest.cc b/content/browser/accessibility/cross_platform_accessibility_browsertest.cc index 86c0d0a..34f0a76f 100644 --- a/content/browser/accessibility/cross_platform_accessibility_browsertest.cc +++ b/content/browser/accessibility/cross_platform_accessibility_browsertest.cc
@@ -28,6 +28,7 @@ #include "content/public/test/content_browser_test_utils.h" #include "content/shell/browser/shell.h" #include "third_party/blink/public/common/features.h" +#include "ui/accessibility/accessibility_switches.h" #include "ui/accessibility/ax_node.h" #include "ui/accessibility/ax_tree.h" @@ -67,6 +68,14 @@ void SetUpOnMainThread() override; void TearDownOnMainThread() override; + void SetUpCommandLine(base::CommandLine* command_line) override { + ContentBrowserTest::SetUpCommandLine(command_line); + // kDisableAXMenuList is true on Chrome OS by default. Make it consistent + // for these cross-platform tests. + base::CommandLine::ForCurrentProcess()->AppendSwitchASCII( + switches::kDisableAXMenuList, "false"); + } + protected: void LoadInitialAccessibilityTreeFromUrl( const GURL& url,
diff --git a/content/browser/accessibility/dump_accessibility_tree_browsertest.cc b/content/browser/accessibility/dump_accessibility_tree_browsertest.cc index 39f97d1..792cd694 100644 --- a/content/browser/accessibility/dump_accessibility_tree_browsertest.cc +++ b/content/browser/accessibility/dump_accessibility_tree_browsertest.cc
@@ -78,6 +78,10 @@ // Enable display locking, used in some tests. base::CommandLine::ForCurrentProcess()->AppendSwitchASCII( switches::kEnableBlinkFeatures, "CSSContentVisibilityHiddenMatchable"); + // kDisableAXMenuList is true on Chrome OS by default. Make it consistent + // for these cross-platform tests. + base::CommandLine::ForCurrentProcess()->AppendSwitchASCII( + switches::kDisableAXMenuList, "false"); } void RunAriaTest(const base::FilePath::CharType* file_path) {
diff --git a/device/bluetooth/bluetooth_adapter_factory_wrapper.cc b/content/browser/bluetooth/bluetooth_adapter_factory_wrapper.cc similarity index 75% rename from device/bluetooth/bluetooth_adapter_factory_wrapper.cc rename to content/browser/bluetooth/bluetooth_adapter_factory_wrapper.cc index 3a3441f..8bf7c07 100644 --- a/device/bluetooth/bluetooth_adapter_factory_wrapper.cc +++ b/content/browser/bluetooth/bluetooth_adapter_factory_wrapper.cc
@@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#include "device/bluetooth/bluetooth_adapter_factory_wrapper.h" +#include "content/browser/bluetooth/bluetooth_adapter_factory_wrapper.h" #include <stddef.h> @@ -10,33 +10,33 @@ #include "base/bind.h" #include "base/location.h" +#include "base/no_destructor.h" #include "base/threading/thread_task_runner_handle.h" #include "device/bluetooth/bluetooth_adapter_factory.h" -namespace { +using device::BluetoothAdapter; +using device::BluetoothAdapterFactory; -static base::LazyInstance<device::BluetoothAdapterFactoryWrapper>::Leaky - g_bluetooth_adapter_factory_wrapper_singleton = LAZY_INSTANCE_INITIALIZER; - -} // namespace - -namespace device { +BluetoothAdapterFactoryWrapper::BluetoothAdapterFactoryWrapper() { + DCHECK_CALLED_ON_VALID_THREAD(thread_checker_); +} BluetoothAdapterFactoryWrapper::~BluetoothAdapterFactoryWrapper() { - DCHECK(thread_checker_.CalledOnValidThread()); + DCHECK_CALLED_ON_VALID_THREAD(thread_checker_); // All observers should have been removed already. DCHECK(adapter_observers_.empty()); // Clear adapter. - set_adapter(scoped_refptr<BluetoothAdapter>()); + set_adapter(nullptr); } // static BluetoothAdapterFactoryWrapper& BluetoothAdapterFactoryWrapper::Get() { - return g_bluetooth_adapter_factory_wrapper_singleton.Get(); + static base::NoDestructor<BluetoothAdapterFactoryWrapper> singleton; + return *singleton; } bool BluetoothAdapterFactoryWrapper::IsLowEnergySupported() { - DCHECK(thread_checker_.CalledOnValidThread()); + DCHECK_CALLED_ON_VALID_THREAD(thread_checker_); if (adapter_ != nullptr) { return true; } @@ -46,7 +46,7 @@ void BluetoothAdapterFactoryWrapper::AcquireAdapter( BluetoothAdapter::Observer* observer, AcquireAdapterCallback callback) { - DCHECK(thread_checker_.CalledOnValidThread()); + DCHECK_CALLED_ON_VALID_THREAD(thread_checker_); DCHECK(!GetAdapter(observer)); AddAdapterObserver(observer); @@ -64,18 +64,18 @@ void BluetoothAdapterFactoryWrapper::ReleaseAdapter( BluetoothAdapter::Observer* observer) { - DCHECK(thread_checker_.CalledOnValidThread()); + DCHECK_CALLED_ON_VALID_THREAD(thread_checker_); if (!HasAdapter(observer)) { return; } RemoveAdapterObserver(observer); if (adapter_observers_.empty()) - set_adapter(scoped_refptr<BluetoothAdapter>()); + set_adapter(nullptr); } BluetoothAdapter* BluetoothAdapterFactoryWrapper::GetAdapter( BluetoothAdapter::Observer* observer) { - DCHECK(thread_checker_.CalledOnValidThread()); + DCHECK_CALLED_ON_VALID_THREAD(thread_checker_); if (HasAdapter(observer)) { return adapter_.get(); } @@ -84,18 +84,14 @@ void BluetoothAdapterFactoryWrapper::SetBluetoothAdapterForTesting( scoped_refptr<BluetoothAdapter> mock_adapter) { - DCHECK(thread_checker_.CalledOnValidThread()); + DCHECK_CALLED_ON_VALID_THREAD(thread_checker_); set_adapter(std::move(mock_adapter)); } -BluetoothAdapterFactoryWrapper::BluetoothAdapterFactoryWrapper() { - DCHECK(thread_checker_.CalledOnValidThread()); -} - void BluetoothAdapterFactoryWrapper::OnGetAdapter( AcquireAdapterCallback continuation, scoped_refptr<BluetoothAdapter> adapter) { - DCHECK(thread_checker_.CalledOnValidThread()); + DCHECK_CALLED_ON_VALID_THREAD(thread_checker_); set_adapter(adapter); std::move(continuation).Run(adapter_); @@ -103,14 +99,14 @@ bool BluetoothAdapterFactoryWrapper::HasAdapter( BluetoothAdapter::Observer* observer) { - DCHECK(thread_checker_.CalledOnValidThread()); + DCHECK_CALLED_ON_VALID_THREAD(thread_checker_); return base::Contains(adapter_observers_, observer); } void BluetoothAdapterFactoryWrapper::AddAdapterObserver( BluetoothAdapter::Observer* observer) { - DCHECK(thread_checker_.CalledOnValidThread()); + DCHECK_CALLED_ON_VALID_THREAD(thread_checker_); auto iter = adapter_observers_.insert(observer); DCHECK(iter.second); @@ -121,7 +117,7 @@ void BluetoothAdapterFactoryWrapper::RemoveAdapterObserver( BluetoothAdapter::Observer* observer) { - DCHECK(thread_checker_.CalledOnValidThread()); + DCHECK_CALLED_ON_VALID_THREAD(thread_checker_); size_t removed = adapter_observers_.erase(observer); DCHECK(removed); @@ -132,7 +128,7 @@ void BluetoothAdapterFactoryWrapper::set_adapter( scoped_refptr<BluetoothAdapter> adapter) { - DCHECK(thread_checker_.CalledOnValidThread()); + DCHECK_CALLED_ON_VALID_THREAD(thread_checker_); if (adapter_.get()) { for (BluetoothAdapter::Observer* observer : adapter_observers_) { @@ -146,5 +142,3 @@ } } } - -} // namespace device
diff --git a/device/bluetooth/bluetooth_adapter_factory_wrapper.h b/content/browser/bluetooth/bluetooth_adapter_factory_wrapper.h similarity index 65% rename from device/bluetooth/bluetooth_adapter_factory_wrapper.h rename to content/browser/bluetooth/bluetooth_adapter_factory_wrapper.h index 74ce72d..94135f5 100644 --- a/device/bluetooth/bluetooth_adapter_factory_wrapper.h +++ b/content/browser/bluetooth/bluetooth_adapter_factory_wrapper.h
@@ -2,18 +2,14 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#ifndef DEVICE_BLUETOOTH_BLUETOOTH_ADAPTER_FACTORY_WRAPPER_H_ -#define DEVICE_BLUETOOTH_BLUETOOTH_ADAPTER_FACTORY_WRAPPER_H_ +#ifndef CONTENT_BROWSER_BLUETOOTH_BLUETOOTH_ADAPTER_FACTORY_WRAPPER_H_ +#define CONTENT_BROWSER_BLUETOOTH_BLUETOOTH_ADAPTER_FACTORY_WRAPPER_H_ #include <unordered_set> -#include "base/lazy_instance.h" -#include "base/macros.h" #include "base/threading/thread_checker.h" +#include "content/common/content_export.h" #include "device/bluetooth/bluetooth_adapter.h" -#include "device/bluetooth/bluetooth_export.h" - -namespace device { // Wrapper around BluetoothAdapterFactory that allows us to change // the underlying BluetoothAdapter object and have the observers @@ -21,11 +17,16 @@ // TODO(ortuno): Once there is no need to swap the adapter to change its // behavior observers should add/remove themselves to/from the adapter. // http://crbug.com/603291 -class DEVICE_BLUETOOTH_EXPORT BluetoothAdapterFactoryWrapper { +class CONTENT_EXPORT BluetoothAdapterFactoryWrapper { public: using AcquireAdapterCallback = - base::OnceCallback<void(scoped_refptr<BluetoothAdapter>)>; + base::OnceCallback<void(scoped_refptr<device::BluetoothAdapter>)>; + BluetoothAdapterFactoryWrapper(); + BluetoothAdapterFactoryWrapper(const BluetoothAdapterFactoryWrapper& other) = + delete; + BluetoothAdapterFactoryWrapper& operator=( + const BluetoothAdapterFactoryWrapper& other) = delete; ~BluetoothAdapterFactoryWrapper(); static BluetoothAdapterFactoryWrapper& Get(); @@ -38,60 +39,52 @@ // acquired the adapter in the past it adds |observer| as an observer to that // adapter, otherwise it gets a new adapter and adds |observer| to it. Runs // |callback| with the adapter |observer| has been added to. - void AcquireAdapter(BluetoothAdapter::Observer* observer, + void AcquireAdapter(device::BluetoothAdapter::Observer* observer, AcquireAdapterCallback callback); // Removes |observer| from the list of adapter observers if |observer| // has acquired the adapter in the past. If there are no more observers // it deletes the reference to the adapter. - void ReleaseAdapter(BluetoothAdapter::Observer* observer); + void ReleaseAdapter(device::BluetoothAdapter::Observer* observer); // Returns an adapter if |observer| has acquired an adapter in the past and // this instance holds a reference to an adapter. Otherwise returns nullptr. - BluetoothAdapter* GetAdapter(BluetoothAdapter::Observer* observer); + device::BluetoothAdapter* GetAdapter( + device::BluetoothAdapter::Observer* observer); // Sets a new BluetoothAdapter to be returned by GetAdapter. When setting // a new adapter all observers from the old adapter are removed and added // to |mock_adapter|. void SetBluetoothAdapterForTesting( - scoped_refptr<BluetoothAdapter> mock_adapter); + scoped_refptr<device::BluetoothAdapter> mock_adapter); private: - // friend LazyInstance to permit access to private constructor. - friend base::LazyInstanceTraitsBase<BluetoothAdapterFactoryWrapper>; - - BluetoothAdapterFactoryWrapper(); - void OnGetAdapter(AcquireAdapterCallback continuation, - scoped_refptr<BluetoothAdapter> adapter); + scoped_refptr<device::BluetoothAdapter> adapter); - bool HasAdapter(BluetoothAdapter::Observer* observer); - void AddAdapterObserver(BluetoothAdapter::Observer* observer); - void RemoveAdapterObserver(BluetoothAdapter::Observer* observer); + bool HasAdapter(device::BluetoothAdapter::Observer* observer); + void AddAdapterObserver(device::BluetoothAdapter::Observer* observer); + void RemoveAdapterObserver(device::BluetoothAdapter::Observer* observer); // Sets |adapter_| to a BluetoothAdapter instance and register observers, // releasing references to previous |adapter_|. - void set_adapter(scoped_refptr<BluetoothAdapter> adapter); + void set_adapter(scoped_refptr<device::BluetoothAdapter> adapter); // A BluetoothAdapter instance representing an adapter of the system. - scoped_refptr<BluetoothAdapter> adapter_; + scoped_refptr<device::BluetoothAdapter> adapter_; // We keep a list of all observers so that when the adapter gets swapped, // we can remove all observers from the old adapter and add them to the // new adapter. - std::unordered_set<BluetoothAdapter::Observer*> adapter_observers_; + std::unordered_set<device::BluetoothAdapter::Observer*> adapter_observers_; // Should only be called on the UI thread. - base::ThreadChecker thread_checker_; + THREAD_CHECKER(thread_checker_); // Weak pointer factory for generating 'this' pointers that might live longer // than we do. // Note: This should remain the last member so it'll be destroyed and // invalidate its weak pointers before any other members are destroyed. base::WeakPtrFactory<BluetoothAdapterFactoryWrapper> weak_ptr_factory_{this}; - - DISALLOW_COPY_AND_ASSIGN(BluetoothAdapterFactoryWrapper); }; -} // namespace device - -#endif // DEVICE_BLUETOOTH_BLUETOOTH_ADAPTER_FACTORY_WRAPPER_H_ +#endif // CONTENT_BROWSER_BLUETOOTH_BLUETOOTH_ADAPTER_FACTORY_WRAPPER_H_
diff --git a/content/browser/bluetooth/web_bluetooth_service_impl.cc b/content/browser/bluetooth/web_bluetooth_service_impl.cc index 8a4b855..159d1d70 100644 --- a/content/browser/bluetooth/web_bluetooth_service_impl.cc +++ b/content/browser/bluetooth/web_bluetooth_service_impl.cc
@@ -19,6 +19,7 @@ #include "base/strings/string_util.h" #include "base/strings/utf_string_conversions.h" #include "base/threading/thread_task_runner_handle.h" +#include "content/browser/bluetooth/bluetooth_adapter_factory_wrapper.h" #include "content/browser/bluetooth/bluetooth_blocklist.h" #include "content/browser/bluetooth/bluetooth_device_chooser_controller.h" #include "content/browser/bluetooth/bluetooth_device_scanning_prompt_controller.h" @@ -38,7 +39,6 @@ #include "content/public/browser/web_contents_delegate.h" #include "content/public/common/content_client.h" #include "content/public/common/content_features.h" -#include "device/bluetooth/bluetooth_adapter_factory_wrapper.h" #include "device/bluetooth/bluetooth_remote_gatt_characteristic.h" #include "device/bluetooth/bluetooth_remote_gatt_descriptor.h" #include "mojo/public/cpp/bindings/associated_remote.h" @@ -48,7 +48,6 @@ #include "third_party/blink/public/common/bluetooth/web_bluetooth_device_id.h" #include "third_party/blink/public/mojom/bluetooth/web_bluetooth.mojom.h" -using device::BluetoothAdapterFactoryWrapper; using device::BluetoothGattCharacteristic; using device::BluetoothUUID;
diff --git a/content/browser/bluetooth/web_bluetooth_service_impl_unittest.cc b/content/browser/bluetooth/web_bluetooth_service_impl_unittest.cc index ce83a2ae..1174b1a 100644 --- a/content/browser/bluetooth/web_bluetooth_service_impl_unittest.cc +++ b/content/browser/bluetooth/web_bluetooth_service_impl_unittest.cc
@@ -8,10 +8,10 @@ #include "base/macros.h" #include "base/test/bind_test_util.h" +#include "content/browser/bluetooth/bluetooth_adapter_factory_wrapper.h" #include "content/public/browser/web_contents_delegate.h" #include "content/test/test_render_view_host.h" #include "content/test/test_web_contents.h" -#include "device/bluetooth/bluetooth_adapter_factory_wrapper.h" #include "device/bluetooth/test/mock_bluetooth_adapter.h" #include "mojo/public/cpp/bindings/associated_receiver.h" #include "mojo/public/cpp/bindings/pending_associated_receiver.h" @@ -157,7 +157,7 @@ // Set up an adapter. scoped_refptr<FakeBluetoothAdapter> adapter(new FakeBluetoothAdapter()); EXPECT_CALL(*adapter, IsPresent()).WillRepeatedly(Return(true)); - device::BluetoothAdapterFactoryWrapper::Get().SetBluetoothAdapterForTesting( + BluetoothAdapterFactoryWrapper::Get().SetBluetoothAdapterForTesting( adapter); contents()->GetMainFrame()->InitializeRenderFrameIfNeeded();
diff --git a/content/browser/browser_interface_binders.cc b/content/browser/browser_interface_binders.cc index cd567d8a..4959a8d 100644 --- a/content/browser/browser_interface_binders.cc +++ b/content/browser/browser_interface_binders.cc
@@ -100,6 +100,7 @@ #include "third_party/blink/public/mojom/native_io/native_io.mojom.h" #include "third_party/blink/public/mojom/notifications/notification_service.mojom.h" #include "third_party/blink/public/mojom/payments/payment_app.mojom.h" +#include "third_party/blink/public/mojom/payments/payment_credential.mojom.h" #include "third_party/blink/public/mojom/permissions/permission.mojom.h" #include "third_party/blink/public/mojom/picture_in_picture/picture_in_picture.mojom.h" #include "third_party/blink/public/mojom/prerender/prerender.mojom.h" @@ -729,6 +730,8 @@ &EmptyBinderForFrame<blink::mojom::InsecureInputService>)); map->Add<blink::mojom::PrerenderProcessor>(base::BindRepeating( &EmptyBinderForFrame<blink::mojom::PrerenderProcessor>)); + map->Add<payments::mojom::PaymentCredential>(base::BindRepeating( + &EmptyBinderForFrame<payments::mojom::PaymentCredential>)); map->Add<payments::mojom::PaymentRequest>(base::BindRepeating( &EmptyBinderForFrame<payments::mojom::PaymentRequest>)); map->Add<blink::mojom::AnchorElementMetricsHost>(base::BindRepeating(
diff --git a/content/browser/media/capture/web_contents_video_capture_device_browsertest.cc b/content/browser/media/capture/web_contents_video_capture_device_browsertest.cc index 34691f10..60eb9655 100644 --- a/content/browser/media/capture/web_contents_video_capture_device_browsertest.cc +++ b/content/browser/media/capture/web_contents_video_capture_device_browsertest.cc
@@ -9,6 +9,7 @@ #include "base/macros.h" #include "base/run_loop.h" #include "build/build_config.h" +#include "build/lacros_buildflags.h" #include "cc/test/pixel_test_utils.h" #include "components/viz/common/features.h" #include "content/browser/media/capture/content_capture_device_browsertest_base.h" @@ -401,14 +402,14 @@ // compositing, whether the WebContents is visible/hidden or occluded/unoccluded // and whether the main document contains a cross-site iframe. -// Fails on Linux only. http://crbug.com/1108205 -#if defined(OS_LINUX) || defined(OS_CHROMEOS) +// Fails on LACROS only. http://crbug.com/1108205 +#if BUILDFLAG(IS_LACROS) #define MAYBE_CapturesContentChanges DISABLED_CapturesContentChanges #else #define MAYBE_CapturesContentChanges CapturesContentChanges #endif IN_PROC_BROWSER_TEST_P(WebContentsVideoCaptureDeviceBrowserTestP, - MAYBE_CapturesContentChanges) { + CapturesContentChanges) { SCOPED_TRACE(testing::Message() << "Test parameters: " << (IsSoftwareCompositingTest() ? "Software Compositing"
diff --git a/content/browser/webauth/authenticator_common.cc b/content/browser/webauth/authenticator_common.cc index b79c3e4c..885cd5a 100644 --- a/content/browser/webauth/authenticator_common.cc +++ b/content/browser/webauth/authenticator_common.cc
@@ -613,8 +613,7 @@ discovery_factory(), GetAvailableTransports(render_frame_host_, request_delegate_.get(), discovery_factory(), caller_origin_), - *ctap_make_credential_request_, *authenticator_selection_criteria_, - *make_credential_options_, + *ctap_make_credential_request_, *make_credential_options_, base::BindOnce(&AuthenticatorCommon::OnRegisterResponse, weak_factory_.GetWeakPtr())); @@ -631,7 +630,7 @@ base::BindRepeating( &device::FidoRequestHandlerBase::PowerOnBluetoothAdapter, request_->GetWeakPtr()) /* bluetooth_adapter_power_on_callback */); - if (authenticator_selection_criteria_->require_resident_key()) { + if (make_credential_options_->require_resident_key) { request_delegate_->SetMightCreateResidentCredential(true); } request_->set_observer(request_delegate_.get()); @@ -788,9 +787,9 @@ return; } - authenticator_selection_criteria_ = + device::AuthenticatorSelectionCriteria authenticator_selection_criteria = options->authenticator_selection - ? options->authenticator_selection + ? *options->authenticator_selection : device::AuthenticatorSelectionCriteria(); // Reject any non-sensical credProtect extension values. @@ -808,7 +807,7 @@ // UV_REQUIRED only makes sense if UV is required overall. (options->protection_policy == blink::mojom::ProtectionPolicy::UV_REQUIRED && - authenticator_selection_criteria_->user_verification_requirement() != + authenticator_selection_criteria.user_verification_requirement() != device::UserVerificationRequirement::kRequired)) { InvokeCallbackAndCleanup( std::move(callback), @@ -837,11 +836,13 @@ break; } - make_credential_options_.emplace(); - if (cred_protect_request) { - make_credential_options_->cred_protect_request.emplace( - *cred_protect_request, options->enforce_protection_policy); - } + make_credential_options_ = + cred_protect_request + ? device::MakeCredentialRequestHandler::Options( + authenticator_selection_criteria, *cred_protect_request, + options->enforce_protection_policy) + : device::MakeCredentialRequestHandler::Options( + authenticator_selection_criteria); DCHECK(make_credential_response_callback_.is_null()); make_credential_response_callback_ = std::move(callback);
diff --git a/content/browser/webauth/authenticator_common.h b/content/browser/webauth/authenticator_common.h index 86ed338..a6ffa89 100644 --- a/content/browser/webauth/authenticator_common.h +++ b/content/browser/webauth/authenticator_common.h
@@ -193,8 +193,6 @@ scoped_refptr<WebAuthRequestSecurityChecker> security_checker_; std::unique_ptr<base::OneShotTimer> timer_ = std::make_unique<base::OneShotTimer>(); - base::Optional<device::AuthenticatorSelectionCriteria> - authenticator_selection_criteria_; base::Optional<std::string> app_id_; base::Optional<device::CtapMakeCredentialRequest> ctap_make_credential_request_;
diff --git a/content/common/content_param_traits.cc b/content/common/content_param_traits.cc index 4844636..a82d3a1 100644 --- a/content/common/content_param_traits.cc +++ b/content/common/content_param_traits.cc
@@ -100,6 +100,9 @@ case blink::mojom::PolicyValueType::kDecDouble: WriteParam(m, p.DoubleValue()); break; + case blink::mojom::PolicyValueType::kEnum: + WriteParam(m, p.IntValue()); + break; case blink::mojom::PolicyValueType::kNull: break; } @@ -157,7 +160,14 @@ double d; if (!ReadParam(m, iter, &d)) return false; - r->SetDoubleValue(d, type); + r->SetDoubleValue(d); + break; + } + case blink::mojom::PolicyValueType::kEnum: { + int32_t i; + if (!ReadParam(m, iter, &i)) + return false; + r->SetIntValue(i); break; } case blink::mojom::PolicyValueType::kNull:
diff --git a/content/public/android/java/src/org/chromium/content/browser/remoteobjects/OWNERS b/content/public/android/java/src/org/chromium/content/browser/remoteobjects/OWNERS new file mode 100644 index 0000000..0f45840 --- /dev/null +++ b/content/public/android/java/src/org/chromium/content/browser/remoteobjects/OWNERS
@@ -0,0 +1,5 @@ +ctzsm@chromium.org +oksamyt@chromium.org + +# TEAM: android-webview-dev@chromium.org +# COMPONENT: Mobile>WebView
diff --git a/content/public/android/javatests/src/org/chromium/content/browser/remoteobjects/OWNERS b/content/public/android/javatests/src/org/chromium/content/browser/remoteobjects/OWNERS new file mode 100644 index 0000000..52fd0ad --- /dev/null +++ b/content/public/android/javatests/src/org/chromium/content/browser/remoteobjects/OWNERS
@@ -0,0 +1 @@ +file://content/public/android/java/src/org/chromium/content/browser/remoteobjects/OWNERS
diff --git a/content/public/android/junit/src/org/chromium/content/browser/remoteobjects/OWNERS b/content/public/android/junit/src/org/chromium/content/browser/remoteobjects/OWNERS new file mode 100644 index 0000000..52fd0ad --- /dev/null +++ b/content/public/android/junit/src/org/chromium/content/browser/remoteobjects/OWNERS
@@ -0,0 +1 @@ +file://content/public/android/java/src/org/chromium/content/browser/remoteobjects/OWNERS
diff --git a/content/public/test/bluetooth_test_utils.cc b/content/public/test/bluetooth_test_utils.cc new file mode 100644 index 0000000..7997bcb --- /dev/null +++ b/content/public/test/bluetooth_test_utils.cc
@@ -0,0 +1,16 @@ +// Copyright 2020 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "content/public/test/bluetooth_test_utils.h" + +#include "content/browser/bluetooth/bluetooth_adapter_factory_wrapper.h" + +namespace content { + +void SetBluetoothAdapter(scoped_refptr<device::BluetoothAdapter> adapter) { + BluetoothAdapterFactoryWrapper::Get().SetBluetoothAdapterForTesting( + std::move(adapter)); +} + +} // namespace content
diff --git a/content/public/test/bluetooth_test_utils.h b/content/public/test/bluetooth_test_utils.h new file mode 100644 index 0000000..740d7b4 --- /dev/null +++ b/content/public/test/bluetooth_test_utils.h
@@ -0,0 +1,22 @@ +// Copyright 2020 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef CONTENT_PUBLIC_TEST_BLUETOOTH_TEST_UTILS_H_ +#define CONTENT_PUBLIC_TEST_BLUETOOTH_TEST_UTILS_H_ + +#include "base/memory/ref_counted.h" + +namespace device { +class BluetoothAdapter; +} + +namespace content { + +// Configure the BluetoothAdapter which will be returned by +// BluetoothAdapterFactoryWrapper::GetAdapter(). +void SetBluetoothAdapter(scoped_refptr<device::BluetoothAdapter> adapter); + +} // namespace content + +#endif // CONTENT_PUBLIC_TEST_BLUETOOTH_TEST_UTILS_H_
diff --git a/content/renderer/BUILD.gn b/content/renderer/BUILD.gn index 21c03c04..b28b5df 100644 --- a/content/renderer/BUILD.gn +++ b/content/renderer/BUILD.gn
@@ -205,9 +205,6 @@ "render_widget_delegate.h", "render_widget_mouse_lock_dispatcher.cc", "render_widget_mouse_lock_dispatcher.h", - "render_widget_screen_metrics_emulator.cc", - "render_widget_screen_metrics_emulator.h", - "render_widget_screen_metrics_emulator_delegate.h", "renderer_blink_platform_impl.cc", "renderer_blink_platform_impl.h", "renderer_main.cc", @@ -617,8 +614,14 @@ } if (is_chromeos) { + sources += [ + "performance_manager/mechanisms/userspace_swap_renderer_initialization_impl.cc", + "performance_manager/mechanisms/userspace_swap_renderer_initialization_impl.h", + ] deps += [ "//chromeos:chromeos_export", + "//chromeos/memory/userspace_swap", + "//chromeos/memory/userspace_swap:mojom", "//chromeos/system:system", ] }
diff --git a/content/renderer/DEPS b/content/renderer/DEPS index aee8b4d..e686daa 100644 --- a/content/renderer/DEPS +++ b/content/renderer/DEPS
@@ -57,4 +57,7 @@ "+components/viz/test", "+third_party/blink/renderer/platform/testing", ], + "userspace_swap_renderer_initialization_impl.*": [ + "+chromeos/memory/userspace_swap" + ], }
diff --git a/content/renderer/accessibility/blink_ax_tree_source.cc b/content/renderer/accessibility/blink_ax_tree_source.cc index ac720c8b..9b76580 100644 --- a/content/renderer/accessibility/blink_ax_tree_source.cc +++ b/content/renderer/accessibility/blink_ax_tree_source.cc
@@ -609,7 +609,7 @@ // TODO(crbug.com/1068668): AX onion soup - finish migrating the rest of // this function inside of AXObject::Serialize and removing // unneeded WebAXObject interfaces. - src.Serialize(dst); + src.Serialize(dst, accessibility_mode_); dst->role = src.Role(); dst->id = src.AxID(); @@ -640,7 +640,6 @@ } if (accessibility_mode_.has_mode(ui::AXMode::kPDF)) { - SerializePDFAttributes(src, dst); // Return early. None of the following attributes are needed for PDFs. return; } @@ -649,7 +648,6 @@ cached_bounding_boxes_[dst->id] = dst->relative_bounds; SerializeSparseAttributes(src, dst); - SerializeValueAttributes(src, dst); SerializeStateAttributes(src, dst); SerializeChooserPopupAttributes(src, dst); @@ -725,17 +723,6 @@ } } -void BlinkAXTreeSource::SerializePDFAttributes(WebAXObject src, - ui::AXNodeData* dst) const { - // The DOMNodeID from Blink. Currently only populated when using - // the accessibility tree for PDF exporting. Warning, this is totally - // unrelated to the accessibility node ID, or the ID attribute for an - // HTML element - it's an ID used to uniquely identify nodes in Blink. - int dom_node_id = src.GetDOMNodeId(); - if (dom_node_id) - dst->AddIntAttribute(ax::mojom::IntAttribute::kDOMNodeId, dom_node_id); -} - void BlinkAXTreeSource::SerializeSparseAttributes(WebAXObject src, ui::AXNodeData* dst) const { AXNodeDataSparseAttributeAdapter sparse_attribute_adapter(dst); @@ -787,17 +774,6 @@ } } -void BlinkAXTreeSource::SerializeValueAttributes(WebAXObject src, - ui::AXNodeData* dst) const { - if (src.ValueDescription().length()) { - TruncateAndAddStringAttribute(dst, ax::mojom::StringAttribute::kValue, - src.ValueDescription().Utf8()); - } else { - TruncateAndAddStringAttribute(dst, ax::mojom::StringAttribute::kValue, - src.StringValue().Utf8()); - } -} - void BlinkAXTreeSource::SerializeStateAttributes(WebAXObject src, ui::AXNodeData* dst) const { switch (src.Restriction()) {
diff --git a/content/renderer/accessibility/blink_ax_tree_source.h b/content/renderer/accessibility/blink_ax_tree_source.h index b3e1d9a6..164bec5 100644 --- a/content/renderer/accessibility/blink_ax_tree_source.h +++ b/content/renderer/accessibility/blink_ax_tree_source.h
@@ -138,14 +138,10 @@ void SerializeBoundingBoxAttributes(blink::WebAXObject src, ui::AXNodeData* dst) const; - void SerializePDFAttributes(blink::WebAXObject src, - ui::AXNodeData* dst) const; void SerializeSparseAttributes(blink::WebAXObject src, ui::AXNodeData* dst) const; void SerializeNameAndDescriptionAttributes(blink::WebAXObject src, ui::AXNodeData* dst) const; - void SerializeValueAttributes(blink::WebAXObject src, - ui::AXNodeData* dst) const; void SerializeStateAttributes(blink::WebAXObject src, ui::AXNodeData* dst) const; void SerializeStyleAttributes(blink::WebAXObject src,
diff --git a/content/renderer/accessibility/render_accessibility_impl.cc b/content/renderer/accessibility/render_accessibility_impl.cc index 77fae0e..7cb2854 100644 --- a/content/renderer/accessibility/render_accessibility_impl.cc +++ b/content/renderer/accessibility/render_accessibility_impl.cc
@@ -228,9 +228,21 @@ event_schedule_mode_ = EventScheduleMode::kProcessEventsImmediately; // Optionally disable AXMenuList, which makes the internal pop-up menu - // UI for a select element directly accessible. - if (base::CommandLine::ForCurrentProcess()->HasSwitch( - ::switches::kDisableAXMenuList)) + // UI for a select element directly accessible. Disable by default on + // Chrome OS, but some tests may override. + bool disable_ax_menu_list = false; +#if defined(OS_CHROMEOS) + disable_ax_menu_list = true; +#endif + auto* command_line = base::CommandLine::ForCurrentProcess(); + if (command_line->HasSwitch(::switches::kDisableAXMenuList)) { + if (command_line->GetSwitchValueASCII(::switches::kDisableAXMenuList) == + "false") + disable_ax_menu_list = false; + else + disable_ax_menu_list = true; + } + if (disable_ax_menu_list) settings->SetUseAXMenuList(false); const WebDocument& document = GetMainDocument();
diff --git a/content/renderer/accessibility/render_accessibility_impl_browsertest.cc b/content/renderer/accessibility/render_accessibility_impl_browsertest.cc index 1475e45..44e5b80 100644 --- a/content/renderer/accessibility/render_accessibility_impl_browsertest.cc +++ b/content/renderer/accessibility/render_accessibility_impl_browsertest.cc
@@ -70,7 +70,7 @@ #if !defined(OS_ANDROID) bool IsSelected(const WebAXObject& obj) { ui::AXNodeData node_data; - obj.Serialize(&node_data); + obj.Serialize(&node_data, ui::kAXModeComplete); return node_data.GetBoolAttribute(ax::mojom::BoolAttribute::kSelected); } #endif // !defined(OS_ANDROID)
diff --git a/content/renderer/gpu_benchmarking_extension.cc b/content/renderer/gpu_benchmarking_extension.cc index a8fdb44..1ac2fba98 100644 --- a/content/renderer/gpu_benchmarking_extension.cc +++ b/content/renderer/gpu_benchmarking_extension.cc
@@ -262,7 +262,7 @@ gin::Arguments* args, const gfx::Point& point, const std::string& message) { - gfx::Rect rect = context->render_widget()->ViewRect(); + gfx::Rect rect = context->render_widget()->GetWebWidget()->ViewRect(); rect -= rect.OffsetFromOrigin(); // If the bounds are not available here, as is the case with an OOPIF, @@ -711,7 +711,7 @@ // SmoothScrollByXY in telemetry/internal/actions/scroll.js. bool GpuBenchmarking::SmoothScrollBy(gin::Arguments* args) { GpuBenchmarkingContext context(render_frame_.get()); - blink::WebRect rect = context.render_widget()->ViewRect(); + blink::WebRect rect = context.render_widget()->GetWebWidget()->ViewRect(); float pixels_to_scroll = 0; v8::Local<v8::Function> callback; @@ -783,7 +783,7 @@ // scroll left. bool GpuBenchmarking::SmoothScrollByXY(gin::Arguments* args) { GpuBenchmarkingContext context(render_frame_.get()); - blink::WebRect rect = context.render_widget()->ViewRect(); + blink::WebRect rect = context.render_widget()->GetWebWidget()->ViewRect(); float pixels_to_scroll_x = 0; float pixels_to_scroll_y = 0; @@ -891,7 +891,7 @@ // should change this to match with SmoothScrollBy or SmoothScrollByXY. bool GpuBenchmarking::Swipe(gin::Arguments* args) { GpuBenchmarkingContext context(render_frame_.get()); - blink::WebRect rect = context.render_widget()->ViewRect(); + blink::WebRect rect = context.render_widget()->GetWebWidget()->ViewRect(); std::string direction = "up"; float pixels_to_scroll = 0; @@ -941,7 +941,8 @@ bool GpuBenchmarking::ScrollBounce(gin::Arguments* args) { GpuBenchmarkingContext context(render_frame_.get()); - blink::WebRect content_rect = context.render_widget()->ViewRect(); + blink::WebRect content_rect = + context.render_widget()->GetWebWidget()->ViewRect(); std::string direction = "down"; float distance_length = 0;
diff --git a/content/renderer/pepper/video_decoder_shim.cc b/content/renderer/pepper/video_decoder_shim.cc index 16c37ec..7b43c76b 100644 --- a/content/renderer/pepper/video_decoder_shim.cc +++ b/content/renderer/pepper/video_decoder_shim.cc
@@ -34,7 +34,7 @@ #include "media/filters/ffmpeg_video_decoder.h" #include "media/filters/vpx_video_decoder.h" #include "media/media_buildflags.h" -#include "media/renderers/yuv_util.h" +#include "media/renderers/video_frame_yuv_converter.h" #include "media/video/picture.h" #include "media/video/video_decode_accelerator.h" #include "ppapi/c/pp_errors.h" @@ -513,8 +513,8 @@ gpu::MailboxHolder destination_holder; destination_holder.mailbox = texture_mailbox_map_[texture_id]; destination_holder.texture_target = GL_TEXTURE_2D; - ConvertFromVideoFrameYUV(frame->video_frame.get(), context_provider_.get(), - destination_holder); + media::VideoFrameYUVConverter::ConvertYUVVideoFrameNoCaching( + frame->video_frame.get(), context_provider_.get(), destination_holder); host_->PictureReady(media::Picture(texture_id, frame->decode_id, frame->video_frame->visible_rect(), gfx::ColorSpace(), false));
diff --git a/content/renderer/performance_manager/OWNERS b/content/renderer/performance_manager/OWNERS new file mode 100644 index 0000000..6ef4e6d --- /dev/null +++ b/content/renderer/performance_manager/OWNERS
@@ -0,0 +1 @@ +file://components/performance_manager/OWNERS
diff --git a/content/renderer/performance_manager/mechanisms/userspace_swap_renderer_initialization_impl.cc b/content/renderer/performance_manager/mechanisms/userspace_swap_renderer_initialization_impl.cc new file mode 100644 index 0000000..690f2a2 --- /dev/null +++ b/content/renderer/performance_manager/mechanisms/userspace_swap_renderer_initialization_impl.cc
@@ -0,0 +1,73 @@ +// Copyright 2020 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "content/renderer/performance_manager/mechanisms/userspace_swap_renderer_initialization_impl.h" + +#include "chromeos/memory/userspace_swap/userfaultfd.h" +#include "chromeos/memory/userspace_swap/userspace_swap.h" +#include "chromeos/memory/userspace_swap/userspace_swap.mojom.h" +#include "content/public/renderer/render_thread.h" +#include "mojo/public/cpp/bindings/remote.h" + +namespace performance_manager { +namespace mechanism { + +namespace { +using chromeos::memory::userspace_swap::UserfaultFD; + +mojo::Remote<::userspace_swap::mojom::UserspaceSwapInitialization> +ConnectUserspaceSwapInitializationToBrowser() { + mojo::Remote<::userspace_swap::mojom::UserspaceSwapInitialization> remote; + content::RenderThread::Get()->BindHostReceiver( + remote.BindNewPipeAndPassReceiver()); + + return remote; +} + +} // namespace + +UserspaceSwapRendererInitializationImpl:: + UserspaceSwapRendererInitializationImpl() { + CHECK(UserspaceSwapRendererInitializationImpl:: + UserspaceSwapSupportedAndEnabled()); +} + +UserspaceSwapRendererInitializationImpl:: + ~UserspaceSwapRendererInitializationImpl() = default; + +bool UserspaceSwapRendererInitializationImpl::PreSandboxSetup() { + // The caller should have verified platform support before invoking + // PreSandboxSetup. + CHECK(UserspaceSwapRendererInitializationImpl:: + UserspaceSwapSupportedAndEnabled()); + + std::unique_ptr<UserfaultFD> uffd = + UserfaultFD::Create(static_cast<UserfaultFD::Features>( + UserfaultFD::Features::kFeatureUnmap | + UserfaultFD::Features::kFeatureRemap | + UserfaultFD::Features::kFeatureRemove)); + + if (!uffd) { + uffd_errno_ = errno; + } + + uffd_ = uffd->ReleaseFD(); + return uffd_.is_valid(); +} + +void UserspaceSwapRendererInitializationImpl::TransferFDsOrCleanup() { + auto remote = ConnectUserspaceSwapInitializationToBrowser(); + remote->TransferUserfaultFD(uffd_errno_, + mojo::PlatformHandle(std::move(uffd_))); + uffd_errno_ = 0; +} + +// Static +bool UserspaceSwapRendererInitializationImpl:: + UserspaceSwapSupportedAndEnabled() { + return chromeos::memory::userspace_swap::UserspaceSwapSupportedAndEnabled(); +} + +} // namespace mechanism +} // namespace performance_manager
diff --git a/content/renderer/performance_manager/mechanisms/userspace_swap_renderer_initialization_impl.h b/content/renderer/performance_manager/mechanisms/userspace_swap_renderer_initialization_impl.h new file mode 100644 index 0000000..74433cc7 --- /dev/null +++ b/content/renderer/performance_manager/mechanisms/userspace_swap_renderer_initialization_impl.h
@@ -0,0 +1,40 @@ +// Copyright 2020 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef CONTENT_RENDERER_PERFORMANCE_MANAGER_MECHANISMS_USERSPACE_SWAP_RENDERER_INITIALIZATION_IMPL_H_ +#define CONTENT_RENDERER_PERFORMANCE_MANAGER_MECHANISMS_USERSPACE_SWAP_RENDERER_INITIALIZATION_IMPL_H_ + +#include "base/files/scoped_file.h" +#include "base/macros.h" +#include "chromeos/memory/userspace_swap/userspace_swap.mojom.h" +#include "mojo/public/cpp/bindings/pending_receiver.h" + +namespace performance_manager { +namespace mechanism { + +class UserspaceSwapRendererInitializationImpl { + public: + UserspaceSwapRendererInitializationImpl(); + ~UserspaceSwapRendererInitializationImpl(); + + static bool UserspaceSwapSupportedAndEnabled(); + + // PreSandboxSetup() is responsible for creating any resources that might be + // needed before we enter the sandbox. + bool PreSandboxSetup(); + + // TransferFDsOrCleanup should be called after the sandbox has been entered. + void TransferFDsOrCleanup(); + + private: + int uffd_errno_ = 0; + base::ScopedFD uffd_; + + DISALLOW_COPY_AND_ASSIGN(UserspaceSwapRendererInitializationImpl); +}; + +} // namespace mechanism +} // namespace performance_manager + +#endif // CONTENT_RENDERER_PERFORMANCE_MANAGER_MECHANISMS_USERSPACE_SWAP_RENDERER_INITIALIZATION_IMPL_H_
diff --git a/content/renderer/render_frame_impl.cc b/content/renderer/render_frame_impl.cc index 2b9f3b0b..b3bdad6 100644 --- a/content/renderer/render_frame_impl.cc +++ b/content/renderer/render_frame_impl.cc
@@ -1573,7 +1573,7 @@ render_frame->render_widget_ = render_widget.get(); render_frame->owned_render_widget_ = std::move(render_widget); render_frame->in_frame_tree_ = true; - render_frame->Initialize(); + render_frame->Initialize(nullptr); return render_frame; } @@ -1788,7 +1788,7 @@ if (has_committed_real_load) render_frame->frame_->SetCommittedFirstRealLoad(); - render_frame->Initialize(); + render_frame->Initialize(web_frame->Parent()); } // static @@ -2014,17 +2014,22 @@ RenderThread::Get()->RemoveRoute(routing_id_); } -void RenderFrameImpl::Initialize() { - is_main_frame_ = !frame_->Parent(); +void RenderFrameImpl::Initialize(blink::WebFrame* parent) { + is_main_frame_ = !parent; - GetLocalRootRenderWidget()->RegisterRenderFrame(this); + WebFrame* local_root = frame_; + if (parent && parent->IsWebLocalFrame()) { + local_root = parent->ToWebLocalFrame()->LocalRoot(); + } + RenderFrameImpl::FromWebFrame(local_root) + ->render_widget_->RegisterRenderFrame(this); bool is_tracing_rail = false; bool is_tracing_navigation = false; TRACE_EVENT_CATEGORY_GROUP_ENABLED("navigation", &is_tracing_navigation); TRACE_EVENT_CATEGORY_GROUP_ENABLED("rail", &is_tracing_rail); if (is_tracing_rail || is_tracing_navigation) { - int parent_id = RenderFrame::GetRoutingIdForWebFrame(frame_->Parent()); + int parent_id = RenderFrame::GetRoutingIdForWebFrame(parent); TRACE_EVENT2("navigation,rail", "RenderFrameImpl::Initialize", "id", routing_id_, "parent", parent_id); @@ -2178,8 +2183,8 @@ RenderWidgetFullscreenPepper* widget = RenderWidgetFullscreenPepper::Create( fullscreen_widget_routing_id, std::move(show_callback), GetLocalRootRenderWidget()->compositor_deps(), - GetLocalRootRenderWidget()->GetOriginalScreenInfo(), plugin, - std::move(main_frame_url), std::move(blink_widget_host), + GetLocalRootRenderWidget()->GetWebWidget()->GetOriginalScreenInfo(), + plugin, std::move(main_frame_url), std::move(blink_widget_host), std::move(blink_widget_receiver)); // TODO(nick): The show() handshake seems like unnecessary complexity here, // since there's no real delay between CreateFullscreenWidget and @@ -4096,7 +4101,7 @@ params_reply.frame_token); child_render_frame->in_frame_tree_ = true; - child_render_frame->Initialize(); + child_render_frame->Initialize(parent); return web_frame; } @@ -4715,7 +4720,8 @@ // them to DIP coordiates relative to the WindowScreenRect. blink::WebRect position_in_window(params.x, params.y, 0, 0); GetLocalRootRenderWidget()->ConvertViewportToWindow(&position_in_window); - const float scale = GetLocalRootRenderWidget()->GetEmulatorScale(); + const float scale = + GetLocalRootRenderWidget()->GetWebWidget()->GetEmulatorScale(); params.x = position_in_window.x * scale; params.y = position_in_window.y * scale; }
diff --git a/content/renderer/render_frame_impl.h b/content/renderer/render_frame_impl.h index 846717d..3c8ad0bd 100644 --- a/content/renderer/render_frame_impl.h +++ b/content/renderer/render_frame_impl.h
@@ -312,7 +312,7 @@ // depend on the frame being at its proper spot. // // Virtual for web tests to inject their own behaviour into the WebLocalFrame. - virtual void Initialize(); + virtual void Initialize(blink::WebFrame* parent); // Notifications from RenderWidget. void WasHidden();
diff --git a/content/renderer/render_frame_impl_browsertest.cc b/content/renderer/render_frame_impl_browsertest.cc index 8f31c93..52fd7fcc 100644 --- a/content/renderer/render_frame_impl_browsertest.cc +++ b/content/renderer/render_frame_impl_browsertest.cc
@@ -278,10 +278,7 @@ grandchild->blink_interface_registry_.get(), base::UnguessableToken::Create()); grandchild->in_frame_tree_ = true; - grandchild->Initialize(); - - EXPECT_EQ(grandchild->GetLocalRootRenderWidget(), - frame()->GetLocalRootRenderWidget()); + grandchild->Initialize(parent_web_frame); RenderFrameTestObserver observer(grandchild);
diff --git a/content/renderer/render_frame_proxy.cc b/content/renderer/render_frame_proxy.cc index 23119049..d32f9938 100644 --- a/content/renderer/render_frame_proxy.cc +++ b/content/renderer/render_frame_proxy.cc
@@ -267,8 +267,17 @@ pending_visual_properties_.is_pinch_gesture_active = ancestor_frame_widget->PinchGestureActiveInMainFrame(); pending_visual_properties_.screen_info = - ancestor_render_widget_->GetOriginalScreenInfo(); + ancestor_render_widget_->GetWebWidget()->GetOriginalScreenInfo(); + pending_visual_properties_.visible_viewport_size = + ancestor_render_widget_->GetWebWidget()->VisibleViewportSize(); + const blink::WebVector<gfx::Rect>& window_segments = + static_cast<blink::WebFrameWidget*>( + ancestor_render_widget_->GetWebWidget()) + ->WindowSegments(); + pending_visual_properties_.root_widget_window_segments.assign( + window_segments.begin(), window_segments.end()); ancestor_render_widget_->RegisterRenderFrameProxy(this); + SynchronizeVisualProperties(); } std::pair<FrameProxyMap::iterator, bool> result = @@ -307,8 +316,8 @@ SynchronizeVisualProperties(); } -void RenderFrameProxy::OnRootWindowSegmentsChanged( - std::vector<gfx::Rect> root_widget_window_segments) { +void RenderFrameProxy::DidChangeRootWindowSegments( + const std::vector<gfx::Rect>& root_widget_window_segments) { pending_visual_properties_.root_widget_window_segments = std::move(root_widget_window_segments); SynchronizeVisualProperties(); @@ -323,7 +332,7 @@ SynchronizeVisualProperties(); } -void RenderFrameProxy::OnVisibleViewportSizeChanged( +void RenderFrameProxy::DidChangeVisibleViewportSize( const gfx::Size& visible_viewport_size) { DCHECK(ancestor_render_widget_); @@ -666,7 +675,7 @@ pending_visual_properties_.local_frame_size = gfx::Size(local_frame_rect.width, local_frame_rect.height); pending_visual_properties_.screen_info = - ancestor_render_widget_->GetOriginalScreenInfo(); + ancestor_render_widget_->GetWebWidget()->GetOriginalScreenInfo(); if (crashed_) { // Update the sad page to match the current size. compositing_helper_->ChildFrameGone(local_frame_size(),
diff --git a/content/renderer/render_frame_proxy.h b/content/renderer/render_frame_proxy.h index c27c2d3..aa7e6d02 100644 --- a/content/renderer/render_frame_proxy.h +++ b/content/renderer/render_frame_proxy.h
@@ -138,9 +138,10 @@ // RenderWidget, and we would only need to send one update to the browser as // a result. void DidChangeScreenInfo(const blink::ScreenInfo& screen_info) override; - void OnRootWindowSegmentsChanged( - std::vector<gfx::Rect> root_widget_window_segments); - void OnVisibleViewportSizeChanged(const gfx::Size& visible_viewport_size); + void DidChangeRootWindowSegments( + const std::vector<gfx::Rect>& root_widget_window_segments) override; + void DidChangeVisibleViewportSize( + const gfx::Size& visible_viewport_size) override; // Pass replicated information, such as security origin, to this // RenderFrameProxy's WebRemoteFrame.
diff --git a/content/renderer/render_view_browsertest.cc b/content/renderer/render_view_browsertest.cc index 74238d03..6a8134d7 100644 --- a/content/renderer/render_view_browsertest.cc +++ b/content/renderer/render_view_browsertest.cc
@@ -292,19 +292,13 @@ } void ReceiveDisableDeviceEmulation(RenderViewImpl* view) { - // Emulates receiving an IPC message. - RenderWidget* widget = - view->GetMainRenderFrame()->GetLocalRootRenderWidget(); - widget->DisableDeviceEmulation(); + view->GetWebView()->DisableDeviceEmulation(); } void ReceiveEnableDeviceEmulation( RenderViewImpl* view, const blink::DeviceEmulationParams& params) { - // Emulates receiving an IPC message. - RenderWidget* widget = - view->GetMainRenderFrame()->GetLocalRootRenderWidget(); - widget->EnableDeviceEmulation(params); + view->GetWebView()->EnableDeviceEmulation(params); } void GoToOffsetWithParams(int offset, @@ -520,7 +514,9 @@ MakeVisualPropertiesWithDeviceScaleFactor(dsf)); ASSERT_EQ(dsf, view()->GetMainRenderFrame()->GetDeviceScaleFactor()); - ASSERT_EQ(dsf, widget->GetOriginalScreenInfo().device_scale_factor); + ASSERT_EQ( + dsf, + widget->GetWebWidget()->GetOriginalScreenInfo().device_scale_factor); } blink::VisualProperties MakeVisualPropertiesWithDeviceScaleFactor(float dsf) { @@ -706,14 +702,13 @@ ASSERT_TRUE(popup_widget); // Set its size. - popup_widget->UpdateScreenRects(widget_screen_rect, window_screen_rect); + popup->SetScreenRects(widget_screen_rect, window_screen_rect); // The WindowScreenRect, WidgetScreenRect, and ScreenRect are all available // to the popup. - EXPECT_EQ(window_screen_rect, gfx::Rect(popup_widget->WindowRect())); - EXPECT_EQ(widget_screen_rect, gfx::Rect(popup_widget->ViewRect())); - EXPECT_EQ(screen_rect, - gfx::Rect(popup_widget->GetWebWidget()->GetScreenInfo().rect)); + EXPECT_EQ(window_screen_rect, gfx::Rect(popup->WindowRect())); + EXPECT_EQ(widget_screen_rect, gfx::Rect(popup->ViewRect())); + EXPECT_EQ(screen_rect, gfx::Rect(popup->GetScreenInfo().rect)); // Close and destroy the widget. { @@ -730,17 +725,18 @@ emulation_params.screen_type = blink::mojom::EmulatedScreenType::kMobile; emulation_params.view_size = emulated_widget_rect.size(); emulation_params.view_position = emulated_widget_rect.origin(); - main_widget()->EnableDeviceEmulation(emulation_params); + view()->GetWebView()->EnableDeviceEmulation(emulation_params); { // Make a popup again. It should inherit device emulation params. blink::WebPagePopup* popup = view()->CreatePopup(frame()->GetWebFrame()); + popup->InitializeForTesting(view()->GetWebView()); RenderWidget* popup_widget = static_cast<RenderWidget*>(popup->GetClientForTesting()); ASSERT_TRUE(popup_widget); // Set its size again. - popup_widget->UpdateScreenRects(widget_screen_rect, window_screen_rect); + popup->SetScreenRects(widget_screen_rect, window_screen_rect); // This time, the position of the WidgetScreenRect and WindowScreenRect // should be affected by emulation params. @@ -749,23 +745,25 @@ // widget will see itself at the emulation position. Why this inconsistency? int window_x = emulated_widget_rect.x() + window_screen_rect.x(); int window_y = emulated_widget_rect.y() + window_screen_rect.y(); - EXPECT_EQ(window_x, popup_widget->WindowRect().x); - EXPECT_EQ(window_y, popup_widget->WindowRect().y); + EXPECT_EQ(window_x, popup->WindowRect().x()); + EXPECT_EQ(window_y, popup->WindowRect().y()); int widget_x = emulated_widget_rect.x() + widget_screen_rect.x(); int widget_y = emulated_widget_rect.y() + widget_screen_rect.y(); - EXPECT_EQ(widget_x, popup_widget->ViewRect().x); - EXPECT_EQ(widget_y, popup_widget->ViewRect().y); + EXPECT_EQ(widget_x, popup->ViewRect().x()); + EXPECT_EQ(widget_y, popup->ViewRect().y()); // TODO(danakj): Why don't the sizes get changed by emulation? The comments // that used to be in this test suggest that the sizes used to change, and // we were testing for that. But now we only test for positions changing? - EXPECT_EQ(window_screen_rect.width(), popup_widget->WindowRect().width); - EXPECT_EQ(window_screen_rect.height(), popup_widget->WindowRect().height); - EXPECT_EQ(widget_screen_rect.width(), popup_widget->ViewRect().width); - EXPECT_EQ(widget_screen_rect.height(), popup_widget->ViewRect().height); - EXPECT_EQ(emulated_widget_rect, gfx::Rect(main_widget()->ViewRect())); - EXPECT_EQ(emulated_widget_rect, gfx::Rect(main_widget()->WindowRect())); + EXPECT_EQ(window_screen_rect.width(), popup->WindowRect().width()); + EXPECT_EQ(window_screen_rect.height(), popup->WindowRect().height()); + EXPECT_EQ(widget_screen_rect.width(), popup->ViewRect().width()); + EXPECT_EQ(widget_screen_rect.height(), popup->ViewRect().height()); + EXPECT_EQ(emulated_widget_rect, + gfx::Rect(main_widget()->GetWebWidget()->ViewRect())); + EXPECT_EQ(emulated_widget_rect, + gfx::Rect(main_widget()->GetWebWidget()->WindowRect())); // TODO(danakj): Why isn't the ScreenRect visible to the popup an emulated // value? The ScreenRect has been changed by emulation as demonstrated @@ -1151,16 +1149,20 @@ // Verify that the system device scale factor has propagated into the // RenderFrameProxy. EXPECT_EQ(device_scale, view()->GetMainRenderFrame()->GetDeviceScaleFactor()); - EXPECT_EQ(device_scale, - main_widget()->GetOriginalScreenInfo().device_scale_factor); + EXPECT_EQ(device_scale, main_widget() + ->GetWebWidget() + ->GetOriginalScreenInfo() + .device_scale_factor); EXPECT_EQ(device_scale, child_proxy->screen_info().device_scale_factor); TestEmulatedSizeDprDsf(640, 480, 3.f, compositor_dsf); // Verify that the RenderFrameProxy device scale factor is still the same. EXPECT_EQ(3.f, view()->GetMainRenderFrame()->GetDeviceScaleFactor()); - EXPECT_EQ(device_scale, - main_widget()->GetOriginalScreenInfo().device_scale_factor); + EXPECT_EQ(device_scale, main_widget() + ->GetWebWidget() + ->GetOriginalScreenInfo() + .device_scale_factor); EXPECT_EQ(device_scale, child_proxy->screen_info().device_scale_factor); ReceiveDisableDeviceEmulation(view());
diff --git a/content/renderer/render_view_impl.cc b/content/renderer/render_view_impl.cc index 49619a9b..2abfc60a 100644 --- a/content/renderer/render_view_impl.cc +++ b/content/renderer/render_view_impl.cc
@@ -1031,14 +1031,6 @@ return GetWebView()->AutoResizeMode(); } -void RenderViewImpl::ScrollFocusedNodeIntoViewForWidget() { - if (WebLocalFrame* focused_frame = GetWebView()->FocusedFrame()) { - blink::WebFrameWidget* frame_widget = - focused_frame->LocalRoot()->FrameWidget(); - frame_widget->ScrollFocusedEditableElementIntoView(); - } -} - void RenderViewImpl::DidReceiveSetFocusEventForWidget() { // This message must always be received when the main frame is a // WebLocalFrame. @@ -1070,15 +1062,6 @@ browser_controls_params); } -void RenderViewImpl::SetScreenMetricsEmulationParametersForWidget( - bool enabled, - const blink::DeviceEmulationParams& params) { - if (enabled) - GetWebView()->EnableDeviceEmulation(params); - else - GetWebView()->DisableDeviceEmulation(); -} - // IPC message handlers ----------------------------------------- void RenderViewImpl::OnUpdateTargetURLAck() { @@ -1351,9 +1334,9 @@ // Adds a self-reference on the |popup_widget| so it will not be destroyed // when leaving scope. The WebPagePopup takes responsibility for Close()ing // and thus destroying the RenderWidget. - popup_widget->InitForPopup(std::move(opener_callback), opener_render_widget, - popup_web_widget, - opener_render_widget->GetOriginalScreenInfo()); + popup_widget->InitForPopup( + std::move(opener_callback), opener_render_widget, popup_web_widget, + opener_render_widget->GetWebWidget()->GetOriginalScreenInfo()); return popup_web_widget; }
diff --git a/content/renderer/render_view_impl.h b/content/renderer/render_view_impl.h index 7467f97..8f51878 100644 --- a/content/renderer/render_view_impl.h +++ b/content/renderer/render_view_impl.h
@@ -347,7 +347,6 @@ bool SupportsMultipleWindowsForWidget() override; bool ShouldAckSyntheticInputImmediately() override; bool AutoResizeMode() override; - void ScrollFocusedNodeIntoViewForWidget() override; void DidReceiveSetFocusEventForWidget() override; void DidCommitCompositorFrameForWidget() override; void DidCompletePageScaleAnimationForWidget() override; @@ -355,9 +354,6 @@ const gfx::Size& widget_size, const gfx::Size& visible_viewport_size, cc::BrowserControlsParams browser_controls_params) override; - void SetScreenMetricsEmulationParametersForWidget( - bool enabled, - const blink::DeviceEmulationParams& params) override; // Old WebLocalFrameClient implementations // ----------------------------------------
diff --git a/content/renderer/render_widget.cc b/content/renderer/render_widget.cc index 960e4a0..a98c8ae9 100644 --- a/content/renderer/render_widget.cc +++ b/content/renderer/render_widget.cc
@@ -8,7 +8,6 @@ #include <limits> #include <utility> -#include "base/auto_reset.h" #include "base/base_switches.h" #include "base/bind.h" #include "base/bind_helpers.h" @@ -27,15 +26,11 @@ #include "base/threading/thread_task_runner_handle.h" #include "base/trace_event/trace_event.h" #include "build/build_config.h" -#include "cc/animation/animation_host.h" #include "cc/base/features.h" #include "cc/base/switches.h" -#include "cc/input/touch_action.h" -#include "cc/paint/paint_worklet_layer_painter.h" #include "cc/trees/layer_tree_frame_sink.h" #include "cc/trees/layer_tree_host.h" #include "cc/trees/ukm_manager.h" -#include "components/viz/common/display/de_jelly.h" #include "components/viz/common/features.h" #include "components/viz/common/frame_sinks/begin_frame_source.h" #include "components/viz/common/frame_sinks/copy_output_request.h" @@ -61,7 +56,6 @@ #include "content/renderer/render_process.h" #include "content/renderer/render_thread_impl.h" #include "content/renderer/render_view_impl.h" -#include "content/renderer/render_widget_screen_metrics_emulator.h" #include "content/renderer/renderer_blink_platform_impl.h" #include "gpu/command_buffer/service/gpu_switches.h" #include "gpu/config/gpu_finch_features.h" @@ -71,11 +65,8 @@ #include "ppapi/buildflags/buildflags.h" #include "skia/ext/platform_canvas.h" #include "third_party/blink/public/common/features.h" -#include "third_party/blink/public/common/input/web_input_event_attribution.h" -#include "third_party/blink/public/common/input/web_mouse_event.h" #include "third_party/blink/public/common/page/web_drag_operation.h" #include "third_party/blink/public/common/switches.h" -#include "third_party/blink/public/common/widget/device_emulation_params.h" #include "third_party/blink/public/platform/file_path_conversion.h" #include "third_party/blink/public/platform/platform.h" #include "third_party/blink/public/platform/scheduler/web_render_widget_scheduling_state.h" @@ -87,13 +78,10 @@ #include "third_party/blink/public/platform/web_string.h" #include "third_party/blink/public/web/web_autofill_client.h" #include "third_party/blink/public/web/web_frame_widget.h" -#include "third_party/blink/public/web/web_input_method_controller.h" #include "third_party/blink/public/web/web_local_frame.h" #include "third_party/blink/public/web/web_node.h" #include "third_party/blink/public/web/web_page_popup.h" #include "third_party/blink/public/web/web_popup_menu_info.h" -#include "third_party/blink/public/web/web_range.h" -#include "third_party/blink/public/web/web_settings.h" #include "third_party/blink/public/web/web_view.h" #include "third_party/blink/public/web/web_widget.h" #include "third_party/skia/include/core/SkShader.h" @@ -124,29 +112,14 @@ #include "third_party/skia/include/core/SkPixelRef.h" #endif // defined(OS_POSIX) -using blink::DeviceEmulationParams; using blink::WebDragData; using blink::WebDragOperation; using blink::WebDragOperationsMask; using blink::WebFrameWidget; -using blink::WebGestureEvent; -using blink::WebInputEvent; -using blink::WebInputEventResult; -using blink::WebInputMethodController; using blink::WebLocalFrame; -using blink::WebMouseEvent; -using blink::WebMouseWheelEvent; using blink::WebNavigationPolicy; -using blink::WebNode; -using blink::WebPagePopup; -using blink::WebRange; using blink::WebRect; -using blink::WebSize; using blink::WebString; -using blink::WebTouchEvent; -using blink::WebTouchPoint; -using blink::WebVector; -using blink::WebWidget; namespace content { @@ -155,8 +128,6 @@ RenderWidget::CreateRenderWidgetFunction g_create_render_widget_for_frame = nullptr; -typedef std::map<std::string, ui::TextInputMode> TextInputModeMap; - static const char* kOOPIF = "OOPIF"; static const char* kRenderer = "Renderer"; @@ -340,14 +311,6 @@ const blink::ScreenInfo& screen_info) { for_popup_ = true; Initialize(std::move(show_callback), web_page_popup, screen_info); - - if (opener_widget->device_emulator_) { - opener_widget_screen_origin_ = - opener_widget->device_emulator_->ViewRectOrigin(); - opener_original_widget_screen_origin_ = - opener_widget->device_emulator_->original_view_rect().origin(); - opener_emulator_scale_ = opener_widget->GetEmulatorScale(); - } } void RenderWidget::InitForPepperFullscreen( @@ -381,7 +344,7 @@ } void RenderWidget::Initialize(ShowCallback show_callback, - WebWidget* web_widget, + blink::WebWidget* web_widget, const blink::ScreenInfo& screen_info) { DCHECK_NE(routing_id_, MSG_ROUTING_NONE); DCHECK(web_widget); @@ -451,6 +414,7 @@ } void RenderWidget::UpdateVisualProperties( + bool emulator_enabled, const blink::VisualProperties& visual_properties) { if (delegate()) { if (size_ != visual_properties.new_size) { @@ -462,34 +426,7 @@ browser_controls_params_ = visual_properties.browser_controls_params; } - gfx::Size old_visible_viewport_size = visible_viewport_size_; - - if (device_emulator_) { - DCHECK(!AutoResizeMode()); - DCHECK(!synchronous_resize_mode_for_testing_); - - // TODO(danakj): Have RenderWidget grab emulated values from the emulator - // instead of making it call back into RenderWidget, then we can do this - // with a single UpdateSurfaceAndScreenInfo() call. The emulator may - // change the ScreenInfo and then will call back to RenderWidget. Before - // that we keep the current (possibly emulated) ScreenInfo. - GetWebWidget()->UpdateSurfaceAndScreenInfo( - visual_properties.local_surface_id_allocation.value_or( - viz::LocalSurfaceIdAllocation()), - visual_properties.compositor_viewport_pixel_rect, - GetWebWidget()->GetScreenInfo()); - - // This will call back into this class to set the widget size, visible - // viewport size, screen info and screen rects, based on the device - // emulation. - device_emulator_->OnSynchronizeVisualProperties( - visual_properties.screen_info, visual_properties.new_size, - visual_properties.visible_viewport_size, - visual_properties.root_widget_window_segments); - } else { - if (for_frame()) - SetRootWindowSegments(visual_properties.root_widget_window_segments); - + if (!emulator_enabled) { // We can ignore browser-initialized resizing during synchronous // (renderer-controlled) mode, unless it is switching us to/from // fullsreen mode or changing the device scale factor. @@ -543,78 +480,14 @@ // Store this even when auto-resizing, it is the size of the full viewport // used for clipping, and this value is propagated down the RenderWidget // hierarchy via the VisualProperties waterfall. - visible_viewport_size_ = visual_properties.visible_viewport_size; + GetWebWidget()->SetVisibleViewportSize( + visual_properties.visible_viewport_size); if (!AutoResizeMode()) { SetSize(visual_properties.new_size); } } } - - if (old_visible_viewport_size != visible_viewport_size_) { - for (auto& render_frame : render_frames_) - render_frame.ResetHasScrolledFocusedEditableIntoView(); - - // Propagate changes down to child local root RenderWidgets and - // BrowserPlugins in other frame trees/processes. - for (auto& observer : render_frame_proxies_) - observer.OnVisibleViewportSizeChanged(visible_viewport_size_); - } - // TODO(crbug.com/939118): ScrollFocusedNodeIntoViewForWidget does not work - // when the focused node is inside an OOPIF. This code path where - // scroll_focused_node_into_view is set is used only for WebView, crbug - // 939118 tracks fixing webviews to not use scroll_focused_node_into_view. - if (delegate() && visual_properties.scroll_focused_node_into_view) - delegate()->ScrollFocusedNodeIntoViewForWidget(); - - AfterUpdateVisualProperties(); -} - -void RenderWidget::EnableDeviceEmulation( - const blink::DeviceEmulationParams& params) { - // Device emulation can only be applied to the local main frame render widget. - DCHECK(delegate_); - - if (!device_emulator_) { - device_emulator_ = std::make_unique<RenderWidgetScreenMetricsEmulator>( - this, GetWebWidget()->GetScreenInfo(), size_, visible_viewport_size_, - widget_screen_rect_, window_screen_rect_); - } - device_emulator_->ChangeEmulationParams(params); -} - -void RenderWidget::DisableDeviceEmulation() { - // Device emulation can only be applied to the local main frame render widget. - DCHECK(delegate_); - if (!device_emulator_) - return; - device_emulator_->DisableAndApply(); - device_emulator_.reset(); -} - -float RenderWidget::GetEmulatorScale() const { - if (device_emulator_) - return device_emulator_->scale(); - return 1; -} - -void RenderWidget::SetRootWindowSegments( - const std::vector<gfx::Rect>& root_window_segments) { - if (root_widget_window_segments_ != root_window_segments) { - root_widget_window_segments_ = root_window_segments; - - blink::WebVector<blink::WebRect> web_segments; - web_segments.reserve(root_widget_window_segments_.size()); - for (const auto& segment : root_widget_window_segments_) - web_segments.emplace_back(segment); - - GetWebWidget()->SetWindowSegments(std::move(web_segments)); - - // Propagate changes down to child local root RenderWidgets in other frame - // trees/processes. - for (auto& observer : render_frame_proxies_) - observer.OnRootWindowSegmentsChanged(root_widget_window_segments_); - } } void RenderWidget::OnWasHidden() { @@ -664,6 +537,8 @@ void RenderWidget::OnRequestSetBoundsAck() { DCHECK(pending_window_rect_count_); pending_window_rect_count_--; + if (pending_window_rect_count_ == 0) + GetWebWidget()->SetPendingWindowRect(nullptr); } void RenderWidget::RequestPresentation(PresentationTimeCallback callback) { @@ -691,7 +566,8 @@ *local_point = gfx::PointF(result.LocalPointWithoutContentBoxOffset()); if (compositor_deps()->IsUseZoomForDSFEnabled()) { *local_point = gfx::ConvertPointToDIP( - GetOriginalScreenInfo().device_scale_factor, *local_point); + GetWebWidget()->GetOriginalScreenInfo().device_scale_factor, + *local_point); } return frame_sink_id; } @@ -850,7 +726,7 @@ size_for_blink = size_; } else { size_for_blink = gfx::ScaleToCeiledSize( - size_, GetOriginalScreenInfo().device_scale_factor); + size_, GetWebWidget()->GetOriginalScreenInfo().device_scale_factor); } // The |visible_viewport_size| given to blink is scaled by the (non-emulated, @@ -858,10 +734,11 @@ // enabled). gfx::Size visible_viewport_size_for_blink; if (!compositor_deps_->IsUseZoomForDSFEnabled()) { - visible_viewport_size_for_blink = visible_viewport_size_; + visible_viewport_size_for_blink = GetWebWidget()->VisibleViewportSize(); } else { visible_viewport_size_for_blink = gfx::ScaleToCeiledSize( - visible_viewport_size_, GetOriginalScreenInfo().device_scale_factor); + GetWebWidget()->VisibleViewportSize(), + GetWebWidget()->GetOriginalScreenInfo().device_scale_factor); } if (delegate()) { @@ -888,54 +765,6 @@ } } -void RenderWidget::SetScreenInfoAndSize( - const blink::ScreenInfo& screen_info, - const gfx::Size& widget_size, - const gfx::Size& visible_viewport_size) { - // Emulation only happens on the main frame. - DCHECK(delegate()); - DCHECK(for_frame()); - // Emulation happens on regular main frames which don't use auto-resize mode. - DCHECK(!AutoResizeMode()); - - GetWebWidget()->UpdateScreenInfo(screen_info); - - RenderFrameImpl* render_frame = - RenderFrameImpl::FromWebFrame(GetFrameWidget()->LocalRoot()); - // UpdateScreenInfo() changes properties including the device scale - // factor, which changes PreferCompositingToLCDText decisions. - // TODO(danakj): Do this in UpdateScreenInfo? But requires a Resize - // to happen after (see comment on - // SetPreferCompositingToLCDTextEnabledOnRenderView). - // - // This causes compositing state to be modified which dirties the document - // lifecycle. Android Webview relies on the document lifecycle being clean - // after the RenderWidget is initialized, in order to send IPCs that query - // and change compositing state. So ResizeWebWidget() must come after this - // call, as it runs the entire document lifecycle. - render_frame->SetPreferCompositingToLCDTextEnabledOnRenderView( - ComputePreferCompositingToLCDText( - compositor_deps_, - GetWebWidget()->GetScreenInfo().device_scale_factor)); - - visible_viewport_size_ = visible_viewport_size; - SetSize(widget_size); -} - -void RenderWidget::SetScreenMetricsEmulationParameters( - bool enabled, - const blink::DeviceEmulationParams& params) { - // This is only supported in RenderView, which has an delegate(). - DCHECK(delegate()); - delegate()->SetScreenMetricsEmulationParametersForWidget(enabled, params); -} - -void RenderWidget::SetScreenRects(const gfx::Rect& widget_screen_rect, - const gfx::Rect& window_screen_rect) { - widget_screen_rect_ = widget_screen_rect; - window_screen_rect_ = window_screen_rect; -} - /////////////////////////////////////////////////////////////////////////////// // WebWidgetClient @@ -1068,61 +897,7 @@ return frame_widget->LocalRoot()->IsProvisional(); } -void RenderWidget::ScreenRectToEmulated(gfx::Rect* screen_rect) const { - screen_rect->set_x( - opener_widget_screen_origin_.x() + - (screen_rect->x() - opener_original_widget_screen_origin_.x()) / - opener_emulator_scale_); - screen_rect->set_y( - opener_widget_screen_origin_.y() + - (screen_rect->y() - opener_original_widget_screen_origin_.y()) / - opener_emulator_scale_); -} - -void RenderWidget::EmulatedToScreenRect(gfx::Rect* screen_rect) const { - screen_rect->set_x(opener_original_widget_screen_origin_.x() + - (screen_rect->x() - opener_widget_screen_origin_.x()) * - opener_emulator_scale_); - screen_rect->set_y(opener_original_widget_screen_origin_.y() + - (screen_rect->y() - opener_widget_screen_origin_.y()) * - opener_emulator_scale_); -} - -WebRect RenderWidget::WindowRect() { - gfx::Rect rect; - if (pending_window_rect_count_) { - // NOTE(mbelshe): If there is a pending_window_rect_, then getting - // the RootWindowRect is probably going to return wrong results since the - // browser may not have processed the Move yet. There isn't really anything - // good to do in this case, and it shouldn't happen - since this size is - // only really needed for windowToScreen, which is only used for Popups. - rect = pending_window_rect_; - } else { - rect = window_screen_rect_; - } - - // Popup widgets aren't emulated, but the WindowRect (aka WindowScreenRect) - // given to them should be. - if (opener_emulator_scale_) { - DCHECK(for_popup_); - ScreenRectToEmulated(&rect); - } - return rect; -} - -WebRect RenderWidget::ViewRect() { - gfx::Rect rect = widget_screen_rect_; - - // Popup widgets aren't emulated, but the ViewRect (aka WidgetScreenRect) - // given to them should be. - if (opener_emulator_scale_) { - DCHECK(for_popup_); - ScreenRectToEmulated(&rect); - } - return rect; -} - -void RenderWidget::SetWindowRect(const WebRect& rect_in_screen) { +void RenderWidget::SetWindowRect(const gfx::Rect& window_rect) { // This path is for the renderer to change the on-screen position/size of // the widget by changing its window rect. This is not possible for // RenderWidgets whose position/size are controlled by layout from another @@ -1131,16 +906,6 @@ if (for_child_local_root_frame_) return; - gfx::Rect window_rect = rect_in_screen; - - // Popups aren't emulated, but the WidgetScreenRect and WindowScreenRect - // given to them are. When they set the WindowScreenRect it is based on those - // emulated values, so we reverse the emulation. - if (opener_emulator_scale_) { - DCHECK(for_popup_); - EmulatedToScreenRect(&window_rect); - } - if (synchronous_resize_mode_for_testing_) { // This is a web-test-only path. At one point, it was planned to be // removed. See https://crbug.com/309760. @@ -1159,15 +924,14 @@ } } -void RenderWidget::SetPendingWindowRect(const WebRect& rect) { - pending_window_rect_ = rect; +void RenderWidget::SetPendingWindowRect(const gfx::Rect& rect) { + GetWebWidget()->SetPendingWindowRect(&rect); pending_window_rect_count_++; // Popups don't get size updates back from the browser so just store the set // values. if (!for_frame()) { - window_screen_rect_ = rect; - widget_screen_rect_ = rect; + GetWebWidget()->SetScreenRects(rect, rect); } } @@ -1176,6 +940,28 @@ ResizeWebWidget(); } +void RenderWidget::UpdateCompositingToLCDTextPreference() { + if (!for_frame()) + return; + RenderFrameImpl* render_frame = + RenderFrameImpl::FromWebFrame(GetFrameWidget()->LocalRoot()); + // UpdateScreenInfo() changes properties including the device scale + // factor, which changes PreferCompositingToLCDText decisions. + // TODO(danakj): Do this in UpdateScreenInfo? But requires a Resize + // to happen after (see comment on + // SetPreferCompositingToLCDTextEnabledOnRenderView). + // + // This causes compositing state to be modified which dirties the document + // lifecycle. Android Webview relies on the document lifecycle being clean + // after the RenderWidget is initialized, in order to send IPCs that query + // and change compositing state. So ResizeWebWidget() must come after this + // call, as it runs the entire document lifecycle. + render_frame->SetPreferCompositingToLCDTextEnabledOnRenderView( + ComputePreferCompositingToLCDText( + compositor_deps_, + GetWebWidget()->GetScreenInfo().device_scale_factor)); +} + void RenderWidget::ImeSetCompositionForPepper( const blink::WebString& text, const std::vector<ui::ImeTextSpan>& ime_text_spans, @@ -1230,11 +1016,10 @@ GetWebWidget()->GetScreenInfo().device_scale_factor)); GetWebWidget()->UpdateCompositorViewportRect(compositor_viewport_pixel_rect); - visible_viewport_size_ = new_window_rect.size(); + GetWebWidget()->SetVisibleViewportSize(new_window_rect.size()); SetSize(new_window_rect.size()); + GetWebWidget()->SetScreenRects(new_window_rect, new_window_rect); - widget_screen_rect_ = new_window_rect; - window_screen_rect_ = new_window_rect; if (show_callback_) { // Tests may call here directly to control the window rect. If // Show() did not happen yet, the rect is stored to be passed to the @@ -1243,16 +1028,6 @@ } } -void RenderWidget::UpdateScreenRects(const gfx::Rect& widget_screen_rect, - const gfx::Rect& window_screen_rect) { - if (device_emulator_) { - device_emulator_->OnUpdateScreenRects(widget_screen_rect, - window_screen_rect); - } else { - SetScreenRects(widget_screen_rect, window_screen_rect); - } -} - void RenderWidget::OnSetViewportIntersection( const blink::ViewportIntersectionState& intersection_state) { if (auto* frame_widget = GetFrameWidget()) { @@ -1279,7 +1054,8 @@ void RenderWidget::ConvertViewportToWindow(blink::WebRect* rect) { if (compositor_deps_->IsUseZoomForDSFEnabled()) { - float reverse = 1 / GetOriginalScreenInfo().device_scale_factor; + float reverse = + 1 / GetWebWidget()->GetOriginalScreenInfo().device_scale_factor; // TODO(oshima): We may need to allow pixel precision here as the the // anchor element can be placed at half pixel. gfx::Rect window_rect = gfx::ScaleToEnclosedRect(gfx::Rect(*rect), reverse); @@ -1292,7 +1068,8 @@ void RenderWidget::ConvertViewportToWindow(blink::WebFloatRect* rect) { if (compositor_deps_->IsUseZoomForDSFEnabled()) { - float device_scale_factor = GetOriginalScreenInfo().device_scale_factor; + float device_scale_factor = + GetWebWidget()->GetOriginalScreenInfo().device_scale_factor; rect->x /= device_scale_factor; rect->y /= device_scale_factor; rect->width /= device_scale_factor; @@ -1302,7 +1079,8 @@ void RenderWidget::ConvertWindowToViewport(blink::WebFloatRect* rect) { if (compositor_deps_->IsUseZoomForDSFEnabled()) { - float device_scale_factor = GetOriginalScreenInfo().device_scale_factor; + float device_scale_factor = + GetWebWidget()->GetOriginalScreenInfo().device_scale_factor; rect->x *= device_scale_factor; rect->y *= device_scale_factor; rect->width *= device_scale_factor; @@ -1346,10 +1124,8 @@ size_ = gfx::Size(new_size_in_window.width, new_size_in_window.height); if (synchronous_resize_mode_for_testing_) { - gfx::Rect new_pos(WindowRect().x, WindowRect().y, size_.width(), - size_.height()); - widget_screen_rect_ = new_pos; - window_screen_rect_ = new_pos; + gfx::Rect new_pos(GetWebWidget()->WindowRect().origin(), size_); + GetWebWidget()->SetScreenRects(new_pos, new_pos); } } } @@ -1365,12 +1141,6 @@ void RenderWidget::RegisterRenderFrameProxy(RenderFrameProxy* proxy) { render_frame_proxies_.AddObserver(proxy); - - // These properties are propagated down the RenderWidget tree through - // the RenderFrameProxy (see explanation in OnUpdateVisualProperties()). - // When a new RenderFrameProxy is added, we propagate them immediately. - proxy->OnVisibleViewportSizeChanged(visible_viewport_size_); - proxy->OnRootWindowSegmentsChanged(root_widget_window_segments_); } void RenderWidget::UnregisterRenderFrameProxy(RenderFrameProxy* proxy) { @@ -1385,12 +1155,6 @@ render_frames_.RemoveObserver(frame); } -blink::ScreenInfo RenderWidget::GetOriginalScreenInfo() { - if (device_emulator_) - return device_emulator_->original_screen_info(); - return GetWebWidget()->GetScreenInfo(); -} - gfx::PointF RenderWidget::ConvertWindowPointToViewport( const gfx::PointF& point) { blink::WebFloatRect point_in_viewport(point.x(), point.y(), 0, 0); @@ -1466,7 +1230,8 @@ gfx::PointF point_in_pixel(point); if (compositor_deps()->IsUseZoomForDSFEnabled()) { point_in_pixel = gfx::ConvertPointToPixel( - GetOriginalScreenInfo().device_scale_factor, point_in_pixel); + GetWebWidget()->GetOriginalScreenInfo().device_scale_factor, + point_in_pixel); } return GetWebWidget()->HitTestResultAt(point_in_pixel); }
diff --git a/content/renderer/render_widget.h b/content/renderer/render_widget.h index 240841e..8b184d6 100644 --- a/content/renderer/render_widget.h +++ b/content/renderer/render_widget.h
@@ -39,7 +39,6 @@ #include "content/renderer/mouse_lock_dispatcher.h" #include "content/renderer/render_widget_delegate.h" #include "content/renderer/render_widget_mouse_lock_dispatcher.h" -#include "content/renderer/render_widget_screen_metrics_emulator_delegate.h" #include "ipc/ipc_listener.h" #include "ipc/ipc_message.h" #include "ipc/ipc_sender.h" @@ -68,7 +67,6 @@ namespace blink { struct VisualProperties; -struct DeviceEmulationParams; class WebDragData; class WebFrameWidget; class WebInputMethodController; @@ -90,7 +88,6 @@ class RenderFrameProxy; class RenderViewImpl; class RenderWidgetDelegate; -class RenderWidgetScreenMetricsEmulator; // RenderWidget provides a communication bridge between a WebWidget and // a RenderWidgetHost, the latter of which lives in a different process. @@ -113,8 +110,7 @@ class CONTENT_EXPORT RenderWidget : public IPC::Listener, public IPC::Sender, - public blink::WebPagePopupClient, // Is-a WebWidgetClient also. - public RenderWidgetScreenMetricsEmulatorDelegate { + public blink::WebPagePopupClient { // Is-a WebWidgetClient also public: RenderWidget(int32_t widget_routing_id, CompositorDependencies* compositor_deps, @@ -212,9 +208,6 @@ const gfx::Size& size() const { return size_; } bool is_hidden() const { return is_hidden_; } - const gfx::Size& visible_viewport_size() const { - return visible_viewport_size_; - } // A main frame RenderWidget is destroyed and recreated using the same routing // id. So messages en route to a destroyed RenderWidget may end up being @@ -239,28 +232,15 @@ // IPC::Sender bool Send(IPC::Message* msg) override; - // RenderWidgetScreenMetricsEmulatorDelegate - void SetScreenMetricsEmulationParameters( - bool enabled, - const blink::DeviceEmulationParams& params) override; - void SetScreenInfoAndSize(const blink::ScreenInfo& screen_info, - const gfx::Size& widget_size, - const gfx::Size& visible_viewport_size) override; - void SetScreenRects(const gfx::Rect& widget_screen_rect, - const gfx::Rect& window_screen_rect) override; - void SetRootWindowSegments( - const std::vector<gfx::Rect>& root_window_segments) override; - // blink::WebWidgetClient void ScheduleAnimation() override; void DidMeaningfulLayout(blink::WebMeaningfulLayout layout_type) override; void CloseWidgetSoon() override; void ClosePopupWidgetSoon() override; void Show(blink::WebNavigationPolicy) override; - blink::WebRect WindowRect() override; - blink::WebRect ViewRect() override; - void SetWindowRect(const blink::WebRect&) override; + void SetWindowRect(const gfx::Rect&) override; void SetSize(const gfx::Size&) override; + void UpdateCompositingToLCDTextPreference() override; void ConvertViewportToWindow(blink::WebRect* rect) override; void ConvertViewportToWindow(blink::WebFloatRect* rect) override; void ConvertWindowToViewport(blink::WebFloatRect* rect) override; @@ -307,18 +287,6 @@ const gfx::Range& replacement_range, int relative_cursor_pos) override; void ImeFinishComposingTextForPepper(bool keep_selection) override; - void UpdateScreenRects(const gfx::Rect& widget_screen_rect, - const gfx::Rect& window_screen_rect) override; - void EnableDeviceEmulation( - const blink::DeviceEmulationParams& params) override; - void DisableDeviceEmulation() override; - blink::ScreenInfo GetOriginalScreenInfo() override; - - // Returns the scale being applied to the document in blink by the device - // emulator. Returns 1 if there is no emulation active. Use this to position - // things when the coordinates did not come from blink, such as from the mouse - // position. - float GetEmulatorScale() const override; void UpdateTextInputState(); @@ -362,11 +330,9 @@ protected: // blink::WebWidgetClient void UpdateVisualProperties( + bool emulator_enabled, const blink::VisualProperties& properties) override; - // Notify subclasses that we handled OnUpdateVisualProperties. - virtual void AfterUpdateVisualProperties() {} - // Destroy the RenderWidget. The |widget| is the owning pointer of |this|. virtual void Close(std::unique_ptr<RenderWidget> widget); @@ -400,10 +366,6 @@ // visual viewport size, or the device scale factor change. void ResizeWebWidget(); - // Helper method to get the device_viewport_rect() from the compositor, which - // is always in physical pixels. - gfx::Rect CompositorViewportRect() const; - // RenderWidget IPC message handlers. void OnClose(); void OnCreatingNewAck(); @@ -412,11 +374,8 @@ bool was_evicted, const blink::mojom::RecordContentToVisibleTimeRequestPtr& record_tab_switch_time_request); - void OnCreateVideoAck(int32_t video_id); - void OnUpdateVideoAck(int32_t video_id); void OnRequestSetBoundsAck(); - void OnGetFPS(); void OnSetViewportIntersection( const blink::ViewportIntersectionState& intersection_state); void OnDragTargetDragEnter( @@ -428,25 +387,19 @@ void OnDragSourceEnded(const gfx::PointF& client_point, const gfx::PointF& screen_point, blink::WebDragOperation drag_operation); - void OnOrientationChange(); // Sets the "hidden" state of this widget. All modification of is_hidden_ // should use this method so that we can properly inform the RenderThread of // our state. void SetHidden(bool hidden); - // Returns a rect that the compositor needs to raster. For a main frame this - // is always the entire viewport, but for out-of-process iframes this can be - // constrained to limit overdraw. - gfx::Rect ViewportVisibleRect(); - // Set the pending window rect. // Because the real render_widget is hosted in another process, there is // a time period where we may have set a new window rect which has not yet // been processed by the browser. So we maintain a pending window rect // size. If JS code sets the WindowRect, and then immediately calls // GetWindowRect() we'll use this pending window rect as the size. - void SetPendingWindowRect(const blink::WebRect& r); + void SetPendingWindowRect(const gfx::Rect& r); // Returns the WebFrameWidget associated with this RenderWidget if any. // Returns nullptr if GetWebWidget() returns nullptr or returns a WebWidget @@ -455,11 +408,6 @@ // out RenderWidgets are amongst the cases where this method returns nullptr. blink::WebFrameWidget* GetFrameWidget() const; - // Applies/Removes the DevTools device emulation transformation to/from a - // screen rect. - void ScreenRectToEmulated(gfx::Rect* screen_rect) const; - void EmulatedToScreenRect(gfx::Rect* screen_rect) const; - // Used to force the size of a window when running web tests. void SetWindowRectSynchronously(const gfx::Rect& new_window_rect); @@ -503,19 +451,6 @@ // This is valid while |webwidget_| is valid. cc::LayerTreeHost* layer_tree_host_ = nullptr; - // Present when emulation is enabled, only in a main frame RenderWidget. Used - // to override values given from the browser such as ScreenInfo, - // WidgetScreenRect, WindowScreenRect, and the widget's size. - std::unique_ptr<RenderWidgetScreenMetricsEmulator> device_emulator_; - - // When emulation is enabled, and a popup widget is opened, the popup widget - // needs these values to move between the popup's (non-emulated) coordinates - // and the opener widget's (emulated) coordinates. They are only valid when - // the |opener_emulator_scale_| is non-zero. - gfx::Point opener_widget_screen_origin_; - gfx::Point opener_original_widget_screen_origin_; - float opener_emulator_scale_ = 0; - // The rect where this view should be initially shown. gfx::Rect initial_rect_; @@ -526,9 +461,6 @@ // - Rounding issues with OOPIFs (??). gfx::Size size_; - // The size of the visible viewport in pixels. - gfx::Size visible_viewport_size_; - // Indicates that we shouldn't bother generated paint events. bool is_hidden_; @@ -556,18 +488,6 @@ // While we are waiting for the browser to update window sizes, we track the // pending size temporarily. int pending_window_rect_count_ = 0; - gfx::Rect pending_window_rect_; - - // The screen rects of the view and the window that contains it. These do not - // include any scaling by device scale factor, so are logical pixels not - // physical device pixels. - gfx::Rect widget_screen_rect_; - gfx::Rect window_screen_rect_; - - // Stored during the SynchronizeVisualProperties cascade. See VisualProperties - // for a more detailed explanation of how when this value is computed and - // propagated. - std::vector<gfx::Rect> root_widget_window_segments_; // The time spent in input handlers this frame. Used to throttle input acks. base::TimeDelta total_input_handling_time_this_frame_;
diff --git a/content/renderer/render_widget_browsertest.cc b/content/renderer/render_widget_browsertest.cc index a23311f..0efc0f30 100644 --- a/content/renderer/render_widget_browsertest.cc +++ b/content/renderer/render_widget_browsertest.cc
@@ -33,7 +33,8 @@ void OnSynchronizeVisualProperties( const blink::VisualProperties& visual_properties) { - widget()->UpdateVisualProperties(visual_properties); + widget()->UpdateVisualProperties(/*emulator_enabled=*/false, + visual_properties); } gfx::Range LastCompositionRange() {
diff --git a/content/renderer/render_widget_delegate.h b/content/renderer/render_widget_delegate.h index 7258c0a5..fd86e67e 100644 --- a/content/renderer/render_widget_delegate.h +++ b/content/renderer/render_widget_delegate.h
@@ -9,7 +9,6 @@ namespace blink { class WebWidget; -struct DeviceEmulationParams; } // namespace blink namespace content { @@ -37,15 +36,6 @@ // Returns the current state of auto resize. virtual bool AutoResizeMode() = 0; - // ================================== - // These methods called during handling of a SynchronizeVisualProperties - // message to handle updating state on the delegate. - // - // Called during handling a SynchronizeVisualProperties message, if the - // message informed that the focused node should be scrolled into view. - virtual void ScrollFocusedNodeIntoViewForWidget() = 0; - // ================================== - // Called when RenderWidget receives a SetFocus event. virtual void DidReceiveSetFocusEventForWidget() = 0; @@ -63,12 +53,6 @@ const gfx::Size& size, const gfx::Size& visible_viewport_size, cc::BrowserControlsParams browser_controls_params) = 0; - - // Called when RenderWidget services RenderWidgetScreenMetricsEmulatorDelegate - // SetScreenMetricsEmulationParameters(). - virtual void SetScreenMetricsEmulationParametersForWidget( - bool enabled, - const blink::DeviceEmulationParams& params) = 0; }; } // namespace content
diff --git a/content/renderer/render_widget_fullscreen_pepper.cc b/content/renderer/render_widget_fullscreen_pepper.cc index c50e193..a0f21f87 100644 --- a/content/renderer/render_widget_fullscreen_pepper.cc +++ b/content/renderer/render_widget_fullscreen_pepper.cc
@@ -165,12 +165,9 @@ void UpdateVisualProperties( const blink::VisualProperties& visual_properties) override { - widget_->UpdateVisualProperties(visual_properties); - } - - void UpdateScreenRects(const gfx::Rect& widget_screen_rect, - const gfx::Rect& window_screen_rect) override { - widget_->UpdateScreenRects(widget_screen_rect, window_screen_rect); + widget_->UpdateVisualProperties(/*emulator_enabled=*/false, + visual_properties); + widget_->UpdateLayerBounds(); } private: @@ -273,24 +270,21 @@ RenderWidget::Close(std::move(widget)); } -void RenderWidgetFullscreenPepper::AfterUpdateVisualProperties() { - UpdateLayerBounds(); -} - void RenderWidgetFullscreenPepper::UpdateLayerBounds() { if (!layer_) return; // The |layer_| is sized here to cover the entire renderer's compositor // viewport. - gfx::Size layer_size = gfx::Rect(ViewRect()).size(); + gfx::Size layer_size = gfx::Rect(GetWebWidget()->ViewRect()).size(); // When IsUseZoomForDSFEnabled() is true, layout and compositor layer sizes // given by blink are all in physical pixels, and the compositor does not do // any scaling. But the ViewRect() is always in DIP so we must scale the layer // here as the compositor won't. if (compositor_deps()->IsUseZoomForDSFEnabled()) { layer_size = gfx::ScaleToCeiledSize( - layer_size, GetOriginalScreenInfo().device_scale_factor); + layer_size, + GetWebWidget()->GetOriginalScreenInfo().device_scale_factor); } layer_->SetBounds(layer_size); }
diff --git a/content/renderer/render_widget_fullscreen_pepper.h b/content/renderer/render_widget_fullscreen_pepper.h index 35302dc5f..8785ee9 100644 --- a/content/renderer/render_widget_fullscreen_pepper.h +++ b/content/renderer/render_widget_fullscreen_pepper.h
@@ -70,7 +70,6 @@ // RenderWidget API. void Close(std::unique_ptr<RenderWidget> widget) override; - void AfterUpdateVisualProperties() override; private: friend class PepperExternalWidgetClient;
diff --git a/content/renderer/render_widget_screen_metrics_emulator.h b/content/renderer/render_widget_screen_metrics_emulator.h deleted file mode 100644 index 56a14748..0000000 --- a/content/renderer/render_widget_screen_metrics_emulator.h +++ /dev/null
@@ -1,98 +0,0 @@ -// Copyright 2016 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#ifndef CONTENT_RENDERER_RENDER_WIDGET_SCREEN_METRICS_EMULATOR_H_ -#define CONTENT_RENDERER_RENDER_WIDGET_SCREEN_METRICS_EMULATOR_H_ - -#include <memory> - -#include "content/common/content_export.h" -#include "third_party/blink/public/common/widget/device_emulation_params.h" -#include "third_party/blink/public/common/widget/screen_info.h" -#include "ui/gfx/geometry/rect.h" -#include "ui/gfx/geometry/size.h" - -namespace content { -class RenderWidgetScreenMetricsEmulatorDelegate; - -// RenderWidgetScreenMetricsEmulator class manages screen emulation inside a -// RenderWidget. This includes resizing, placing view on the screen at desired -// position, changing device scale factor, and scaling down the whole -// widget if required to fit into the browser window. -class CONTENT_EXPORT RenderWidgetScreenMetricsEmulator { - public: - RenderWidgetScreenMetricsEmulator( - RenderWidgetScreenMetricsEmulatorDelegate* delegate, - const blink::ScreenInfo& screen_info, - const gfx::Size& widget_size, - const gfx::Size& visible_viewport_size, - const gfx::Rect& view_screen_rect, - const gfx::Rect& window_screen_rect); - ~RenderWidgetScreenMetricsEmulator(); - - const blink::ScreenInfo& original_screen_info() const { - return original_screen_info_; - } - // This rect is the WidgetScreenRect or ViewRect, which is the main frame - // widget's bounding box, not including OS window decor, in logical DIP screen - // coordinates. - const gfx::Rect& original_view_rect() const { - return original_view_screen_rect_; - } - // This rect is the WindowScreenRect or WindowRect, which is the bounding box - // of the main frame's top level window, including OS window decor, in logical - // DIP screen coordinates. - const gfx::Rect& original_window_rect() const { - return original_window_screen_rect_; - } - - float scale() const { return emulation_params_.scale; } - - // Emulated position of the main frame widget (aka view) rect. - gfx::Point ViewRectOrigin(); - - // Disables emulation and applies non-emulated values to the RenderWidget. - // Call this before destroying the RenderWidgetScreenMetricsEmulator. - void DisableAndApply(); - - // Sets new parameters and applies them to the RenderWidget. - void ChangeEmulationParams(const blink::DeviceEmulationParams& params); - - void OnSynchronizeVisualProperties( - const blink::ScreenInfo& screen_info, - const gfx::Size& widget_size, - const gfx::Size& visible_viewport_size, - const std::vector<gfx::Rect>& root_window_segments); - - void OnUpdateScreenRects(const gfx::Rect& view_screen_rect, - const gfx::Rect& window_screen_rect); - - private: - bool emulating_desktop() const { - return emulation_params_.screen_type == - blink::mojom::EmulatedScreenType::kDesktop; - } - - // Applies emulated values to the RenderWidget. - void Apply(); - - RenderWidgetScreenMetricsEmulatorDelegate* const delegate_; - - // Parameters as passed by RenderWidget::EnableScreenMetricsEmulation. - blink::DeviceEmulationParams emulation_params_; - - // Original values to restore back after emulation ends. - blink::ScreenInfo original_screen_info_; - gfx::Size original_widget_size_; - gfx::Size original_visible_viewport_size_; - gfx::Rect original_view_screen_rect_; - gfx::Rect original_window_screen_rect_; - std::vector<gfx::Rect> original_root_window_segments_; - - DISALLOW_COPY_AND_ASSIGN(RenderWidgetScreenMetricsEmulator); -}; - -} // namespace content - -#endif // CONTENT_RENDERER_RENDER_WIDGET_SCREEN_METRICS_EMULATOR_H_
diff --git a/content/renderer/render_widget_screen_metrics_emulator_delegate.h b/content/renderer/render_widget_screen_metrics_emulator_delegate.h deleted file mode 100644 index 48890d6..0000000 --- a/content/renderer/render_widget_screen_metrics_emulator_delegate.h +++ /dev/null
@@ -1,45 +0,0 @@ -// Copyright 2016 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#ifndef CONTENT_RENDERER_RENDER_WIDGET_SCREEN_METRICS_EMULATOR_DELEGATE_H_ -#define CONTENT_RENDERER_RENDER_WIDGET_SCREEN_METRICS_EMULATOR_DELEGATE_H_ - -#include "content/common/content_export.h" -#include "third_party/blink/public/common/widget/screen_info.h" - -namespace blink { -struct DeviceEmulationParams; -} - -namespace content { - -// Consumers of RenderWidgetScreenMetricsEmulatorDelegate implement this -// delegate in order to transport emulation information across processes. -class CONTENT_EXPORT RenderWidgetScreenMetricsEmulatorDelegate { - public: - // Passes device emulation parameters to the delegate. - virtual void SetScreenMetricsEmulationParameters( - bool enabled, - const blink::DeviceEmulationParams& params) = 0; - - // Passes an updated ScreenInfo and sizes to the delegate. - virtual void SetScreenInfoAndSize(const blink::ScreenInfo& screen_info, - const gfx::Size& widget_size, - const gfx::Size& visible_viewport_size) = 0; - - // Passes new view bounds and window bounds in screen coordinates to the - // delegate. - virtual void SetScreenRects(const gfx::Rect& view_screen_rect, - const gfx::Rect& window_screen_rect) = 0; - - virtual void SetRootWindowSegments( - const std::vector<gfx::Rect>& root_window_segments) = 0; - - protected: - virtual ~RenderWidgetScreenMetricsEmulatorDelegate() {} -}; - -} // namespace content - -#endif // CONTENT_RENDERER_RENDER_WIDGET_SCREEN_METRICS_EMULATOR_DELEGATE_H_
diff --git a/content/renderer/render_widget_unittest.cc b/content/renderer/render_widget_unittest.cc index 96fcc4a..1f6665da 100644 --- a/content/renderer/render_widget_unittest.cc +++ b/content/renderer/render_widget_unittest.cc
@@ -31,7 +31,6 @@ #include "content/renderer/render_frame_proxy.h" #include "content/renderer/render_process.h" #include "content/renderer/render_widget_delegate.h" -#include "content/renderer/render_widget_screen_metrics_emulator.h" #include "content/test/fake_compositor_dependencies.h" #include "ipc/ipc_test_sink.h" #include "mojo/public/cpp/bindings/pending_associated_receiver.h" @@ -538,16 +537,12 @@ void SetActiveForWidget(bool active) override {} bool SupportsMultipleWindowsForWidget() override { return true; } bool ShouldAckSyntheticInputImmediately() override { return true; } - void ScrollFocusedNodeIntoViewForWidget() override {} void DidReceiveSetFocusEventForWidget() override {} void DidCommitCompositorFrameForWidget() override {} void DidCompletePageScaleAnimationForWidget() override {} void ResizeWebWidgetForWidget(const gfx::Size& main_frame_widget_size, const gfx::Size& visible_viewport_size, cc::BrowserControlsParams) override {} - void SetScreenMetricsEmulationParametersForWidget( - bool enabled, - const blink::DeviceEmulationParams& params) override {} }; class RenderWidgetSubFrameUnittest : public RenderWidgetUnittest {
diff --git a/content/renderer/renderer_main.cc b/content/renderer/renderer_main.cc index 7ae2d39f..9e0f9a3 100644 --- a/content/renderer/renderer_main.cc +++ b/content/renderer/renderer_main.cc
@@ -13,6 +13,7 @@ #include "base/message_loop/message_pump.h" #include "base/message_loop/message_pump_type.h" #include "base/metrics/histogram_macros.h" +#include "base/optional.h" #include "base/pending_task.h" #include "base/run_loop.h" #include "base/strings/string_number_conversions.h" @@ -58,6 +59,7 @@ #if defined(OS_CHROMEOS) #include "chromeos/system/core_scheduling.h" +#include "content/renderer/performance_manager/mechanisms/userspace_swap_renderer_initialization_impl.h" #endif // OS_CHROMEOS #if BUILDFLAG(ENABLE_PLUGINS) @@ -128,6 +130,17 @@ // When we start the renderer on ChromeOS if the system has core scheduling // available we want to turn it on. chromeos::system::EnableCoreSchedulingIfAvailable(); + + base::Optional< + performance_manager::mechanism::UserspaceSwapRendererInitializationImpl> + swap_init; + if (performance_manager::mechanism::UserspaceSwapRendererInitializationImpl:: + UserspaceSwapSupportedAndEnabled()) { + swap_init.emplace(); + + PLOG_IF(ERROR, !swap_init->PreSandboxSetup()) + << "Unable to complete presandbox userspace swap initialization"; + } #endif InitializeSkia(); @@ -200,6 +213,19 @@ new RenderThreadImpl(run_loop.QuitClosure(), std::move(main_thread_scheduler)); +#if defined(OS_CHROMEOS) + // Once the sandbox has been entered and initialization of render threads + // complete we will transfer FDs to the browser, or close them on failure. + // This should always be called because it will also transfer the errno that + // prevented the creation of the userfaultfd if applicable. + if (swap_init) { + swap_init->TransferFDsOrCleanup(); + + // No need to leave this around any further. + swap_init.reset(); + } +#endif + #if defined(OS_POSIX) && !defined(OS_ANDROID) && !defined(OS_MAC) // Startup tracing is usually enabled earlier, but if we forked from a // zygote, we can only enable it after mojo IPC support is brought up
diff --git a/content/shell/browser/web_test/web_test_bluetooth_fake_adapter_setter_impl.cc b/content/shell/browser/web_test/web_test_bluetooth_fake_adapter_setter_impl.cc index 469be96..2e1b1c14 100644 --- a/content/shell/browser/web_test/web_test_bluetooth_fake_adapter_setter_impl.cc +++ b/content/shell/browser/web_test/web_test_bluetooth_fake_adapter_setter_impl.cc
@@ -9,9 +9,9 @@ #include <utility> #include "content/browser/bluetooth/bluetooth_device_chooser_controller.h" +#include "content/public/test/bluetooth_test_utils.h" #include "content/shell/browser/web_test/web_test_bluetooth_adapter_provider.h" #include "content/shell/common/web_test/web_test_bluetooth_fake_adapter_setter.mojom.h" -#include "device/bluetooth/bluetooth_adapter_factory_wrapper.h" #include "mojo/public/cpp/bindings/pending_receiver.h" #include "mojo/public/cpp/bindings/self_owned_receiver.h" @@ -37,7 +37,7 @@ BluetoothDeviceChooserController::TestScanDurationSetting:: IMMEDIATE_TIMEOUT); - device::BluetoothAdapterFactoryWrapper::Get().SetBluetoothAdapterForTesting( + SetBluetoothAdapter( WebTestBluetoothAdapterProvider::GetBluetoothAdapter(adapter_name)); std::move(callback).Run();
diff --git a/content/shell/browser/web_test/web_test_browser_main_runner.cc b/content/shell/browser/web_test/web_test_browser_main_runner.cc index fdd8851..c553304 100644 --- a/content/shell/browser/web_test/web_test_browser_main_runner.cc +++ b/content/shell/browser/web_test/web_test_browser_main_runner.cc
@@ -162,8 +162,10 @@ switches::autoplay::kNoUserGestureRequiredPolicy); } - if (!command_line.HasSwitch(switches::kStableReleaseMode)) + if (!command_line.HasSwitch(switches::kStableReleaseMode)) { command_line.AppendSwitch(switches::kEnableExperimentalWebPlatformFeatures); + command_line.AppendSwitch(switches::kEnableBlinkTestFeatures); + } if (!command_line.HasSwitch(switches::kEnableThreadedCompositing)) { command_line.AppendSwitch(switches::kDisableThreadedCompositing);
diff --git a/content/shell/browser/web_test/web_test_control_host.cc b/content/shell/browser/web_test/web_test_control_host.cc index 8a61f98b..e5888430 100644 --- a/content/shell/browser/web_test/web_test_control_host.cc +++ b/content/shell/browser/web_test/web_test_control_host.cc
@@ -610,11 +610,9 @@ } if (is_devtools_js_test) { - if (!secondary_window_) { - secondary_window_ = content::Shell::CreateNewWindow( - ShellContentBrowserClient::Get()->browser_context(), - GURL(url::kAboutBlankURL), nullptr, window_size); - } + secondary_window_ = content::Shell::CreateNewWindow( + ShellContentBrowserClient::Get()->browser_context(), + GURL(url::kAboutBlankURL), nullptr, window_size); // This navigates the secondary (devtools inspector) window, and then // navigates the main window once that has loaded to a devtools html test // page, based on the test url. @@ -1675,9 +1673,10 @@ DevToolsAgentHost::DetachAllClients(); std::vector<Shell*> open_windows(Shell::windows()); for (auto* shell : open_windows) { - if (shell != main_window_ && shell != secondary_window_) + if (shell != main_window_) shell->Close(); } + secondary_window_ = nullptr; base::RunLoop().RunUntilIdle(); }
diff --git a/content/shell/renderer/web_test/event_sender.cc b/content/shell/renderer/web_test/event_sender.cc index 84867a16..49fc4b9 100644 --- a/content/shell/renderer/web_test/event_sender.cc +++ b/content/shell/renderer/web_test/event_sender.cc
@@ -413,7 +413,7 @@ float DeviceScaleFactorForEvents(WebWidgetTestProxy* widget) { if (!widget->compositor_deps()->IsUseZoomForDSFEnabled()) return 1; - return widget->GetOriginalScreenInfo().device_scale_factor; + return widget->GetWebWidget()->GetOriginalScreenInfo().device_scale_factor; } bool OutsideRadius(const gfx::PointF& a, const gfx::PointF& b, float radius) {
diff --git a/content/shell/renderer/web_test/gamepad_controller.cc b/content/shell/renderer/web_test/gamepad_controller.cc index 70df608..e3bfdbb 100644 --- a/content/shell/renderer/web_test/gamepad_controller.cc +++ b/content/shell/renderer/web_test/gamepad_controller.cc
@@ -241,10 +241,18 @@ shared_memory_mapping_ = writable_region.Map(); shared_memory_region_ = base::WritableSharedMemoryRegion::ConvertToReadOnly( std::move(writable_region)); - CHECK(shared_memory_region_.IsValid()); - CHECK(shared_memory_mapping_.IsValid()); - gamepads_ = - new (shared_memory_mapping_.memory()) device::GamepadHardwareBuffer(); + if (!shared_memory_region_.IsValid()) { + // Log an error instead of crashing, as this can flakily happen in + // clusterfuzz. If it happened in the wild, the test would be retried. + LOG(ERROR) << "GamepadController shared memory region is not valid"; + } else if (!shared_memory_mapping_.IsValid()) { + // Log an error instead of crashing, as this can flakily happen in + // clusterfuzz. If it happened in the wild, the test would be retried. + LOG(ERROR) << "GamepadController shared memory mapping is not valid"; + } else { + gamepads_ = + new (shared_memory_mapping_.memory()) device::GamepadHardwareBuffer(); + } Reset(); } @@ -252,22 +260,24 @@ GamepadController::~GamepadController() = default; void GamepadController::Reset() { + if (!gamepads_) + return; // Shared memory failed. + memset(gamepads_, 0, sizeof(*gamepads_)); for (auto& monitor : monitors_) monitor->Reset(); } -void GamepadController::Install(blink::WebLocalFrame* frame) { - content::RenderFrame* render_frame = - content::RenderFrame::FromWebFrame(frame); - if (!render_frame) - return; +void GamepadController::Install(RenderFrame* frame) { + if (!gamepads_) + return; // Shared memory failed. - render_frame->GetBrowserInterfaceBroker()->SetBinderForTesting( + frame->GetBrowserInterfaceBroker()->SetBinderForTesting( device::mojom::GamepadMonitor::Name_, base::BindRepeating(&GamepadController::OnInterfaceRequest, base::Unretained(this))); - GamepadControllerBindings::Install(weak_factory_.GetWeakPtr(), frame); + GamepadControllerBindings::Install(weak_factory_.GetWeakPtr(), + frame->GetWebFrame()); } void GamepadController::OnInterfaceRequest(
diff --git a/content/shell/renderer/web_test/gamepad_controller.h b/content/shell/renderer/web_test/gamepad_controller.h index 40ec11e..a46fbf5 100644 --- a/content/shell/renderer/web_test/gamepad_controller.h +++ b/content/shell/renderer/web_test/gamepad_controller.h
@@ -20,11 +20,8 @@ #include "mojo/public/cpp/bindings/remote.h" #include "mojo/public/cpp/system/buffer.h" -namespace blink { -class WebLocalFrame; -} - namespace content { +class RenderFrame; class GamepadController : public base::SupportsWeakPtr<GamepadController> { public: @@ -32,7 +29,7 @@ ~GamepadController(); void Reset(); - void Install(blink::WebLocalFrame* frame); + void Install(RenderFrame* frame); private: class MonitorImpl : public device::mojom::GamepadMonitor { @@ -95,7 +92,7 @@ base::ReadOnlySharedMemoryRegion shared_memory_region_; base::WritableSharedMemoryMapping shared_memory_mapping_; - device::GamepadHardwareBuffer* gamepads_; + device::GamepadHardwareBuffer* gamepads_ = nullptr; base::WeakPtrFactory<GamepadController> weak_factory_{this};
diff --git a/content/shell/renderer/web_test/test_runner.cc b/content/shell/renderer/web_test/test_runner.cc index b96aa8d..c839f51 100644 --- a/content/shell/renderer/web_test/test_runner.cc +++ b/content/shell/renderer/web_test/test_runner.cc
@@ -1254,8 +1254,8 @@ blink::WebView* web_view = GetWebFrame()->View(); web_view->DisableAutoResizeForTesting(new_size); - gfx::Rect window_rect(widget->WindowRect().x, widget->WindowRect().y, - new_size.width(), new_size.height()); + gfx::Rect window_rect(widget->GetWebWidget()->WindowRect().origin(), + new_size); widget->SetWindowRectSynchronouslyForTesting(window_rect); } @@ -2213,7 +2213,7 @@ IsWebPlatformTestsMode(), is_main_test_window); mock_screen_orientation_client_.OverrideAssociatedInterfaceProviderForFrame( frame->GetWebFrame()); - gamepad_controller_.Install(frame->GetWebFrame()); + gamepad_controller_.Install(frame); frame->GetWebViewTestProxy() ->GetWebView() ->SetScreenOrientationOverrideForTesting( @@ -2608,6 +2608,7 @@ WebFrameTestProxy* TestRunner::FindInProcessMainWindowMainFrame() { for (WebFrameTestProxy* main_frame : main_frames_) { WebViewTestProxy* view = main_frame->GetWebViewTestProxy(); + DCHECK_EQ(view->GetMainRenderFrame(), main_frame); if (view->blink_test_runner()->is_main_window()) return main_frame; }
diff --git a/content/shell/renderer/web_test/web_ax_object_proxy.cc b/content/shell/renderer/web_test/web_ax_object_proxy.cc index ceaccee..1367451 100644 --- a/content/shell/renderer/web_test/web_ax_object_proxy.cc +++ b/content/shell/renderer/web_test/web_ax_object_proxy.cc
@@ -406,11 +406,6 @@ return role_string; } -std::string GetValueDescription(const blink::WebAXObject& object) { - std::string value_description = object.ValueDescription().Utf8(); - return value_description.insert(0, "AXValueDescription: "); -} - std::string GetLanguage(const blink::WebAXObject& object) { std::string language = object.Language().Utf8(); return language.insert(0, "AXLanguage: "); @@ -994,7 +989,11 @@ std::string WebAXObjectProxy::ValueDescription() { accessibility_object_.UpdateLayoutAndCheckValidity(); - return GetValueDescription(accessibility_object_); + ui::AXNodeData node_data; + accessibility_object_.Serialize(&node_data, ui::kAXModeComplete); + std::string value_description = + node_data.GetStringAttribute(ax::mojom::StringAttribute::kValue); + return value_description.insert(0, "AXValueDescription: "); } int WebAXObjectProxy::ChildrenCount() { @@ -1139,7 +1138,7 @@ bool WebAXObjectProxy::IsAutofillAvailable() { accessibility_object_.UpdateLayoutAndCheckValidity(); ui::AXNodeData node_data; - accessibility_object_.Serialize(&node_data); + accessibility_object_.Serialize(&node_data, ui::kAXModeComplete); return node_data.HasState(ax::mojom::State::kAutofillAvailable); } @@ -1167,7 +1166,7 @@ bool WebAXObjectProxy::IsRequired() { accessibility_object_.UpdateLayoutAndCheckValidity(); ui::AXNodeData node_data; - accessibility_object_.Serialize(&node_data); + accessibility_object_.Serialize(&node_data, ui::kAXModeComplete); return node_data.HasState(ax::mojom::State::kRequired); } @@ -1179,14 +1178,14 @@ bool WebAXObjectProxy::IsEditable() { accessibility_object_.UpdateLayoutAndCheckValidity(); ui::AXNodeData node_data; - accessibility_object_.Serialize(&node_data); + accessibility_object_.Serialize(&node_data, ui::kAXModeComplete); return node_data.HasState(ax::mojom::State::kEditable); } bool WebAXObjectProxy::IsRichlyEditable() { accessibility_object_.UpdateLayoutAndCheckValidity(); ui::AXNodeData node_data; - accessibility_object_.Serialize(&node_data); + accessibility_object_.Serialize(&node_data, ui::kAXModeComplete); return node_data.HasState(ax::mojom::State::kRichlyEditable); } @@ -1198,7 +1197,7 @@ bool WebAXObjectProxy::IsFocusable() { accessibility_object_.UpdateLayoutAndCheckValidity(); ui::AXNodeData node_data; - accessibility_object_.Serialize(&node_data); + accessibility_object_.Serialize(&node_data, ui::kAXModeComplete); return node_data.HasState(ax::mojom::State::kFocusable); } @@ -1210,14 +1209,14 @@ bool WebAXObjectProxy::IsSelected() { accessibility_object_.UpdateLayoutAndCheckValidity(); ui::AXNodeData node_data; - accessibility_object_.Serialize(&node_data); + accessibility_object_.Serialize(&node_data, ui::kAXModeComplete); return node_data.GetBoolAttribute(ax::mojom::BoolAttribute::kSelected); } bool WebAXObjectProxy::IsSelectable() { accessibility_object_.UpdateLayoutAndCheckValidity(); ui::AXNodeData node_data; - accessibility_object_.Serialize(&node_data); + accessibility_object_.Serialize(&node_data, ui::kAXModeComplete); // It's selectable if it has the attribute, whether it's true or false. return node_data.HasBoolAttribute(ax::mojom::BoolAttribute::kSelected) && accessibility_object_.Restriction() != @@ -1227,14 +1226,14 @@ bool WebAXObjectProxy::IsMultiLine() { accessibility_object_.UpdateLayoutAndCheckValidity(); ui::AXNodeData node_data; - accessibility_object_.Serialize(&node_data); + accessibility_object_.Serialize(&node_data, ui::kAXModeComplete); return node_data.HasState(ax::mojom::State::kMultiline); } bool WebAXObjectProxy::IsMultiSelectable() { accessibility_object_.UpdateLayoutAndCheckValidity(); ui::AXNodeData node_data; - accessibility_object_.Serialize(&node_data); + accessibility_object_.Serialize(&node_data, ui::kAXModeComplete); return node_data.HasState(ax::mojom::State::kMultiselectable); } @@ -1246,7 +1245,7 @@ bool WebAXObjectProxy::IsExpanded() { accessibility_object_.UpdateLayoutAndCheckValidity(); ui::AXNodeData node_data; - accessibility_object_.Serialize(&node_data); + accessibility_object_.Serialize(&node_data, ui::kAXModeComplete); return node_data.HasState(ax::mojom::State::kExpanded); } @@ -1267,14 +1266,14 @@ bool WebAXObjectProxy::IsCollapsed() { accessibility_object_.UpdateLayoutAndCheckValidity(); ui::AXNodeData node_data; - accessibility_object_.Serialize(&node_data); + accessibility_object_.Serialize(&node_data, ui::kAXModeComplete); return node_data.HasState(ax::mojom::State::kCollapsed); } bool WebAXObjectProxy::IsVisible() { accessibility_object_.UpdateLayoutAndCheckValidity(); ui::AXNodeData node_data; - accessibility_object_.Serialize(&node_data); + accessibility_object_.Serialize(&node_data, ui::kAXModeComplete); return !node_data.HasState(ax::mojom::State::kInvisible); } @@ -1369,7 +1368,7 @@ std::string WebAXObjectProxy::HasPopup() { accessibility_object_.UpdateLayoutAndCheckValidity(); ui::AXNodeData node_data; - accessibility_object_.Serialize(&node_data); + accessibility_object_.Serialize(&node_data, ui::kAXModeComplete); switch (node_data.GetHasPopup()) { case ax::mojom::HasPopup::kTrue: return "true"; @@ -1467,7 +1466,7 @@ std::string WebAXObjectProxy::Orientation() { accessibility_object_.UpdateLayoutAndCheckValidity(); ui::AXNodeData node_data; - accessibility_object_.Serialize(&node_data); + accessibility_object_.Serialize(&node_data, ui::kAXModeComplete); if (node_data.HasState(ax::mojom::State::kVertical)) return "AXOrientation: AXVerticalOrientation"; else if (node_data.HasState(ax::mojom::State::kHorizontal))
diff --git a/content/shell/renderer/web_test/web_frame_test_proxy.cc b/content/shell/renderer/web_test/web_frame_test_proxy.cc index 86adcc9..51d23d4 100644 --- a/content/shell/renderer/web_test/web_frame_test_proxy.cc +++ b/content/shell/renderer/web_test/web_frame_test_proxy.cc
@@ -171,6 +171,10 @@ } if (render_frame()->IsMainFrame()) { + // Track main frames once they are swapped in, if they started + // provisional. + test_runner()->AddMainFrame(frame_proxy()); + // Looking for navigations to about:blank after a test completes. blink_test_runner()->DidCommitNavigationInMainFrame(); } @@ -230,11 +234,13 @@ test_runner->RemoveMainFrame(this); } -void WebFrameTestProxy::Initialize() { - RenderFrameImpl::Initialize(); +void WebFrameTestProxy::Initialize(blink::WebFrame* parent) { + RenderFrameImpl::Initialize(parent); TestRunner* test_runner = web_view_test_proxy_->GetTestRunner(); - if (IsMainFrame()) + // Track main frames if they started in the frame tree. Otherwise they are + // provisional and will be tracked once swapped in. + if (IsMainFrame() && in_frame_tree()) test_runner->AddMainFrame(this); GetWebFrame()->SetContentSettingsClient(test_runner->GetWebContentSettings());
diff --git a/content/shell/renderer/web_test/web_frame_test_proxy.h b/content/shell/renderer/web_test/web_frame_test_proxy.h index 330f4b56..287c6538 100644 --- a/content/shell/renderer/web_test/web_frame_test_proxy.h +++ b/content/shell/renderer/web_test/web_frame_test_proxy.h
@@ -39,7 +39,7 @@ ~WebFrameTestProxy() override; // RenderFrameImpl overrides. - void Initialize() override; + void Initialize(blink::WebFrame* parent) override; // Reset state between tests. void Reset();
diff --git a/content/shell/renderer/web_test/web_test_content_renderer_client.cc b/content/shell/renderer/web_test/web_test_content_renderer_client.cc index 868e0ff..d3facc7 100644 --- a/content/shell/renderer/web_test/web_test_content_renderer_client.cc +++ b/content/shell/renderer/web_test/web_test_content_renderer_client.cc
@@ -141,9 +141,6 @@ std::string flags("--expose-gc"); auto* command_line = base::CommandLine::ForCurrentProcess(); v8::V8::SetFlagsFromString(flags.c_str(), flags.size()); - if (!command_line->HasSwitch(switches::kStableReleaseMode)) { - blink::WebRuntimeFeatures::EnableTestOnlyFeatures(true); - } if (command_line->HasSwitch(switches::kEnableFontAntialiasing)) { blink::SetFontAntialiasingEnabledForTest(true); }
diff --git a/content/test/BUILD.gn b/content/test/BUILD.gn index 15bad59..b2e4272f 100644 --- a/content/test/BUILD.gn +++ b/content/test/BUILD.gn
@@ -103,6 +103,8 @@ "../public/test/background_sync_test_util.h", "../public/test/blink_test_environment.cc", "../public/test/blink_test_environment.h", + "../public/test/bluetooth_test_utils.cc", + "../public/test/bluetooth_test_utils.h", "../public/test/browser_task_environment.cc", "../public/test/browser_task_environment.h", "../public/test/browser_test.h", @@ -1184,6 +1186,7 @@ ":web_ui_test_mojo_bindings", "//base/test:test_support", "//build:chromecast_buildflags", + "//build:lacros_buildflags", "//components/discardable_memory/client", "//components/discardable_memory/common", "//components/discardable_memory/service",
diff --git a/content/test/data/accessibility/event/text-align-changed-expected-auralinux.txt b/content/test/data/accessibility/event/text-align-changed-expected-auralinux.txt new file mode 100644 index 0000000..1845d4a --- /dev/null +++ b/content/test/data/accessibility/event/text-align-changed-expected-auralinux.txt
@@ -0,0 +1,13 @@ +TEXT-ATTRIBUTES-CHANGED role=ROLE_SECTION name='(null)' ENABLED,SENSITIVE,SHOWING,VISIBLE +TEXT-ATTRIBUTES-CHANGED role=ROLE_SECTION name='(null)' ENABLED,SENSITIVE,SHOWING,VISIBLE +TEXT-ATTRIBUTES-CHANGED role=ROLE_SECTION name='(null)' ENABLED,SENSITIVE,SHOWING,VISIBLE +TEXT-ATTRIBUTES-CHANGED role=ROLE_SECTION name='(null)' ENABLED,SENSITIVE,SHOWING,VISIBLE +TEXT-ATTRIBUTES-CHANGED role=ROLE_SECTION name='(null)' ENABLED,SENSITIVE,SHOWING,VISIBLE +TEXT-ATTRIBUTES-CHANGED role=ROLE_SECTION name='(null)' ENABLED,SENSITIVE,SHOWING,VISIBLE +TEXT-ATTRIBUTES-CHANGED role=ROLE_SECTION name='(null)' ENABLED,SENSITIVE,SHOWING,VISIBLE +TEXT-ATTRIBUTES-CHANGED role=ROLE_SECTION name='(null)' ENABLED,SENSITIVE,SHOWING,VISIBLE +TEXT-ATTRIBUTES-CHANGED role=ROLE_SECTION name='(null)' ENABLED,SENSITIVE,SHOWING,VISIBLE +TEXT-ATTRIBUTES-CHANGED role=ROLE_SECTION name='(null)' ENABLED,SENSITIVE,SHOWING,VISIBLE +TEXT-ATTRIBUTES-CHANGED role=ROLE_SECTION name='(null)' ENABLED,SENSITIVE,SHOWING,VISIBLE +TEXT-ATTRIBUTES-CHANGED role=ROLE_SECTION name='(null)' ENABLED,SENSITIVE,SHOWING,VISIBLE +TEXT-ATTRIBUTES-CHANGED role=ROLE_SECTION name='(null)' ENABLED,SENSITIVE,SHOWING,VISIBLE
diff --git a/content/test/data/accessibility/event/text-indent-changed-expected-auralinux.txt b/content/test/data/accessibility/event/text-indent-changed-expected-auralinux.txt new file mode 100644 index 0000000..8894bc19 --- /dev/null +++ b/content/test/data/accessibility/event/text-indent-changed-expected-auralinux.txt
@@ -0,0 +1,4 @@ +TEXT-ATTRIBUTES-CHANGED role=ROLE_SECTION name='(null)' ENABLED,SENSITIVE,SHOWING,VISIBLE +TEXT-ATTRIBUTES-CHANGED role=ROLE_SECTION name='(null)' ENABLED,SENSITIVE,SHOWING,VISIBLE +TEXT-ATTRIBUTES-CHANGED role=ROLE_SECTION name='(null)' ENABLED,SENSITIVE,SHOWING,VISIBLE +TEXT-ATTRIBUTES-CHANGED role=ROLE_SECTION name='(null)' ENABLED,SENSITIVE,SHOWING,VISIBLE
diff --git a/content/test/gpu/gpu_tests/test_expectations/pixel_expectations.txt b/content/test/gpu/gpu_tests/test_expectations/pixel_expectations.txt index 7736c5f..d8464bd 100644 --- a/content/test/gpu/gpu_tests/test_expectations/pixel_expectations.txt +++ b/content/test/gpu/gpu_tests/test_expectations/pixel_expectations.txt
@@ -184,6 +184,7 @@ crbug.com/883500 [ android-chromium no-use-gl no-use-vulkan qualcomm-adreno-(tm)-418 ] Pixel_BackgroundImage [ RetryOnFailure ] crbug.com/1068620 [ android android-chromium no-use-gl no-use-vulkan qualcomm-adreno-(tm)-418 ] Pixel_OffscreenCanvasWebGLPaintAfterResize [ RetryOnFailure ] crbug.com/1065514 [ android android-chromium qualcomm-adreno-(tm)-418 ] Pixel_WebGLReadPixelsTabSwitch [ RetryOnFailure ] +crbug.com/1121476 [ android android-chromium qualcomm-adreno-(tm)-418 ] Pixel_Canvas2DTabSwitch [ RetryOnFailure ] # We do not have software H.264 decoding on Android, so it can't survive a # context loss which results in hardware decoder loss.
diff --git a/device/base/features.cc b/device/base/features.cc index efe1c64..6b004e1 100644 --- a/device/base/features.cc +++ b/device/base/features.cc
@@ -19,8 +19,10 @@ // Controls whether a more reliable GATT session handling // implementation is used on Windows 10 1709 (RS3) and beyond. +// +// Disabled due to crbug/1120338. const base::Feature kNewBLEGattSessionHandling{ - "NewBLEGattSessionHandling", base::FEATURE_ENABLED_BY_DEFAULT}; + "NewBLEGattSessionHandling", base::FEATURE_DISABLED_BY_DEFAULT}; #endif // defined(OS_WIN) #if BUILDFLAG(ENABLE_VR)
diff --git a/device/bluetooth/BUILD.gn b/device/bluetooth/BUILD.gn index e4c977b..e7c5f8f 100644 --- a/device/bluetooth/BUILD.gn +++ b/device/bluetooth/BUILD.gn
@@ -107,8 +107,6 @@ "bluetooth_adapter_android.h", "bluetooth_adapter_factory.cc", "bluetooth_adapter_factory.h", - "bluetooth_adapter_factory_wrapper.cc", - "bluetooth_adapter_factory_wrapper.h", "bluetooth_adapter_mac.h", "bluetooth_adapter_mac.mm", "bluetooth_adapter_mac_metrics.h",
diff --git a/device/bluetooth/bluetooth_adapter_winrt.cc b/device/bluetooth/bluetooth_adapter_winrt.cc index a51515d..5f2c36eb 100644 --- a/device/bluetooth/bluetooth_adapter_winrt.cc +++ b/device/bluetooth/bluetooth_adapter_winrt.cc
@@ -31,7 +31,6 @@ #include "base/task/post_task.h" #include "base/task/task_traits.h" #include "base/task/thread_pool.h" -#include "base/threading/scoped_thread_priority.h" #include "base/threading/thread_task_runner_handle.h" #include "base/win/core_winrt_util.h" #include "base/win/post_async_results.h" @@ -660,7 +659,9 @@ // Some of the initialization work requires loading libraries and should not // be run on the browser main thread. base::ThreadPool::PostTaskAndReplyWithResult( - FROM_HERE, {base::MayBlock(), base::TaskPriority::BEST_EFFORT}, + FROM_HERE, + {base::MayBlock(), base::TaskPriority::BEST_EFFORT, + base::ThreadPolicy::MUST_USE_FOREGROUND}, base::BindOnce(&BluetoothAdapterWinrt::PerformSlowInitTasks), base::BindOnce(&BluetoothAdapterWinrt::CompleteInitAgile, weak_ptr_factory_.GetWeakPtr(), std::move(init_callback))); @@ -700,10 +701,6 @@ // static BluetoothAdapterWinrt::StaticsInterfaces BluetoothAdapterWinrt::PerformSlowInitTasks() { - // Mitigate the issues caused by loading DLLs on a background thread - // (http://crbug/973868). - SCOPED_MAY_LOAD_LIBRARY_AT_BACKGROUND_PRIORITY(); - if (!ResolveCoreWinRT()) return BluetoothAdapterWinrt::StaticsInterfaces();
diff --git a/device/fido/make_credential_handler_unittest.cc b/device/fido/make_credential_handler_unittest.cc index 3801a68..f8519a3 100644 --- a/device/fido/make_credential_handler_unittest.cc +++ b/device/fido/make_credential_handler_unittest.cc
@@ -64,14 +64,8 @@ platform_discovery_ = fake_discovery_factory_->ForgeNextPlatformDiscovery(); } - std::unique_ptr<MakeCredentialRequestHandler> CreateMakeCredentialHandler() { - return CreateMakeCredentialHandlerWithAuthenticatorSelectionCriteria( - AuthenticatorSelectionCriteria()); - } - - std::unique_ptr<MakeCredentialRequestHandler> - CreateMakeCredentialHandlerWithAuthenticatorSelectionCriteria( - AuthenticatorSelectionCriteria authenticator_selection_criteria) { + std::unique_ptr<MakeCredentialRequestHandler> CreateMakeCredentialHandler( + AuthenticatorSelectionCriteria authenticator_selection_criteria = {}) { ForgeDiscoveries(); PublicKeyCredentialRpEntity rp(test_data::kRelyingPartyId); PublicKeyCredentialUserEntity user( @@ -83,13 +77,13 @@ test_data::kClientDataJson, std::move(rp), std::move(user), std::move(credential_params)); - MakeCredentialRequestHandler::Options options; + MakeCredentialRequestHandler::Options options( + authenticator_selection_criteria); options.allow_skipping_pin_touch = true; auto handler = std::make_unique<MakeCredentialRequestHandler>( fake_discovery_factory_.get(), supported_transports_, - std::move(request_parameter), - std::move(authenticator_selection_criteria), options, cb_.callback()); + std::move(request_parameter), std::move(options), cb_.callback()); if (pending_mock_platform_device_) { platform_discovery_->AddDevice(std::move(pending_mock_platform_device_)); platform_discovery_->WaitForCallToStartAndSimulateSuccess(); @@ -189,10 +183,9 @@ TEST_F(FidoMakeCredentialHandlerTest, U2fRegisterWithUserVerificationRequired) { auto request_handler = - CreateMakeCredentialHandlerWithAuthenticatorSelectionCriteria( - AuthenticatorSelectionCriteria( - AuthenticatorAttachment::kAny, /*require_resident_key=*/false, - UserVerificationRequirement::kRequired)); + CreateMakeCredentialHandler(AuthenticatorSelectionCriteria( + AuthenticatorAttachment::kAny, /*require_resident_key=*/false, + UserVerificationRequirement::kRequired)); discovery()->WaitForCallToStartAndSimulateSuccess(); auto device = MockFidoDevice::MakeU2fWithGetInfoExpectation(); @@ -208,10 +201,9 @@ TEST_F(FidoMakeCredentialHandlerTest, U2fRegisterWithResidentKeyRequirement) { auto request_handler = - CreateMakeCredentialHandlerWithAuthenticatorSelectionCriteria( - AuthenticatorSelectionCriteria( - AuthenticatorAttachment::kAny, /*require_resident_key=*/true, - UserVerificationRequirement::kPreferred)); + CreateMakeCredentialHandler(AuthenticatorSelectionCriteria( + AuthenticatorAttachment::kAny, /*require_resident_key=*/true, + UserVerificationRequirement::kPreferred)); discovery()->WaitForCallToStartAndSimulateSuccess(); auto device = MockFidoDevice::MakeU2fWithGetInfoExpectation(); @@ -227,10 +219,9 @@ TEST_F(FidoMakeCredentialHandlerTest, UserVerificationRequirementNotMet) { auto request_handler = - CreateMakeCredentialHandlerWithAuthenticatorSelectionCriteria( - AuthenticatorSelectionCriteria( - AuthenticatorAttachment::kAny, /*require_resident_key=*/false, - UserVerificationRequirement::kRequired)); + CreateMakeCredentialHandler(AuthenticatorSelectionCriteria( + AuthenticatorAttachment::kAny, /*require_resident_key=*/false, + UserVerificationRequirement::kRequired)); discovery()->WaitForCallToStartAndSimulateSuccess(); auto device = MockFidoDevice::MakeCtapWithGetInfoExpectation( @@ -247,12 +238,10 @@ } TEST_F(FidoMakeCredentialHandlerTest, CrossPlatformAttachment) { - auto request_handler = - CreateMakeCredentialHandlerWithAuthenticatorSelectionCriteria( - AuthenticatorSelectionCriteria( - AuthenticatorAttachment::kCrossPlatform, - /*require_resident_key=*/false, - UserVerificationRequirement::kPreferred)); + auto request_handler = CreateMakeCredentialHandler( + AuthenticatorSelectionCriteria(AuthenticatorAttachment::kCrossPlatform, + /*require_resident_key=*/false, + UserVerificationRequirement::kPreferred)); // kCloudAssistedBluetoothLowEnergy not yet supported for MakeCredential. ExpectAllowedTransportsForRequestAre( @@ -271,12 +260,10 @@ EXPECT_CALL(*platform_device, Cancel(_)); set_mock_platform_device(std::move(platform_device)); - auto request_handler = - CreateMakeCredentialHandlerWithAuthenticatorSelectionCriteria( - AuthenticatorSelectionCriteria( - AuthenticatorAttachment::kPlatform, - /*require_resident_key=*/false, - UserVerificationRequirement::kRequired)); + auto request_handler = CreateMakeCredentialHandler( + AuthenticatorSelectionCriteria(AuthenticatorAttachment::kPlatform, + /*require_resident_key=*/false, + UserVerificationRequirement::kRequired)); ExpectAllowedTransportsForRequestAre(request_handler.get(), {FidoTransportProtocol::kInternal}); @@ -284,10 +271,9 @@ TEST_F(FidoMakeCredentialHandlerTest, ResidentKeyRequirementNotMet) { auto request_handler = - CreateMakeCredentialHandlerWithAuthenticatorSelectionCriteria( - AuthenticatorSelectionCriteria( - AuthenticatorAttachment::kAny, /*require_resident_key=*/true, - UserVerificationRequirement::kPreferred)); + CreateMakeCredentialHandler(AuthenticatorSelectionCriteria( + AuthenticatorAttachment::kAny, /*require_resident_key=*/true, + UserVerificationRequirement::kPreferred)); discovery()->WaitForCallToStartAndSimulateSuccess(); auto device = MockFidoDevice::MakeCtapWithGetInfoExpectation( @@ -399,10 +385,9 @@ // most important: we don't want a stray touch to create a resident credential // on a second authenticator. auto request_handler = - CreateMakeCredentialHandlerWithAuthenticatorSelectionCriteria( - AuthenticatorSelectionCriteria( - AuthenticatorAttachment::kAny, /*require_resident_key=*/true, - UserVerificationRequirement::kRequired)); + CreateMakeCredentialHandler(AuthenticatorSelectionCriteria( + AuthenticatorAttachment::kAny, /*require_resident_key=*/true, + UserVerificationRequirement::kRequired)); discovery()->WaitForCallToStartAndSimulateSuccess(); auto device1 = MockFidoDevice::MakeCtapWithGetInfoExpectation(); @@ -433,10 +418,9 @@ // request handler is deleted. When a user cancels, we don't want a stray // touch creating a resident key. auto request_handler = - CreateMakeCredentialHandlerWithAuthenticatorSelectionCriteria( - AuthenticatorSelectionCriteria( - AuthenticatorAttachment::kAny, /*require_resident_key=*/true, - UserVerificationRequirement::kRequired)); + CreateMakeCredentialHandler(AuthenticatorSelectionCriteria( + AuthenticatorAttachment::kAny, /*require_resident_key=*/true, + UserVerificationRequirement::kRequired)); auto delete_request_handler = [&request_handler]() { base::ThreadTaskRunnerHandle::Get()->PostTask( @@ -464,12 +448,10 @@ TEST_F(FidoMakeCredentialHandlerTest, AuthenticatorSelectionCriteriaSatisfiedByCrossPlatformDevice) { set_supported_transports({FidoTransportProtocol::kUsbHumanInterfaceDevice}); - auto request_handler = - CreateMakeCredentialHandlerWithAuthenticatorSelectionCriteria( - AuthenticatorSelectionCriteria( - AuthenticatorAttachment::kCrossPlatform, - /*require_resident_key=*/true, - UserVerificationRequirement::kRequired)); + auto request_handler = CreateMakeCredentialHandler( + AuthenticatorSelectionCriteria(AuthenticatorAttachment::kCrossPlatform, + /*require_resident_key=*/true, + UserVerificationRequirement::kRequired)); discovery()->WaitForCallToStartAndSimulateSuccess(); auto device = MockFidoDevice::MakeCtapWithGetInfoExpectation(); @@ -503,12 +485,10 @@ test_data::kTestMakeCredentialResponse); set_mock_platform_device(std::move(platform_device)); - auto request_handler = - CreateMakeCredentialHandlerWithAuthenticatorSelectionCriteria( - AuthenticatorSelectionCriteria( - AuthenticatorAttachment::kPlatform, - /*require_resident_key=*/true, - UserVerificationRequirement::kRequired)); + auto request_handler = CreateMakeCredentialHandler( + AuthenticatorSelectionCriteria(AuthenticatorAttachment::kPlatform, + /*require_resident_key=*/true, + UserVerificationRequirement::kRequired)); callback().WaitForCallback(); EXPECT_EQ(MakeCredentialStatus::kSuccess, callback().status()); @@ -522,12 +502,10 @@ // its GetInfo response is rejected. TEST_F(FidoMakeCredentialHandlerTest, CrossPlatformAuthenticatorPretendingToBePlatform) { - auto request_handler = - CreateMakeCredentialHandlerWithAuthenticatorSelectionCriteria( - AuthenticatorSelectionCriteria( - AuthenticatorAttachment::kCrossPlatform, - /*require_resident_key=*/false, - UserVerificationRequirement::kPreferred)); + auto request_handler = CreateMakeCredentialHandler( + AuthenticatorSelectionCriteria(AuthenticatorAttachment::kCrossPlatform, + /*require_resident_key=*/false, + UserVerificationRequirement::kPreferred)); discovery()->WaitForCallToStartAndSimulateSuccess(); auto device = MockFidoDevice::MakeCtapWithGetInfoExpectation( @@ -552,12 +530,10 @@ test_data::kTestAuthenticatorGetInfoResponse); set_mock_platform_device(std::move(platform_device)); - auto request_handler = - CreateMakeCredentialHandlerWithAuthenticatorSelectionCriteria( - AuthenticatorSelectionCriteria( - AuthenticatorAttachment::kPlatform, - /*require_resident_key=*/true, - UserVerificationRequirement::kRequired)); + auto request_handler = CreateMakeCredentialHandler( + AuthenticatorSelectionCriteria(AuthenticatorAttachment::kPlatform, + /*require_resident_key=*/true, + UserVerificationRequirement::kRequired)); task_environment_.FastForwardUntilNoTasksRemain(); EXPECT_FALSE(callback().was_called()); @@ -569,22 +545,19 @@ }; set_supported_transports(kNfc); - auto request_handler = - CreateMakeCredentialHandlerWithAuthenticatorSelectionCriteria( - AuthenticatorSelectionCriteria( - AuthenticatorAttachment::kCrossPlatform, - /*require_resident_key=*/false, - UserVerificationRequirement::kPreferred)); + auto request_handler = CreateMakeCredentialHandler( + AuthenticatorSelectionCriteria(AuthenticatorAttachment::kCrossPlatform, + /*require_resident_key=*/false, + UserVerificationRequirement::kPreferred)); ExpectAllowedTransportsForRequestAre(request_handler.get(), kNfc); } TEST_F(FidoMakeCredentialHandlerTest, IncorrectRpIdHash) { auto request_handler = - CreateMakeCredentialHandlerWithAuthenticatorSelectionCriteria( - AuthenticatorSelectionCriteria( - AuthenticatorAttachment::kAny, /*require_resident_key=*/false, - UserVerificationRequirement::kPreferred)); + CreateMakeCredentialHandler(AuthenticatorSelectionCriteria( + AuthenticatorAttachment::kAny, /*require_resident_key=*/false, + UserVerificationRequirement::kPreferred)); discovery()->WaitForCallToStartAndSimulateSuccess(); auto device = MockFidoDevice::MakeCtapWithGetInfoExpectation(); @@ -609,10 +582,9 @@ state->fingerprints_enrolled = true; auto request_handler = - CreateMakeCredentialHandlerWithAuthenticatorSelectionCriteria( - AuthenticatorSelectionCriteria( - AuthenticatorAttachment::kAny, /*require_resident_key=*/true, - UserVerificationRequirement::kPreferred)); + CreateMakeCredentialHandler(AuthenticatorSelectionCriteria( + AuthenticatorAttachment::kAny, /*require_resident_key=*/true, + UserVerificationRequirement::kPreferred)); discovery()->WaitForCallToStartAndSimulateSuccess(); discovery()->AddDevice(std::make_unique<VirtualCtap2Device>( @@ -629,10 +601,9 @@ MakeCredentialFailsForIncompatibleResidentKeyOption) { auto device = std::make_unique<VirtualCtap2Device>(); auto request_handler = - CreateMakeCredentialHandlerWithAuthenticatorSelectionCriteria( - AuthenticatorSelectionCriteria( - AuthenticatorAttachment::kAny, /*require_resident_key=*/true, - UserVerificationRequirement::kPreferred)); + CreateMakeCredentialHandler(AuthenticatorSelectionCriteria( + AuthenticatorAttachment::kAny, /*require_resident_key=*/true, + UserVerificationRequirement::kPreferred)); discovery()->WaitForCallToStartAndSimulateSuccess(); discovery()->AddDevice(std::move(device)); @@ -655,12 +626,10 @@ CtapDeviceResponseCode::kCtap2ErrOperationDenied); set_mock_platform_device(std::move(platform_device)); - auto request_handler = - CreateMakeCredentialHandlerWithAuthenticatorSelectionCriteria( - AuthenticatorSelectionCriteria( - AuthenticatorAttachment::kPlatform, - /*require_resident_key=*/false, - UserVerificationRequirement::kPreferred)); + auto request_handler = CreateMakeCredentialHandler( + AuthenticatorSelectionCriteria(AuthenticatorAttachment::kPlatform, + /*require_resident_key=*/false, + UserVerificationRequirement::kPreferred)); task_environment_.FastForwardUntilNoTasksRemain(); EXPECT_TRUE(callback().was_called()); @@ -677,10 +646,9 @@ CtapDeviceResponseCode::kCtap2ErrOperationDenied); auto request_handler = - CreateMakeCredentialHandlerWithAuthenticatorSelectionCriteria( - AuthenticatorSelectionCriteria( - AuthenticatorAttachment::kAny, /*require_resident_key=*/false, - UserVerificationRequirement::kPreferred)); + CreateMakeCredentialHandler(AuthenticatorSelectionCriteria( + AuthenticatorAttachment::kAny, /*require_resident_key=*/false, + UserVerificationRequirement::kPreferred)); discovery()->WaitForCallToStartAndSimulateSuccess(); discovery()->AddDevice(std::move(device)); @@ -707,10 +675,9 @@ IsUvRequest(true)); auto request_handler = - CreateMakeCredentialHandlerWithAuthenticatorSelectionCriteria( - AuthenticatorSelectionCriteria( - AuthenticatorAttachment::kAny, /*require_resident_key=*/false, - UserVerificationRequirement::kDiscouraged)); + CreateMakeCredentialHandler(AuthenticatorSelectionCriteria( + AuthenticatorAttachment::kAny, /*require_resident_key=*/false, + UserVerificationRequirement::kDiscouraged)); discovery()->AddDevice(std::move(device)); discovery()->WaitForCallToStartAndSimulateSuccess(); @@ -727,10 +694,9 @@ CtapDeviceResponseCode::kCtap2ErrPinAuthInvalid); auto request_handler = - CreateMakeCredentialHandlerWithAuthenticatorSelectionCriteria( - AuthenticatorSelectionCriteria( - AuthenticatorAttachment::kAny, /*require_resident_key=*/false, - UserVerificationRequirement::kPreferred)); + CreateMakeCredentialHandler(AuthenticatorSelectionCriteria( + AuthenticatorAttachment::kAny, /*require_resident_key=*/false, + UserVerificationRequirement::kPreferred)); discovery()->WaitForCallToStartAndSimulateSuccess(); discovery()->AddDevice(std::move(device));
diff --git a/device/fido/make_credential_request_handler.cc b/device/fido/make_credential_request_handler.cc index 48a0ceca..bc20c0c 100644 --- a/device/fido/make_credential_request_handler.cc +++ b/device/fido/make_credential_request_handler.cc
@@ -79,7 +79,7 @@ // should even blink for a request. bool IsCandidateAuthenticatorPreTouch( FidoAuthenticator* authenticator, - const AuthenticatorSelectionCriteria& authenticator_selection_criteria) { + AuthenticatorAttachment requested_attachment) { const auto& opt_options = authenticator->Options(); if (!opt_options) { // This authenticator doesn't know its capabilities yet, so we need @@ -88,11 +88,9 @@ return true; } - if ((authenticator_selection_criteria.authenticator_attachment() == - AuthenticatorAttachment::kPlatform && + if ((requested_attachment == AuthenticatorAttachment::kPlatform && !opt_options->is_platform_device) || - (authenticator_selection_criteria.authenticator_attachment() == - AuthenticatorAttachment::kCrossPlatform && + (requested_attachment == AuthenticatorAttachment::kCrossPlatform && opt_options->is_platform_device)) { return false; } @@ -106,7 +104,6 @@ const CtapMakeCredentialRequest& request, FidoAuthenticator* authenticator, const MakeCredentialRequestHandler::Options& options, - const AuthenticatorSelectionCriteria& authenticator_selection_criteria, const FidoRequestHandlerBase::Observer* observer) { if (options.cred_protect_request && options.cred_protect_request->second && !authenticator->SupportsCredProtectExtension()) { @@ -121,8 +118,7 @@ return MakeCredentialStatus::kSuccess; } - if (authenticator_selection_criteria.require_resident_key() && - !auth_options->supports_resident_key) { + if (options.require_resident_key && !auth_options->supports_resident_key) { return MakeCredentialStatus::kAuthenticatorMissingResidentKeys; } @@ -160,10 +156,8 @@ } base::flat_set<FidoTransportProtocol> GetTransportsAllowedByRP( - const AuthenticatorSelectionCriteria& authenticator_selection_criteria) { - const auto attachment_type = - authenticator_selection_criteria.authenticator_attachment(); - switch (attachment_type) { + AuthenticatorAttachment authenticator_attachment) { + switch (authenticator_attachment) { case AuthenticatorAttachment::kPlatform: return {FidoTransportProtocol::kInternal}; case AuthenticatorAttachment::kCrossPlatform: @@ -329,23 +323,41 @@ MakeCredentialRequestHandler::Options::Options() = default; MakeCredentialRequestHandler::Options::~Options() = default; MakeCredentialRequestHandler::Options::Options(const Options&) = default; +MakeCredentialRequestHandler::Options::Options( + const AuthenticatorSelectionCriteria& authenticator_selection_criteria) + : authenticator_attachment( + authenticator_selection_criteria.authenticator_attachment()), + require_resident_key( + authenticator_selection_criteria.require_resident_key()), + user_verification( + authenticator_selection_criteria.user_verification_requirement()) {} +MakeCredentialRequestHandler::Options::Options( + const AuthenticatorSelectionCriteria& authenticator_selection_criteria, + CredProtectRequest cred_protect_request_, + bool enforce_cred_protect_policy) + : Options(authenticator_selection_criteria) { + cred_protect_request.emplace(std::move(cred_protect_request_), + enforce_cred_protect_policy); +} +MakeCredentialRequestHandler::Options::Options(Options&&) = default; +MakeCredentialRequestHandler::Options& +MakeCredentialRequestHandler::Options::operator=(const Options&) = default; +MakeCredentialRequestHandler::Options& +MakeCredentialRequestHandler::Options::operator=(Options&&) = default; MakeCredentialRequestHandler::MakeCredentialRequestHandler( FidoDiscoveryFactory* fido_discovery_factory, const base::flat_set<FidoTransportProtocol>& supported_transports, CtapMakeCredentialRequest request, - AuthenticatorSelectionCriteria authenticator_selection_criteria, const Options& options, CompletionCallback completion_callback) : FidoRequestHandlerBase( fido_discovery_factory, base::STLSetIntersection<base::flat_set<FidoTransportProtocol>>( supported_transports, - GetTransportsAllowedByRP(authenticator_selection_criteria))), + GetTransportsAllowedByRP(options.authenticator_attachment))), completion_callback_(std::move(completion_callback)), request_(std::move(request)), - authenticator_selection_criteria_( - std::move(authenticator_selection_criteria)), options_(options) { // These parts of the request should be filled in by // |SpecializeRequestForAuthenticator|. @@ -357,19 +369,15 @@ FidoRequestHandlerBase::RequestType::kMakeCredential; // Set the rk, uv and attachment fields, which were only initialized to - // default values up to here. TODO(martinkr): Initialize these fields earlier - // (in AuthenticatorImpl) and get rid of the separate - // AuthenticatorSelectionCriteriaParameter. - if (authenticator_selection_criteria_.require_resident_key()) { + // default values up to here. + if (options_.require_resident_key) { request_.resident_key_required = true; request_.user_verification = UserVerificationRequirement::kRequired; } else { request_.resident_key_required = false; - request_.user_verification = - authenticator_selection_criteria_.user_verification_requirement(); + request_.user_verification = options_.user_verification; } - request_.authenticator_attachment = - authenticator_selection_criteria_.authenticator_attachment(); + request_.authenticator_attachment = options_.authenticator_attachment; Start(); } @@ -382,7 +390,7 @@ if (state_ != State::kWaitingForTouch || !IsCandidateAuthenticatorPreTouch(authenticator, - authenticator_selection_criteria_)) { + options_.authenticator_attachment)) { return; } @@ -391,7 +399,6 @@ SpecializeRequestForAuthenticator(request.get(), authenticator); if (IsCandidateAuthenticatorPostTouch(*request.get(), authenticator, options_, - authenticator_selection_criteria_, observer()) != MakeCredentialStatus::kSuccess) { #if defined(OS_WIN) @@ -671,7 +678,6 @@ CancelActiveAuthenticators(authenticator->GetId()); const MakeCredentialStatus capability_error = IsCandidateAuthenticatorPostTouch(*request.get(), authenticator, options_, - authenticator_selection_criteria_, observer()); DCHECK_NE(capability_error, MakeCredentialStatus::kSuccess); std::move(completion_callback_).Run(capability_error, base::nullopt, nullptr);
diff --git a/device/fido/make_credential_request_handler.h b/device/fido/make_credential_request_handler.h index 6f42a9c..484ff64 100644 --- a/device/fido/make_credential_request_handler.h +++ b/device/fido/make_credential_request_handler.h
@@ -76,24 +76,52 @@ // |CtapMakeCredentialRequest|. struct COMPONENT_EXPORT(DEVICE_FIDO) Options { Options(); + Options( + const AuthenticatorSelectionCriteria& authenticator_selection_criteria); + Options( + const AuthenticatorSelectionCriteria& authenticator_selection_criteria, + CredProtectRequest cred_protect_request, + bool enforce_cred_protect_policy); ~Options(); Options(const Options&); + Options(Options&&); + Options& operator=(const Options&); + Options& operator=(Options&&); - bool allow_skipping_pin_touch = false; - base::Optional<AndroidClientDataExtensionInput> android_client_data_ext; + // authenticator_attachment is a constraint on the type of authenticator + // that a credential should be created on. + AuthenticatorAttachment authenticator_attachment = + AuthenticatorAttachment::kAny; + + // require_resident_key indicates whether the request must result in the + // creation of a client-side discoverable credential (aka resident key). + bool require_resident_key = false; + + // user_verification indicates whether the authenticator should (or must) + // perform user verficiation before creating the credential. + UserVerificationRequirement user_verification = + UserVerificationRequirement::kPreferred; // cred_protect_request extends |CredProtect| to include information that // applies at request-routing time. The second element is true if the // indicated protection level must be provided by the target authenticator // for the MakeCredential request to be sent. base::Optional<std::pair<CredProtectRequest, bool>> cred_protect_request; + + // allow_skipping_pin_touch causes the handler to forego the first + // "touch-only" step to collect a PIN if exactly one authenticator is + // discovered. + bool allow_skipping_pin_touch = false; + + // android_client_data_ext is a compatibility hack to support the Clank + // caBLEv2 authenticator. + base::Optional<AndroidClientDataExtensionInput> android_client_data_ext; }; MakeCredentialRequestHandler( FidoDiscoveryFactory* fido_discovery_factory, const base::flat_set<FidoTransportProtocol>& supported_transports, CtapMakeCredentialRequest request_parameter, - AuthenticatorSelectionCriteria authenticator_criteria, const Options& options, CompletionCallback completion_callback); ~MakeCredentialRequestHandler() override; @@ -176,7 +204,6 @@ State state_ = State::kWaitingForTouch; CtapMakeCredentialRequest request_; base::Optional<base::RepeatingClosure> bio_enrollment_complete_barrier_; - AuthenticatorSelectionCriteria authenticator_selection_criteria_; const Options options_; // authenticator_ points to the authenticator that will be used for this
diff --git a/device/fido/win/webauthn_api.cc b/device/fido/win/webauthn_api.cc index c5ad6e58..2bb50a9 100644 --- a/device/fido/win/webauthn_api.cc +++ b/device/fido/win/webauthn_api.cc
@@ -14,6 +14,7 @@ #include "base/strings/string16.h" #include "base/strings/string_piece_forward.h" #include "base/strings/utf_string_conversions.h" +#include "base/threading/scoped_thread_priority.h" #include "components/device_event_log/device_event_log.h" #include "device/fido/win/logging.h" #include "device/fido/win/type_conversions.h" @@ -34,8 +35,13 @@ class WinWebAuthnApiImpl : public WinWebAuthnApi { public: WinWebAuthnApiImpl() : WinWebAuthnApi(), is_bound_(false) { - webauthn_dll_ = - LoadLibraryExA("webauthn.dll", NULL, LOAD_LIBRARY_SEARCH_SYSTEM32); + { + // Mitigate the issues caused by loading DLLs on a background thread + // (http://crbug/973868). + SCOPED_MAY_LOAD_LIBRARY_AT_BACKGROUND_PRIORITY(); + webauthn_dll_ = + LoadLibraryExA("webauthn.dll", NULL, LOAD_LIBRARY_SEARCH_SYSTEM32); + } if (!webauthn_dll_) { return; }
diff --git a/docs/release_branch_guidance.md b/docs/release_branch_guidance.md index a13c763..c8ddca20 100644 --- a/docs/release_branch_guidance.md +++ b/docs/release_branch_guidance.md
@@ -4,8 +4,8 @@ etc) just before branch due to the risk of reverts. If you modify data that will be synced, this change should be forward compatible for up to four milestones (as stable and canary are at times four milestones apart and it's - easonable to assume that somebody runs stable on chromeos and canary on mac, - both syncing to the same account). + reasonable to assume that somebody runs stable on chromeos and canary on + mac, both syncing to the same account). * Two weeks prior to the branch point, avoid committing big and risky changes or enabling non-trivial features. * Pay more attention to complexity and structure of CLs around branch points,
diff --git a/extensions/renderer/api/automation/automation_ax_tree_wrapper.cc b/extensions/renderer/api/automation/automation_ax_tree_wrapper.cc index b2119d0..9faa968 100644 --- a/extensions/renderer/api/automation/automation_ax_tree_wrapper.cc +++ b/extensions/renderer/api/automation/automation_ax_tree_wrapper.cc
@@ -198,6 +198,7 @@ return api::automation::EVENT_TYPE_ARIAATTRIBUTECHANGED; case ui::AXEventGenerator::Event::ACCESS_KEY_CHANGED: + case ui::AXEventGenerator::Event::ATK_TEXT_OBJECT_ATTRIBUTE_CHANGED: case ui::AXEventGenerator::Event::ATOMIC_CHANGED: case ui::AXEventGenerator::Event::BUSY_CHANGED: case ui::AXEventGenerator::Event::CONTROLS_CHANGED: @@ -357,6 +358,7 @@ // relevant. case ui::AXEventGenerator::Event::ACTIVE_DESCENDANT_CHANGED: case ui::AXEventGenerator::Event::ALERT: + case ui::AXEventGenerator::Event::ATK_TEXT_OBJECT_ATTRIBUTE_CHANGED: case ui::AXEventGenerator::Event::CHECKED_STATE_CHANGED: case ui::AXEventGenerator::Event::CHILDREN_CHANGED: case ui::AXEventGenerator::Event::CONTROLS_CHANGED:
diff --git a/gpu/ipc/common/gpu_memory_buffer_support.cc b/gpu/ipc/common/gpu_memory_buffer_support.cc index d5a9a2f75..504fad4 100644 --- a/gpu/ipc/common/gpu_memory_buffer_support.cc +++ b/gpu/ipc/common/gpu_memory_buffer_support.cc
@@ -16,7 +16,7 @@ #include "gpu/ipc/common/gpu_memory_buffer_impl_io_surface.h" #endif -#if defined(OS_LINUX) +#if defined(OS_LINUX) || defined(OS_CHROMEOS) #include "ui/gfx/client_native_pixmap_factory.h" #include "ui/gfx/linux/client_native_pixmap_factory_dmabuf.h" #endif @@ -26,7 +26,7 @@ #include "ui/ozone/public/ozone_platform.h" #endif -#if defined(USE_OZONE) || defined(OS_LINUX) +#if defined(USE_OZONE) || defined(OS_LINUX) || defined(OS_CHROMEOS) #include "gpu/ipc/common/gpu_memory_buffer_impl_native_pixmap.h" #endif @@ -52,7 +52,7 @@ return; } #endif -#if defined(OS_LINUX) +#if defined(OS_LINUX) || defined(OS_CHROMEOS) client_native_pixmap_factory_.reset( gfx::CreateClientNativePixmapFactoryDmabuf()); #endif @@ -66,7 +66,7 @@ return gfx::IO_SURFACE_BUFFER; #elif defined(OS_ANDROID) return gfx::ANDROID_HARDWARE_BUFFER; -#elif defined(OS_LINUX) || defined(USE_OZONE) +#elif defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(USE_OZONE) return gfx::NATIVE_PIXMAP; #elif defined(OS_WIN) return gfx::DXGI_SHARED_HANDLE; @@ -194,7 +194,7 @@ return GpuMemoryBufferImplIOSurface::CreateFromHandle( std::move(handle), size, format, usage, std::move(callback)); #endif -#if defined(OS_LINUX) || defined(USE_OZONE) +#if defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(USE_OZONE) case gfx::NATIVE_PIXMAP: return GpuMemoryBufferImplNativePixmap::CreateFromHandle( client_native_pixmap_factory(), std::move(handle), size, format,
diff --git a/infra/config/generated/commit-queue.cfg b/infra/config/generated/commit-queue.cfg index 802cca1..d40b431 100644 --- a/infra/config/generated/commit-queue.cfg +++ b/infra/config/generated/commit-queue.cfg
@@ -202,6 +202,10 @@ location_regexp_exclude: ".+/[+]/components/cronet/ios/.+" } builders { + name: "chromium/try/android-cronet-marshmallow-arm64-rel" + includable_only: true + } + builders { name: "chromium/try/android-deterministic-dbg" includable_only: true } @@ -404,6 +408,7 @@ location_regexp: ".+/[+]/media/audio/.+" location_regexp: ".+/[+]/media/filters/.+" location_regexp: ".+/[+]/media/gpu/.+" + location_regexp: ".+/[+]/media/renderers/.+" location_regexp: ".+/[+]/services/viz/.+" location_regexp: ".+/[+]/testing/trigger_scripts/.+" location_regexp: ".+/[+]/third_party/blink/renderer/modules/webgl/.+" @@ -1221,6 +1226,7 @@ location_regexp: ".+/[+]/media/audio/.+" location_regexp: ".+/[+]/media/filters/.+" location_regexp: ".+/[+]/media/gpu/.+" + location_regexp: ".+/[+]/media/renderers/.+" location_regexp: ".+/[+]/testing/buildbot/chromium.gpu.fyi.json" location_regexp: ".+/[+]/testing/trigger_scripts/.+" location_regexp: ".+/[+]/third_party/blink/renderer/modules/webgl/.+" @@ -1349,6 +1355,7 @@ location_regexp: ".+/[+]/media/audio/.+" location_regexp: ".+/[+]/media/filters/.+" location_regexp: ".+/[+]/media/gpu/.+" + location_regexp: ".+/[+]/media/renderers/.+" location_regexp: ".+/[+]/services/shape_detection/.+" location_regexp: ".+/[+]/testing/buildbot/chromium.gpu.fyi.json" location_regexp: ".+/[+]/testing/trigger_scripts/.+" @@ -1516,6 +1523,7 @@ location_regexp: ".+/[+]/media/audio/.+" location_regexp: ".+/[+]/media/filters/.+" location_regexp: ".+/[+]/media/gpu/.+" + location_regexp: ".+/[+]/media/renderers/.+" location_regexp: ".+/[+]/testing/buildbot/chromium.gpu.fyi.json" location_regexp: ".+/[+]/testing/trigger_scripts/.+" location_regexp: ".+/[+]/third_party/blink/renderer/modules/vr/.+" @@ -1546,496 +1554,6 @@ } } config_groups { - name: "cq-m84" - gerrit { - url: "https://chromium-review.googlesource.com" - projects { - name: "chromium/src" - ref_regexp: "refs/branch-heads/4147" - } - } - verifiers { - gerrit_cq_ability { - committer_list: "project-chromium-committers" - dry_run_access_list: "project-chromium-tryjob-access" - } - tryjob { - builders { - name: "chrome/try/mac-chrome-beta" - includable_only: true - owner_whitelist_group: "googlers" - owner_whitelist_group: "project-chromium-robot-committers" - } - builders { - name: "chrome/try/mac-chrome-stable" - includable_only: true - owner_whitelist_group: "googlers" - owner_whitelist_group: "project-chromium-robot-committers" - } - builders { - name: "chrome/try/win-chrome-beta" - includable_only: true - owner_whitelist_group: "googlers" - owner_whitelist_group: "project-chromium-robot-committers" - } - builders { - name: "chrome/try/win-chrome-stable" - includable_only: true - owner_whitelist_group: "googlers" - owner_whitelist_group: "project-chromium-robot-committers" - } - builders { - name: "chrome/try/win64-chrome-beta" - includable_only: true - owner_whitelist_group: "googlers" - owner_whitelist_group: "project-chromium-robot-committers" - } - builders { - name: "chrome/try/win64-chrome-stable" - includable_only: true - owner_whitelist_group: "googlers" - owner_whitelist_group: "project-chromium-robot-committers" - } - builders { - name: "chromium/try-m84/android-binary-size" - location_regexp: ".*" - location_regexp_exclude: ".+/[+]/docs/.+" - location_regexp_exclude: ".+/[+]/infra/config/.+" - } - builders { - name: "chromium/try-m84/android-cronet-arm-dbg" - location_regexp: ".+/[+]/components/cronet/.+" - location_regexp: ".+/[+]/components/grpc_support/.+" - location_regexp: ".+/[+]/build/android/.+" - location_regexp: ".+/[+]/build/config/android/.+" - location_regexp_exclude: ".+/[+]/docs/.+" - location_regexp_exclude: ".+/[+]/infra/config/.+" - location_regexp_exclude: ".+/[+]/components/cronet/ios/.+" - } - builders { - name: "chromium/try-m84/android-lollipop-arm-rel" - location_regexp: ".*" - location_regexp_exclude: ".+/[+]/docs/.+" - location_regexp_exclude: ".+/[+]/infra/config/.+" - } - builders { - name: "chromium/try-m84/android-marshmallow-arm64-rel" - location_regexp: ".*" - location_regexp_exclude: ".+/[+]/docs/.+" - location_regexp_exclude: ".+/[+]/infra/config/.+" - } - builders { - name: "chromium/try-m84/android-pie-arm64-dbg" - location_regexp: ".+/[+]/chrome/android/features/vr/.+" - location_regexp: ".+/[+]/chrome/android/java/src/org/chromium/chrome/browser/vr/.+" - location_regexp: ".+/[+]/chrome/android/javatests/src/org/chromium/chrome/browser/vr/.+" - location_regexp: ".+/[+]/chrome/browser/vr/.+" - location_regexp: ".+/[+]/content/browser/xr/.+" - location_regexp: ".+/[+]/third_party/gvr-android-sdk/.+" - location_regexp: ".+/[+]/third_party/arcore-android-sdk/.+" - location_regexp: ".+/[+]/third_party/arcore-android-sdk-client/.+" - location_regexp_exclude: ".+/[+]/docs/.+" - location_regexp_exclude: ".+/[+]/infra/config/.+" - } - builders { - name: "chromium/try-m84/android-pie-arm64-rel" - includable_only: true - } - builders { - name: "chromium/try-m84/android_compile_dbg" - location_regexp: ".*" - location_regexp_exclude: ".+/[+]/docs/.+" - location_regexp_exclude: ".+/[+]/infra/config/.+" - } - builders { - name: "chromium/try-m84/android_compile_x64_dbg" - location_regexp: ".+/[+]/chrome/android/java/src/org/chromium/chrome/browser/vr/.+" - location_regexp: ".+/[+]/chrome/browser/vr/.+" - location_regexp: ".+/[+]/content/browser/xr/.+" - location_regexp: ".+/[+]/sandbox/linux/seccomp-bpf/.+" - location_regexp: ".+/[+]/sandbox/linux/seccomp-bpf-helpers/.+" - location_regexp: ".+/[+]/sandbox/linux/system_headers/.+" - location_regexp: ".+/[+]/sandbox/linux/tests/.+" - location_regexp: ".+/[+]/third_party/gvr-android-sdk/.+" - location_regexp_exclude: ".+/[+]/docs/.+" - location_regexp_exclude: ".+/[+]/infra/config/.+" - } - builders { - name: "chromium/try-m84/android_compile_x86_dbg" - location_regexp: ".+/[+]/chrome/android/java/src/org/chromium/chrome/browser/vr/.+" - location_regexp: ".+/[+]/chrome/browser/vr/.+" - location_regexp: ".+/[+]/content/browser/xr/.+" - location_regexp: ".+/[+]/sandbox/linux/seccomp-bpf/.+" - location_regexp: ".+/[+]/sandbox/linux/seccomp-bpf-helpers/.+" - location_regexp: ".+/[+]/sandbox/linux/system_headers/.+" - location_regexp: ".+/[+]/sandbox/linux/tests/.+" - location_regexp: ".+/[+]/third_party/gvr-android-sdk/.+" - location_regexp_exclude: ".+/[+]/docs/.+" - location_regexp_exclude: ".+/[+]/infra/config/.+" - } - builders { - name: "chromium/try-m84/android_cronet" - location_regexp: ".*" - location_regexp_exclude: ".+/[+]/docs/.+" - location_regexp_exclude: ".+/[+]/infra/config/.+" - } - builders { - name: "chromium/try-m84/android_optional_gpu_tests_rel" - location_regexp: ".+/[+]/cc/.+" - location_regexp: ".+/[+]/chrome/browser/vr/.+" - location_regexp: ".+/[+]/content/browser/xr/.+" - location_regexp: ".+/[+]/components/viz/.+" - location_regexp: ".+/[+]/content/test/gpu/.+" - location_regexp: ".+/[+]/gpu/.+" - location_regexp: ".+/[+]/media/audio/.+" - location_regexp: ".+/[+]/media/filters/.+" - location_regexp: ".+/[+]/media/gpu/.+" - location_regexp: ".+/[+]/services/viz/.+" - location_regexp: ".+/[+]/testing/trigger_scripts/.+" - location_regexp: ".+/[+]/third_party/blink/renderer/modules/webgl/.+" - location_regexp: ".+/[+]/third_party/blink/renderer/platform/graphics/gpu/.+" - location_regexp: ".+/[+]/tools/clang/scripts/update.py" - location_regexp: ".+/[+]/ui/gl/.+" - location_regexp_exclude: ".+/[+]/docs/.+" - location_regexp_exclude: ".+/[+]/infra/config/.+" - } - builders { - name: "chromium/try-m84/cast_shell_android" - location_regexp: ".*" - location_regexp_exclude: ".+/[+]/docs/.+" - location_regexp_exclude: ".+/[+]/infra/config/.+" - } - builders { - name: "chromium/try-m84/cast_shell_linux" - location_regexp: ".*" - location_regexp_exclude: ".+/[+]/docs/.+" - location_regexp_exclude: ".+/[+]/infra/config/.+" - } - builders { - name: "chromium/try-m84/chromeos-amd64-generic-dbg" - location_regexp: ".+/[+]/content/gpu/.+" - location_regexp: ".+/[+]/media/.+" - location_regexp_exclude: ".+/[+]/docs/.+" - location_regexp_exclude: ".+/[+]/infra/config/.+" - } - builders { - name: "chromium/try-m84/chromeos-amd64-generic-rel" - location_regexp: ".*" - location_regexp_exclude: ".+/[+]/docs/.+" - location_regexp_exclude: ".+/[+]/infra/config/.+" - } - builders { - name: "chromium/try-m84/chromeos-arm-generic-rel" - location_regexp: ".*" - location_regexp_exclude: ".+/[+]/docs/.+" - location_regexp_exclude: ".+/[+]/infra/config/.+" - } - builders { - name: "chromium/try-m84/chromium_presubmit" - disable_reuse: true - } - builders { - name: "chromium/try-m84/closure_compilation" - location_regexp: ".+/[+]/third_party/closure_compiler/.+" - location_regexp_exclude: ".+/[+]/docs/.+" - location_regexp_exclude: ".+/[+]/infra/config/.+" - } - builders { - name: "chromium/try-m84/dawn-linux-x64-deps-rel" - location_regexp: ".+/[+]/gpu/.+" - location_regexp: ".+/[+]/testing/buildbot/chromium.dawn.json" - location_regexp: ".+/[+]/third_party/blink/renderer/modules/webgpu/.+" - location_regexp: ".+/[+]/third_party/blink/web_tests/external/wpt/webgpu/.+" - location_regexp: ".+/[+]/third_party/blink/web_tests/wpt_internal/webgpu/.+" - location_regexp: ".+/[+]/third_party/blink/web_tests/WebGPUExpectations" - location_regexp: ".+/[+]/third_party/dawn/.+" - location_regexp: ".+/[+]/tools/clang/scripts/update.py" - location_regexp: ".+/[+]/ui/gl/features.gni" - location_regexp_exclude: ".+/[+]/docs/.+" - location_regexp_exclude: ".+/[+]/infra/config/.+" - } - builders { - name: "chromium/try-m84/dawn-mac-x64-deps-rel" - location_regexp: ".+/[+]/gpu/.+" - location_regexp: ".+/[+]/testing/buildbot/chromium.dawn.json" - location_regexp: ".+/[+]/third_party/blink/renderer/modules/webgpu/.+" - location_regexp: ".+/[+]/third_party/blink/web_tests/external/wpt/webgpu/.+" - location_regexp: ".+/[+]/third_party/blink/web_tests/wpt_internal/webgpu/.+" - location_regexp: ".+/[+]/third_party/blink/web_tests/WebGPUExpectations" - location_regexp: ".+/[+]/third_party/dawn/.+" - location_regexp: ".+/[+]/tools/clang/scripts/update.py" - location_regexp: ".+/[+]/ui/gl/features.gni" - location_regexp_exclude: ".+/[+]/docs/.+" - location_regexp_exclude: ".+/[+]/infra/config/.+" - } - builders { - name: "chromium/try-m84/dawn-win10-x64-deps-rel" - location_regexp: ".+/[+]/gpu/.+" - location_regexp: ".+/[+]/testing/buildbot/chromium.dawn.json" - location_regexp: ".+/[+]/third_party/blink/renderer/modules/webgpu/.+" - location_regexp: ".+/[+]/third_party/blink/web_tests/external/wpt/webgpu/.+" - location_regexp: ".+/[+]/third_party/blink/web_tests/wpt_internal/webgpu/.+" - location_regexp: ".+/[+]/third_party/blink/web_tests/WebGPUExpectations" - location_regexp: ".+/[+]/third_party/dawn/.+" - location_regexp: ".+/[+]/tools/clang/scripts/update.py" - location_regexp: ".+/[+]/ui/gl/features.gni" - location_regexp_exclude: ".+/[+]/docs/.+" - location_regexp_exclude: ".+/[+]/infra/config/.+" - } - builders { - name: "chromium/try-m84/dawn-win10-x86-deps-rel" - location_regexp: ".+/[+]/gpu/.+" - location_regexp: ".+/[+]/testing/buildbot/chromium.dawn.json" - location_regexp: ".+/[+]/third_party/blink/renderer/modules/webgpu/.+" - location_regexp: ".+/[+]/third_party/blink/web_tests/external/wpt/webgpu/.+" - location_regexp: ".+/[+]/third_party/blink/web_tests/wpt_internal/webgpu/.+" - location_regexp: ".+/[+]/third_party/blink/web_tests/WebGPUExpectations" - location_regexp: ".+/[+]/third_party/dawn/.+" - location_regexp: ".+/[+]/tools/clang/scripts/update.py" - location_regexp: ".+/[+]/ui/gl/features.gni" - location_regexp_exclude: ".+/[+]/docs/.+" - location_regexp_exclude: ".+/[+]/infra/config/.+" - } - builders { - name: "chromium/try-m84/fuchsia-arm64-cast" - location_regexp: ".+/[+]/chromecast/.+" - location_regexp_exclude: ".+/[+]/docs/.+" - location_regexp_exclude: ".+/[+]/infra/config/.+" - } - builders { - name: "chromium/try-m84/fuchsia-x64-cast" - location_regexp: ".*" - location_regexp_exclude: ".+/[+]/docs/.+" - location_regexp_exclude: ".+/[+]/infra/config/.+" - } - builders { - name: "chromium/try-m84/fuchsia_arm64" - location_regexp: ".*" - location_regexp_exclude: ".+/[+]/docs/.+" - location_regexp_exclude: ".+/[+]/infra/config/.+" - } - builders { - name: "chromium/try-m84/fuchsia_x64" - location_regexp: ".*" - location_regexp_exclude: ".+/[+]/docs/.+" - location_regexp_exclude: ".+/[+]/infra/config/.+" - } - builders { - name: "chromium/try-m84/ios-simulator" - location_regexp: ".*" - location_regexp_exclude: ".+/[+]/docs/.+" - location_regexp_exclude: ".+/[+]/infra/config/.+" - } - builders { - name: "chromium/try-m84/ios-simulator-cronet" - location_regexp: ".+/[+]/components/cronet/.+" - location_regexp: ".+/[+]/components/grpc_support/.+" - location_regexp: ".+/[+]/ios/.+" - location_regexp_exclude: ".+/[+]/docs/.+" - location_regexp_exclude: ".+/[+]/infra/config/.+" - location_regexp_exclude: ".+/[+]/components/cronet/android/.+" - } - builders { - name: "chromium/try-m84/ios-simulator-full-configs" - location_regexp: ".+/[+]/ios/.+" - location_regexp_exclude: ".+/[+]/docs/.+" - location_regexp_exclude: ".+/[+]/infra/config/.+" - } - builders { - name: "chromium/try-m84/linux-blink-rel" - location_regexp: ".+/[+]/cc/.+" - location_regexp: ".+/[+]/third_party/blink/renderer/core/paint/.+" - location_regexp: ".+/[+]/third_party/blink/renderer/core/svg/.+" - location_regexp: ".+/[+]/third_party/blink/renderer/platform/graphics/.+" - location_regexp_exclude: ".+/[+]/docs/.+" - location_regexp_exclude: ".+/[+]/infra/config/.+" - } - builders { - name: "chromium/try-m84/linux-chromeos-compile-dbg" - location_regexp: ".*" - location_regexp_exclude: ".+/[+]/docs/.+" - location_regexp_exclude: ".+/[+]/infra/config/.+" - } - builders { - name: "chromium/try-m84/linux-chromeos-rel" - cancel_stale: NO - location_regexp: ".*" - location_regexp_exclude: ".+/[+]/docs/.+" - location_regexp_exclude: ".+/[+]/infra/config/.+" - } - builders { - name: "chromium/try-m84/linux-libfuzzer-asan-rel" - location_regexp: ".*" - location_regexp_exclude: ".+/[+]/docs/.+" - location_regexp_exclude: ".+/[+]/infra/config/.+" - } - builders { - name: "chromium/try-m84/linux-ozone-rel" - location_regexp: ".*" - location_regexp_exclude: ".+/[+]/docs/.+" - location_regexp_exclude: ".+/[+]/infra/config/.+" - } - builders { - name: "chromium/try-m84/linux-rel" - location_regexp: ".*" - location_regexp_exclude: ".+/[+]/docs/.+" - location_regexp_exclude: ".+/[+]/infra/config/.+" - } - builders { - name: "chromium/try-m84/linux_chromium_asan_rel_ng" - location_regexp: ".*" - location_regexp_exclude: ".+/[+]/docs/.+" - location_regexp_exclude: ".+/[+]/infra/config/.+" - } - builders { - name: "chromium/try-m84/linux_chromium_compile_dbg_ng" - location_regexp: ".*" - location_regexp_exclude: ".+/[+]/docs/.+" - location_regexp_exclude: ".+/[+]/infra/config/.+" - } - builders { - name: "chromium/try-m84/linux_chromium_dbg_ng" - location_regexp: ".+/[+]/build/.*check_gn_headers.*" - location_regexp_exclude: ".+/[+]/docs/.+" - location_regexp_exclude: ".+/[+]/infra/config/.+" - } - builders { - name: "chromium/try-m84/linux_chromium_tsan_rel_ng" - location_regexp: ".*" - location_regexp_exclude: ".+/[+]/docs/.+" - location_regexp_exclude: ".+/[+]/infra/config/.+" - } - builders { - name: "chromium/try-m84/linux_layout_tests_composite_after_paint" - location_regexp: ".+/[+]/third_party/blink/renderer/core/paint/.+" - location_regexp: ".+/[+]/third_party/blink/renderer/core/svg/.+" - location_regexp: ".+/[+]/third_party/blink/renderer/platform/graphics/.+" - location_regexp: ".+/[+]/third_party/blink/web_tests/.+" - location_regexp_exclude: ".+/[+]/docs/.+" - location_regexp_exclude: ".+/[+]/infra/config/.+" - } - builders { - name: "chromium/try-m84/linux_layout_tests_layout_ng_disabled" - location_regexp: ".+/[+]/third_party/blink/renderer/core/editing/.+" - location_regexp: ".+/[+]/third_party/blink/renderer/core/layout/.+" - location_regexp: ".+/[+]/third_party/blink/renderer/core/paint/.+" - location_regexp: ".+/[+]/third_party/blink/renderer/core/svg/.+" - location_regexp: ".+/[+]/third_party/blink/renderer/platform/fonts/shaping/.+" - location_regexp: ".+/[+]/third_party/blink/renderer/platform/graphics/.+" - location_regexp: ".+/[+]/third_party/blink/web_tests/FlagExpectations/disable-layout-ng" - location_regexp: ".+/[+]/third_party/blink/web_tests/flag-specific/disable-layout-ng/.+" - location_regexp_exclude: ".+/[+]/docs/.+" - location_regexp_exclude: ".+/[+]/infra/config/.+" - } - builders { - name: "chromium/try-m84/linux_optional_gpu_tests_rel" - location_regexp: ".+/[+]/chrome/browser/vr/.+" - location_regexp: ".+/[+]/content/browser/xr/.+" - location_regexp: ".+/[+]/content/test/gpu/.+" - location_regexp: ".+/[+]/gpu/.+" - location_regexp: ".+/[+]/media/audio/.+" - location_regexp: ".+/[+]/media/filters/.+" - location_regexp: ".+/[+]/media/gpu/.+" - location_regexp: ".+/[+]/testing/buildbot/chromium.gpu.fyi.json" - location_regexp: ".+/[+]/testing/trigger_scripts/.+" - location_regexp: ".+/[+]/third_party/blink/renderer/modules/webgl/.+" - location_regexp: ".+/[+]/third_party/blink/renderer/platform/graphics/gpu/.+" - location_regexp: ".+/[+]/tools/clang/scripts/update.py" - location_regexp: ".+/[+]/ui/gl/.+" - location_regexp_exclude: ".+/[+]/docs/.+" - location_regexp_exclude: ".+/[+]/infra/config/.+" - } - builders { - name: "chromium/try-m84/linux_vr" - location_regexp: ".+/[+]/chrome/browser/vr/.+" - location_regexp: ".+/[+]/content/browser/xr/.+" - location_regexp_exclude: ".+/[+]/docs/.+" - location_regexp_exclude: ".+/[+]/infra/config/.+" - } - builders { - name: "chromium/try-m84/mac-rel" - location_regexp: ".*" - location_regexp_exclude: ".+/[+]/docs/.+" - location_regexp_exclude: ".+/[+]/infra/config/.+" - } - builders { - name: "chromium/try-m84/mac_chromium_compile_dbg_ng" - location_regexp: ".*" - location_regexp_exclude: ".+/[+]/docs/.+" - location_regexp_exclude: ".+/[+]/infra/config/.+" - } - builders { - name: "chromium/try-m84/mac_optional_gpu_tests_rel" - location_regexp: ".+/[+]/chrome/browser/vr/.+" - location_regexp: ".+/[+]/content/browser/xr/.+" - location_regexp: ".+/[+]/content/test/gpu/.+" - location_regexp: ".+/[+]/gpu/.+" - location_regexp: ".+/[+]/media/audio/.+" - location_regexp: ".+/[+]/media/filters/.+" - location_regexp: ".+/[+]/media/gpu/.+" - location_regexp: ".+/[+]/services/shape_detection/.+" - location_regexp: ".+/[+]/testing/buildbot/chromium.gpu.fyi.json" - location_regexp: ".+/[+]/testing/trigger_scripts/.+" - location_regexp: ".+/[+]/third_party/blink/renderer/modules/webgl/.+" - location_regexp: ".+/[+]/third_party/blink/renderer/platform/graphics/gpu/.+" - location_regexp: ".+/[+]/tools/clang/scripts/update.py" - location_regexp: ".+/[+]/ui/gl/.+" - location_regexp_exclude: ".+/[+]/docs/.+" - location_regexp_exclude: ".+/[+]/infra/config/.+" - } - builders { - name: "chromium/try-m84/win-libfuzzer-asan-rel" - cancel_stale: NO - location_regexp: ".*" - location_regexp_exclude: ".+/[+]/docs/.+" - location_regexp_exclude: ".+/[+]/infra/config/.+" - } - builders { - name: "chromium/try-m84/win10_chromium_x64_rel_ng" - cancel_stale: NO - location_regexp: ".*" - location_regexp_exclude: ".+/[+]/docs/.+" - location_regexp_exclude: ".+/[+]/infra/config/.+" - } - builders { - name: "chromium/try-m84/win_chromium_compile_dbg_ng" - cancel_stale: NO - location_regexp: ".*" - location_regexp_exclude: ".+/[+]/docs/.+" - location_regexp_exclude: ".+/[+]/infra/config/.+" - } - builders { - name: "chromium/try-m84/win_optional_gpu_tests_rel" - location_regexp: ".+/[+]/chrome/browser/vr/.+" - location_regexp: ".+/[+]/content/browser/xr/.+" - location_regexp: ".+/[+]/content/test/gpu/.+" - location_regexp: ".+/[+]/device/vr/.+" - location_regexp: ".+/[+]/gpu/.+" - location_regexp: ".+/[+]/media/audio/.+" - location_regexp: ".+/[+]/media/filters/.+" - location_regexp: ".+/[+]/media/gpu/.+" - location_regexp: ".+/[+]/testing/buildbot/chromium.gpu.fyi.json" - location_regexp: ".+/[+]/testing/trigger_scripts/.+" - location_regexp: ".+/[+]/third_party/blink/renderer/modules/vr/.+" - location_regexp: ".+/[+]/third_party/blink/renderer/modules/webgl/.+" - location_regexp: ".+/[+]/third_party/blink/renderer/modules/xr/.+" - location_regexp: ".+/[+]/third_party/blink/renderer/platform/graphics/gpu/.+" - location_regexp: ".+/[+]/tools/clang/scripts/update.py" - location_regexp: ".+/[+]/ui/gl/.+" - location_regexp_exclude: ".+/[+]/docs/.+" - location_regexp_exclude: ".+/[+]/infra/config/.+" - } - retry_config { - single_quota: 1 - global_quota: 2 - failure_weight: 1 - transient_failure_weight: 1 - timeout_weight: 2 - } - } - } -} -config_groups { name: "cq-m85" gerrit { url: "https://chromium-review.googlesource.com" @@ -2552,12 +2070,7 @@ ref_regexp: "^refs/branch-heads/[1-9]\\d{0,2}$" ref_regexp: "^refs/branch-heads/[1-3]\\d{3}$" ref_regexp: "^refs/branch-heads/40\\d{2}$" - ref_regexp: "^refs/branch-heads/410[0-2]$" - ref_regexp: "^refs/branch-heads/410[4-9]$" - ref_regexp: "^refs/branch-heads/41[1-3]\\d$" - ref_regexp: "^refs/branch-heads/414[0-6]$" - ref_regexp: "^refs/branch-heads/414[8-9]$" - ref_regexp: "^refs/branch-heads/41[5-7]\\d$" + ref_regexp: "^refs/branch-heads/41[0-7]\\d$" ref_regexp: "^refs/branch-heads/418[0-2]$" ref_regexp: "^refs/branch-heads/418[4-9]$" ref_regexp: "^refs/branch-heads/419\\d$"
diff --git a/infra/config/generated/cq-builders.md b/infra/config/generated/cq-builders.md index 25dfdf6..ad30554 100644 --- a/infra/config/generated/cq-builders.md +++ b/infra/config/generated/cq-builders.md
@@ -141,6 +141,7 @@ * [`//media/audio/.+`](https://cs.chromium.org/chromium/src/media/audio/) * [`//media/filters/.+`](https://cs.chromium.org/chromium/src/media/filters/) * [`//media/gpu/.+`](https://cs.chromium.org/chromium/src/media/gpu/) + * [`//media/renderers/.+`](https://cs.chromium.org/chromium/src/media/renderers/) * [`//services/viz/.+`](https://cs.chromium.org/chromium/src/services/viz/) * [`//testing/trigger_scripts/.+`](https://cs.chromium.org/chromium/src/testing/trigger_scripts/) * [`//third_party/blink/renderer/modules/webgl/.+`](https://cs.chromium.org/chromium/src/third_party/blink/renderer/modules/webgl/) @@ -281,6 +282,7 @@ * [`//media/audio/.+`](https://cs.chromium.org/chromium/src/media/audio/) * [`//media/filters/.+`](https://cs.chromium.org/chromium/src/media/filters/) * [`//media/gpu/.+`](https://cs.chromium.org/chromium/src/media/gpu/) + * [`//media/renderers/.+`](https://cs.chromium.org/chromium/src/media/renderers/) * [`//testing/buildbot/chromium.gpu.fyi.json`](https://cs.chromium.org/search?q=package:%5Echromium$+file:testing/buildbot/chromium.gpu.fyi.json) * [`//testing/trigger_scripts/.+`](https://cs.chromium.org/chromium/src/testing/trigger_scripts/) * [`//third_party/blink/renderer/modules/webgl/.+`](https://cs.chromium.org/chromium/src/third_party/blink/renderer/modules/webgl/) @@ -304,6 +306,7 @@ * [`//media/audio/.+`](https://cs.chromium.org/chromium/src/media/audio/) * [`//media/filters/.+`](https://cs.chromium.org/chromium/src/media/filters/) * [`//media/gpu/.+`](https://cs.chromium.org/chromium/src/media/gpu/) + * [`//media/renderers/.+`](https://cs.chromium.org/chromium/src/media/renderers/) * [`//services/shape_detection/.+`](https://cs.chromium.org/chromium/src/services/shape_detection/) * [`//testing/buildbot/chromium.gpu.fyi.json`](https://cs.chromium.org/search?q=package:%5Echromium$+file:testing/buildbot/chromium.gpu.fyi.json) * [`//testing/trigger_scripts/.+`](https://cs.chromium.org/chromium/src/testing/trigger_scripts/) @@ -328,6 +331,7 @@ * [`//media/audio/.+`](https://cs.chromium.org/chromium/src/media/audio/) * [`//media/filters/.+`](https://cs.chromium.org/chromium/src/media/filters/) * [`//media/gpu/.+`](https://cs.chromium.org/chromium/src/media/gpu/) + * [`//media/renderers/.+`](https://cs.chromium.org/chromium/src/media/renderers/) * [`//testing/buildbot/chromium.gpu.fyi.json`](https://cs.chromium.org/search?q=package:%5Echromium$+file:testing/buildbot/chromium.gpu.fyi.json) * [`//testing/trigger_scripts/.+`](https://cs.chromium.org/chromium/src/testing/trigger_scripts/) * [`//third_party/blink/renderer/modules/vr/.+`](https://cs.chromium.org/chromium/src/third_party/blink/renderer/modules/vr/)
diff --git a/infra/config/generated/cr-buildbucket.cfg b/infra/config/generated/cr-buildbucket.cfg index a204a49f..152579e 100644 --- a/infra/config/generated/cr-buildbucket.cfg +++ b/infra/config/generated/cr-buildbucket.cfg
@@ -729,7 +729,7 @@ cipd_version: "refs/heads/master" cmd: "recipes" } - properties: "{\"$build/chromium_tests\":{\"bucketed_triggers\":true},\"$build/goma\":{\"enable_ats\":true,\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"chromium.gpu\",\"recipe\":\"chromium\"}" + properties: "{\"$build/goma\":{\"enable_ats\":true,\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"chromium.gpu\",\"recipe\":\"chromium\"}" execution_timeout_secs: 10800 build_numbers: YES service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com" @@ -816,7 +816,7 @@ cipd_version: "refs/heads/master" cmd: "recipes" } - properties: "{\"$build/chromium_tests\":{\"bucketed_triggers\":true},\"$build/goma\":{\"enable_ats\":true,\"jobs\":150,\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"chromium.android\",\"recipe\":\"chromium\"}" + properties: "{\"$build/goma\":{\"enable_ats\":true,\"jobs\":150,\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"chromium.android\",\"recipe\":\"chromium\"}" execution_timeout_secs: 10800 build_numbers: YES service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com" @@ -845,7 +845,7 @@ cipd_version: "refs/heads/master" cmd: "recipes" } - properties: "{\"$build/chromium_tests\":{\"bucketed_triggers\":true},\"$build/goma\":{\"enable_ats\":true,\"jobs\":150,\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"chromium.android\",\"recipe\":\"chromium\"}" + properties: "{\"$build/goma\":{\"enable_ats\":true,\"jobs\":150,\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"chromium.android\",\"recipe\":\"chromium\"}" execution_timeout_secs: 10800 build_numbers: YES service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com" @@ -874,7 +874,7 @@ cipd_version: "refs/heads/master" cmd: "recipes" } - properties: "{\"$build/chromium_tests\":{\"bucketed_triggers\":true},\"$build/goma\":{\"enable_ats\":true,\"jobs\":150,\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"chromium.android\",\"recipe\":\"chromium\"}" + properties: "{\"$build/goma\":{\"enable_ats\":true,\"jobs\":150,\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"chromium.android\",\"recipe\":\"chromium\"}" execution_timeout_secs: 10800 build_numbers: YES service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com" @@ -903,7 +903,7 @@ cipd_version: "refs/heads/master" cmd: "recipes" } - properties: "{\"$build/chromium_tests\":{\"bucketed_triggers\":true},\"$build/goma\":{\"enable_ats\":true,\"jobs\":150,\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"chromium.android\",\"recipe\":\"chromium\"}" + properties: "{\"$build/goma\":{\"enable_ats\":true,\"jobs\":150,\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"chromium.android\",\"recipe\":\"chromium\"}" execution_timeout_secs: 10800 build_numbers: YES service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com" @@ -961,7 +961,7 @@ cipd_version: "refs/heads/master" cmd: "recipes" } - properties: "{\"$build/chromium_tests\":{\"bucketed_triggers\":true},\"$build/goma\":{\"enable_ats\":true,\"jobs\":150,\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"chromium.android\",\"recipe\":\"chromium\"}" + properties: "{\"$build/goma\":{\"enable_ats\":true,\"jobs\":150,\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"chromium.android\",\"recipe\":\"chromium\"}" execution_timeout_secs: 14400 build_numbers: YES service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com" @@ -990,7 +990,7 @@ cipd_version: "refs/heads/master" cmd: "recipes" } - properties: "{\"$build/chromium_tests\":{\"bucketed_triggers\":true},\"$build/goma\":{\"enable_ats\":true,\"jobs\":500,\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"chromium.android\",\"recipe\":\"chromium\"}" + properties: "{\"$build/goma\":{\"enable_ats\":true,\"jobs\":500,\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"chromium.android\",\"recipe\":\"chromium\"}" execution_timeout_secs: 18000 build_numbers: YES service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com" @@ -1019,7 +1019,7 @@ cipd_version: "refs/heads/master" cmd: "recipes" } - properties: "{\"$build/chromium_tests\":{\"bucketed_triggers\":true},\"$build/goma\":{\"enable_ats\":true,\"jobs\":150,\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"chromium.android\",\"recipe\":\"chromium\"}" + properties: "{\"$build/goma\":{\"enable_ats\":true,\"jobs\":150,\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"chromium.android\",\"recipe\":\"chromium\"}" execution_timeout_secs: 18000 build_numbers: YES service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com" @@ -1048,7 +1048,7 @@ cipd_version: "refs/heads/master" cmd: "recipes" } - properties: "{\"$build/chromium_tests\":{\"bucketed_triggers\":true},\"$build/goma\":{\"enable_ats\":true,\"jobs\":150,\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"chromium.android\",\"recipe\":\"chromium\"}" + properties: "{\"$build/goma\":{\"enable_ats\":true,\"jobs\":150,\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"chromium.android\",\"recipe\":\"chromium\"}" execution_timeout_secs: 14400 build_numbers: YES service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com" @@ -1135,7 +1135,7 @@ cipd_version: "refs/heads/master" cmd: "recipes" } - properties: "{\"$build/chromium_tests\":{\"bucketed_triggers\":true},\"$build/goma\":{\"enable_ats\":true,\"jobs\":150,\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"chromium.android\",\"recipe\":\"chromium\"}" + properties: "{\"$build/goma\":{\"enable_ats\":true,\"jobs\":150,\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"chromium.android\",\"recipe\":\"chromium\"}" execution_timeout_secs: 10800 build_numbers: YES service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com" @@ -1193,7 +1193,7 @@ cipd_version: "refs/heads/master" cmd: "recipes" } - properties: "{\"$build/chromium_tests\":{\"bucketed_triggers\":true},\"$build/goma\":{\"enable_ats\":true,\"jobs\":50,\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"chromium.linux\",\"recipe\":\"chromium\"}" + properties: "{\"$build/goma\":{\"enable_ats\":true,\"jobs\":50,\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"chromium.linux\",\"recipe\":\"chromium\"}" execution_timeout_secs: 10800 build_numbers: YES service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com" @@ -1425,7 +1425,7 @@ cipd_version: "refs/heads/master" cmd: "recipes" } - properties: "{\"$build/chromium_tests\":{\"bucketed_triggers\":true},\"$build/goma\":{\"enable_ats\":true,\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"chromium.dawn\",\"recipe\":\"chromium\"}" + properties: "{\"$build/goma\":{\"enable_ats\":true,\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"chromium.dawn\",\"recipe\":\"chromium\"}" execution_timeout_secs: 10800 build_numbers: YES service_account: "chromium-ci-gpu-builder@chops-service-accounts.iam.gserviceaccount.com" @@ -1454,7 +1454,7 @@ cipd_version: "refs/heads/master" cmd: "recipes" } - properties: "{\"$build/chromium_tests\":{\"bucketed_triggers\":true},\"$build/goma\":{\"enable_ats\":true,\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"chromium.dawn\",\"recipe\":\"chromium\"}" + properties: "{\"$build/goma\":{\"enable_ats\":true,\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"chromium.dawn\",\"recipe\":\"chromium\"}" execution_timeout_secs: 10800 build_numbers: YES service_account: "chromium-ci-gpu-builder@chops-service-accounts.iam.gserviceaccount.com" @@ -1483,7 +1483,7 @@ cipd_version: "refs/heads/master" cmd: "recipes" } - properties: "{\"$build/chromium_tests\":{\"bucketed_triggers\":true},\"$build/goma\":{\"enable_ats\":true,\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"chromium.dawn\",\"recipe\":\"chromium\"}" + properties: "{\"$build/goma\":{\"enable_ats\":true,\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"chromium.dawn\",\"recipe\":\"chromium\"}" execution_timeout_secs: 10800 build_numbers: YES service_account: "chromium-ci-gpu-builder@chops-service-accounts.iam.gserviceaccount.com" @@ -1595,7 +1595,7 @@ cipd_version: "refs/heads/master" cmd: "recipes" } - properties: "{\"$build/chromium_tests\":{\"bucketed_triggers\":true},\"$build/goma\":{\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"chromium.dawn\",\"recipe\":\"chromium\"}" + properties: "{\"$build/goma\":{\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"chromium.dawn\",\"recipe\":\"chromium\"}" execution_timeout_secs: 10800 build_numbers: YES service_account: "chromium-ci-gpu-builder@chops-service-accounts.iam.gserviceaccount.com" @@ -1624,7 +1624,7 @@ cipd_version: "refs/heads/master" cmd: "recipes" } - properties: "{\"$build/chromium_tests\":{\"bucketed_triggers\":true},\"$build/goma\":{\"enable_ats\":true,\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"chromium.dawn\",\"recipe\":\"chromium\"}" + properties: "{\"$build/goma\":{\"enable_ats\":true,\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"chromium.dawn\",\"recipe\":\"chromium\"}" execution_timeout_secs: 10800 build_numbers: YES service_account: "chromium-ci-gpu-builder@chops-service-accounts.iam.gserviceaccount.com" @@ -1653,7 +1653,7 @@ cipd_version: "refs/heads/master" cmd: "recipes" } - properties: "{\"$build/chromium_tests\":{\"bucketed_triggers\":true},\"$build/goma\":{\"enable_ats\":true,\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"chromium.dawn\",\"recipe\":\"chromium\"}" + properties: "{\"$build/goma\":{\"enable_ats\":true,\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"chromium.dawn\",\"recipe\":\"chromium\"}" execution_timeout_secs: 10800 build_numbers: YES service_account: "chromium-ci-gpu-builder@chops-service-accounts.iam.gserviceaccount.com" @@ -1798,7 +1798,7 @@ cipd_version: "refs/heads/master" cmd: "recipes" } - properties: "{\"$build/chromium_tests\":{\"bucketed_triggers\":true},\"$build/goma\":{\"enable_ats\":true,\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"chromium.dawn\",\"recipe\":\"chromium\"}" + properties: "{\"$build/goma\":{\"enable_ats\":true,\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"chromium.dawn\",\"recipe\":\"chromium\"}" execution_timeout_secs: 10800 build_numbers: YES service_account: "chromium-ci-gpu-builder@chops-service-accounts.iam.gserviceaccount.com" @@ -1827,7 +1827,7 @@ cipd_version: "refs/heads/master" cmd: "recipes" } - properties: "{\"$build/chromium_tests\":{\"bucketed_triggers\":true},\"$build/goma\":{\"enable_ats\":true,\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"chromium.dawn\",\"recipe\":\"chromium\"}" + properties: "{\"$build/goma\":{\"enable_ats\":true,\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"chromium.dawn\",\"recipe\":\"chromium\"}" execution_timeout_secs: 10800 build_numbers: YES service_account: "chromium-ci-gpu-builder@chops-service-accounts.iam.gserviceaccount.com" @@ -1856,7 +1856,7 @@ cipd_version: "refs/heads/master" cmd: "recipes" } - properties: "{\"$build/chromium_tests\":{\"bucketed_triggers\":true},\"$build/goma\":{\"enable_ats\":true,\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"chromium.dawn\",\"recipe\":\"chromium\"}" + properties: "{\"$build/goma\":{\"enable_ats\":true,\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"chromium.dawn\",\"recipe\":\"chromium\"}" execution_timeout_secs: 10800 build_numbers: YES service_account: "chromium-ci-gpu-builder@chops-service-accounts.iam.gserviceaccount.com" @@ -1972,7 +1972,7 @@ cipd_version: "refs/heads/master" cmd: "recipes" } - properties: "{\"$build/chromium_tests\":{\"bucketed_triggers\":true},\"$build/goma\":{\"enable_ats\":true,\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"chromium.dawn\",\"recipe\":\"chromium\"}" + properties: "{\"$build/goma\":{\"enable_ats\":true,\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"chromium.dawn\",\"recipe\":\"chromium\"}" execution_timeout_secs: 10800 build_numbers: YES service_account: "chromium-ci-gpu-builder@chops-service-accounts.iam.gserviceaccount.com" @@ -2001,7 +2001,7 @@ cipd_version: "refs/heads/master" cmd: "recipes" } - properties: "{\"$build/chromium_tests\":{\"bucketed_triggers\":true},\"$build/goma\":{\"enable_ats\":true,\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"chromium.dawn\",\"recipe\":\"chromium\"}" + properties: "{\"$build/goma\":{\"enable_ats\":true,\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"chromium.dawn\",\"recipe\":\"chromium\"}" execution_timeout_secs: 10800 build_numbers: YES service_account: "chromium-ci-gpu-builder@chops-service-accounts.iam.gserviceaccount.com" @@ -2030,7 +2030,7 @@ cipd_version: "refs/heads/master" cmd: "recipes" } - properties: "{\"$build/chromium_tests\":{\"bucketed_triggers\":true},\"$build/goma\":{\"enable_ats\":true,\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"chromium.dawn\",\"recipe\":\"chromium\"}" + properties: "{\"$build/goma\":{\"enable_ats\":true,\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"chromium.dawn\",\"recipe\":\"chromium\"}" execution_timeout_secs: 10800 build_numbers: YES service_account: "chromium-ci-gpu-builder@chops-service-accounts.iam.gserviceaccount.com" @@ -2262,7 +2262,7 @@ cipd_version: "refs/heads/master" cmd: "recipes" } - properties: "{\"$build/chromium_tests\":{\"bucketed_triggers\":true},\"$build/goma\":{\"enable_ats\":true,\"jobs\":500,\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"chromium.linux\",\"recipe\":\"chromium\"}" + properties: "{\"$build/goma\":{\"enable_ats\":true,\"jobs\":500,\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"chromium.linux\",\"recipe\":\"chromium\"}" execution_timeout_secs: 10800 build_numbers: YES service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com" @@ -2291,7 +2291,7 @@ cipd_version: "refs/heads/master" cmd: "recipes" } - properties: "{\"$build/chromium_tests\":{\"bucketed_triggers\":true},\"$build/goma\":{\"enable_ats\":true,\"jobs\":500,\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"chromium.linux\",\"recipe\":\"chromium\"}" + properties: "{\"$build/goma\":{\"enable_ats\":true,\"jobs\":500,\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"chromium.linux\",\"recipe\":\"chromium\"}" execution_timeout_secs: 10800 build_numbers: YES service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com" @@ -2810,7 +2810,7 @@ cipd_version: "refs/heads/master" cmd: "recipes" } - properties: "{\"$build/chromium_tests\":{\"bucketed_triggers\":true},\"$build/goma\":{\"enable_ats\":true,\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"builder_group\":\"chromium.gpu\",\"recipe\":\"chromium\"}" + properties: "{\"$build/goma\":{\"enable_ats\":true,\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"builder_group\":\"chromium.gpu\",\"recipe\":\"chromium\"}" execution_timeout_secs: 10800 build_numbers: YES service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com" @@ -2866,7 +2866,7 @@ cipd_version: "refs/heads/master" cmd: "recipes" } - properties: "{\"$build/chromium_tests\":{\"bucketed_triggers\":true},\"$build/goma\":{\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"chromium.gpu\",\"recipe\":\"chromium\"}" + properties: "{\"$build/goma\":{\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"chromium.gpu\",\"recipe\":\"chromium\"}" execution_timeout_secs: 10800 build_numbers: YES service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com" @@ -2922,7 +2922,7 @@ cipd_version: "refs/heads/master" cmd: "recipes" } - properties: "{\"$build/chromium_tests\":{\"bucketed_triggers\":true},\"$build/goma\":{\"enable_ats\":true,\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"chromium.gpu\",\"recipe\":\"chromium\"}" + properties: "{\"$build/goma\":{\"enable_ats\":true,\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"chromium.gpu\",\"recipe\":\"chromium\"}" execution_timeout_secs: 10800 build_numbers: YES service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com" @@ -3383,7 +3383,7 @@ cipd_version: "refs/heads/master" cmd: "recipes" } - properties: "{\"$build/chromium_tests\":{\"bucketed_triggers\":true},\"$build/goma\":{\"enable_ats\":true,\"jobs\":500,\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"chromium.memory\",\"recipe\":\"chromium\"}" + properties: "{\"$build/goma\":{\"enable_ats\":true,\"jobs\":500,\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"chromium.memory\",\"recipe\":\"chromium\"}" execution_timeout_secs: 10800 build_numbers: YES service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com" @@ -3412,7 +3412,7 @@ cipd_version: "refs/heads/master" cmd: "recipes" } - properties: "{\"$build/chromium_tests\":{\"bucketed_triggers\":true},\"$build/goma\":{\"enable_ats\":true,\"jobs\":500,\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"chromium.memory\",\"recipe\":\"chromium\"}" + properties: "{\"$build/goma\":{\"enable_ats\":true,\"jobs\":500,\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"chromium.memory\",\"recipe\":\"chromium\"}" execution_timeout_secs: 10800 build_numbers: YES service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com" @@ -3441,7 +3441,7 @@ cipd_version: "refs/heads/master" cmd: "recipes" } - properties: "{\"$build/chromium_tests\":{\"bucketed_triggers\":true},\"$build/goma\":{\"enable_ats\":true,\"jobs\":500,\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"chromium.memory\",\"recipe\":\"chromium\"}" + properties: "{\"$build/goma\":{\"enable_ats\":true,\"jobs\":500,\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"chromium.memory\",\"recipe\":\"chromium\"}" execution_timeout_secs: 10800 build_numbers: YES service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com" @@ -3470,7 +3470,7 @@ cipd_version: "refs/heads/master" cmd: "recipes" } - properties: "{\"$build/chromium_tests\":{\"bucketed_triggers\":true},\"$build/goma\":{\"enable_ats\":true,\"jobs\":500,\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"builder_group\":\"chromium.linux\",\"recipe\":\"chromium\"}" + properties: "{\"$build/goma\":{\"enable_ats\":true,\"jobs\":500,\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"builder_group\":\"chromium.linux\",\"recipe\":\"chromium\"}" execution_timeout_secs: 10800 build_numbers: YES service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com" @@ -3499,7 +3499,7 @@ cipd_version: "refs/heads/master" cmd: "recipes" } - properties: "{\"$build/chromium_tests\":{\"bucketed_triggers\":true},\"$build/goma\":{\"enable_ats\":true,\"jobs\":500,\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"chromium.linux\",\"recipe\":\"chromium\"}" + properties: "{\"$build/goma\":{\"enable_ats\":true,\"jobs\":500,\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"chromium.linux\",\"recipe\":\"chromium\"}" execution_timeout_secs: 10800 build_numbers: YES service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com" @@ -4224,7 +4224,7 @@ cipd_version: "refs/heads/master" cmd: "recipes" } - properties: "{\"$build/chromium_tests\":{\"bucketed_triggers\":true},\"$build/goma\":{\"enable_ats\":true,\"jobs\":500,\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"chromium.linux\",\"recipe\":\"chromium\"}" + properties: "{\"$build/goma\":{\"enable_ats\":true,\"jobs\":500,\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"chromium.linux\",\"recipe\":\"chromium\"}" execution_timeout_secs: 10800 build_numbers: YES service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com" @@ -4253,7 +4253,7 @@ cipd_version: "refs/heads/master" cmd: "recipes" } - properties: "{\"$build/chromium_tests\":{\"bucketed_triggers\":true},\"$build/goma\":{\"enable_ats\":true,\"jobs\":500,\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"chromium.linux\",\"recipe\":\"chromium\"}" + properties: "{\"$build/goma\":{\"enable_ats\":true,\"jobs\":500,\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"chromium.linux\",\"recipe\":\"chromium\"}" execution_timeout_secs: 10800 build_numbers: YES service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com" @@ -4282,7 +4282,7 @@ cipd_version: "refs/heads/master" cmd: "recipes" } - properties: "{\"$build/chromium_tests\":{\"bucketed_triggers\":true},\"$build/goma\":{\"enable_ats\":true,\"jobs\":500,\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"chromium.linux\",\"recipe\":\"chromium\"}" + properties: "{\"$build/goma\":{\"enable_ats\":true,\"jobs\":500,\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"chromium.linux\",\"recipe\":\"chromium\"}" execution_timeout_secs: 10800 build_numbers: YES service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com" @@ -4311,7 +4311,7 @@ cipd_version: "refs/heads/master" cmd: "recipes" } - properties: "{\"$build/chromium_tests\":{\"bucketed_triggers\":true},\"$build/goma\":{\"enable_ats\":true,\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"builder_group\":\"chromium.gpu\",\"recipe\":\"chromium\"}" + properties: "{\"$build/goma\":{\"enable_ats\":true,\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"builder_group\":\"chromium.gpu\",\"recipe\":\"chromium\"}" execution_timeout_secs: 10800 build_numbers: YES service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com" @@ -4340,7 +4340,7 @@ cipd_version: "refs/heads/master" cmd: "recipes" } - properties: "{\"$build/chromium_tests\":{\"bucketed_triggers\":true},\"$build/goma\":{\"enable_ats\":true,\"jobs\":500,\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"chromium.memory\",\"recipe\":\"chromium\"}" + properties: "{\"$build/goma\":{\"enable_ats\":true,\"jobs\":500,\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"chromium.memory\",\"recipe\":\"chromium\"}" execution_timeout_secs: 10800 build_numbers: YES service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com" @@ -4369,7 +4369,7 @@ cipd_version: "refs/heads/master" cmd: "recipes" } - properties: "{\"$build/chromium_tests\":{\"bucketed_triggers\":true},\"$build/goma\":{\"enable_ats\":true,\"jobs\":500,\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"chromium.memory\",\"recipe\":\"chromium\"}" + properties: "{\"$build/goma\":{\"enable_ats\":true,\"jobs\":500,\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"chromium.memory\",\"recipe\":\"chromium\"}" execution_timeout_secs: 10800 build_numbers: YES service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com" @@ -4398,7 +4398,7 @@ cipd_version: "refs/heads/master" cmd: "recipes" } - properties: "{\"$build/chromium_tests\":{\"bucketed_triggers\":true},\"$build/goma\":{\"jobs\":500},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"builder_group\":\"chromium.linux\",\"recipe\":\"chromium\"}" + properties: "{\"$build/goma\":{\"jobs\":500},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"builder_group\":\"chromium.linux\",\"recipe\":\"chromium\"}" execution_timeout_secs: 10800 build_numbers: YES service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com" @@ -4427,7 +4427,7 @@ cipd_version: "refs/heads/master" cmd: "recipes" } - properties: "{\"$build/chromium_tests\":{\"bucketed_triggers\":true},\"$build/goma\":{\"enable_ats\":true,\"jobs\":500,\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"chromium.linux\",\"recipe\":\"chromium\"}" + properties: "{\"$build/goma\":{\"enable_ats\":true,\"jobs\":500,\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"chromium.linux\",\"recipe\":\"chromium\"}" execution_timeout_secs: 10800 build_numbers: YES service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com" @@ -4768,7 +4768,7 @@ cipd_version: "refs/heads/master" cmd: "recipes" } - properties: "{\"$build/chromium_tests\":{\"bucketed_triggers\":true},\"$build/goma\":{\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"chromium.mac\",\"recipe\":\"chromium\"}" + properties: "{\"$build/goma\":{\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"chromium.mac\",\"recipe\":\"chromium\"}" execution_timeout_secs: 10800 build_numbers: YES service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com" @@ -4795,7 +4795,7 @@ cipd_version: "refs/heads/master" cmd: "recipes" } - properties: "{\"$build/chromium_tests\":{\"bucketed_triggers\":true},\"$build/goma\":{\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"chromium.mac\",\"recipe\":\"chromium\"}" + properties: "{\"$build/goma\":{\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"chromium.mac\",\"recipe\":\"chromium\"}" execution_timeout_secs: 10800 build_numbers: YES service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com" @@ -5283,7 +5283,7 @@ cipd_version: "refs/heads/master" cmd: "recipes" } - properties: "{\"$build/chromium_tests\":{\"bucketed_triggers\":true},\"$build/goma\":{\"enable_ats\":true,\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"chromium.gpu\",\"recipe\":\"chromium\"}" + properties: "{\"$build/goma\":{\"enable_ats\":true,\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"chromium.gpu\",\"recipe\":\"chromium\"}" execution_timeout_secs: 10800 build_numbers: YES service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com" @@ -5341,7 +5341,7 @@ cipd_version: "refs/heads/master" cmd: "recipes" } - properties: "{\"$build/chromium_tests\":{\"bucketed_triggers\":true},\"$build/goma\":{\"enable_ats\":true,\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"chromium.gpu\",\"recipe\":\"chromium\"}" + properties: "{\"$build/goma\":{\"enable_ats\":true,\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"chromium.gpu\",\"recipe\":\"chromium\"}" execution_timeout_secs: 10800 build_numbers: YES service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com" @@ -5424,7 +5424,7 @@ cipd_version: "refs/heads/master" cmd: "recipes" } - properties: "{\"$build/chromium_tests\":{\"bucketed_triggers\":true},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"chromium.mac\",\"recipe\":\"chromium\"}" + properties: "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"chromium.mac\",\"recipe\":\"chromium\"}" execution_timeout_secs: 10800 build_numbers: YES service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com" @@ -5453,7 +5453,7 @@ cipd_version: "refs/heads/master" cmd: "recipes" } - properties: "{\"$build/chromium_tests\":{\"bucketed_triggers\":true},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"chromium.mac\",\"recipe\":\"chromium\"}" + properties: "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"chromium.mac\",\"recipe\":\"chromium\"}" execution_timeout_secs: 10800 build_numbers: YES service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com" @@ -5482,7 +5482,7 @@ cipd_version: "refs/heads/master" cmd: "recipes" } - properties: "{\"$build/chromium_tests\":{\"bucketed_triggers\":true},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"chromium.mac\",\"recipe\":\"chromium\"}" + properties: "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"chromium.mac\",\"recipe\":\"chromium\"}" execution_timeout_secs: 10800 build_numbers: YES service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com" @@ -5511,7 +5511,7 @@ cipd_version: "refs/heads/master" cmd: "recipes" } - properties: "{\"$build/chromium_tests\":{\"bucketed_triggers\":true},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"chromium.mac\",\"recipe\":\"chromium\"}" + properties: "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"chromium.mac\",\"recipe\":\"chromium\"}" execution_timeout_secs: 10800 build_numbers: YES service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com" @@ -5540,7 +5540,7 @@ cipd_version: "refs/heads/master" cmd: "recipes" } - properties: "{\"$build/chromium_tests\":{\"bucketed_triggers\":true},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"chromium.mac\",\"recipe\":\"chromium\"}" + properties: "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"chromium.mac\",\"recipe\":\"chromium\"}" execution_timeout_secs: 10800 build_numbers: YES service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com" @@ -5569,7 +5569,7 @@ cipd_version: "refs/heads/master" cmd: "recipes" } - properties: "{\"$build/chromium_tests\":{\"bucketed_triggers\":true},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"chromium.mac\",\"recipe\":\"chromium\"}" + properties: "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"chromium.mac\",\"recipe\":\"chromium\"}" execution_timeout_secs: 10800 build_numbers: YES service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com" @@ -5598,7 +5598,7 @@ cipd_version: "refs/heads/master" cmd: "recipes" } - properties: "{\"$build/chromium_tests\":{\"bucketed_triggers\":true},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"chromium.mac\",\"recipe\":\"chromium\"}" + properties: "{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"chromium.mac\",\"recipe\":\"chromium\"}" execution_timeout_secs: 10800 build_numbers: YES service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com" @@ -5656,7 +5656,7 @@ cipd_version: "refs/heads/master" cmd: "recipes" } - properties: "{\"$build/chromium_tests\":{\"bucketed_triggers\":true},\"$build/goma\":{\"enable_ats\":true,\"jobs\":150,\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"chromium.android\",\"recipe\":\"chromium\"}" + properties: "{\"$build/goma\":{\"enable_ats\":true,\"jobs\":150,\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"chromium.android\",\"recipe\":\"chromium\"}" execution_timeout_secs: 10800 build_numbers: YES service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com" @@ -5858,7 +5858,7 @@ cipd_version: "refs/heads/master" cmd: "recipes" } - properties: "{\"$build/chromium_tests\":{\"bucketed_triggers\":true},\"$build/goma\":{\"enable_ats\":true,\"jobs\":150,\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"chromium.android\",\"recipe\":\"chromium\"}" + properties: "{\"$build/goma\":{\"enable_ats\":true,\"jobs\":150,\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"chromium.android\",\"recipe\":\"chromium\"}" execution_timeout_secs: 10800 build_numbers: YES service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com" @@ -5887,7 +5887,7 @@ cipd_version: "refs/heads/master" cmd: "recipes" } - properties: "{\"$build/chromium_tests\":{\"bucketed_triggers\":true},\"$build/goma\":{\"enable_ats\":true,\"jobs\":150,\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"chromium.android\",\"recipe\":\"chromium\"}" + properties: "{\"$build/goma\":{\"enable_ats\":true,\"jobs\":150,\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"chromium.android\",\"recipe\":\"chromium\"}" execution_timeout_secs: 10800 build_numbers: YES service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com" @@ -6936,7 +6936,7 @@ cipd_version: "refs/heads/master" cmd: "recipes" } - properties: "{\"$build/chromium_tests\":{\"bucketed_triggers\":true},\"$build/goma\":{\"enable_ats\":true,\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"chromium.fyi\",\"recipe\":\"chromium\"}" + properties: "{\"$build/goma\":{\"enable_ats\":true,\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"chromium.fyi\",\"recipe\":\"chromium\"}" execution_timeout_secs: 36000 build_numbers: YES service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com" @@ -7107,7 +7107,7 @@ cipd_version: "refs/heads/master" cmd: "recipes" } - properties: "{\"$build/chromium_tests\":{\"bucketed_triggers\":true},\"$build/goma\":{\"enable_ats\":true,\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"chromium.win\",\"recipe\":\"chromium\"}" + properties: "{\"$build/goma\":{\"enable_ats\":true,\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"chromium.win\",\"recipe\":\"chromium\"}" execution_timeout_secs: 10800 build_numbers: YES service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com" @@ -7219,7 +7219,7 @@ cipd_version: "refs/heads/master" cmd: "recipes" } - properties: "{\"$build/chromium_tests\":{\"bucketed_triggers\":true},\"$build/goma\":{\"enable_ats\":true,\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"chromium.win\",\"recipe\":\"chromium\"}" + properties: "{\"$build/goma\":{\"enable_ats\":true,\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"chromium.win\",\"recipe\":\"chromium\"}" execution_timeout_secs: 10800 build_numbers: YES service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com" @@ -7247,7 +7247,7 @@ cipd_version: "refs/heads/master" cmd: "recipes" } - properties: "{\"$build/chromium_tests\":{\"bucketed_triggers\":true},\"$build/goma\":{\"enable_ats\":true,\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"chromium.win\",\"recipe\":\"chromium\"}" + properties: "{\"$build/goma\":{\"enable_ats\":true,\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"chromium.win\",\"recipe\":\"chromium\"}" execution_timeout_secs: 10800 build_numbers: YES service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com" @@ -7768,7 +7768,7 @@ cipd_version: "refs/heads/master" cmd: "recipes" } - properties: "{\"$build/chromium_tests\":{\"bucketed_triggers\":true},\"$build/goma\":{\"enable_ats\":true,\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"chromium.win\",\"recipe\":\"chromium\"}" + properties: "{\"$build/goma\":{\"enable_ats\":true,\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"chromium.win\",\"recipe\":\"chromium\"}" execution_timeout_secs: 10800 build_numbers: YES service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com" @@ -7910,7 +7910,7 @@ cipd_version: "refs/heads/master" cmd: "recipes" } - properties: "{\"$build/chromium_tests\":{\"bucketed_triggers\":true},\"$build/goma\":{\"enable_ats\":true,\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"chromium.gpu\",\"recipe\":\"chromium\"}" + properties: "{\"$build/goma\":{\"enable_ats\":true,\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"chromium.gpu\",\"recipe\":\"chromium\"}" execution_timeout_secs: 10800 build_numbers: YES service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com" @@ -8168,7 +8168,7 @@ cipd_version: "refs/heads/master" cmd: "recipes" } - properties: "{\"$build/chromium_tests\":{\"bucketed_triggers\":true},\"$build/goma\":{\"enable_ats\":true,\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"chromium.win\",\"recipe\":\"chromium\"}" + properties: "{\"$build/goma\":{\"enable_ats\":true,\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"chromium.win\",\"recipe\":\"chromium\"}" execution_timeout_secs: 10800 build_numbers: YES service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com" @@ -8515,7 +8515,7 @@ cipd_version: "refs/heads/master" cmd: "recipes" } - properties: "{\"$build/chromium_tests\":{\"bucketed_triggers\":true},\"$build/goma\":{\"enable_ats\":true,\"jobs\":150,\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"chromium.android\",\"recipe\":\"chromium\"}" + properties: "{\"$build/goma\":{\"enable_ats\":true,\"jobs\":150,\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"chromium.android\",\"recipe\":\"chromium\"}" execution_timeout_secs: 10800 build_numbers: YES service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com" @@ -8544,7 +8544,7 @@ cipd_version: "refs/heads/master" cmd: "recipes" } - properties: "{\"$build/chromium_tests\":{\"bucketed_triggers\":true},\"$build/goma\":{\"enable_ats\":true,\"jobs\":150,\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"chromium.android\",\"recipe\":\"chromium\"}" + properties: "{\"$build/goma\":{\"enable_ats\":true,\"jobs\":150,\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"chromium.android\",\"recipe\":\"chromium\"}" execution_timeout_secs: 10800 build_numbers: YES service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com" @@ -8660,7 +8660,7 @@ cipd_version: "refs/heads/master" cmd: "recipes" } - properties: "{\"$build/chromium_tests\":{\"bucketed_triggers\":true},\"$build/goma\":{\"enable_ats\":true,\"jobs\":150,\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"chromium.android\",\"recipe\":\"chromium\"}" + properties: "{\"$build/goma\":{\"enable_ats\":true,\"jobs\":150,\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"chromium.android\",\"recipe\":\"chromium\"}" execution_timeout_secs: 10800 build_numbers: YES service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com" @@ -8689,7 +8689,7 @@ cipd_version: "refs/heads/master" cmd: "recipes" } - properties: "{\"$build/chromium_tests\":{\"bucketed_triggers\":true},\"$build/goma\":{\"enable_ats\":true,\"jobs\":150,\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"chromium.android\",\"recipe\":\"chromium\"}" + properties: "{\"$build/goma\":{\"enable_ats\":true,\"jobs\":150,\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"chromium.android\",\"recipe\":\"chromium\"}" execution_timeout_secs: 10800 build_numbers: YES service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com" @@ -8860,7 +8860,7 @@ cipd_version: "refs/heads/master" cmd: "recipes" } - properties: "{\"$build/chromium_tests\":{\"bucketed_triggers\":true},\"$build/goma\":{\"enable_ats\":true,\"jobs\":150,\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"chromium.android\",\"recipe\":\"chromium\"}" + properties: "{\"$build/goma\":{\"enable_ats\":true,\"jobs\":150,\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"chromium.android\",\"recipe\":\"chromium\"}" execution_timeout_secs: 10800 build_numbers: YES service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com" @@ -8889,7 +8889,7 @@ cipd_version: "refs/heads/master" cmd: "recipes" } - properties: "{\"$build/chromium_tests\":{\"bucketed_triggers\":true},\"$build/goma\":{\"enable_ats\":true,\"jobs\":150,\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"chromium.android\",\"recipe\":\"chromium\"}" + properties: "{\"$build/goma\":{\"enable_ats\":true,\"jobs\":150,\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"chromium.android\",\"recipe\":\"chromium\"}" execution_timeout_secs: 10800 build_numbers: YES service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com" @@ -8947,7 +8947,7 @@ cipd_version: "refs/heads/master" cmd: "recipes" } - properties: "{\"$build/chromium_tests\":{\"bucketed_triggers\":true},\"$build/goma\":{\"enable_ats\":true,\"jobs\":150,\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"chromium.android\",\"recipe\":\"chromium\"}" + properties: "{\"$build/goma\":{\"enable_ats\":true,\"jobs\":150,\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"chromium.android\",\"recipe\":\"chromium\"}" execution_timeout_secs: 10800 build_numbers: YES service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com" @@ -9005,7 +9005,7 @@ cipd_version: "refs/heads/master" cmd: "recipes" } - properties: "{\"$build/chromium_tests\":{\"bucketed_triggers\":true},\"$build/goma\":{\"enable_ats\":true,\"jobs\":150,\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"chromium.android\",\"recipe\":\"chromium\"}" + properties: "{\"$build/goma\":{\"enable_ats\":true,\"jobs\":150,\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"chromium.android\",\"recipe\":\"chromium\"}" execution_timeout_secs: 10800 build_numbers: YES service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com" @@ -9034,7 +9034,7 @@ cipd_version: "refs/heads/master" cmd: "recipes" } - properties: "{\"$build/chromium_tests\":{\"bucketed_triggers\":true},\"$build/goma\":{\"enable_ats\":true,\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"chromium\",\"recipe\":\"chromium\"}" + properties: "{\"$build/goma\":{\"enable_ats\":true,\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"chromium\",\"recipe\":\"chromium\"}" execution_timeout_secs: 10800 build_numbers: YES service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com" @@ -9063,7 +9063,7 @@ cipd_version: "refs/heads/master" cmd: "recipes" } - properties: "{\"$build/chromium_tests\":{\"bucketed_triggers\":true},\"$build/goma\":{\"enable_ats\":true,\"jobs\":150,\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"chromium.android\",\"recipe\":\"chromium\"}" + properties: "{\"$build/goma\":{\"enable_ats\":true,\"jobs\":150,\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"chromium.android\",\"recipe\":\"chromium\"}" execution_timeout_secs: 10800 build_numbers: YES service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com" @@ -9092,7 +9092,7 @@ cipd_version: "refs/heads/master" cmd: "recipes" } - properties: "{\"$build/chromium_tests\":{\"bucketed_triggers\":true},\"$build/goma\":{\"enable_ats\":true,\"jobs\":150,\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"chromium.android\",\"recipe\":\"chromium\"}" + properties: "{\"$build/goma\":{\"enable_ats\":true,\"jobs\":150,\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"chromium.android\",\"recipe\":\"chromium\"}" execution_timeout_secs: 10800 build_numbers: YES service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com" @@ -9295,7 +9295,7 @@ cipd_version: "refs/heads/master" cmd: "recipes" } - properties: "{\"$build/chromium_tests\":{\"bucketed_triggers\":true},\"$build/goma\":{\"enable_ats\":true,\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"chromium.chromiumos\",\"recipe\":\"chromium\"}" + properties: "{\"$build/goma\":{\"enable_ats\":true,\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"chromium.chromiumos\",\"recipe\":\"chromium\"}" execution_timeout_secs: 10800 build_numbers: YES service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com" @@ -9353,7 +9353,7 @@ cipd_version: "refs/heads/master" cmd: "recipes" } - properties: "{\"$build/chromium_tests\":{\"bucketed_triggers\":true},\"$build/goma\":{\"enable_ats\":true,\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"chromium.chromiumos\",\"recipe\":\"chromium\"}" + properties: "{\"$build/goma\":{\"enable_ats\":true,\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"chromium.chromiumos\",\"recipe\":\"chromium\"}" execution_timeout_secs: 10800 build_numbers: YES service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com" @@ -9411,7 +9411,7 @@ cipd_version: "refs/heads/master" cmd: "recipes" } - properties: "{\"$build/chromium_tests\":{\"bucketed_triggers\":true},\"$build/goma\":{\"enable_ats\":true,\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"chromium.chromiumos\",\"recipe\":\"chromium\"}" + properties: "{\"$build/goma\":{\"enable_ats\":true,\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"chromium.chromiumos\",\"recipe\":\"chromium\"}" execution_timeout_secs: 10800 build_numbers: YES service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com" @@ -9469,7 +9469,7 @@ cipd_version: "refs/heads/master" cmd: "recipes" } - properties: "{\"$build/chromium_tests\":{\"bucketed_triggers\":true},\"$build/goma\":{\"enable_ats\":true,\"jobs\":500,\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"chromium.linux\",\"recipe\":\"chromium\"}" + properties: "{\"$build/goma\":{\"enable_ats\":true,\"jobs\":500,\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"chromium.linux\",\"recipe\":\"chromium\"}" execution_timeout_secs: 10800 build_numbers: YES service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com" @@ -9614,7 +9614,7 @@ cipd_version: "refs/heads/master" cmd: "recipes" } - properties: "{\"$build/chromium_tests\":{\"bucketed_triggers\":true},\"$build/goma\":{\"enable_ats\":true,\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"chromium\",\"recipe\":\"chromium\"}" + properties: "{\"$build/goma\":{\"enable_ats\":true,\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"chromium\",\"recipe\":\"chromium\"}" execution_timeout_secs: 36000 build_numbers: YES service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com" @@ -9643,7 +9643,7 @@ cipd_version: "refs/heads/master" cmd: "recipes" } - properties: "{\"$build/chromium_tests\":{\"bucketed_triggers\":true},\"$build/goma\":{\"enable_ats\":true,\"jobs\":500,\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"chromium.linux\",\"recipe\":\"chromium\"}" + properties: "{\"$build/goma\":{\"enable_ats\":true,\"jobs\":500,\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"chromium.linux\",\"recipe\":\"chromium\"}" execution_timeout_secs: 10800 build_numbers: YES service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com" @@ -9699,11 +9699,11 @@ cipd_version: "refs/heads/master" cmd: "recipes" } - properties: "{\"$build/goma\":{\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"chromium.fyi\",\"recipe\":\"chromium\",\"xcode_build_version\":\"12a8189h\"}" + properties: "{\"$build/goma\":{\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"chromium.fyi\",\"recipe\":\"chromium\",\"xcode_build_version\":\"12a8189n\"}" execution_timeout_secs: 36000 caches { - name: "xcode_ios_12a8189h" - path: "xcode_ios_12a8189h.app" + name: "xcode_ios_12a8189n" + path: "xcode_ios_12a8189n.app" } build_numbers: YES service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com" @@ -9730,11 +9730,11 @@ cipd_version: "refs/heads/master" cmd: "recipes" } - properties: "{\"$build/goma\":{\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"chromium.mac\",\"recipe\":\"chromium\",\"xcode_build_version\":\"12a8189h\"}" + properties: "{\"$build/goma\":{\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"chromium.mac\",\"recipe\":\"chromium\",\"xcode_build_version\":\"12a8189n\"}" execution_timeout_secs: 10800 caches { - name: "xcode_ios_12a8189h" - path: "xcode_ios_12a8189h.app" + name: "xcode_ios_12a8189n" + path: "xcode_ios_12a8189n.app" } build_numbers: YES service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com" @@ -9761,11 +9761,11 @@ cipd_version: "refs/heads/master" cmd: "recipes" } - properties: "{\"$build/chromium_tests\":{\"bucketed_triggers\":true},\"$build/goma\":{\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"chromium.mac\",\"recipe\":\"chromium\",\"xcode_build_version\":\"12a8189h\"}" + properties: "{\"$build/goma\":{\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"chromium.mac\",\"recipe\":\"chromium\",\"xcode_build_version\":\"12a8189n\"}" execution_timeout_secs: 10800 caches { - name: "xcode_ios_12a8189h" - path: "xcode_ios_12a8189h.app" + name: "xcode_ios_12a8189n" + path: "xcode_ios_12a8189n.app" } build_numbers: YES service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com" @@ -9793,11 +9793,11 @@ cipd_version: "refs/heads/master" cmd: "recipes" } - properties: "{\"$build/code_coverage\":{\"coverage_exclude_sources\":\"ios_test_files_and_test_utils\",\"coverage_test_types\":[\"overall\",\"unit\"],\"use_clang_coverage\":true},\"$build/goma\":{\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"chromium.fyi\",\"recipe\":\"chromium\",\"xcode_build_version\":\"12a8189h\"}" + properties: "{\"$build/code_coverage\":{\"coverage_exclude_sources\":\"ios_test_files_and_test_utils\",\"coverage_test_types\":[\"overall\",\"unit\"],\"use_clang_coverage\":true},\"$build/goma\":{\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"chromium.fyi\",\"recipe\":\"chromium\",\"xcode_build_version\":\"12a8189n\"}" execution_timeout_secs: 72000 caches { - name: "xcode_ios_12a8189h" - path: "xcode_ios_12a8189h.app" + name: "xcode_ios_12a8189n" + path: "xcode_ios_12a8189n.app" } build_numbers: YES service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com" @@ -9824,11 +9824,11 @@ cipd_version: "refs/heads/master" cmd: "recipes" } - properties: "{\"$build/goma\":{\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"chromium.fyi\",\"recipe\":\"chromium\",\"xcode_build_version\":\"12a8189h\"}" + properties: "{\"$build/goma\":{\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"chromium.fyi\",\"recipe\":\"chromium\",\"xcode_build_version\":\"12a8189n\"}" execution_timeout_secs: 36000 caches { - name: "xcode_ios_12a8189h" - path: "xcode_ios_12a8189h.app" + name: "xcode_ios_12a8189n" + path: "xcode_ios_12a8189n.app" } build_numbers: YES service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com" @@ -9855,7 +9855,7 @@ cipd_version: "refs/heads/master" cmd: "recipes" } - properties: "{\"$build/chromium_tests\":{\"bucketed_triggers\":true},\"$build/goma\":{\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"chromium.fyi\",\"recipe\":\"chromium\",\"xcode_build_version\":\"11e146\"}" + properties: "{\"$build/goma\":{\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"chromium.fyi\",\"recipe\":\"chromium\",\"xcode_build_version\":\"11e146\"}" execution_timeout_secs: 36000 caches { name: "xcode_ios_11e146" @@ -9886,11 +9886,11 @@ cipd_version: "refs/heads/master" cmd: "recipes" } - properties: "{\"$build/chromium_tests\":{\"bucketed_triggers\":true},\"$build/goma\":{\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"chromium.mac\",\"recipe\":\"chromium\",\"xcode_build_version\":\"12a8189h\"}" + properties: "{\"$build/goma\":{\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"chromium.mac\",\"recipe\":\"chromium\",\"xcode_build_version\":\"12a8189n\"}" execution_timeout_secs: 10800 caches { - name: "xcode_ios_12a8189h" - path: "xcode_ios_12a8189h.app" + name: "xcode_ios_12a8189n" + path: "xcode_ios_12a8189n.app" } build_numbers: YES service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com" @@ -9917,11 +9917,11 @@ cipd_version: "refs/heads/master" cmd: "recipes" } - properties: "{\"$build/goma\":{\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"chromium.fyi\",\"recipe\":\"chromium\",\"xcode_build_version\":\"12a8189h\"}" + properties: "{\"$build/goma\":{\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"chromium.fyi\",\"recipe\":\"chromium\",\"xcode_build_version\":\"12a8189n\"}" execution_timeout_secs: 36000 caches { - name: "xcode_ios_12a8189h" - path: "xcode_ios_12a8189h.app" + name: "xcode_ios_12a8189n" + path: "xcode_ios_12a8189n.app" } build_numbers: YES service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com" @@ -9948,11 +9948,11 @@ cipd_version: "refs/heads/master" cmd: "recipes" } - properties: "{\"$build/goma\":{\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"chromium.mac\",\"recipe\":\"chromium\",\"xcode_build_version\":\"12a8189h\"}" + properties: "{\"$build/goma\":{\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"chromium.mac\",\"recipe\":\"chromium\",\"xcode_build_version\":\"12a8189n\"}" execution_timeout_secs: 10800 caches { - name: "xcode_ios_12a8189h" - path: "xcode_ios_12a8189h.app" + name: "xcode_ios_12a8189n" + path: "xcode_ios_12a8189n.app" } build_numbers: YES service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com" @@ -10010,11 +10010,11 @@ cipd_version: "refs/heads/master" cmd: "recipes" } - properties: "{\"$build/goma\":{\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"chromium.fyi\",\"recipe\":\"chromium\",\"xcode_build_version\":\"12a8189h\"}" + properties: "{\"$build/goma\":{\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"chromium.fyi\",\"recipe\":\"chromium\",\"xcode_build_version\":\"12a8189n\"}" execution_timeout_secs: 36000 caches { - name: "xcode_ios_12a8189h" - path: "xcode_ios_12a8189h.app" + name: "xcode_ios_12a8189n" + path: "xcode_ios_12a8189n.app" } build_numbers: YES service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com" @@ -10041,11 +10041,11 @@ cipd_version: "refs/heads/master" cmd: "recipes" } - properties: "{\"$build/goma\":{\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"chromium.fyi\",\"recipe\":\"chromium\",\"xcode_build_version\":\"12a8189h\"}" + properties: "{\"$build/goma\":{\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"chromium.fyi\",\"recipe\":\"chromium\",\"xcode_build_version\":\"12a8189n\"}" execution_timeout_secs: 36000 caches { - name: "xcode_ios_12a8189h" - path: "xcode_ios_12a8189h.app" + name: "xcode_ios_12a8189n" + path: "xcode_ios_12a8189n.app" } build_numbers: YES service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com" @@ -10072,11 +10072,11 @@ cipd_version: "refs/heads/master" cmd: "recipes" } - properties: "{\"$build/goma\":{\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"chromium.fyi\",\"recipe\":\"chromium\",\"xcode_build_version\":\"12a8189h\"}" + properties: "{\"$build/goma\":{\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"chromium.fyi\",\"recipe\":\"chromium\",\"xcode_build_version\":\"12a8189n\"}" execution_timeout_secs: 36000 caches { - name: "xcode_ios_12a8189h" - path: "xcode_ios_12a8189h.app" + name: "xcode_ios_12a8189n" + path: "xcode_ios_12a8189n.app" } build_numbers: YES service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com" @@ -10103,11 +10103,11 @@ cipd_version: "refs/heads/master" cmd: "recipes" } - properties: "{\"$build/goma\":{\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"chromium.fyi\",\"recipe\":\"chromium\",\"xcode_build_version\":\"12a8189h\"}" + properties: "{\"$build/goma\":{\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"chromium.fyi\",\"recipe\":\"chromium\",\"xcode_build_version\":\"12a8189n\"}" execution_timeout_secs: 36000 caches { - name: "xcode_ios_12a8189h" - path: "xcode_ios_12a8189h.app" + name: "xcode_ios_12a8189n" + path: "xcode_ios_12a8189n.app" } build_numbers: YES service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com" @@ -10134,11 +10134,11 @@ cipd_version: "refs/heads/master" cmd: "recipes" } - properties: "{\"$build/goma\":{\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"chromium.fyi\",\"recipe\":\"chromium\",\"xcode_build_version\":\"12a8189h\"}" + properties: "{\"$build/goma\":{\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"chromium.fyi\",\"recipe\":\"chromium\",\"xcode_build_version\":\"12a8189n\"}" execution_timeout_secs: 36000 caches { - name: "xcode_ios_12a8189h" - path: "xcode_ios_12a8189h.app" + name: "xcode_ios_12a8189n" + path: "xcode_ios_12a8189n.app" } build_numbers: YES service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com" @@ -10428,7 +10428,7 @@ cipd_version: "refs/heads/master" cmd: "recipes" } - properties: "{\"$build/chromium_tests\":{\"bucketed_triggers\":true},\"$build/goma\":{\"enable_ats\":true,\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"chromium.chromiumos\",\"recipe\":\"chromium\"}" + properties: "{\"$build/goma\":{\"enable_ats\":true,\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"chromium.chromiumos\",\"recipe\":\"chromium\"}" execution_timeout_secs: 10800 build_numbers: YES service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com" @@ -10457,7 +10457,7 @@ cipd_version: "refs/heads/master" cmd: "recipes" } - properties: "{\"$build/chromium_tests\":{\"bucketed_triggers\":true},\"$build/goma\":{\"enable_ats\":true,\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"chromium.chromiumos\",\"recipe\":\"chromium\"}" + properties: "{\"$build/goma\":{\"enable_ats\":true,\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"chromium.chromiumos\",\"recipe\":\"chromium\"}" execution_timeout_secs: 14400 build_numbers: YES service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com" @@ -10660,7 +10660,7 @@ cipd_version: "refs/heads/master" cmd: "recipes" } - properties: "{\"$build/chromium_tests\":{\"bucketed_triggers\":true},\"$build/goma\":{\"enable_ats\":true,\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"chromium.chromiumos\",\"recipe\":\"chromium\"}" + properties: "{\"$build/goma\":{\"enable_ats\":true,\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"chromium.chromiumos\",\"recipe\":\"chromium\"}" execution_timeout_secs: 10800 build_numbers: YES service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com" @@ -10718,7 +10718,7 @@ cipd_version: "refs/heads/master" cmd: "recipes" } - properties: "{\"$build/chromium_tests\":{\"bucketed_triggers\":true},\"$build/goma\":{\"enable_ats\":true,\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"chromium.chromiumos\",\"recipe\":\"chromium\"}" + properties: "{\"$build/goma\":{\"enable_ats\":true,\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"chromium.chromiumos\",\"recipe\":\"chromium\"}" execution_timeout_secs: 10800 build_numbers: YES service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com" @@ -10746,7 +10746,7 @@ cipd_version: "refs/heads/master" cmd: "recipes" } - properties: "{\"$build/chromium_tests\":{\"bucketed_triggers\":true},\"$build/goma\":{\"enable_ats\":true,\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"chromium\",\"recipe\":\"chromium\"}" + properties: "{\"$build/goma\":{\"enable_ats\":true,\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"chromium\",\"recipe\":\"chromium\"}" execution_timeout_secs: 36000 build_numbers: YES service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com" @@ -10775,7 +10775,7 @@ cipd_version: "refs/heads/master" cmd: "recipes" } - properties: "{\"$build/chromium_tests\":{\"bucketed_triggers\":true},\"$build/goma\":{\"enable_ats\":true,\"jobs\":500,\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"chromium.linux\",\"recipe\":\"chromium\"}" + properties: "{\"$build/goma\":{\"enable_ats\":true,\"jobs\":500,\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"chromium.linux\",\"recipe\":\"chromium\"}" execution_timeout_secs: 10800 build_numbers: YES service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com" @@ -11207,7 +11207,7 @@ cipd_version: "refs/heads/master" cmd: "recipes" } - properties: "{\"$build/chromium_tests\":{\"bucketed_triggers\":true},\"$build/goma\":{\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"chromium.mac\",\"recipe\":\"chromium\"}" + properties: "{\"$build/goma\":{\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"chromium.mac\",\"recipe\":\"chromium\"}" execution_timeout_secs: 10800 build_numbers: YES service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com" @@ -11805,7 +11805,7 @@ cipd_version: "refs/heads/master" cmd: "recipes" } - properties: "{\"$build/chromium_tests\":{\"bucketed_triggers\":true},\"$build/goma\":{\"enable_ats\":true,\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"chromium\",\"recipe\":\"chromium\"}" + properties: "{\"$build/goma\":{\"enable_ats\":true,\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"chromium\",\"recipe\":\"chromium\"}" execution_timeout_secs: 21600 build_numbers: YES service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com" @@ -12289,7 +12289,7 @@ cipd_version: "refs/heads/master" cmd: "recipes" } - properties: "{\"$build/chromium_tests\":{\"bucketed_triggers\":true},\"$build/goma\":{\"enable_ats\":true,\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"chromium\",\"recipe\":\"chromium\"}" + properties: "{\"$build/goma\":{\"enable_ats\":true,\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"chromium\",\"recipe\":\"chromium\"}" execution_timeout_secs: 21600 build_numbers: YES service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com" @@ -12335,2364 +12335,6 @@ } } buckets { - name: "ci-m84" - acls { - role: WRITER - group: "google/luci-task-force@google.com" - } - acls { - group: "all" - } - acls { - role: SCHEDULER - group: "project-chromium-ci-schedulers" - } - swarming { - builders { - name: "Android Release (Nexus 5X)" - swarming_host: "chromium-swarm.appspot.com" - swarming_tags: "vpython:native-python-wrapper" - dimensions: "builderless:1" - dimensions: "cores:8" - dimensions: "cpu:x86-64" - dimensions: "os:Ubuntu-16.04" - dimensions: "pool:luci.chromium.ci" - dimensions: "ssd:0" - exe { - cipd_package: "infra/recipe_bundles/chromium.googlesource.com/chromium/tools/build" - cipd_version: "refs/heads/master" - cmd: "recipes" - } - properties: "{\"$build/chromium_tests\":{\"bucketed_triggers\":true},\"$build/goma\":{\"enable_ats\":true,\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"chromium.gpu\",\"recipe\":\"chromium\"}" - execution_timeout_secs: 10800 - build_numbers: YES - service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com" - resultdb { - enable: true - bq_exports { - project: "luci-resultdb" - dataset: "chromium" - table: "ci_test_results" - test_results {} - } - } - } - builders { - name: "Android WebView M (dbg)" - swarming_host: "chromium-swarm.appspot.com" - swarming_tags: "vpython:native-python-wrapper" - dimensions: "builderless:1" - dimensions: "cores:8" - dimensions: "cpu:x86-64" - dimensions: "os:Ubuntu-16.04" - dimensions: "pool:luci.chromium.ci" - dimensions: "ssd:0" - exe { - cipd_package: "infra/recipe_bundles/chromium.googlesource.com/chromium/tools/build" - cipd_version: "refs/heads/master" - cmd: "recipes" - } - properties: "{\"$build/chromium_tests\":{\"bucketed_triggers\":true},\"$build/goma\":{\"enable_ats\":true,\"jobs\":150,\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"chromium.android\",\"recipe\":\"chromium\"}" - execution_timeout_secs: 10800 - build_numbers: YES - service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com" - resultdb { - enable: true - bq_exports { - project: "luci-resultdb" - dataset: "chromium" - table: "ci_test_results" - test_results {} - } - } - } - builders { - name: "Android WebView N (dbg)" - swarming_host: "chromium-swarm.appspot.com" - swarming_tags: "vpython:native-python-wrapper" - dimensions: "builderless:1" - dimensions: "cores:8" - dimensions: "cpu:x86-64" - dimensions: "os:Ubuntu-16.04" - dimensions: "pool:luci.chromium.ci" - dimensions: "ssd:0" - exe { - cipd_package: "infra/recipe_bundles/chromium.googlesource.com/chromium/tools/build" - cipd_version: "refs/heads/master" - cmd: "recipes" - } - properties: "{\"$build/chromium_tests\":{\"bucketed_triggers\":true},\"$build/goma\":{\"enable_ats\":true,\"jobs\":150,\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"chromium.android\",\"recipe\":\"chromium\"}" - execution_timeout_secs: 10800 - build_numbers: YES - service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com" - resultdb { - enable: true - bq_exports { - project: "luci-resultdb" - dataset: "chromium" - table: "ci_test_results" - test_results {} - } - } - } - builders { - name: "Android WebView O (dbg)" - swarming_host: "chromium-swarm.appspot.com" - swarming_tags: "vpython:native-python-wrapper" - dimensions: "builderless:1" - dimensions: "cores:8" - dimensions: "cpu:x86-64" - dimensions: "os:Ubuntu-16.04" - dimensions: "pool:luci.chromium.ci" - dimensions: "ssd:0" - exe { - cipd_package: "infra/recipe_bundles/chromium.googlesource.com/chromium/tools/build" - cipd_version: "refs/heads/master" - cmd: "recipes" - } - properties: "{\"$build/chromium_tests\":{\"bucketed_triggers\":true},\"$build/goma\":{\"enable_ats\":true,\"jobs\":150,\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"chromium.android\",\"recipe\":\"chromium\"}" - execution_timeout_secs: 10800 - build_numbers: YES - service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com" - resultdb { - enable: true - bq_exports { - project: "luci-resultdb" - dataset: "chromium" - table: "ci_test_results" - test_results {} - } - } - } - builders { - name: "Android WebView P (dbg)" - swarming_host: "chromium-swarm.appspot.com" - swarming_tags: "vpython:native-python-wrapper" - dimensions: "builderless:1" - dimensions: "cores:8" - dimensions: "cpu:x86-64" - dimensions: "os:Ubuntu-16.04" - dimensions: "pool:luci.chromium.ci" - dimensions: "ssd:0" - exe { - cipd_package: "infra/recipe_bundles/chromium.googlesource.com/chromium/tools/build" - cipd_version: "refs/heads/master" - cmd: "recipes" - } - properties: "{\"$build/chromium_tests\":{\"bucketed_triggers\":true},\"$build/goma\":{\"enable_ats\":true,\"jobs\":150,\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"chromium.android\",\"recipe\":\"chromium\"}" - execution_timeout_secs: 10800 - build_numbers: YES - service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com" - resultdb { - enable: true - bq_exports { - project: "luci-resultdb" - dataset: "chromium" - table: "ci_test_results" - test_results {} - } - } - } - builders { - name: "Android arm Builder (dbg)" - swarming_host: "chromium-swarm.appspot.com" - swarming_tags: "vpython:native-python-wrapper" - dimensions: "builderless:1" - dimensions: "cores:8" - dimensions: "cpu:x86-64" - dimensions: "os:Ubuntu-16.04" - dimensions: "pool:luci.chromium.ci" - dimensions: "ssd:0" - exe { - cipd_package: "infra/recipe_bundles/chromium.googlesource.com/chromium/tools/build" - cipd_version: "refs/heads/master" - cmd: "recipes" - } - properties: "{\"$build/chromium_tests\":{\"bucketed_triggers\":true},\"$build/goma\":{\"enable_ats\":true,\"jobs\":150,\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"chromium.android\",\"recipe\":\"chromium\"}" - execution_timeout_secs: 14400 - build_numbers: YES - service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com" - resultdb { - enable: true - bq_exports { - project: "luci-resultdb" - dataset: "chromium" - table: "ci_test_results" - test_results {} - } - } - } - builders { - name: "Android arm64 Builder (dbg)" - swarming_host: "chromium-swarm.appspot.com" - swarming_tags: "vpython:native-python-wrapper" - dimensions: "builderless:1" - dimensions: "cores:8" - dimensions: "cpu:x86-64" - dimensions: "os:Ubuntu-16.04" - dimensions: "pool:luci.chromium.ci" - dimensions: "ssd:0" - exe { - cipd_package: "infra/recipe_bundles/chromium.googlesource.com/chromium/tools/build" - cipd_version: "refs/heads/master" - cmd: "recipes" - } - properties: "{\"$build/chromium_tests\":{\"bucketed_triggers\":true},\"$build/goma\":{\"enable_ats\":true,\"jobs\":500,\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"chromium.android\",\"recipe\":\"chromium\"}" - execution_timeout_secs: 14400 - build_numbers: YES - service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com" - resultdb { - enable: true - bq_exports { - project: "luci-resultdb" - dataset: "chromium" - table: "ci_test_results" - test_results {} - } - } - } - builders { - name: "Android x64 Builder (dbg)" - swarming_host: "chromium-swarm.appspot.com" - swarming_tags: "vpython:native-python-wrapper" - dimensions: "builderless:1" - dimensions: "cores:8" - dimensions: "cpu:x86-64" - dimensions: "os:Ubuntu-16.04" - dimensions: "pool:luci.chromium.ci" - dimensions: "ssd:0" - exe { - cipd_package: "infra/recipe_bundles/chromium.googlesource.com/chromium/tools/build" - cipd_version: "refs/heads/master" - cmd: "recipes" - } - properties: "{\"$build/chromium_tests\":{\"bucketed_triggers\":true},\"$build/goma\":{\"enable_ats\":true,\"jobs\":150,\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"chromium.android\",\"recipe\":\"chromium\"}" - execution_timeout_secs: 14400 - build_numbers: YES - service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com" - resultdb { - enable: true - bq_exports { - project: "luci-resultdb" - dataset: "chromium" - table: "ci_test_results" - test_results {} - } - } - } - builders { - name: "Android x86 Builder (dbg)" - swarming_host: "chromium-swarm.appspot.com" - swarming_tags: "vpython:native-python-wrapper" - dimensions: "builderless:1" - dimensions: "cores:8" - dimensions: "cpu:x86-64" - dimensions: "os:Ubuntu-16.04" - dimensions: "pool:luci.chromium.ci" - dimensions: "ssd:0" - exe { - cipd_package: "infra/recipe_bundles/chromium.googlesource.com/chromium/tools/build" - cipd_version: "refs/heads/master" - cmd: "recipes" - } - properties: "{\"$build/chromium_tests\":{\"bucketed_triggers\":true},\"$build/goma\":{\"enable_ats\":true,\"jobs\":150,\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"chromium.android\",\"recipe\":\"chromium\"}" - execution_timeout_secs: 10800 - build_numbers: YES - service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com" - resultdb { - enable: true - bq_exports { - project: "luci-resultdb" - dataset: "chromium" - table: "ci_test_results" - test_results {} - } - } - } - builders { - name: "Cast Android (dbg)" - swarming_host: "chromium-swarm.appspot.com" - swarming_tags: "vpython:native-python-wrapper" - dimensions: "builderless:1" - dimensions: "cores:8" - dimensions: "cpu:x86-64" - dimensions: "os:Ubuntu-16.04" - dimensions: "pool:luci.chromium.ci" - dimensions: "ssd:0" - exe { - cipd_package: "infra/recipe_bundles/chromium.googlesource.com/chromium/tools/build" - cipd_version: "refs/heads/master" - cmd: "recipes" - } - properties: "{\"$build/chromium_tests\":{\"bucketed_triggers\":true},\"$build/goma\":{\"enable_ats\":true,\"jobs\":150,\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"chromium.android\",\"recipe\":\"chromium\"}" - execution_timeout_secs: 10800 - build_numbers: YES - service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com" - resultdb { - enable: true - bq_exports { - project: "luci-resultdb" - dataset: "chromium" - table: "ci_test_results" - test_results {} - } - } - } - builders { - name: "Cast Linux" - swarming_host: "chromium-swarm.appspot.com" - swarming_tags: "vpython:native-python-wrapper" - dimensions: "builderless:1" - dimensions: "cores:8" - dimensions: "cpu:x86-64" - dimensions: "os:Ubuntu-16.04" - dimensions: "pool:luci.chromium.ci" - dimensions: "ssd:0" - exe { - cipd_package: "infra/recipe_bundles/chromium.googlesource.com/chromium/tools/build" - cipd_version: "refs/heads/master" - cmd: "recipes" - } - properties: "{\"$build/chromium_tests\":{\"bucketed_triggers\":true},\"$build/goma\":{\"enable_ats\":true,\"jobs\":50,\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"chromium.linux\",\"recipe\":\"chromium\"}" - execution_timeout_secs: 10800 - build_numbers: YES - service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com" - resultdb { - enable: true - bq_exports { - project: "luci-resultdb" - dataset: "chromium" - table: "ci_test_results" - test_results {} - } - } - } - builders { - name: "Dawn Linux x64 DEPS Builder" - swarming_host: "chromium-swarm.appspot.com" - swarming_tags: "vpython:native-python-wrapper" - dimensions: "builderless:1" - dimensions: "cores:8" - dimensions: "cpu:x86-64" - dimensions: "os:Ubuntu-16.04" - dimensions: "pool:luci.chromium.ci" - dimensions: "ssd:0" - exe { - cipd_package: "infra/recipe_bundles/chromium.googlesource.com/chromium/tools/build" - cipd_version: "refs/heads/master" - cmd: "recipes" - } - properties: "{\"$build/chromium_tests\":{\"bucketed_triggers\":true},\"$build/goma\":{\"enable_ats\":true,\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"chromium.dawn\",\"recipe\":\"chromium\"}" - execution_timeout_secs: 10800 - build_numbers: YES - service_account: "chromium-ci-gpu-builder@chops-service-accounts.iam.gserviceaccount.com" - resultdb { - enable: true - bq_exports { - project: "luci-resultdb" - dataset: "chromium" - table: "ci_test_results" - test_results {} - } - } - } - builders { - name: "Dawn Linux x64 DEPS Release (Intel HD 630)" - swarming_host: "chromium-swarm.appspot.com" - swarming_tags: "vpython:native-python-wrapper" - dimensions: "builderless:1" - dimensions: "cores:2" - dimensions: "cpu:x86-64" - dimensions: "os:Ubuntu-16.04" - dimensions: "pool:luci.chromium.ci" - dimensions: "ssd:0" - exe { - cipd_package: "infra/recipe_bundles/chromium.googlesource.com/chromium/tools/build" - cipd_version: "refs/heads/master" - cmd: "recipes" - } - properties: "{\"$build/chromium_tests\":{\"bucketed_triggers\":true},\"$build/goma\":{\"enable_ats\":true,\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"chromium.dawn\",\"recipe\":\"chromium\"}" - execution_timeout_secs: 10800 - build_numbers: YES - service_account: "chromium-ci-gpu-builder@chops-service-accounts.iam.gserviceaccount.com" - resultdb { - enable: true - bq_exports { - project: "luci-resultdb" - dataset: "chromium" - table: "ci_test_results" - test_results {} - } - } - } - builders { - name: "Dawn Linux x64 DEPS Release (NVIDIA)" - swarming_host: "chromium-swarm.appspot.com" - swarming_tags: "vpython:native-python-wrapper" - dimensions: "builderless:1" - dimensions: "cores:2" - dimensions: "cpu:x86-64" - dimensions: "os:Ubuntu-16.04" - dimensions: "pool:luci.chromium.ci" - dimensions: "ssd:0" - exe { - cipd_package: "infra/recipe_bundles/chromium.googlesource.com/chromium/tools/build" - cipd_version: "refs/heads/master" - cmd: "recipes" - } - properties: "{\"$build/chromium_tests\":{\"bucketed_triggers\":true},\"$build/goma\":{\"enable_ats\":true,\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"chromium.dawn\",\"recipe\":\"chromium\"}" - execution_timeout_secs: 10800 - build_numbers: YES - service_account: "chromium-ci-gpu-builder@chops-service-accounts.iam.gserviceaccount.com" - resultdb { - enable: true - bq_exports { - project: "luci-resultdb" - dataset: "chromium" - table: "ci_test_results" - test_results {} - } - } - } - builders { - name: "Dawn Mac x64 DEPS Builder" - swarming_host: "chromium-swarm.appspot.com" - swarming_tags: "vpython:native-python-wrapper" - dimensions: "builder:Dawn Mac x64 DEPS Builder" - dimensions: "cpu:x86-64" - dimensions: "os:Mac" - dimensions: "pool:luci.chromium.ci" - exe { - cipd_package: "infra/recipe_bundles/chromium.googlesource.com/chromium/tools/build" - cipd_version: "refs/heads/master" - cmd: "recipes" - } - properties: "{\"$build/chromium_tests\":{\"bucketed_triggers\":true},\"$build/goma\":{\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"chromium.dawn\",\"recipe\":\"chromium\"}" - execution_timeout_secs: 10800 - build_numbers: YES - service_account: "chromium-ci-gpu-builder@chops-service-accounts.iam.gserviceaccount.com" - resultdb { - enable: true - bq_exports { - project: "luci-resultdb" - dataset: "chromium" - table: "ci_test_results" - test_results {} - } - } - } - builders { - name: "Dawn Mac x64 DEPS Release (AMD)" - swarming_host: "chromium-swarm.appspot.com" - swarming_tags: "vpython:native-python-wrapper" - dimensions: "builderless:1" - dimensions: "cores:2" - dimensions: "cpu:x86-64" - dimensions: "os:Ubuntu-16.04" - dimensions: "pool:luci.chromium.ci" - dimensions: "ssd:0" - exe { - cipd_package: "infra/recipe_bundles/chromium.googlesource.com/chromium/tools/build" - cipd_version: "refs/heads/master" - cmd: "recipes" - } - properties: "{\"$build/chromium_tests\":{\"bucketed_triggers\":true},\"$build/goma\":{\"enable_ats\":true,\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"chromium.dawn\",\"recipe\":\"chromium\"}" - execution_timeout_secs: 10800 - build_numbers: YES - service_account: "chromium-ci-gpu-builder@chops-service-accounts.iam.gserviceaccount.com" - resultdb { - enable: true - bq_exports { - project: "luci-resultdb" - dataset: "chromium" - table: "ci_test_results" - test_results {} - } - } - } - builders { - name: "Dawn Mac x64 DEPS Release (Intel)" - swarming_host: "chromium-swarm.appspot.com" - swarming_tags: "vpython:native-python-wrapper" - dimensions: "builderless:1" - dimensions: "cores:2" - dimensions: "cpu:x86-64" - dimensions: "os:Ubuntu-16.04" - dimensions: "pool:luci.chromium.ci" - dimensions: "ssd:0" - exe { - cipd_package: "infra/recipe_bundles/chromium.googlesource.com/chromium/tools/build" - cipd_version: "refs/heads/master" - cmd: "recipes" - } - properties: "{\"$build/chromium_tests\":{\"bucketed_triggers\":true},\"$build/goma\":{\"enable_ats\":true,\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"chromium.dawn\",\"recipe\":\"chromium\"}" - execution_timeout_secs: 10800 - build_numbers: YES - service_account: "chromium-ci-gpu-builder@chops-service-accounts.iam.gserviceaccount.com" - resultdb { - enable: true - bq_exports { - project: "luci-resultdb" - dataset: "chromium" - table: "ci_test_results" - test_results {} - } - } - } - builders { - name: "Dawn Win10 x64 DEPS Builder" - swarming_host: "chromium-swarm.appspot.com" - swarming_tags: "vpython:native-python-wrapper" - dimensions: "builderless:1" - dimensions: "cores:8" - dimensions: "cpu:x86-64" - dimensions: "os:Windows" - dimensions: "pool:luci.chromium.ci" - dimensions: "ssd:0" - exe { - cipd_package: "infra/recipe_bundles/chromium.googlesource.com/chromium/tools/build" - cipd_version: "refs/heads/master" - cmd: "recipes" - } - properties: "{\"$build/chromium_tests\":{\"bucketed_triggers\":true},\"$build/goma\":{\"enable_ats\":true,\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"chromium.dawn\",\"recipe\":\"chromium\"}" - execution_timeout_secs: 10800 - build_numbers: YES - service_account: "chromium-ci-gpu-builder@chops-service-accounts.iam.gserviceaccount.com" - resultdb { - enable: true - bq_exports { - project: "luci-resultdb" - dataset: "chromium" - table: "ci_test_results" - test_results {} - } - } - } - builders { - name: "Dawn Win10 x64 DEPS Release (Intel HD 630)" - swarming_host: "chromium-swarm.appspot.com" - swarming_tags: "vpython:native-python-wrapper" - dimensions: "builderless:1" - dimensions: "cores:2" - dimensions: "cpu:x86-64" - dimensions: "os:Ubuntu-16.04" - dimensions: "pool:luci.chromium.ci" - dimensions: "ssd:0" - exe { - cipd_package: "infra/recipe_bundles/chromium.googlesource.com/chromium/tools/build" - cipd_version: "refs/heads/master" - cmd: "recipes" - } - properties: "{\"$build/chromium_tests\":{\"bucketed_triggers\":true},\"$build/goma\":{\"enable_ats\":true,\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"chromium.dawn\",\"recipe\":\"chromium\"}" - execution_timeout_secs: 10800 - build_numbers: YES - service_account: "chromium-ci-gpu-builder@chops-service-accounts.iam.gserviceaccount.com" - resultdb { - enable: true - bq_exports { - project: "luci-resultdb" - dataset: "chromium" - table: "ci_test_results" - test_results {} - } - } - } - builders { - name: "Dawn Win10 x64 DEPS Release (NVIDIA)" - swarming_host: "chromium-swarm.appspot.com" - swarming_tags: "vpython:native-python-wrapper" - dimensions: "builderless:1" - dimensions: "cores:2" - dimensions: "cpu:x86-64" - dimensions: "os:Ubuntu-16.04" - dimensions: "pool:luci.chromium.ci" - dimensions: "ssd:0" - exe { - cipd_package: "infra/recipe_bundles/chromium.googlesource.com/chromium/tools/build" - cipd_version: "refs/heads/master" - cmd: "recipes" - } - properties: "{\"$build/chromium_tests\":{\"bucketed_triggers\":true},\"$build/goma\":{\"enable_ats\":true,\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"chromium.dawn\",\"recipe\":\"chromium\"}" - execution_timeout_secs: 10800 - build_numbers: YES - service_account: "chromium-ci-gpu-builder@chops-service-accounts.iam.gserviceaccount.com" - resultdb { - enable: true - bq_exports { - project: "luci-resultdb" - dataset: "chromium" - table: "ci_test_results" - test_results {} - } - } - } - builders { - name: "Dawn Win10 x86 DEPS Builder" - swarming_host: "chromium-swarm.appspot.com" - swarming_tags: "vpython:native-python-wrapper" - dimensions: "builderless:1" - dimensions: "cores:8" - dimensions: "cpu:x86-64" - dimensions: "os:Windows" - dimensions: "pool:luci.chromium.ci" - dimensions: "ssd:0" - exe { - cipd_package: "infra/recipe_bundles/chromium.googlesource.com/chromium/tools/build" - cipd_version: "refs/heads/master" - cmd: "recipes" - } - properties: "{\"$build/chromium_tests\":{\"bucketed_triggers\":true},\"$build/goma\":{\"enable_ats\":true,\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"chromium.dawn\",\"recipe\":\"chromium\"}" - execution_timeout_secs: 10800 - build_numbers: YES - service_account: "chromium-ci-gpu-builder@chops-service-accounts.iam.gserviceaccount.com" - resultdb { - enable: true - bq_exports { - project: "luci-resultdb" - dataset: "chromium" - table: "ci_test_results" - test_results {} - } - } - } - builders { - name: "Dawn Win10 x86 DEPS Release (Intel HD 630)" - swarming_host: "chromium-swarm.appspot.com" - swarming_tags: "vpython:native-python-wrapper" - dimensions: "builderless:1" - dimensions: "cores:2" - dimensions: "cpu:x86-64" - dimensions: "os:Ubuntu-16.04" - dimensions: "pool:luci.chromium.ci" - dimensions: "ssd:0" - exe { - cipd_package: "infra/recipe_bundles/chromium.googlesource.com/chromium/tools/build" - cipd_version: "refs/heads/master" - cmd: "recipes" - } - properties: "{\"$build/chromium_tests\":{\"bucketed_triggers\":true},\"$build/goma\":{\"enable_ats\":true,\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"chromium.dawn\",\"recipe\":\"chromium\"}" - execution_timeout_secs: 10800 - build_numbers: YES - service_account: "chromium-ci-gpu-builder@chops-service-accounts.iam.gserviceaccount.com" - resultdb { - enable: true - bq_exports { - project: "luci-resultdb" - dataset: "chromium" - table: "ci_test_results" - test_results {} - } - } - } - builders { - name: "Dawn Win10 x86 DEPS Release (NVIDIA)" - swarming_host: "chromium-swarm.appspot.com" - swarming_tags: "vpython:native-python-wrapper" - dimensions: "builderless:1" - dimensions: "cores:2" - dimensions: "cpu:x86-64" - dimensions: "os:Ubuntu-16.04" - dimensions: "pool:luci.chromium.ci" - dimensions: "ssd:0" - exe { - cipd_package: "infra/recipe_bundles/chromium.googlesource.com/chromium/tools/build" - cipd_version: "refs/heads/master" - cmd: "recipes" - } - properties: "{\"$build/chromium_tests\":{\"bucketed_triggers\":true},\"$build/goma\":{\"enable_ats\":true,\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"chromium.dawn\",\"recipe\":\"chromium\"}" - execution_timeout_secs: 10800 - build_numbers: YES - service_account: "chromium-ci-gpu-builder@chops-service-accounts.iam.gserviceaccount.com" - resultdb { - enable: true - bq_exports { - project: "luci-resultdb" - dataset: "chromium" - table: "ci_test_results" - test_results {} - } - } - } - builders { - name: "Fuchsia ARM64" - swarming_host: "chromium-swarm.appspot.com" - swarming_tags: "vpython:native-python-wrapper" - dimensions: "builderless:1" - dimensions: "cores:8" - dimensions: "cpu:x86-64" - dimensions: "os:Ubuntu-16.04" - dimensions: "pool:luci.chromium.ci" - dimensions: "ssd:0" - exe { - cipd_package: "infra/recipe_bundles/chromium.googlesource.com/chromium/tools/build" - cipd_version: "refs/heads/master" - cmd: "recipes" - } - properties: "{\"$build/chromium_tests\":{\"bucketed_triggers\":true},\"$build/goma\":{\"enable_ats\":true,\"jobs\":500,\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"chromium.linux\",\"recipe\":\"chromium\"}" - execution_timeout_secs: 10800 - build_numbers: YES - service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com" - resultdb { - enable: true - bq_exports { - project: "luci-resultdb" - dataset: "chromium" - table: "ci_test_results" - test_results {} - } - } - } - builders { - name: "Fuchsia x64" - swarming_host: "chromium-swarm.appspot.com" - swarming_tags: "vpython:native-python-wrapper" - dimensions: "builderless:1" - dimensions: "cores:8" - dimensions: "cpu:x86-64" - dimensions: "os:Ubuntu-16.04" - dimensions: "pool:luci.chromium.ci" - dimensions: "ssd:0" - exe { - cipd_package: "infra/recipe_bundles/chromium.googlesource.com/chromium/tools/build" - cipd_version: "refs/heads/master" - cmd: "recipes" - } - properties: "{\"$build/chromium_tests\":{\"bucketed_triggers\":true},\"$build/goma\":{\"enable_ats\":true,\"jobs\":500,\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"chromium.linux\",\"recipe\":\"chromium\"}" - execution_timeout_secs: 10800 - build_numbers: YES - service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com" - resultdb { - enable: true - bq_exports { - project: "luci-resultdb" - dataset: "chromium" - table: "ci_test_results" - test_results {} - } - } - } - builders { - name: "GPU Linux Builder" - swarming_host: "chromium-swarm.appspot.com" - swarming_tags: "vpython:native-python-wrapper" - dimensions: "builderless:1" - dimensions: "cores:8" - dimensions: "cpu:x86-64" - dimensions: "os:Ubuntu-16.04" - dimensions: "pool:luci.chromium.ci" - dimensions: "ssd:0" - exe { - cipd_package: "infra/recipe_bundles/chromium.googlesource.com/chromium/tools/build" - cipd_version: "refs/heads/master" - cmd: "recipes" - } - properties: "{\"$build/chromium_tests\":{\"bucketed_triggers\":true},\"$build/goma\":{\"enable_ats\":true,\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"chromium.gpu\",\"recipe\":\"chromium\"}" - execution_timeout_secs: 10800 - build_numbers: YES - service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com" - resultdb { - enable: true - bq_exports { - project: "luci-resultdb" - dataset: "chromium" - table: "ci_test_results" - test_results {} - } - } - } - builders { - name: "GPU Mac Builder" - swarming_host: "chromium-swarm.appspot.com" - swarming_tags: "vpython:native-python-wrapper" - dimensions: "builder:GPU Mac Builder" - dimensions: "cpu:x86-64" - dimensions: "os:Mac" - dimensions: "pool:luci.chromium.ci" - exe { - cipd_package: "infra/recipe_bundles/chromium.googlesource.com/chromium/tools/build" - cipd_version: "refs/heads/master" - cmd: "recipes" - } - properties: "{\"$build/chromium_tests\":{\"bucketed_triggers\":true},\"$build/goma\":{\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"chromium.gpu\",\"recipe\":\"chromium\"}" - execution_timeout_secs: 10800 - build_numbers: YES - service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com" - resultdb { - enable: true - bq_exports { - project: "luci-resultdb" - dataset: "chromium" - table: "ci_test_results" - test_results {} - } - } - } - builders { - name: "GPU Win x64 Builder" - swarming_host: "chromium-swarm.appspot.com" - swarming_tags: "vpython:native-python-wrapper" - dimensions: "builderless:1" - dimensions: "cores:8" - dimensions: "cpu:x86-64" - dimensions: "os:Windows" - dimensions: "pool:luci.chromium.ci" - dimensions: "ssd:0" - exe { - cipd_package: "infra/recipe_bundles/chromium.googlesource.com/chromium/tools/build" - cipd_version: "refs/heads/master" - cmd: "recipes" - } - properties: "{\"$build/chromium_tests\":{\"bucketed_triggers\":true},\"$build/goma\":{\"enable_ats\":true,\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"chromium.gpu\",\"recipe\":\"chromium\"}" - execution_timeout_secs: 10800 - build_numbers: YES - service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com" - resultdb { - enable: true - bq_exports { - project: "luci-resultdb" - dataset: "chromium" - table: "ci_test_results" - test_results {} - } - } - } - builders { - name: "Linux ASan LSan Builder" - swarming_host: "chromium-swarm.appspot.com" - swarming_tags: "vpython:native-python-wrapper" - dimensions: "builderless:1" - dimensions: "cores:8" - dimensions: "cpu:x86-64" - dimensions: "os:Ubuntu-16.04" - dimensions: "pool:luci.chromium.ci" - dimensions: "ssd:1" - exe { - cipd_package: "infra/recipe_bundles/chromium.googlesource.com/chromium/tools/build" - cipd_version: "refs/heads/master" - cmd: "recipes" - } - properties: "{\"$build/chromium_tests\":{\"bucketed_triggers\":true},\"$build/goma\":{\"enable_ats\":true,\"jobs\":500,\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"chromium.memory\",\"recipe\":\"chromium\"}" - execution_timeout_secs: 10800 - build_numbers: YES - service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com" - resultdb { - enable: true - bq_exports { - project: "luci-resultdb" - dataset: "chromium" - table: "ci_test_results" - test_results {} - } - } - } - builders { - name: "Linux ASan LSan Tests (1)" - swarming_host: "chromium-swarm.appspot.com" - swarming_tags: "vpython:native-python-wrapper" - dimensions: "builderless:1" - dimensions: "cores:8" - dimensions: "cpu:x86-64" - dimensions: "os:Ubuntu-16.04" - dimensions: "pool:luci.chromium.ci" - dimensions: "ssd:0" - exe { - cipd_package: "infra/recipe_bundles/chromium.googlesource.com/chromium/tools/build" - cipd_version: "refs/heads/master" - cmd: "recipes" - } - properties: "{\"$build/chromium_tests\":{\"bucketed_triggers\":true},\"$build/goma\":{\"enable_ats\":true,\"jobs\":500,\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"chromium.memory\",\"recipe\":\"chromium\"}" - execution_timeout_secs: 10800 - build_numbers: YES - service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com" - resultdb { - enable: true - bq_exports { - project: "luci-resultdb" - dataset: "chromium" - table: "ci_test_results" - test_results {} - } - } - } - builders { - name: "Linux ASan Tests (sandboxed)" - swarming_host: "chromium-swarm.appspot.com" - swarming_tags: "vpython:native-python-wrapper" - dimensions: "builderless:1" - dimensions: "cores:8" - dimensions: "cpu:x86-64" - dimensions: "os:Ubuntu-16.04" - dimensions: "pool:luci.chromium.ci" - dimensions: "ssd:0" - exe { - cipd_package: "infra/recipe_bundles/chromium.googlesource.com/chromium/tools/build" - cipd_version: "refs/heads/master" - cmd: "recipes" - } - properties: "{\"$build/chromium_tests\":{\"bucketed_triggers\":true},\"$build/goma\":{\"enable_ats\":true,\"jobs\":500,\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"chromium.memory\",\"recipe\":\"chromium\"}" - execution_timeout_secs: 10800 - build_numbers: YES - service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com" - resultdb { - enable: true - bq_exports { - project: "luci-resultdb" - dataset: "chromium" - table: "ci_test_results" - test_results {} - } - } - } - builders { - name: "Linux Builder" - swarming_host: "chromium-swarm.appspot.com" - swarming_tags: "vpython:native-python-wrapper" - dimensions: "builderless:1" - dimensions: "cores:8" - dimensions: "cpu:x86-64" - dimensions: "os:Ubuntu-16.04" - dimensions: "pool:luci.chromium.ci" - dimensions: "ssd:0" - exe { - cipd_package: "infra/recipe_bundles/chromium.googlesource.com/chromium/tools/build" - cipd_version: "refs/heads/master" - cmd: "recipes" - } - properties: "{\"$build/chromium_tests\":{\"bucketed_triggers\":true},\"$build/goma\":{\"enable_ats\":true,\"jobs\":500,\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"chromium.linux\",\"recipe\":\"chromium\"}" - execution_timeout_secs: 10800 - build_numbers: YES - service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com" - resultdb { - enable: true - bq_exports { - project: "luci-resultdb" - dataset: "chromium" - table: "ci_test_results" - test_results {} - } - } - } - builders { - name: "Linux Builder (dbg)" - swarming_host: "chromium-swarm.appspot.com" - swarming_tags: "vpython:native-python-wrapper" - dimensions: "builderless:1" - dimensions: "cores:8" - dimensions: "cpu:x86-64" - dimensions: "os:Ubuntu-16.04" - dimensions: "pool:luci.chromium.ci" - dimensions: "ssd:0" - exe { - cipd_package: "infra/recipe_bundles/chromium.googlesource.com/chromium/tools/build" - cipd_version: "refs/heads/master" - cmd: "recipes" - } - properties: "{\"$build/chromium_tests\":{\"bucketed_triggers\":true},\"$build/goma\":{\"enable_ats\":true,\"jobs\":500,\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"chromium.linux\",\"recipe\":\"chromium\"}" - execution_timeout_secs: 10800 - build_numbers: YES - service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com" - resultdb { - enable: true - bq_exports { - project: "luci-resultdb" - dataset: "chromium" - table: "ci_test_results" - test_results {} - } - } - } - builders { - name: "Linux Ozone Tester (Headless)" - swarming_host: "chromium-swarm.appspot.com" - swarming_tags: "vpython:native-python-wrapper" - dimensions: "builderless:1" - dimensions: "cores:8" - dimensions: "cpu:x86-64" - dimensions: "os:Ubuntu-16.04" - dimensions: "pool:luci.chromium.ci" - dimensions: "ssd:0" - exe { - cipd_package: "infra/recipe_bundles/chromium.googlesource.com/chromium/tools/build" - cipd_version: "refs/heads/master" - cmd: "recipes" - } - properties: "{\"$build/chromium_tests\":{\"bucketed_triggers\":true},\"$build/goma\":{\"enable_ats\":true,\"jobs\":500,\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"chromium.linux\",\"recipe\":\"chromium\"}" - execution_timeout_secs: 10800 - build_numbers: YES - service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com" - resultdb { - enable: true - bq_exports { - project: "luci-resultdb" - dataset: "chromium" - table: "ci_test_results" - test_results {} - } - } - } - builders { - name: "Linux Ozone Tester (Wayland)" - swarming_host: "chromium-swarm.appspot.com" - swarming_tags: "vpython:native-python-wrapper" - dimensions: "builderless:1" - dimensions: "cores:8" - dimensions: "cpu:x86-64" - dimensions: "os:Ubuntu-16.04" - dimensions: "pool:luci.chromium.ci" - dimensions: "ssd:0" - exe { - cipd_package: "infra/recipe_bundles/chromium.googlesource.com/chromium/tools/build" - cipd_version: "refs/heads/master" - cmd: "recipes" - } - properties: "{\"$build/chromium_tests\":{\"bucketed_triggers\":true},\"$build/goma\":{\"enable_ats\":true,\"jobs\":500,\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"chromium.linux\",\"recipe\":\"chromium\"}" - execution_timeout_secs: 10800 - build_numbers: YES - service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com" - resultdb { - enable: true - bq_exports { - project: "luci-resultdb" - dataset: "chromium" - table: "ci_test_results" - test_results {} - } - } - } - builders { - name: "Linux Ozone Tester (X11)" - swarming_host: "chromium-swarm.appspot.com" - swarming_tags: "vpython:native-python-wrapper" - dimensions: "builderless:1" - dimensions: "cores:8" - dimensions: "cpu:x86-64" - dimensions: "os:Ubuntu-16.04" - dimensions: "pool:luci.chromium.ci" - dimensions: "ssd:0" - exe { - cipd_package: "infra/recipe_bundles/chromium.googlesource.com/chromium/tools/build" - cipd_version: "refs/heads/master" - cmd: "recipes" - } - properties: "{\"$build/chromium_tests\":{\"bucketed_triggers\":true},\"$build/goma\":{\"enable_ats\":true,\"jobs\":500,\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"chromium.linux\",\"recipe\":\"chromium\"}" - execution_timeout_secs: 10800 - build_numbers: YES - service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com" - resultdb { - enable: true - bq_exports { - project: "luci-resultdb" - dataset: "chromium" - table: "ci_test_results" - test_results {} - } - } - } - builders { - name: "Linux Release (NVIDIA)" - swarming_host: "chromium-swarm.appspot.com" - swarming_tags: "vpython:native-python-wrapper" - dimensions: "builderless:1" - dimensions: "cores:2" - dimensions: "cpu:x86-64" - dimensions: "os:Ubuntu-16.04" - dimensions: "pool:luci.chromium.ci" - dimensions: "ssd:0" - exe { - cipd_package: "infra/recipe_bundles/chromium.googlesource.com/chromium/tools/build" - cipd_version: "refs/heads/master" - cmd: "recipes" - } - properties: "{\"$build/chromium_tests\":{\"bucketed_triggers\":true},\"$build/goma\":{\"enable_ats\":true,\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"chromium.gpu\",\"recipe\":\"chromium\"}" - execution_timeout_secs: 10800 - build_numbers: YES - service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com" - resultdb { - enable: true - bq_exports { - project: "luci-resultdb" - dataset: "chromium" - table: "ci_test_results" - test_results {} - } - } - } - builders { - name: "Linux TSan Builder" - swarming_host: "chromium-swarm.appspot.com" - swarming_tags: "vpython:native-python-wrapper" - dimensions: "builderless:1" - dimensions: "cores:8" - dimensions: "cpu:x86-64" - dimensions: "os:Ubuntu-16.04" - dimensions: "pool:luci.chromium.ci" - dimensions: "ssd:0" - exe { - cipd_package: "infra/recipe_bundles/chromium.googlesource.com/chromium/tools/build" - cipd_version: "refs/heads/master" - cmd: "recipes" - } - properties: "{\"$build/chromium_tests\":{\"bucketed_triggers\":true},\"$build/goma\":{\"enable_ats\":true,\"jobs\":500,\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"chromium.memory\",\"recipe\":\"chromium\"}" - execution_timeout_secs: 10800 - build_numbers: YES - service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com" - resultdb { - enable: true - bq_exports { - project: "luci-resultdb" - dataset: "chromium" - table: "ci_test_results" - test_results {} - } - } - } - builders { - name: "Linux TSan Tests" - swarming_host: "chromium-swarm.appspot.com" - swarming_tags: "vpython:native-python-wrapper" - dimensions: "builderless:1" - dimensions: "cores:8" - dimensions: "cpu:x86-64" - dimensions: "os:Ubuntu-16.04" - dimensions: "pool:luci.chromium.ci" - dimensions: "ssd:0" - exe { - cipd_package: "infra/recipe_bundles/chromium.googlesource.com/chromium/tools/build" - cipd_version: "refs/heads/master" - cmd: "recipes" - } - properties: "{\"$build/chromium_tests\":{\"bucketed_triggers\":true},\"$build/goma\":{\"enable_ats\":true,\"jobs\":500,\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"chromium.memory\",\"recipe\":\"chromium\"}" - execution_timeout_secs: 10800 - build_numbers: YES - service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com" - resultdb { - enable: true - bq_exports { - project: "luci-resultdb" - dataset: "chromium" - table: "ci_test_results" - test_results {} - } - } - } - builders { - name: "Linux Tests" - swarming_host: "chromium-swarm.appspot.com" - swarming_tags: "vpython:native-python-wrapper" - dimensions: "builderless:1" - dimensions: "cores:8" - dimensions: "cpu:x86-64" - dimensions: "os:Ubuntu-16.04" - dimensions: "pool:luci.chromium.ci" - dimensions: "ssd:0" - exe { - cipd_package: "infra/recipe_bundles/chromium.googlesource.com/chromium/tools/build" - cipd_version: "refs/heads/master" - cmd: "recipes" - } - properties: "{\"$build/chromium_tests\":{\"bucketed_triggers\":true},\"$build/goma\":{\"jobs\":500},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"chromium.linux\",\"recipe\":\"chromium\"}" - execution_timeout_secs: 10800 - build_numbers: YES - service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com" - resultdb { - enable: true - bq_exports { - project: "luci-resultdb" - dataset: "chromium" - table: "ci_test_results" - test_results {} - } - } - } - builders { - name: "Linux Tests (dbg)(1)" - swarming_host: "chromium-swarm.appspot.com" - swarming_tags: "vpython:native-python-wrapper" - dimensions: "builderless:1" - dimensions: "cores:8" - dimensions: "cpu:x86-64" - dimensions: "os:Ubuntu-16.04" - dimensions: "pool:luci.chromium.ci" - dimensions: "ssd:0" - exe { - cipd_package: "infra/recipe_bundles/chromium.googlesource.com/chromium/tools/build" - cipd_version: "refs/heads/master" - cmd: "recipes" - } - properties: "{\"$build/chromium_tests\":{\"bucketed_triggers\":true},\"$build/goma\":{\"enable_ats\":true,\"jobs\":500,\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"chromium.linux\",\"recipe\":\"chromium\"}" - execution_timeout_secs: 10800 - build_numbers: YES - service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com" - resultdb { - enable: true - bq_exports { - project: "luci-resultdb" - dataset: "chromium" - table: "ci_test_results" - test_results {} - } - } - } - builders { - name: "Mac Builder" - swarming_host: "chromium-swarm.appspot.com" - swarming_tags: "vpython:native-python-wrapper" - dimensions: "builder:Mac Builder" - dimensions: "cpu:x86-64" - dimensions: "os:Mac-10.15" - dimensions: "pool:luci.chromium.ci" - exe { - cipd_package: "infra/recipe_bundles/chromium.googlesource.com/chromium/tools/build" - cipd_version: "refs/heads/master" - cmd: "recipes" - } - properties: "{\"$build/chromium_tests\":{\"bucketed_triggers\":true},\"$build/goma\":{\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"chromium.mac\",\"recipe\":\"chromium\"}" - execution_timeout_secs: 10800 - build_numbers: YES - service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com" - resultdb { - enable: true - bq_exports { - project: "luci-resultdb" - dataset: "chromium" - table: "ci_test_results" - test_results {} - } - } - } - builders { - name: "Mac Builder (dbg)" - swarming_host: "chromium-swarm.appspot.com" - swarming_tags: "vpython:native-python-wrapper" - dimensions: "builder:Mac Builder (dbg)" - dimensions: "cpu:x86-64" - dimensions: "os:Mac" - dimensions: "pool:luci.chromium.ci" - exe { - cipd_package: "infra/recipe_bundles/chromium.googlesource.com/chromium/tools/build" - cipd_version: "refs/heads/master" - cmd: "recipes" - } - properties: "{\"$build/chromium_tests\":{\"bucketed_triggers\":true},\"$build/goma\":{\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"chromium.mac\",\"recipe\":\"chromium\"}" - execution_timeout_secs: 10800 - build_numbers: YES - service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com" - resultdb { - enable: true - bq_exports { - project: "luci-resultdb" - dataset: "chromium" - table: "ci_test_results" - test_results {} - } - } - } - builders { - name: "Mac Release (Intel)" - swarming_host: "chromium-swarm.appspot.com" - swarming_tags: "vpython:native-python-wrapper" - dimensions: "builderless:1" - dimensions: "cores:2" - dimensions: "cpu:x86-64" - dimensions: "os:Ubuntu-16.04" - dimensions: "pool:luci.chromium.ci" - dimensions: "ssd:0" - exe { - cipd_package: "infra/recipe_bundles/chromium.googlesource.com/chromium/tools/build" - cipd_version: "refs/heads/master" - cmd: "recipes" - } - properties: "{\"$build/chromium_tests\":{\"bucketed_triggers\":true},\"$build/goma\":{\"enable_ats\":true,\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"chromium.gpu\",\"recipe\":\"chromium\"}" - execution_timeout_secs: 10800 - build_numbers: YES - service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com" - resultdb { - enable: true - bq_exports { - project: "luci-resultdb" - dataset: "chromium" - table: "ci_test_results" - test_results {} - } - } - } - builders { - name: "Mac Retina Release (AMD)" - swarming_host: "chromium-swarm.appspot.com" - swarming_tags: "vpython:native-python-wrapper" - dimensions: "builderless:1" - dimensions: "cores:2" - dimensions: "cpu:x86-64" - dimensions: "os:Ubuntu-16.04" - dimensions: "pool:luci.chromium.ci" - dimensions: "ssd:0" - exe { - cipd_package: "infra/recipe_bundles/chromium.googlesource.com/chromium/tools/build" - cipd_version: "refs/heads/master" - cmd: "recipes" - } - properties: "{\"$build/chromium_tests\":{\"bucketed_triggers\":true},\"$build/goma\":{\"enable_ats\":true,\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"chromium.gpu\",\"recipe\":\"chromium\"}" - execution_timeout_secs: 10800 - build_numbers: YES - service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com" - resultdb { - enable: true - bq_exports { - project: "luci-resultdb" - dataset: "chromium" - table: "ci_test_results" - test_results {} - } - } - } - builders { - name: "Mac10.10 Tests" - swarming_host: "chromium-swarm.appspot.com" - swarming_tags: "vpython:native-python-wrapper" - dimensions: "builderless:1" - dimensions: "cores:8" - dimensions: "cpu:x86-64" - dimensions: "os:Ubuntu-16.04" - dimensions: "pool:luci.chromium.ci" - dimensions: "ssd:0" - exe { - cipd_package: "infra/recipe_bundles/chromium.googlesource.com/chromium/tools/build" - cipd_version: "refs/heads/master" - cmd: "recipes" - } - properties: "{\"$build/chromium_tests\":{\"bucketed_triggers\":true},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"chromium.mac\",\"recipe\":\"chromium\"}" - execution_timeout_secs: 10800 - build_numbers: YES - service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com" - resultdb { - enable: true - bq_exports { - project: "luci-resultdb" - dataset: "chromium" - table: "ci_test_results" - test_results {} - } - } - } - builders { - name: "Mac10.11 Tests" - swarming_host: "chromium-swarm.appspot.com" - swarming_tags: "vpython:native-python-wrapper" - dimensions: "builderless:1" - dimensions: "cores:8" - dimensions: "cpu:x86-64" - dimensions: "os:Ubuntu-16.04" - dimensions: "pool:luci.chromium.ci" - dimensions: "ssd:0" - exe { - cipd_package: "infra/recipe_bundles/chromium.googlesource.com/chromium/tools/build" - cipd_version: "refs/heads/master" - cmd: "recipes" - } - properties: "{\"$build/chromium_tests\":{\"bucketed_triggers\":true},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"chromium.mac\",\"recipe\":\"chromium\"}" - execution_timeout_secs: 10800 - build_numbers: YES - service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com" - resultdb { - enable: true - bq_exports { - project: "luci-resultdb" - dataset: "chromium" - table: "ci_test_results" - test_results {} - } - } - } - builders { - name: "Mac10.12 Tests" - swarming_host: "chromium-swarm.appspot.com" - swarming_tags: "vpython:native-python-wrapper" - dimensions: "builderless:1" - dimensions: "cores:8" - dimensions: "cpu:x86-64" - dimensions: "os:Ubuntu-16.04" - dimensions: "pool:luci.chromium.ci" - dimensions: "ssd:0" - exe { - cipd_package: "infra/recipe_bundles/chromium.googlesource.com/chromium/tools/build" - cipd_version: "refs/heads/master" - cmd: "recipes" - } - properties: "{\"$build/chromium_tests\":{\"bucketed_triggers\":true},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"chromium.mac\",\"recipe\":\"chromium\"}" - execution_timeout_secs: 10800 - build_numbers: YES - service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com" - resultdb { - enable: true - bq_exports { - project: "luci-resultdb" - dataset: "chromium" - table: "ci_test_results" - test_results {} - } - } - } - builders { - name: "Mac10.13 Tests" - swarming_host: "chromium-swarm.appspot.com" - swarming_tags: "vpython:native-python-wrapper" - dimensions: "builderless:1" - dimensions: "cores:8" - dimensions: "cpu:x86-64" - dimensions: "os:Ubuntu-16.04" - dimensions: "pool:luci.chromium.ci" - dimensions: "ssd:0" - exe { - cipd_package: "infra/recipe_bundles/chromium.googlesource.com/chromium/tools/build" - cipd_version: "refs/heads/master" - cmd: "recipes" - } - properties: "{\"$build/chromium_tests\":{\"bucketed_triggers\":true},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"chromium.mac\",\"recipe\":\"chromium\"}" - execution_timeout_secs: 10800 - build_numbers: YES - service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com" - resultdb { - enable: true - bq_exports { - project: "luci-resultdb" - dataset: "chromium" - table: "ci_test_results" - test_results {} - } - } - } - builders { - name: "Mac10.13 Tests (dbg)" - swarming_host: "chromium-swarm.appspot.com" - swarming_tags: "vpython:native-python-wrapper" - dimensions: "builderless:1" - dimensions: "cores:8" - dimensions: "cpu:x86-64" - dimensions: "os:Ubuntu-16.04" - dimensions: "pool:luci.chromium.ci" - dimensions: "ssd:0" - exe { - cipd_package: "infra/recipe_bundles/chromium.googlesource.com/chromium/tools/build" - cipd_version: "refs/heads/master" - cmd: "recipes" - } - properties: "{\"$build/chromium_tests\":{\"bucketed_triggers\":true},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"chromium.mac\",\"recipe\":\"chromium\"}" - execution_timeout_secs: 10800 - build_numbers: YES - service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com" - resultdb { - enable: true - bq_exports { - project: "luci-resultdb" - dataset: "chromium" - table: "ci_test_results" - test_results {} - } - } - } - builders { - name: "Mac10.14 Tests" - swarming_host: "chromium-swarm.appspot.com" - swarming_tags: "vpython:native-python-wrapper" - dimensions: "builderless:1" - dimensions: "cores:8" - dimensions: "cpu:x86-64" - dimensions: "os:Ubuntu-16.04" - dimensions: "pool:luci.chromium.ci" - dimensions: "ssd:0" - exe { - cipd_package: "infra/recipe_bundles/chromium.googlesource.com/chromium/tools/build" - cipd_version: "refs/heads/master" - cmd: "recipes" - } - properties: "{\"$build/chromium_tests\":{\"bucketed_triggers\":true},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"chromium.mac\",\"recipe\":\"chromium\"}" - execution_timeout_secs: 10800 - build_numbers: YES - service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com" - resultdb { - enable: true - bq_exports { - project: "luci-resultdb" - dataset: "chromium" - table: "ci_test_results" - test_results {} - } - } - } - builders { - name: "Mac10.15 Tests" - swarming_host: "chromium-swarm.appspot.com" - swarming_tags: "vpython:native-python-wrapper" - dimensions: "builderless:1" - dimensions: "cores:8" - dimensions: "cpu:x86-64" - dimensions: "os:Ubuntu-16.04" - dimensions: "pool:luci.chromium.ci" - dimensions: "ssd:0" - exe { - cipd_package: "infra/recipe_bundles/chromium.googlesource.com/chromium/tools/build" - cipd_version: "refs/heads/master" - cmd: "recipes" - } - properties: "{\"$build/chromium_tests\":{\"bucketed_triggers\":true},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"chromium.mac\",\"recipe\":\"chromium\"}" - execution_timeout_secs: 10800 - build_numbers: YES - service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com" - resultdb { - enable: true - bq_exports { - project: "luci-resultdb" - dataset: "chromium" - table: "ci_test_results" - test_results {} - } - } - } - builders { - name: "Marshmallow 64 bit Tester" - swarming_host: "chromium-swarm.appspot.com" - swarming_tags: "vpython:native-python-wrapper" - dimensions: "builderless:1" - dimensions: "cores:8" - dimensions: "cpu:x86-64" - dimensions: "os:Ubuntu-16.04" - dimensions: "pool:luci.chromium.ci" - dimensions: "ssd:0" - exe { - cipd_package: "infra/recipe_bundles/chromium.googlesource.com/chromium/tools/build" - cipd_version: "refs/heads/master" - cmd: "recipes" - } - properties: "{\"$build/chromium_tests\":{\"bucketed_triggers\":true},\"$build/goma\":{\"enable_ats\":true,\"jobs\":150,\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"chromium.android\",\"recipe\":\"chromium\"}" - execution_timeout_secs: 10800 - build_numbers: YES - service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com" - resultdb { - enable: true - bq_exports { - project: "luci-resultdb" - dataset: "chromium" - table: "ci_test_results" - test_results {} - } - } - } - builders { - name: "Nougat Phone Tester" - swarming_host: "chromium-swarm.appspot.com" - swarming_tags: "vpython:native-python-wrapper" - dimensions: "builderless:1" - dimensions: "cores:8" - dimensions: "cpu:x86-64" - dimensions: "os:Ubuntu-16.04" - dimensions: "pool:luci.chromium.ci" - dimensions: "ssd:0" - exe { - cipd_package: "infra/recipe_bundles/chromium.googlesource.com/chromium/tools/build" - cipd_version: "refs/heads/master" - cmd: "recipes" - } - properties: "{\"$build/chromium_tests\":{\"bucketed_triggers\":true},\"$build/goma\":{\"enable_ats\":true,\"jobs\":150,\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"chromium.android\",\"recipe\":\"chromium\"}" - execution_timeout_secs: 10800 - build_numbers: YES - service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com" - resultdb { - enable: true - bq_exports { - project: "luci-resultdb" - dataset: "chromium" - table: "ci_test_results" - test_results {} - } - } - } - builders { - name: "Oreo Phone Tester" - swarming_host: "chromium-swarm.appspot.com" - swarming_tags: "vpython:native-python-wrapper" - dimensions: "builderless:1" - dimensions: "cores:8" - dimensions: "cpu:x86-64" - dimensions: "os:Ubuntu-16.04" - dimensions: "pool:luci.chromium.ci" - dimensions: "ssd:0" - exe { - cipd_package: "infra/recipe_bundles/chromium.googlesource.com/chromium/tools/build" - cipd_version: "refs/heads/master" - cmd: "recipes" - } - properties: "{\"$build/chromium_tests\":{\"bucketed_triggers\":true},\"$build/goma\":{\"enable_ats\":true,\"jobs\":150,\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"chromium.android\",\"recipe\":\"chromium\"}" - execution_timeout_secs: 10800 - build_numbers: YES - service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com" - resultdb { - enable: true - bq_exports { - project: "luci-resultdb" - dataset: "chromium" - table: "ci_test_results" - test_results {} - } - } - } - builders { - name: "VR Linux" - swarming_host: "chromium-swarm.appspot.com" - swarming_tags: "vpython:native-python-wrapper" - dimensions: "builderless:1" - dimensions: "cores:8" - dimensions: "cpu:x86-64" - dimensions: "os:Ubuntu-16.04" - dimensions: "pool:luci.chromium.ci" - dimensions: "ssd:0" - exe { - cipd_package: "infra/recipe_bundles/chromium.googlesource.com/chromium/tools/build" - cipd_version: "refs/heads/master" - cmd: "recipes" - } - properties: "{\"$build/chromium_tests\":{\"bucketed_triggers\":true},\"$build/goma\":{\"enable_ats\":true,\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"chromium.fyi\",\"recipe\":\"chromium\"}" - execution_timeout_secs: 36000 - build_numbers: YES - service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com" - resultdb { - enable: true - bq_exports { - project: "luci-resultdb" - dataset: "chromium" - table: "ci_test_results" - test_results {} - } - } - } - builders { - name: "Win 7 Tests x64 (1)" - swarming_host: "chromium-swarm.appspot.com" - swarming_tags: "vpython:native-python-wrapper" - dimensions: "builder:Win 7 Tests x64 (1)" - dimensions: "cores:8" - dimensions: "cpu:x86-64" - dimensions: "os:Windows-7" - dimensions: "pool:luci.chromium.ci" - exe { - cipd_package: "infra/recipe_bundles/chromium.googlesource.com/chromium/tools/build" - cipd_version: "refs/heads/master" - cmd: "recipes" - } - properties: "{\"$build/chromium_tests\":{\"bucketed_triggers\":true},\"$build/goma\":{\"enable_ats\":true,\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"chromium.win\",\"recipe\":\"chromium\"}" - execution_timeout_secs: 10800 - build_numbers: YES - service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com" - resultdb { - enable: true - bq_exports { - project: "luci-resultdb" - dataset: "chromium" - table: "ci_test_results" - test_results {} - } - } - } - builders { - name: "Win Builder (dbg)" - swarming_host: "chromium-swarm.appspot.com" - swarming_tags: "vpython:native-python-wrapper" - dimensions: "builder:Win Builder (dbg)" - dimensions: "cores:32" - dimensions: "cpu:x86-64" - dimensions: "os:Windows" - dimensions: "pool:luci.chromium.ci" - exe { - cipd_package: "infra/recipe_bundles/chromium.googlesource.com/chromium/tools/build" - cipd_version: "refs/heads/master" - cmd: "recipes" - } - properties: "{\"$build/chromium_tests\":{\"bucketed_triggers\":true},\"$build/goma\":{\"enable_ats\":true,\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"chromium.win\",\"recipe\":\"chromium\"}" - execution_timeout_secs: 10800 - build_numbers: YES - service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com" - resultdb { - enable: true - bq_exports { - project: "luci-resultdb" - dataset: "chromium" - table: "ci_test_results" - test_results {} - } - } - } - builders { - name: "Win x64 Builder" - swarming_host: "chromium-swarm.appspot.com" - swarming_tags: "vpython:native-python-wrapper" - dimensions: "builder:Win x64 Builder" - dimensions: "cores:32" - dimensions: "cpu:x86-64" - dimensions: "os:Windows" - dimensions: "pool:luci.chromium.ci" - exe { - cipd_package: "infra/recipe_bundles/chromium.googlesource.com/chromium/tools/build" - cipd_version: "refs/heads/master" - cmd: "recipes" - } - properties: "{\"$build/chromium_tests\":{\"bucketed_triggers\":true},\"$build/goma\":{\"enable_ats\":true,\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"chromium.win\",\"recipe\":\"chromium\"}" - execution_timeout_secs: 10800 - build_numbers: YES - service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com" - resultdb { - enable: true - bq_exports { - project: "luci-resultdb" - dataset: "chromium" - table: "ci_test_results" - test_results {} - } - } - } - builders { - name: "Win10 Tests x64" - swarming_host: "chromium-swarm.appspot.com" - swarming_tags: "vpython:native-python-wrapper" - dimensions: "builder:Win10 Tests x64" - dimensions: "cores:8" - dimensions: "cpu:x86-64" - dimensions: "os:Windows-10" - dimensions: "pool:luci.chromium.ci" - exe { - cipd_package: "infra/recipe_bundles/chromium.googlesource.com/chromium/tools/build" - cipd_version: "refs/heads/master" - cmd: "recipes" - } - properties: "{\"$build/chromium_tests\":{\"bucketed_triggers\":true},\"$build/goma\":{\"enable_ats\":true,\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"chromium.win\",\"recipe\":\"chromium\"}" - execution_timeout_secs: 10800 - build_numbers: YES - service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com" - resultdb { - enable: true - bq_exports { - project: "luci-resultdb" - dataset: "chromium" - table: "ci_test_results" - test_results {} - } - } - } - builders { - name: "Win10 x64 Release (NVIDIA)" - swarming_host: "chromium-swarm.appspot.com" - swarming_tags: "vpython:native-python-wrapper" - dimensions: "builderless:1" - dimensions: "cores:2" - dimensions: "cpu:x86-64" - dimensions: "os:Ubuntu-16.04" - dimensions: "pool:luci.chromium.ci" - dimensions: "ssd:0" - exe { - cipd_package: "infra/recipe_bundles/chromium.googlesource.com/chromium/tools/build" - cipd_version: "refs/heads/master" - cmd: "recipes" - } - properties: "{\"$build/chromium_tests\":{\"bucketed_triggers\":true},\"$build/goma\":{\"enable_ats\":true,\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"chromium.gpu\",\"recipe\":\"chromium\"}" - execution_timeout_secs: 10800 - build_numbers: YES - service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com" - resultdb { - enable: true - bq_exports { - project: "luci-resultdb" - dataset: "chromium" - table: "ci_test_results" - test_results {} - } - } - } - builders { - name: "Win7 Tests (dbg)(1)" - swarming_host: "chromium-swarm.appspot.com" - swarming_tags: "vpython:native-python-wrapper" - dimensions: "builder:Win7 Tests (dbg)(1)" - dimensions: "cores:8" - dimensions: "cpu:x86-64" - dimensions: "os:Windows-7" - dimensions: "pool:luci.chromium.ci" - exe { - cipd_package: "infra/recipe_bundles/chromium.googlesource.com/chromium/tools/build" - cipd_version: "refs/heads/master" - cmd: "recipes" - } - properties: "{\"$build/chromium_tests\":{\"bucketed_triggers\":true},\"$build/goma\":{\"enable_ats\":true,\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"chromium.win\",\"recipe\":\"chromium\"}" - execution_timeout_secs: 10800 - build_numbers: YES - service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com" - resultdb { - enable: true - bq_exports { - project: "luci-resultdb" - dataset: "chromium" - table: "ci_test_results" - test_results {} - } - } - } - builders { - name: "android-cronet-arm-dbg" - swarming_host: "chromium-swarm.appspot.com" - swarming_tags: "vpython:native-python-wrapper" - dimensions: "builderless:1" - dimensions: "cores:8" - dimensions: "cpu:x86-64" - dimensions: "os:Ubuntu-16.04" - dimensions: "pool:luci.chromium.ci" - dimensions: "ssd:0" - exe { - cipd_package: "infra/recipe_bundles/chromium.googlesource.com/chromium/tools/build" - cipd_version: "refs/heads/master" - cmd: "recipes" - } - properties: "{\"$build/chromium_tests\":{\"bucketed_triggers\":true},\"$build/goma\":{\"enable_ats\":true,\"jobs\":150,\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"chromium.android\",\"recipe\":\"chromium\"}" - execution_timeout_secs: 10800 - build_numbers: YES - service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com" - resultdb { - enable: true - bq_exports { - project: "luci-resultdb" - dataset: "chromium" - table: "ci_test_results" - test_results {} - } - } - } - builders { - name: "android-cronet-arm-rel" - swarming_host: "chromium-swarm.appspot.com" - swarming_tags: "vpython:native-python-wrapper" - dimensions: "builderless:1" - dimensions: "cores:8" - dimensions: "cpu:x86-64" - dimensions: "os:Ubuntu-16.04" - dimensions: "pool:luci.chromium.ci" - dimensions: "ssd:0" - exe { - cipd_package: "infra/recipe_bundles/chromium.googlesource.com/chromium/tools/build" - cipd_version: "refs/heads/master" - cmd: "recipes" - } - properties: "{\"$build/chromium_tests\":{\"bucketed_triggers\":true},\"$build/goma\":{\"enable_ats\":true,\"jobs\":150,\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"chromium.android\",\"recipe\":\"chromium\"}" - execution_timeout_secs: 10800 - build_numbers: YES - service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com" - resultdb { - enable: true - bq_exports { - project: "luci-resultdb" - dataset: "chromium" - table: "ci_test_results" - test_results {} - } - } - } - builders { - name: "android-cronet-kitkat-arm-rel" - swarming_host: "chromium-swarm.appspot.com" - swarming_tags: "vpython:native-python-wrapper" - dimensions: "builderless:1" - dimensions: "cores:8" - dimensions: "cpu:x86-64" - dimensions: "os:Ubuntu-16.04" - dimensions: "pool:luci.chromium.ci" - dimensions: "ssd:0" - exe { - cipd_package: "infra/recipe_bundles/chromium.googlesource.com/chromium/tools/build" - cipd_version: "refs/heads/master" - cmd: "recipes" - } - properties: "{\"$build/chromium_tests\":{\"bucketed_triggers\":true},\"$build/goma\":{\"enable_ats\":true,\"jobs\":150,\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"chromium.android\",\"recipe\":\"chromium\"}" - execution_timeout_secs: 10800 - build_numbers: YES - service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com" - resultdb { - enable: true - bq_exports { - project: "luci-resultdb" - dataset: "chromium" - table: "ci_test_results" - test_results {} - } - } - } - builders { - name: "android-cronet-lollipop-arm-rel" - swarming_host: "chromium-swarm.appspot.com" - swarming_tags: "vpython:native-python-wrapper" - dimensions: "builderless:1" - dimensions: "cores:8" - dimensions: "cpu:x86-64" - dimensions: "os:Ubuntu-16.04" - dimensions: "pool:luci.chromium.ci" - dimensions: "ssd:0" - exe { - cipd_package: "infra/recipe_bundles/chromium.googlesource.com/chromium/tools/build" - cipd_version: "refs/heads/master" - cmd: "recipes" - } - properties: "{\"$build/chromium_tests\":{\"bucketed_triggers\":true},\"$build/goma\":{\"enable_ats\":true,\"jobs\":150,\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"chromium.android\",\"recipe\":\"chromium\"}" - execution_timeout_secs: 10800 - build_numbers: YES - service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com" - resultdb { - enable: true - bq_exports { - project: "luci-resultdb" - dataset: "chromium" - table: "ci_test_results" - test_results {} - } - } - } - builders { - name: "android-lollipop-arm-rel" - swarming_host: "chromium-swarm.appspot.com" - swarming_tags: "vpython:native-python-wrapper" - dimensions: "builderless:1" - dimensions: "cores:8" - dimensions: "cpu:x86-64" - dimensions: "os:Ubuntu-16.04" - dimensions: "pool:luci.chromium.ci" - dimensions: "ssd:0" - exe { - cipd_package: "infra/recipe_bundles/chromium.googlesource.com/chromium/tools/build" - cipd_version: "refs/heads/master" - cmd: "recipes" - } - properties: "{\"$build/chromium_tests\":{\"bucketed_triggers\":true},\"$build/goma\":{\"enable_ats\":true,\"jobs\":150,\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"chromium.android\",\"recipe\":\"chromium\"}" - execution_timeout_secs: 10800 - build_numbers: YES - service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com" - resultdb { - enable: true - bq_exports { - project: "luci-resultdb" - dataset: "chromium" - table: "ci_test_results" - test_results {} - } - } - } - builders { - name: "android-marshmallow-arm64-rel" - swarming_host: "chromium-swarm.appspot.com" - swarming_tags: "vpython:native-python-wrapper" - dimensions: "builderless:1" - dimensions: "cores:8" - dimensions: "cpu:x86-64" - dimensions: "os:Ubuntu-16.04" - dimensions: "pool:luci.chromium.ci" - dimensions: "ssd:0" - exe { - cipd_package: "infra/recipe_bundles/chromium.googlesource.com/chromium/tools/build" - cipd_version: "refs/heads/master" - cmd: "recipes" - } - properties: "{\"$build/chromium_tests\":{\"bucketed_triggers\":true},\"$build/goma\":{\"enable_ats\":true,\"jobs\":150,\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"chromium.android\",\"recipe\":\"chromium\"}" - execution_timeout_secs: 10800 - build_numbers: YES - service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com" - resultdb { - enable: true - bq_exports { - project: "luci-resultdb" - dataset: "chromium" - table: "ci_test_results" - test_results {} - } - } - } - builders { - name: "android-pie-arm64-dbg" - swarming_host: "chromium-swarm.appspot.com" - swarming_tags: "vpython:native-python-wrapper" - dimensions: "builderless:1" - dimensions: "cores:8" - dimensions: "cpu:x86-64" - dimensions: "os:Ubuntu-16.04" - dimensions: "pool:luci.chromium.ci" - dimensions: "ssd:0" - exe { - cipd_package: "infra/recipe_bundles/chromium.googlesource.com/chromium/tools/build" - cipd_version: "refs/heads/master" - cmd: "recipes" - } - properties: "{\"$build/chromium_tests\":{\"bucketed_triggers\":true},\"$build/goma\":{\"enable_ats\":true,\"jobs\":150,\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"chromium.android\",\"recipe\":\"chromium\"}" - execution_timeout_secs: 10800 - build_numbers: YES - service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com" - resultdb { - enable: true - bq_exports { - project: "luci-resultdb" - dataset: "chromium" - table: "ci_test_results" - test_results {} - } - } - } - builders { - name: "android-pie-arm64-rel" - swarming_host: "chromium-swarm.appspot.com" - swarming_tags: "vpython:native-python-wrapper" - dimensions: "builderless:1" - dimensions: "cores:8" - dimensions: "cpu:x86-64" - dimensions: "os:Ubuntu-16.04" - dimensions: "pool:luci.chromium.ci" - dimensions: "ssd:0" - exe { - cipd_package: "infra/recipe_bundles/chromium.googlesource.com/chromium/tools/build" - cipd_version: "refs/heads/master" - cmd: "recipes" - } - properties: "{\"$build/chromium_tests\":{\"bucketed_triggers\":true},\"$build/goma\":{\"enable_ats\":true,\"jobs\":150,\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"chromium.android\",\"recipe\":\"chromium\"}" - execution_timeout_secs: 10800 - build_numbers: YES - service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com" - resultdb { - enable: true - bq_exports { - project: "luci-resultdb" - dataset: "chromium" - table: "ci_test_results" - test_results {} - } - } - } - builders { - name: "chromeos-amd64-generic-dbg" - swarming_host: "chromium-swarm.appspot.com" - swarming_tags: "vpython:native-python-wrapper" - dimensions: "builderless:1" - dimensions: "cores:8" - dimensions: "cpu:x86-64" - dimensions: "os:Ubuntu-16.04" - dimensions: "pool:luci.chromium.ci" - dimensions: "ssd:0" - exe { - cipd_package: "infra/recipe_bundles/chromium.googlesource.com/chromium/tools/build" - cipd_version: "refs/heads/master" - cmd: "recipes" - } - properties: "{\"$build/chromium_tests\":{\"bucketed_triggers\":true},\"$build/goma\":{\"enable_ats\":true,\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"chromium.chromiumos\",\"recipe\":\"chromium\"}" - execution_timeout_secs: 10800 - build_numbers: YES - service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com" - resultdb { - enable: true - bq_exports { - project: "luci-resultdb" - dataset: "chromium" - table: "ci_test_results" - test_results {} - } - } - } - builders { - name: "chromeos-amd64-generic-rel" - swarming_host: "chromium-swarm.appspot.com" - swarming_tags: "vpython:native-python-wrapper" - dimensions: "builderless:1" - dimensions: "cores:8" - dimensions: "cpu:x86-64" - dimensions: "os:Ubuntu-16.04" - dimensions: "pool:luci.chromium.ci" - dimensions: "ssd:0" - exe { - cipd_package: "infra/recipe_bundles/chromium.googlesource.com/chromium/tools/build" - cipd_version: "refs/heads/master" - cmd: "recipes" - } - properties: "{\"$build/chromium_tests\":{\"bucketed_triggers\":true},\"$build/goma\":{\"enable_ats\":true,\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"chromium.chromiumos\",\"recipe\":\"chromium\"}" - execution_timeout_secs: 10800 - build_numbers: YES - service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com" - resultdb { - enable: true - bq_exports { - project: "luci-resultdb" - dataset: "chromium" - table: "ci_test_results" - test_results {} - } - } - } - builders { - name: "chromeos-arm-generic-rel" - swarming_host: "chromium-swarm.appspot.com" - swarming_tags: "vpython:native-python-wrapper" - dimensions: "builderless:1" - dimensions: "cores:8" - dimensions: "cpu:x86-64" - dimensions: "os:Ubuntu-16.04" - dimensions: "pool:luci.chromium.ci" - dimensions: "ssd:0" - exe { - cipd_package: "infra/recipe_bundles/chromium.googlesource.com/chromium/tools/build" - cipd_version: "refs/heads/master" - cmd: "recipes" - } - properties: "{\"$build/chromium_tests\":{\"bucketed_triggers\":true},\"$build/goma\":{\"enable_ats\":true,\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"chromium.chromiumos\",\"recipe\":\"chromium\"}" - execution_timeout_secs: 10800 - build_numbers: YES - service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com" - resultdb { - enable: true - bq_exports { - project: "luci-resultdb" - dataset: "chromium" - table: "ci_test_results" - test_results {} - } - } - } - builders { - name: "fuchsia-arm64-cast" - swarming_host: "chromium-swarm.appspot.com" - swarming_tags: "vpython:native-python-wrapper" - dimensions: "builderless:1" - dimensions: "cores:8" - dimensions: "cpu:x86-64" - dimensions: "os:Ubuntu-16.04" - dimensions: "pool:luci.chromium.ci" - dimensions: "ssd:0" - exe { - cipd_package: "infra/recipe_bundles/chromium.googlesource.com/chromium/tools/build" - cipd_version: "refs/heads/master" - cmd: "recipes" - } - properties: "{\"$build/chromium_tests\":{\"bucketed_triggers\":true},\"$build/goma\":{\"enable_ats\":true,\"jobs\":500,\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"chromium.linux\",\"recipe\":\"chromium\"}" - execution_timeout_secs: 10800 - build_numbers: YES - service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com" - resultdb { - enable: true - bq_exports { - project: "luci-resultdb" - dataset: "chromium" - table: "ci_test_results" - test_results {} - } - } - } - builders { - name: "fuchsia-x64-cast" - swarming_host: "chromium-swarm.appspot.com" - swarming_tags: "vpython:native-python-wrapper" - dimensions: "builderless:1" - dimensions: "cores:8" - dimensions: "cpu:x86-64" - dimensions: "os:Ubuntu-16.04" - dimensions: "pool:luci.chromium.ci" - dimensions: "ssd:0" - exe { - cipd_package: "infra/recipe_bundles/chromium.googlesource.com/chromium/tools/build" - cipd_version: "refs/heads/master" - cmd: "recipes" - } - properties: "{\"$build/chromium_tests\":{\"bucketed_triggers\":true},\"$build/goma\":{\"enable_ats\":true,\"jobs\":500,\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"chromium.linux\",\"recipe\":\"chromium\"}" - execution_timeout_secs: 10800 - build_numbers: YES - service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com" - resultdb { - enable: true - bq_exports { - project: "luci-resultdb" - dataset: "chromium" - table: "ci_test_results" - test_results {} - } - } - } - builders { - name: "ios-simulator" - swarming_host: "chromium-swarm.appspot.com" - swarming_tags: "vpython:native-python-wrapper" - dimensions: "builder:chromium/ci-m84/ios-simulator" - dimensions: "cpu:x86-64" - dimensions: "os:Mac-10.15" - dimensions: "pool:luci.chromium.ci" - exe { - cipd_package: "infra/recipe_bundles/chromium.googlesource.com/chromium/tools/build" - cipd_version: "refs/heads/master" - cmd: "recipes" - } - properties: "{\"$build/chromium_tests\":{\"bucketed_triggers\":true},\"$build/goma\":{\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"chromium.mac\",\"recipe\":\"chromium\",\"xcode_build_version\":\"11e146\"}" - execution_timeout_secs: 10800 - caches { - name: "xcode_ios_12a8189h" - path: "xcode_ios_12a8189h.app" - } - build_numbers: YES - service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com" - resultdb { - enable: true - bq_exports { - project: "luci-resultdb" - dataset: "chromium" - table: "ci_test_results" - test_results {} - } - } - } - builders { - name: "ios-simulator-cronet" - swarming_host: "chromium-swarm.appspot.com" - swarming_tags: "vpython:native-python-wrapper" - dimensions: "builder:chromium/ci-m84/ios-simulator-cronet" - dimensions: "cpu:x86-64" - dimensions: "os:Mac-10.15" - dimensions: "pool:luci.chromium.ci" - exe { - cipd_package: "infra/recipe_bundles/chromium.googlesource.com/chromium/tools/build" - cipd_version: "refs/heads/master" - cmd: "recipes" - } - properties: "{\"$build/chromium_tests\":{\"bucketed_triggers\":true},\"$build/goma\":{\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"chromium.fyi\",\"recipe\":\"chromium\",\"xcode_build_version\":\"11c29\"}" - execution_timeout_secs: 36000 - caches { - name: "xcode_ios_12a8189h" - path: "xcode_ios_12a8189h.app" - } - build_numbers: YES - service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com" - resultdb { - enable: true - bq_exports { - project: "luci-resultdb" - dataset: "chromium" - table: "ci_test_results" - test_results {} - } - } - } - builders { - name: "ios-simulator-full-configs" - swarming_host: "chromium-swarm.appspot.com" - swarming_tags: "vpython:native-python-wrapper" - dimensions: "builder:chromium/ci-m84/ios-simulator-full-configs" - dimensions: "cpu:x86-64" - dimensions: "os:Mac-10.15" - dimensions: "pool:luci.chromium.ci" - exe { - cipd_package: "infra/recipe_bundles/chromium.googlesource.com/chromium/tools/build" - cipd_version: "refs/heads/master" - cmd: "recipes" - } - properties: "{\"$build/chromium_tests\":{\"bucketed_triggers\":true},\"$build/goma\":{\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"chromium.mac\",\"recipe\":\"chromium\",\"xcode_build_version\":\"11e146\"}" - execution_timeout_secs: 10800 - caches { - name: "xcode_ios_12a8189h" - path: "xcode_ios_12a8189h.app" - } - build_numbers: YES - service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com" - resultdb { - enable: true - bq_exports { - project: "luci-resultdb" - dataset: "chromium" - table: "ci_test_results" - test_results {} - } - } - } - builders { - name: "linux-chromeos-dbg" - swarming_host: "chromium-swarm.appspot.com" - swarming_tags: "vpython:native-python-wrapper" - dimensions: "builderless:1" - dimensions: "cores:8" - dimensions: "cpu:x86-64" - dimensions: "os:Ubuntu-16.04" - dimensions: "pool:luci.chromium.ci" - dimensions: "ssd:0" - exe { - cipd_package: "infra/recipe_bundles/chromium.googlesource.com/chromium/tools/build" - cipd_version: "refs/heads/master" - cmd: "recipes" - } - properties: "{\"$build/chromium_tests\":{\"bucketed_triggers\":true},\"$build/goma\":{\"enable_ats\":true,\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"chromium.chromiumos\",\"recipe\":\"chromium\"}" - execution_timeout_secs: 10800 - build_numbers: YES - service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com" - resultdb { - enable: true - bq_exports { - project: "luci-resultdb" - dataset: "chromium" - table: "ci_test_results" - test_results {} - } - } - } - builders { - name: "linux-chromeos-rel" - swarming_host: "chromium-swarm.appspot.com" - swarming_tags: "vpython:native-python-wrapper" - dimensions: "builderless:1" - dimensions: "cores:8" - dimensions: "cpu:x86-64" - dimensions: "os:Ubuntu-16.04" - dimensions: "pool:luci.chromium.ci" - dimensions: "ssd:0" - exe { - cipd_package: "infra/recipe_bundles/chromium.googlesource.com/chromium/tools/build" - cipd_version: "refs/heads/master" - cmd: "recipes" - } - properties: "{\"$build/chromium_tests\":{\"bucketed_triggers\":true},\"$build/goma\":{\"enable_ats\":true,\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"chromium.chromiumos\",\"recipe\":\"chromium\"}" - execution_timeout_secs: 10800 - build_numbers: YES - service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com" - resultdb { - enable: true - bq_exports { - project: "luci-resultdb" - dataset: "chromium" - table: "ci_test_results" - test_results {} - } - } - } - builders { - name: "linux-ozone-rel" - swarming_host: "chromium-swarm.appspot.com" - swarming_tags: "vpython:native-python-wrapper" - dimensions: "builderless:1" - dimensions: "cores:8" - dimensions: "cpu:x86-64" - dimensions: "os:Ubuntu-16.04" - dimensions: "pool:luci.chromium.ci" - dimensions: "ssd:0" - exe { - cipd_package: "infra/recipe_bundles/chromium.googlesource.com/chromium/tools/build" - cipd_version: "refs/heads/master" - cmd: "recipes" - } - properties: "{\"$build/chromium_tests\":{\"bucketed_triggers\":true},\"$build/goma\":{\"enable_ats\":true,\"jobs\":500,\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"chromium.linux\",\"recipe\":\"chromium\"}" - execution_timeout_secs: 10800 - build_numbers: YES - service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com" - resultdb { - enable: true - bq_exports { - project: "luci-resultdb" - dataset: "chromium" - table: "ci_test_results" - test_results {} - } - } - } - } -} -buckets { name: "ci-m85" acls { role: WRITER @@ -17000,8 +14642,8 @@ properties: "{\"$build/chromium_tests\":{\"bucketed_triggers\":true},\"$build/goma\":{\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"chromium.mac\",\"recipe\":\"chromium\",\"xcode_build_version\":\"11e146\"}" execution_timeout_secs: 10800 caches { - name: "xcode_ios_12a8189h" - path: "xcode_ios_12a8189h.app" + name: "xcode_ios_12a8189n" + path: "xcode_ios_12a8189n.app" } build_numbers: YES service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com" @@ -17031,8 +14673,8 @@ properties: "{\"$build/chromium_tests\":{\"bucketed_triggers\":true},\"$build/goma\":{\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"chromium.fyi\",\"recipe\":\"chromium\",\"xcode_build_version\":\"11e146\"}" execution_timeout_secs: 36000 caches { - name: "xcode_ios_12a8189h" - path: "xcode_ios_12a8189h.app" + name: "xcode_ios_12a8189n" + path: "xcode_ios_12a8189n.app" } build_numbers: YES service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com" @@ -17062,8 +14704,8 @@ properties: "{\"$build/chromium_tests\":{\"bucketed_triggers\":true},\"$build/goma\":{\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"chromium.mac\",\"recipe\":\"chromium\",\"xcode_build_version\":\"11e146\"}" execution_timeout_secs: 10800 caches { - name: "xcode_ios_12a8189h" - path: "xcode_ios_12a8189h.app" + name: "xcode_ios_12a8189n" + path: "xcode_ios_12a8189n.app" } build_numbers: YES service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com" @@ -19377,6 +17019,43 @@ } } builders { + name: "android-cronet-marshmallow-arm64-rel" + swarming_host: "chromium-swarm.appspot.com" + swarming_tags: "vpython:native-python-wrapper" + dimensions: "builderless:1" + dimensions: "cores:8" + dimensions: "cpu:x86-64" + dimensions: "os:Ubuntu-16.04" + dimensions: "pool:luci.chromium.try" + dimensions: "ssd:0" + exe { + cipd_package: "infra/recipe_bundles/chromium.googlesource.com/chromium/tools/build" + cipd_version: "refs/heads/master" + cmd: "recipes" + } + properties: "{\"$build/goma\":{\"enable_ats\":true,\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"tryserver.chromium.android\",\"recipe\":\"chromium_trybot\"}" + execution_timeout_secs: 14400 + expiration_secs: 7200 + caches { + name: "win_toolchain" + path: "win_toolchain" + } + build_numbers: YES + service_account: "chromium-try-builder@chops-service-accounts.iam.gserviceaccount.com" + task_template_canary_percentage { + value: 5 + } + resultdb { + enable: true + bq_exports { + project: "luci-resultdb" + dataset: "chromium" + table: "try_test_results" + test_results {} + } + } + } + builders { name: "android-deterministic-dbg" swarming_host: "chromium-swarm.appspot.com" swarming_tags: "vpython:native-python-wrapper" @@ -24246,7 +21925,7 @@ cipd_version: "refs/heads/master" cmd: "recipes" } - properties: "{\"$build/goma\":{\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"tryserver.chromium.mac\",\"recipe\":\"chromium_trybot\",\"xcode_build_version\":\"12a8189h\"}" + properties: "{\"$build/goma\":{\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"tryserver.chromium.mac\",\"recipe\":\"chromium_trybot\",\"xcode_build_version\":\"12a8189n\"}" execution_timeout_secs: 14400 expiration_secs: 7200 caches { @@ -24254,8 +21933,8 @@ path: "win_toolchain" } caches { - name: "xcode_ios_12a8189h" - path: "xcode_ios_12a8189h.app" + name: "xcode_ios_12a8189n" + path: "xcode_ios_12a8189n.app" } build_numbers: YES service_account: "chromium-try-builder@chops-service-accounts.iam.gserviceaccount.com" @@ -24285,7 +21964,7 @@ cipd_version: "refs/heads/master" cmd: "recipes" } - properties: "{\"$build/goma\":{\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"tryserver.chromium.mac\",\"recipe\":\"chromium_trybot\",\"xcode_build_version\":\"12a8189h\"}" + properties: "{\"$build/goma\":{\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"tryserver.chromium.mac\",\"recipe\":\"chromium_trybot\",\"xcode_build_version\":\"12a8189n\"}" execution_timeout_secs: 14400 expiration_secs: 7200 caches { @@ -24293,8 +21972,8 @@ path: "win_toolchain" } caches { - name: "xcode_ios_12a8189h" - path: "xcode_ios_12a8189h.app" + name: "xcode_ios_12a8189n" + path: "xcode_ios_12a8189n.app" } build_numbers: YES service_account: "chromium-try-builder@chops-service-accounts.iam.gserviceaccount.com" @@ -24324,7 +22003,7 @@ cipd_version: "refs/heads/master" cmd: "recipes" } - properties: "{\"$build/code_coverage\":{\"coverage_exclude_sources\":\"ios_test_files_and_test_utils\",\"coverage_test_types\":[\"unit\"],\"use_clang_coverage\":true},\"$build/goma\":{\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"tryserver.chromium.mac\",\"recipe\":\"chromium_trybot\",\"xcode_build_version\":\"12a8189h\"}" + properties: "{\"$build/code_coverage\":{\"coverage_exclude_sources\":\"ios_test_files_and_test_utils\",\"coverage_test_types\":[\"unit\"],\"use_clang_coverage\":true},\"$build/goma\":{\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"tryserver.chromium.mac\",\"recipe\":\"chromium_trybot\",\"xcode_build_version\":\"12a8189n\"}" execution_timeout_secs: 14400 expiration_secs: 7200 caches { @@ -24332,8 +22011,8 @@ path: "win_toolchain" } caches { - name: "xcode_ios_12a8189h" - path: "xcode_ios_12a8189h.app" + name: "xcode_ios_12a8189n" + path: "xcode_ios_12a8189n.app" } build_numbers: YES service_account: "chromium-try-builder@chops-service-accounts.iam.gserviceaccount.com" @@ -24363,7 +22042,7 @@ cipd_version: "refs/heads/master" cmd: "recipes" } - properties: "{\"$build/goma\":{\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"tryserver.chromium.mac\",\"recipe\":\"chromium_trybot\",\"xcode_build_version\":\"12a8189h\"}" + properties: "{\"$build/goma\":{\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"tryserver.chromium.mac\",\"recipe\":\"chromium_trybot\",\"xcode_build_version\":\"12a8189n\"}" execution_timeout_secs: 14400 expiration_secs: 7200 caches { @@ -24371,8 +22050,8 @@ path: "win_toolchain" } caches { - name: "xcode_ios_12a8189h" - path: "xcode_ios_12a8189h.app" + name: "xcode_ios_12a8189n" + path: "xcode_ios_12a8189n.app" } build_numbers: YES service_account: "chromium-try-builder@chops-service-accounts.iam.gserviceaccount.com" @@ -24441,7 +22120,7 @@ cipd_version: "refs/heads/master" cmd: "recipes" } - properties: "{\"$build/goma\":{\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"tryserver.chromium.mac\",\"recipe\":\"ios/try\",\"xcode_build_version\":\"12a8189h\"}" + properties: "{\"$build/goma\":{\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"tryserver.chromium.mac\",\"recipe\":\"ios/try\",\"xcode_build_version\":\"12a8189n\"}" execution_timeout_secs: 14400 expiration_secs: 7200 caches { @@ -24449,8 +22128,8 @@ path: "win_toolchain" } caches { - name: "xcode_ios_12a8189h" - path: "xcode_ios_12a8189h.app" + name: "xcode_ios_12a8189n" + path: "xcode_ios_12a8189n.app" } build_numbers: YES service_account: "chromium-try-builder@chops-service-accounts.iam.gserviceaccount.com" @@ -24480,7 +22159,7 @@ cipd_version: "refs/heads/master" cmd: "recipes" } - properties: "{\"$build/goma\":{\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"tryserver.chromium.mac\",\"recipe\":\"chromium_trybot\",\"xcode_build_version\":\"12a8189h\"}" + properties: "{\"$build/goma\":{\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"tryserver.chromium.mac\",\"recipe\":\"chromium_trybot\",\"xcode_build_version\":\"12a8189n\"}" execution_timeout_secs: 14400 expiration_secs: 7200 caches { @@ -24488,8 +22167,8 @@ path: "win_toolchain" } caches { - name: "xcode_ios_12a8189h" - path: "xcode_ios_12a8189h.app" + name: "xcode_ios_12a8189n" + path: "xcode_ios_12a8189n.app" } build_numbers: YES service_account: "chromium-try-builder@chops-service-accounts.iam.gserviceaccount.com" @@ -24519,7 +22198,7 @@ cipd_version: "refs/heads/master" cmd: "recipes" } - properties: "{\"$build/goma\":{\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"tryserver.chromium.mac\",\"recipe\":\"chromium_trybot\",\"xcode_build_version\":\"12a8189h\"}" + properties: "{\"$build/goma\":{\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"tryserver.chromium.mac\",\"recipe\":\"chromium_trybot\",\"xcode_build_version\":\"12a8189n\"}" execution_timeout_secs: 14400 expiration_secs: 7200 caches { @@ -24527,8 +22206,8 @@ path: "win_toolchain" } caches { - name: "xcode_ios_12a8189h" - path: "xcode_ios_12a8189h.app" + name: "xcode_ios_12a8189n" + path: "xcode_ios_12a8189n.app" } build_numbers: YES service_account: "chromium-try-builder@chops-service-accounts.iam.gserviceaccount.com" @@ -24558,7 +22237,7 @@ cipd_version: "refs/heads/master" cmd: "recipes" } - properties: "{\"$build/goma\":{\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"tryserver.chromium.mac\",\"recipe\":\"chromium_trybot\",\"xcode_build_version\":\"12a8189h\"}" + properties: "{\"$build/goma\":{\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"tryserver.chromium.mac\",\"recipe\":\"chromium_trybot\",\"xcode_build_version\":\"12a8189n\"}" execution_timeout_secs: 14400 expiration_secs: 7200 caches { @@ -24566,8 +22245,8 @@ path: "win_toolchain" } caches { - name: "xcode_ios_12a8189h" - path: "xcode_ios_12a8189h.app" + name: "xcode_ios_12a8189n" + path: "xcode_ios_12a8189n.app" } build_numbers: YES service_account: "chromium-try-builder@chops-service-accounts.iam.gserviceaccount.com" @@ -24597,7 +22276,7 @@ cipd_version: "refs/heads/master" cmd: "recipes" } - properties: "{\"$build/goma\":{\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"tryserver.chromium.mac\",\"recipe\":\"chromium_trybot\",\"xcode_build_version\":\"12a8189h\"}" + properties: "{\"$build/goma\":{\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"tryserver.chromium.mac\",\"recipe\":\"chromium_trybot\",\"xcode_build_version\":\"12a8189n\"}" execution_timeout_secs: 14400 expiration_secs: 7200 caches { @@ -24605,8 +22284,8 @@ path: "win_toolchain" } caches { - name: "xcode_ios_12a8189h" - path: "xcode_ios_12a8189h.app" + name: "xcode_ios_12a8189n" + path: "xcode_ios_12a8189n.app" } build_numbers: YES service_account: "chromium-try-builder@chops-service-accounts.iam.gserviceaccount.com" @@ -24636,7 +22315,7 @@ cipd_version: "refs/heads/master" cmd: "recipes" } - properties: "{\"$build/goma\":{\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"tryserver.chromium.mac\",\"recipe\":\"chromium_trybot\",\"xcode_build_version\":\"12a8189h\"}" + properties: "{\"$build/goma\":{\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"tryserver.chromium.mac\",\"recipe\":\"chromium_trybot\",\"xcode_build_version\":\"12a8189n\"}" execution_timeout_secs: 14400 expiration_secs: 7200 caches { @@ -24644,8 +22323,8 @@ path: "win_toolchain" } caches { - name: "xcode_ios_12a8189h" - path: "xcode_ios_12a8189h.app" + name: "xcode_ios_12a8189n" + path: "xcode_ios_12a8189n.app" } build_numbers: YES service_account: "chromium-try-builder@chops-service-accounts.iam.gserviceaccount.com" @@ -24675,7 +22354,7 @@ cipd_version: "refs/heads/master" cmd: "recipes" } - properties: "{\"$build/goma\":{\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"tryserver.chromium.mac\",\"recipe\":\"chromium_trybot\",\"xcode_build_version\":\"12a8189h\"}" + properties: "{\"$build/goma\":{\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"tryserver.chromium.mac\",\"recipe\":\"chromium_trybot\",\"xcode_build_version\":\"12a8189n\"}" execution_timeout_secs: 14400 expiration_secs: 7200 caches { @@ -24683,8 +22362,8 @@ path: "win_toolchain" } caches { - name: "xcode_ios_12a8189h" - path: "xcode_ios_12a8189h.app" + name: "xcode_ios_12a8189n" + path: "xcode_ios_12a8189n.app" } build_numbers: YES service_account: "chromium-try-builder@chops-service-accounts.iam.gserviceaccount.com" @@ -24714,7 +22393,7 @@ cipd_version: "refs/heads/master" cmd: "recipes" } - properties: "{\"$build/goma\":{\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"tryserver.chromium.mac\",\"recipe\":\"chromium_trybot\",\"xcode_build_version\":\"12a8189h\"}" + properties: "{\"$build/goma\":{\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"tryserver.chromium.mac\",\"recipe\":\"chromium_trybot\",\"xcode_build_version\":\"12a8189n\"}" execution_timeout_secs: 14400 expiration_secs: 7200 caches { @@ -24722,8 +22401,8 @@ path: "win_toolchain" } caches { - name: "xcode_ios_12a8189h" - path: "xcode_ios_12a8189h.app" + name: "xcode_ios_12a8189n" + path: "xcode_ios_12a8189n.app" } build_numbers: YES service_account: "chromium-try-builder@chops-service-accounts.iam.gserviceaccount.com" @@ -28415,7 +26094,7 @@ swarming_host: "chromium-swarm.appspot.com" swarming_tags: "vpython:native-python-wrapper" dimensions: "builderless:1" - dimensions: "cores:8" + dimensions: "cores:32" dimensions: "cpu:x86-64" dimensions: "os:Windows-10" dimensions: "pool:luci.chromium.try" @@ -28858,7 +26537,7 @@ swarming_host: "chromium-swarm.appspot.com" swarming_tags: "vpython:native-python-wrapper" dimensions: "builderless:1" - dimensions: "cores:8" + dimensions: "cores:32" dimensions: "cpu:x86-64" dimensions: "os:Windows-10" dimensions: "pool:luci.chromium.try" @@ -29299,1887 +26978,6 @@ } } buckets { - name: "try-m84" - acls { - role: WRITER - group: "service-account-chromium-tryserver" - } - acls { - group: "all" - } - acls { - role: SCHEDULER - identity: "user:findit-for-me@appspot.gserviceaccount.com" - } - acls { - role: SCHEDULER - identity: "user:tricium-prod@appspot.gserviceaccount.com" - } - acls { - role: SCHEDULER - group: "project-chromium-tryjob-access" - } - acls { - role: SCHEDULER - group: "service-account-chromeperf" - } - acls { - role: SCHEDULER - group: "service-account-cq" - } - swarming { - builders { - name: "android-binary-size" - swarming_host: "chromium-swarm.appspot.com" - swarming_tags: "vpython:native-python-wrapper" - dimensions: "builderless:1" - dimensions: "cores:8" - dimensions: "cpu:x86-64" - dimensions: "os:Ubuntu-16.04" - dimensions: "pool:luci.chromium.try" - dimensions: "ssd:0" - exe { - cipd_package: "infra/recipe_bundles/chromium.googlesource.com/chromium/tools/build" - cipd_version: "refs/heads/master" - cmd: "recipes" - } - properties: "{\"$build/binary_size\":{\"analyze_targets\":[\"//android_webview:system_webview_apk_manifest_expectations\",\"//android_webview:trichrome_webview_apk_manifest_expectations\",\"//chrome/android:chrome_modern_public_bundle__base_libs_and_assets_expectations\",\"//chrome/android:monochrome_public_bundle__base_bundle_module_manifest_expectations\",\"//chrome/android:monochrome_public_bundle__base_libs_and_assets_expectations\",\"//chrome/android:monochrome_public_bundle_proguard_expectations\",\"//chrome/android:monochrome_public_minimal_apks\",\"//chrome/android:trichrome_chrome_bundle__base_bundle_module_manifest_expectations\",\"//chrome/android:trichrome_chrome_bundle__base_libs_and_assets_expectations\",\"//chrome/android:trichrome_library_apk_libs_and_assets_expectations\",\"//chrome/android:trichrome_library_apk_manifest_expectations\",\"//tools/binary_size:binary_size_trybot_py\"],\"compile_targets\":[\"chrome_modern_public_bundle__base_libs_and_assets_expectations\",\"monochrome_public_bundle__base_bundle_module_manifest_expectations\",\"monochrome_public_bundle__base_libs_and_assets_expectations\",\"monochrome_public_bundle_proguard_expectations\",\"monochrome_public_minimal_apks\",\"monochrome_static_initializers\",\"system_webview_apk_manifest_expectations\",\"trichrome_chrome_bundle__base_bundle_module_manifest_expectations\",\"trichrome_chrome_bundle__base_libs_and_assets_expectations\",\"trichrome_library_apk_libs_and_assets_expectations\",\"trichrome_library_apk_manifest_expectations\",\"trichrome_webview_apk_manifest_expectations\"]},\"$build/goma\":{\"enable_ats\":true,\"jobs\":150,\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"tryserver.chromium.android\",\"recipe\":\"binary_size_trybot\"}" - execution_timeout_secs: 14400 - expiration_secs: 7200 - caches { - name: "win_toolchain" - path: "win_toolchain" - } - build_numbers: YES - service_account: "chromium-try-builder@chops-service-accounts.iam.gserviceaccount.com" - task_template_canary_percentage { - value: 5 - } - resultdb { - enable: true - bq_exports { - project: "luci-resultdb" - dataset: "chromium" - table: "try_test_results" - test_results {} - } - } - } - builders { - name: "android-cronet-arm-dbg" - swarming_host: "chromium-swarm.appspot.com" - swarming_tags: "vpython:native-python-wrapper" - dimensions: "builderless:1" - dimensions: "cores:8" - dimensions: "cpu:x86-64" - dimensions: "os:Ubuntu-16.04" - dimensions: "pool:luci.chromium.try" - dimensions: "ssd:0" - exe { - cipd_package: "infra/recipe_bundles/chromium.googlesource.com/chromium/tools/build" - cipd_version: "refs/heads/master" - cmd: "recipes" - } - properties: "{\"$build/goma\":{\"enable_ats\":true,\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"tryserver.chromium.android\",\"recipe\":\"chromium_trybot\"}" - execution_timeout_secs: 14400 - expiration_secs: 7200 - caches { - name: "win_toolchain" - path: "win_toolchain" - } - build_numbers: YES - service_account: "chromium-try-builder@chops-service-accounts.iam.gserviceaccount.com" - task_template_canary_percentage { - value: 5 - } - resultdb { - enable: true - bq_exports { - project: "luci-resultdb" - dataset: "chromium" - table: "try_test_results" - test_results {} - } - } - } - builders { - name: "android-lollipop-arm-rel" - swarming_host: "chromium-swarm.appspot.com" - swarming_tags: "vpython:native-python-wrapper" - dimensions: "builderless:1" - dimensions: "cores:8" - dimensions: "cpu:x86-64" - dimensions: "os:Ubuntu-16.04" - dimensions: "pool:luci.chromium.try" - dimensions: "ssd:0" - exe { - cipd_package: "infra/recipe_bundles/chromium.googlesource.com/chromium/tools/build" - cipd_version: "refs/heads/master" - cmd: "recipes" - } - properties: "{\"$build/goma\":{\"enable_ats\":true,\"jobs\":150,\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"tryserver.chromium.android\",\"recipe\":\"chromium_trybot\"}" - execution_timeout_secs: 14400 - expiration_secs: 7200 - caches { - name: "win_toolchain" - path: "win_toolchain" - } - build_numbers: YES - service_account: "chromium-try-builder@chops-service-accounts.iam.gserviceaccount.com" - task_template_canary_percentage { - value: 5 - } - resultdb { - enable: true - bq_exports { - project: "luci-resultdb" - dataset: "chromium" - table: "try_test_results" - test_results {} - } - } - } - builders { - name: "android-marshmallow-arm64-rel" - swarming_host: "chromium-swarm.appspot.com" - swarming_tags: "vpython:native-python-wrapper" - dimensions: "builderless:1" - dimensions: "cores:16" - dimensions: "cpu:x86-64" - dimensions: "os:Ubuntu-16.04" - dimensions: "pool:luci.chromium.try" - dimensions: "ssd:1" - exe { - cipd_package: "infra/recipe_bundles/chromium.googlesource.com/chromium/tools/build" - cipd_version: "refs/heads/master" - cmd: "recipes" - } - properties: "{\"$build/code_coverage\":{\"use_java_coverage\":true},\"$build/goma\":{\"enable_ats\":true,\"jobs\":300,\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"tryserver.chromium.android\",\"recipe\":\"chromium_trybot\"}" - execution_timeout_secs: 14400 - expiration_secs: 7200 - caches { - name: "win_toolchain" - path: "win_toolchain" - } - build_numbers: YES - service_account: "chromium-try-builder@chops-service-accounts.iam.gserviceaccount.com" - task_template_canary_percentage { - value: 5 - } - resultdb { - enable: true - bq_exports { - project: "luci-resultdb" - dataset: "chromium" - table: "try_test_results" - test_results {} - } - } - } - builders { - name: "android-pie-arm64-dbg" - swarming_host: "chromium-swarm.appspot.com" - swarming_tags: "vpython:native-python-wrapper" - dimensions: "builderless:1" - dimensions: "cores:8" - dimensions: "cpu:x86-64" - dimensions: "os:Ubuntu-16.04" - dimensions: "pool:luci.chromium.try" - dimensions: "ssd:0" - exe { - cipd_package: "infra/recipe_bundles/chromium.googlesource.com/chromium/tools/build" - cipd_version: "refs/heads/master" - cmd: "recipes" - } - properties: "{\"$build/goma\":{\"enable_ats\":true,\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"tryserver.chromium.android\",\"recipe\":\"chromium_trybot\"}" - execution_timeout_secs: 14400 - expiration_secs: 7200 - caches { - name: "win_toolchain" - path: "win_toolchain" - } - build_numbers: YES - service_account: "chromium-try-builder@chops-service-accounts.iam.gserviceaccount.com" - task_template_canary_percentage { - value: 5 - } - resultdb { - enable: true - bq_exports { - project: "luci-resultdb" - dataset: "chromium" - table: "try_test_results" - test_results {} - } - } - } - builders { - name: "android-pie-arm64-rel" - swarming_host: "chromium-swarm.appspot.com" - swarming_tags: "vpython:native-python-wrapper" - dimensions: "builderless:1" - dimensions: "cores:16" - dimensions: "cpu:x86-64" - dimensions: "os:Ubuntu-16.04" - dimensions: "pool:luci.chromium.try" - dimensions: "ssd:1" - exe { - cipd_package: "infra/recipe_bundles/chromium.googlesource.com/chromium/tools/build" - cipd_version: "refs/heads/master" - cmd: "recipes" - } - properties: "{\"$build/goma\":{\"enable_ats\":true,\"jobs\":300,\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"tryserver.chromium.android\",\"recipe\":\"chromium_trybot\"}" - execution_timeout_secs: 14400 - expiration_secs: 7200 - caches { - name: "win_toolchain" - path: "win_toolchain" - } - build_numbers: YES - service_account: "chromium-try-builder@chops-service-accounts.iam.gserviceaccount.com" - task_template_canary_percentage { - value: 5 - } - resultdb { - enable: true - bq_exports { - project: "luci-resultdb" - dataset: "chromium" - table: "try_test_results" - test_results {} - } - } - } - builders { - name: "android_compile_dbg" - swarming_host: "chromium-swarm.appspot.com" - swarming_tags: "vpython:native-python-wrapper" - dimensions: "builderless:1" - dimensions: "cores:8" - dimensions: "cpu:x86-64" - dimensions: "os:Ubuntu-16.04" - dimensions: "pool:luci.chromium.try" - dimensions: "ssd:0" - exe { - cipd_package: "infra/recipe_bundles/chromium.googlesource.com/chromium/tools/build" - cipd_version: "refs/heads/master" - cmd: "recipes" - } - properties: "{\"$build/goma\":{\"enable_ats\":true,\"jobs\":150,\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"tryserver.chromium.android\",\"recipe\":\"chromium_trybot\"}" - execution_timeout_secs: 14400 - expiration_secs: 7200 - caches { - name: "win_toolchain" - path: "win_toolchain" - } - build_numbers: YES - service_account: "chromium-try-builder@chops-service-accounts.iam.gserviceaccount.com" - task_template_canary_percentage { - value: 5 - } - resultdb { - enable: true - bq_exports { - project: "luci-resultdb" - dataset: "chromium" - table: "try_test_results" - test_results {} - } - } - } - builders { - name: "android_compile_x64_dbg" - swarming_host: "chromium-swarm.appspot.com" - swarming_tags: "vpython:native-python-wrapper" - dimensions: "builderless:1" - dimensions: "cores:8" - dimensions: "cpu:x86-64" - dimensions: "os:Ubuntu-16.04" - dimensions: "pool:luci.chromium.try" - dimensions: "ssd:0" - exe { - cipd_package: "infra/recipe_bundles/chromium.googlesource.com/chromium/tools/build" - cipd_version: "refs/heads/master" - cmd: "recipes" - } - properties: "{\"$build/goma\":{\"enable_ats\":true,\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"tryserver.chromium.android\",\"recipe\":\"chromium_trybot\"}" - execution_timeout_secs: 14400 - expiration_secs: 7200 - caches { - name: "win_toolchain" - path: "win_toolchain" - } - build_numbers: YES - service_account: "chromium-try-builder@chops-service-accounts.iam.gserviceaccount.com" - task_template_canary_percentage { - value: 5 - } - resultdb { - enable: true - bq_exports { - project: "luci-resultdb" - dataset: "chromium" - table: "try_test_results" - test_results {} - } - } - } - builders { - name: "android_compile_x86_dbg" - swarming_host: "chromium-swarm.appspot.com" - swarming_tags: "vpython:native-python-wrapper" - dimensions: "builderless:1" - dimensions: "cores:8" - dimensions: "cpu:x86-64" - dimensions: "os:Ubuntu-16.04" - dimensions: "pool:luci.chromium.try" - dimensions: "ssd:0" - exe { - cipd_package: "infra/recipe_bundles/chromium.googlesource.com/chromium/tools/build" - cipd_version: "refs/heads/master" - cmd: "recipes" - } - properties: "{\"$build/goma\":{\"enable_ats\":true,\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"tryserver.chromium.android\",\"recipe\":\"chromium_trybot\"}" - execution_timeout_secs: 14400 - expiration_secs: 7200 - caches { - name: "win_toolchain" - path: "win_toolchain" - } - build_numbers: YES - service_account: "chromium-try-builder@chops-service-accounts.iam.gserviceaccount.com" - task_template_canary_percentage { - value: 5 - } - resultdb { - enable: true - bq_exports { - project: "luci-resultdb" - dataset: "chromium" - table: "try_test_results" - test_results {} - } - } - } - builders { - name: "android_cronet" - swarming_host: "chromium-swarm.appspot.com" - swarming_tags: "vpython:native-python-wrapper" - dimensions: "builderless:1" - dimensions: "cores:8" - dimensions: "cpu:x86-64" - dimensions: "os:Ubuntu-16.04" - dimensions: "pool:luci.chromium.try" - dimensions: "ssd:0" - exe { - cipd_package: "infra/recipe_bundles/chromium.googlesource.com/chromium/tools/build" - cipd_version: "refs/heads/master" - cmd: "recipes" - } - properties: "{\"$build/goma\":{\"enable_ats\":true,\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"tryserver.chromium.android\",\"recipe\":\"chromium_trybot\"}" - execution_timeout_secs: 14400 - expiration_secs: 7200 - caches { - name: "win_toolchain" - path: "win_toolchain" - } - build_numbers: YES - service_account: "chromium-try-builder@chops-service-accounts.iam.gserviceaccount.com" - task_template_canary_percentage { - value: 5 - } - resultdb { - enable: true - bq_exports { - project: "luci-resultdb" - dataset: "chromium" - table: "try_test_results" - test_results {} - } - } - } - builders { - name: "android_optional_gpu_tests_rel" - swarming_host: "chromium-swarm.appspot.com" - swarming_tags: "vpython:native-python-wrapper" - dimensions: "builder:android_optional_gpu_tests_rel" - dimensions: "cores:8" - dimensions: "cpu:x86-64" - dimensions: "os:Ubuntu-16.04" - dimensions: "pool:luci.chromium.try" - exe { - cipd_package: "infra/recipe_bundles/chromium.googlesource.com/chromium/tools/build" - cipd_version: "refs/heads/master" - cmd: "recipes" - } - properties: "{\"$build/goma\":{\"enable_ats\":true,\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"tryserver.chromium.android\",\"recipe\":\"chromium_trybot\"}" - execution_timeout_secs: 21600 - expiration_secs: 7200 - caches { - name: "win_toolchain" - path: "win_toolchain" - } - build_numbers: YES - service_account: "chromium-try-gpu-builder@chops-service-accounts.iam.gserviceaccount.com" - task_template_canary_percentage { - value: 5 - } - resultdb { - enable: true - bq_exports { - project: "luci-resultdb" - dataset: "chromium" - table: "try_test_results" - test_results {} - } - } - } - builders { - name: "cast_shell_android" - swarming_host: "chromium-swarm.appspot.com" - swarming_tags: "vpython:native-python-wrapper" - dimensions: "builderless:1" - dimensions: "cores:8" - dimensions: "cpu:x86-64" - dimensions: "os:Ubuntu-16.04" - dimensions: "pool:luci.chromium.try" - dimensions: "ssd:0" - exe { - cipd_package: "infra/recipe_bundles/chromium.googlesource.com/chromium/tools/build" - cipd_version: "refs/heads/master" - cmd: "recipes" - } - properties: "{\"$build/goma\":{\"enable_ats\":true,\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"tryserver.chromium.android\",\"recipe\":\"chromium_trybot\"}" - execution_timeout_secs: 14400 - expiration_secs: 7200 - caches { - name: "win_toolchain" - path: "win_toolchain" - } - build_numbers: YES - service_account: "chromium-try-builder@chops-service-accounts.iam.gserviceaccount.com" - task_template_canary_percentage { - value: 5 - } - resultdb { - enable: true - bq_exports { - project: "luci-resultdb" - dataset: "chromium" - table: "try_test_results" - test_results {} - } - } - } - builders { - name: "cast_shell_linux" - swarming_host: "chromium-swarm.appspot.com" - swarming_tags: "vpython:native-python-wrapper" - dimensions: "builderless:1" - dimensions: "cores:8" - dimensions: "cpu:x86-64" - dimensions: "os:Ubuntu-16.04" - dimensions: "pool:luci.chromium.try" - dimensions: "ssd:0" - exe { - cipd_package: "infra/recipe_bundles/chromium.googlesource.com/chromium/tools/build" - cipd_version: "refs/heads/master" - cmd: "recipes" - } - properties: "{\"$build/goma\":{\"enable_ats\":true,\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"tryserver.chromium.linux\",\"recipe\":\"chromium_trybot\"}" - execution_timeout_secs: 14400 - expiration_secs: 7200 - caches { - name: "win_toolchain" - path: "win_toolchain" - } - build_numbers: YES - service_account: "chromium-try-builder@chops-service-accounts.iam.gserviceaccount.com" - task_template_canary_percentage { - value: 5 - } - resultdb { - enable: true - bq_exports { - project: "luci-resultdb" - dataset: "chromium" - table: "try_test_results" - test_results {} - } - } - } - builders { - name: "chromeos-amd64-generic-dbg" - swarming_host: "chromium-swarm.appspot.com" - swarming_tags: "vpython:native-python-wrapper" - dimensions: "builderless:1" - dimensions: "cores:8" - dimensions: "cpu:x86-64" - dimensions: "os:Ubuntu-16.04" - dimensions: "pool:luci.chromium.try" - dimensions: "ssd:0" - exe { - cipd_package: "infra/recipe_bundles/chromium.googlesource.com/chromium/tools/build" - cipd_version: "refs/heads/master" - cmd: "recipes" - } - properties: "{\"$build/goma\":{\"enable_ats\":true,\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"tryserver.chromium.chromiumos\",\"recipe\":\"chromium_trybot\"}" - execution_timeout_secs: 14400 - expiration_secs: 7200 - caches { - name: "win_toolchain" - path: "win_toolchain" - } - build_numbers: YES - service_account: "chromium-try-builder@chops-service-accounts.iam.gserviceaccount.com" - task_template_canary_percentage { - value: 5 - } - resultdb { - enable: true - bq_exports { - project: "luci-resultdb" - dataset: "chromium" - table: "try_test_results" - test_results {} - } - } - } - builders { - name: "chromeos-amd64-generic-rel" - swarming_host: "chromium-swarm.appspot.com" - swarming_tags: "vpython:native-python-wrapper" - dimensions: "builderless:1" - dimensions: "cores:8" - dimensions: "cpu:x86-64" - dimensions: "os:Ubuntu-16.04" - dimensions: "pool:luci.chromium.try" - dimensions: "ssd:0" - exe { - cipd_package: "infra/recipe_bundles/chromium.googlesource.com/chromium/tools/build" - cipd_version: "refs/heads/master" - cmd: "recipes" - } - properties: "{\"$build/goma\":{\"enable_ats\":true,\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"tryserver.chromium.chromiumos\",\"recipe\":\"chromium_trybot\"}" - execution_timeout_secs: 14400 - expiration_secs: 7200 - caches { - name: "win_toolchain" - path: "win_toolchain" - } - build_numbers: YES - service_account: "chromium-try-builder@chops-service-accounts.iam.gserviceaccount.com" - task_template_canary_percentage { - value: 5 - } - resultdb { - enable: true - bq_exports { - project: "luci-resultdb" - dataset: "chromium" - table: "try_test_results" - test_results {} - } - } - } - builders { - name: "chromeos-arm-generic-rel" - swarming_host: "chromium-swarm.appspot.com" - swarming_tags: "vpython:native-python-wrapper" - dimensions: "builderless:1" - dimensions: "cores:8" - dimensions: "cpu:x86-64" - dimensions: "os:Ubuntu-16.04" - dimensions: "pool:luci.chromium.try" - dimensions: "ssd:0" - exe { - cipd_package: "infra/recipe_bundles/chromium.googlesource.com/chromium/tools/build" - cipd_version: "refs/heads/master" - cmd: "recipes" - } - properties: "{\"$build/goma\":{\"enable_ats\":true,\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"tryserver.chromium.chromiumos\",\"recipe\":\"chromium_trybot\"}" - execution_timeout_secs: 14400 - expiration_secs: 7200 - caches { - name: "win_toolchain" - path: "win_toolchain" - } - build_numbers: YES - service_account: "chromium-try-builder@chops-service-accounts.iam.gserviceaccount.com" - task_template_canary_percentage { - value: 5 - } - resultdb { - enable: true - bq_exports { - project: "luci-resultdb" - dataset: "chromium" - table: "try_test_results" - test_results {} - } - } - } - builders { - name: "chromium_presubmit" - swarming_host: "chromium-swarm.appspot.com" - swarming_tags: "vpython:native-python-wrapper" - dimensions: "builderless:1" - dimensions: "cores:8" - dimensions: "cpu:x86-64" - dimensions: "os:Ubuntu-16.04" - dimensions: "pool:luci.chromium.try" - dimensions: "ssd:0" - exe { - cipd_package: "infra/recipe_bundles/chromium.googlesource.com/chromium/tools/build" - cipd_version: "refs/heads/master" - cmd: "recipes" - } - properties: "{\"$depot_tools/presubmit\":{\"runhooks\":true,\"timeout_s\":480},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"tryserver.chromium.linux\",\"recipe\":\"presubmit\",\"repo_name\":\"chromium\"}" - execution_timeout_secs: 14400 - expiration_secs: 7200 - caches { - name: "win_toolchain" - path: "win_toolchain" - } - build_numbers: YES - service_account: "chromium-try-builder@chops-service-accounts.iam.gserviceaccount.com" - task_template_canary_percentage { - value: 5 - } - resultdb { - enable: true - bq_exports { - project: "luci-resultdb" - dataset: "chromium" - table: "try_test_results" - test_results {} - } - } - } - builders { - name: "closure_compilation" - swarming_host: "chromium-swarm.appspot.com" - swarming_tags: "vpython:native-python-wrapper" - dimensions: "builderless:1" - dimensions: "cores:8" - dimensions: "cpu:x86-64" - dimensions: "os:Ubuntu-16.04" - dimensions: "pool:luci.chromium.try" - dimensions: "ssd:0" - exe { - cipd_package: "infra/recipe_bundles/chromium.googlesource.com/chromium/tools/build" - cipd_version: "refs/heads/master" - cmd: "recipes" - } - properties: "{\"$build/goma\":{\"enable_ats\":true,\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"tryserver.chromium.linux\",\"recipe\":\"closure_compilation\"}" - execution_timeout_secs: 14400 - expiration_secs: 7200 - caches { - name: "win_toolchain" - path: "win_toolchain" - } - build_numbers: YES - service_account: "chromium-try-builder@chops-service-accounts.iam.gserviceaccount.com" - task_template_canary_percentage { - value: 5 - } - resultdb { - enable: true - bq_exports { - project: "luci-resultdb" - dataset: "chromium" - table: "try_test_results" - test_results {} - } - } - } - builders { - name: "dawn-linux-x64-deps-rel" - swarming_host: "chromium-swarm.appspot.com" - swarming_tags: "vpython:native-python-wrapper" - dimensions: "builder:dawn-linux-x64-deps-rel" - dimensions: "cpu:x86-64" - dimensions: "os:Ubuntu-16.04" - dimensions: "pool:luci.chromium.try" - exe { - cipd_package: "infra/recipe_bundles/chromium.googlesource.com/chromium/tools/build" - cipd_version: "refs/heads/master" - cmd: "recipes" - } - properties: "{\"$build/goma\":{\"enable_ats\":true,\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"tryserver.chromium.dawn\",\"recipe\":\"chromium_trybot\"}" - execution_timeout_secs: 14400 - expiration_secs: 7200 - caches { - name: "win_toolchain" - path: "win_toolchain" - } - build_numbers: YES - service_account: "chromium-try-gpu-builder@chops-service-accounts.iam.gserviceaccount.com" - task_template_canary_percentage { - value: 5 - } - resultdb { - enable: true - bq_exports { - project: "luci-resultdb" - dataset: "chromium" - table: "try_test_results" - test_results {} - } - } - } - builders { - name: "dawn-mac-x64-deps-rel" - swarming_host: "chromium-swarm.appspot.com" - swarming_tags: "vpython:native-python-wrapper" - dimensions: "builder:dawn-mac-x64-deps-rel" - dimensions: "cpu:x86-64" - dimensions: "os:Mac" - dimensions: "pool:luci.chromium.try" - exe { - cipd_package: "infra/recipe_bundles/chromium.googlesource.com/chromium/tools/build" - cipd_version: "refs/heads/master" - cmd: "recipes" - } - properties: "{\"$build/goma\":{\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"tryserver.chromium.dawn\",\"recipe\":\"chromium_trybot\"}" - execution_timeout_secs: 14400 - expiration_secs: 7200 - caches { - name: "win_toolchain" - path: "win_toolchain" - } - build_numbers: YES - service_account: "chromium-try-gpu-builder@chops-service-accounts.iam.gserviceaccount.com" - task_template_canary_percentage { - value: 5 - } - resultdb { - enable: true - bq_exports { - project: "luci-resultdb" - dataset: "chromium" - table: "try_test_results" - test_results {} - } - } - } - builders { - name: "dawn-win10-x64-deps-rel" - swarming_host: "chromium-swarm.appspot.com" - swarming_tags: "vpython:native-python-wrapper" - dimensions: "builder:dawn-win10-x64-deps-rel" - dimensions: "cpu:x86-64" - dimensions: "os:Windows" - dimensions: "pool:luci.chromium.try" - exe { - cipd_package: "infra/recipe_bundles/chromium.googlesource.com/chromium/tools/build" - cipd_version: "refs/heads/master" - cmd: "recipes" - } - properties: "{\"$build/goma\":{\"enable_ats\":true,\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"tryserver.chromium.dawn\",\"recipe\":\"chromium_trybot\"}" - execution_timeout_secs: 14400 - expiration_secs: 7200 - caches { - name: "win_toolchain" - path: "win_toolchain" - } - build_numbers: YES - service_account: "chromium-try-gpu-builder@chops-service-accounts.iam.gserviceaccount.com" - task_template_canary_percentage { - value: 5 - } - resultdb { - enable: true - bq_exports { - project: "luci-resultdb" - dataset: "chromium" - table: "try_test_results" - test_results {} - } - } - } - builders { - name: "dawn-win10-x86-deps-rel" - swarming_host: "chromium-swarm.appspot.com" - swarming_tags: "vpython:native-python-wrapper" - dimensions: "builder:dawn-win10-x86-deps-rel" - dimensions: "cpu:x86-64" - dimensions: "os:Windows" - dimensions: "pool:luci.chromium.try" - exe { - cipd_package: "infra/recipe_bundles/chromium.googlesource.com/chromium/tools/build" - cipd_version: "refs/heads/master" - cmd: "recipes" - } - properties: "{\"$build/goma\":{\"enable_ats\":true,\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"tryserver.chromium.dawn\",\"recipe\":\"chromium_trybot\"}" - execution_timeout_secs: 14400 - expiration_secs: 7200 - caches { - name: "win_toolchain" - path: "win_toolchain" - } - build_numbers: YES - service_account: "chromium-try-gpu-builder@chops-service-accounts.iam.gserviceaccount.com" - task_template_canary_percentage { - value: 5 - } - resultdb { - enable: true - bq_exports { - project: "luci-resultdb" - dataset: "chromium" - table: "try_test_results" - test_results {} - } - } - } - builders { - name: "fuchsia-arm64-cast" - swarming_host: "chromium-swarm.appspot.com" - swarming_tags: "vpython:native-python-wrapper" - dimensions: "builderless:1" - dimensions: "cores:8" - dimensions: "cpu:x86-64" - dimensions: "os:Ubuntu-16.04" - dimensions: "pool:luci.chromium.try" - dimensions: "ssd:0" - exe { - cipd_package: "infra/recipe_bundles/chromium.googlesource.com/chromium/tools/build" - cipd_version: "refs/heads/master" - cmd: "recipes" - } - properties: "{\"$build/goma\":{\"enable_ats\":true,\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"tryserver.chromium.linux\",\"recipe\":\"chromium_trybot\"}" - execution_timeout_secs: 14400 - expiration_secs: 7200 - caches { - name: "win_toolchain" - path: "win_toolchain" - } - build_numbers: YES - service_account: "chromium-try-builder@chops-service-accounts.iam.gserviceaccount.com" - task_template_canary_percentage { - value: 5 - } - resultdb { - enable: true - bq_exports { - project: "luci-resultdb" - dataset: "chromium" - table: "try_test_results" - test_results {} - } - } - } - builders { - name: "fuchsia-x64-cast" - swarming_host: "chromium-swarm.appspot.com" - swarming_tags: "vpython:native-python-wrapper" - dimensions: "builderless:1" - dimensions: "cores:8" - dimensions: "cpu:x86-64" - dimensions: "os:Ubuntu-16.04" - dimensions: "pool:luci.chromium.try" - dimensions: "ssd:0" - exe { - cipd_package: "infra/recipe_bundles/chromium.googlesource.com/chromium/tools/build" - cipd_version: "refs/heads/master" - cmd: "recipes" - } - properties: "{\"$build/goma\":{\"enable_ats\":true,\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"tryserver.chromium.linux\",\"recipe\":\"chromium_trybot\"}" - execution_timeout_secs: 14400 - expiration_secs: 7200 - caches { - name: "win_toolchain" - path: "win_toolchain" - } - build_numbers: YES - service_account: "chromium-try-builder@chops-service-accounts.iam.gserviceaccount.com" - task_template_canary_percentage { - value: 5 - } - resultdb { - enable: true - bq_exports { - project: "luci-resultdb" - dataset: "chromium" - table: "try_test_results" - test_results {} - } - } - } - builders { - name: "fuchsia_arm64" - swarming_host: "chromium-swarm.appspot.com" - swarming_tags: "vpython:native-python-wrapper" - dimensions: "builderless:1" - dimensions: "cores:8" - dimensions: "cpu:x86-64" - dimensions: "os:Ubuntu-16.04" - dimensions: "pool:luci.chromium.try" - dimensions: "ssd:0" - exe { - cipd_package: "infra/recipe_bundles/chromium.googlesource.com/chromium/tools/build" - cipd_version: "refs/heads/master" - cmd: "recipes" - } - properties: "{\"$build/goma\":{\"enable_ats\":true,\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"tryserver.chromium.linux\",\"recipe\":\"chromium_trybot\"}" - execution_timeout_secs: 14400 - expiration_secs: 7200 - caches { - name: "win_toolchain" - path: "win_toolchain" - } - build_numbers: YES - service_account: "chromium-try-builder@chops-service-accounts.iam.gserviceaccount.com" - task_template_canary_percentage { - value: 5 - } - resultdb { - enable: true - bq_exports { - project: "luci-resultdb" - dataset: "chromium" - table: "try_test_results" - test_results {} - } - } - } - builders { - name: "fuchsia_x64" - swarming_host: "chromium-swarm.appspot.com" - swarming_tags: "vpython:native-python-wrapper" - dimensions: "builderless:1" - dimensions: "cores:8" - dimensions: "cpu:x86-64" - dimensions: "os:Ubuntu-16.04" - dimensions: "pool:luci.chromium.try" - dimensions: "ssd:0" - exe { - cipd_package: "infra/recipe_bundles/chromium.googlesource.com/chromium/tools/build" - cipd_version: "refs/heads/master" - cmd: "recipes" - } - properties: "{\"$build/goma\":{\"enable_ats\":true,\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"tryserver.chromium.linux\",\"recipe\":\"chromium_trybot\"}" - execution_timeout_secs: 14400 - expiration_secs: 7200 - caches { - name: "win_toolchain" - path: "win_toolchain" - } - build_numbers: YES - service_account: "chromium-try-builder@chops-service-accounts.iam.gserviceaccount.com" - task_template_canary_percentage { - value: 5 - } - resultdb { - enable: true - bq_exports { - project: "luci-resultdb" - dataset: "chromium" - table: "try_test_results" - test_results {} - } - } - } - builders { - name: "ios-simulator" - swarming_host: "chromium-swarm.appspot.com" - swarming_tags: "vpython:native-python-wrapper" - dimensions: "builder:chromium/try-m84/ios-simulator" - dimensions: "cpu:x86-64" - dimensions: "os:Mac-10.15" - dimensions: "pool:luci.chromium.try" - exe { - cipd_package: "infra/recipe_bundles/chromium.googlesource.com/chromium/tools/build" - cipd_version: "refs/heads/master" - cmd: "recipes" - } - properties: "{\"$build/goma\":{\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"tryserver.chromium.mac\",\"recipe\":\"chromium_trybot\",\"xcode_build_version\":\"11e146\"}" - execution_timeout_secs: 14400 - expiration_secs: 7200 - caches { - name: "win_toolchain" - path: "win_toolchain" - } - caches { - name: "xcode_ios_12a8189h" - path: "xcode_ios_12a8189h.app" - } - build_numbers: YES - service_account: "chromium-try-builder@chops-service-accounts.iam.gserviceaccount.com" - task_template_canary_percentage { - value: 5 - } - resultdb { - enable: true - bq_exports { - project: "luci-resultdb" - dataset: "chromium" - table: "try_test_results" - test_results {} - } - } - } - builders { - name: "ios-simulator-cronet" - swarming_host: "chromium-swarm.appspot.com" - swarming_tags: "vpython:native-python-wrapper" - dimensions: "builder:chromium/try-m84/ios-simulator-cronet" - dimensions: "cpu:x86-64" - dimensions: "os:Mac-10.15" - dimensions: "pool:luci.chromium.try" - exe { - cipd_package: "infra/recipe_bundles/chromium.googlesource.com/chromium/tools/build" - cipd_version: "refs/heads/master" - cmd: "recipes" - } - properties: "{\"$build/goma\":{\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"tryserver.chromium.mac\",\"recipe\":\"chromium_trybot\",\"xcode_build_version\":\"11e146\"}" - execution_timeout_secs: 14400 - expiration_secs: 7200 - caches { - name: "win_toolchain" - path: "win_toolchain" - } - caches { - name: "xcode_ios_12a8189h" - path: "xcode_ios_12a8189h.app" - } - build_numbers: YES - service_account: "chromium-try-builder@chops-service-accounts.iam.gserviceaccount.com" - task_template_canary_percentage { - value: 5 - } - resultdb { - enable: true - bq_exports { - project: "luci-resultdb" - dataset: "chromium" - table: "try_test_results" - test_results {} - } - } - } - builders { - name: "ios-simulator-full-configs" - swarming_host: "chromium-swarm.appspot.com" - swarming_tags: "vpython:native-python-wrapper" - dimensions: "builder:chromium/try-m84/ios-simulator-full-configs" - dimensions: "cpu:x86-64" - dimensions: "os:Mac-10.15" - dimensions: "pool:luci.chromium.try" - exe { - cipd_package: "infra/recipe_bundles/chromium.googlesource.com/chromium/tools/build" - cipd_version: "refs/heads/master" - cmd: "recipes" - } - properties: "{\"$build/goma\":{\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"tryserver.chromium.mac\",\"recipe\":\"chromium_trybot\",\"xcode_build_version\":\"11e146\"}" - execution_timeout_secs: 14400 - expiration_secs: 7200 - caches { - name: "win_toolchain" - path: "win_toolchain" - } - caches { - name: "xcode_ios_12a8189h" - path: "xcode_ios_12a8189h.app" - } - build_numbers: YES - service_account: "chromium-try-builder@chops-service-accounts.iam.gserviceaccount.com" - task_template_canary_percentage { - value: 5 - } - resultdb { - enable: true - bq_exports { - project: "luci-resultdb" - dataset: "chromium" - table: "try_test_results" - test_results {} - } - } - } - builders { - name: "linux-blink-rel" - swarming_host: "chromium-swarm.appspot.com" - swarming_tags: "vpython:native-python-wrapper" - dimensions: "builderless:1" - dimensions: "cores:8" - dimensions: "cpu:x86-64" - dimensions: "os:Ubuntu-16.04" - dimensions: "pool:luci.chromium.try" - dimensions: "ssd:0" - exe { - cipd_package: "infra/recipe_bundles/chromium.googlesource.com/chromium/tools/build" - cipd_version: "refs/heads/master" - cmd: "recipes" - } - properties: "{\"$build/goma\":{\"enable_ats\":true,\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"tryserver.blink\",\"recipe\":\"chromium_trybot\"}" - execution_timeout_secs: 14400 - expiration_secs: 7200 - caches { - name: "win_toolchain" - path: "win_toolchain" - } - build_numbers: YES - service_account: "chromium-try-builder@chops-service-accounts.iam.gserviceaccount.com" - task_template_canary_percentage { - value: 5 - } - resultdb { - enable: true - bq_exports { - project: "luci-resultdb" - dataset: "chromium" - table: "try_test_results" - test_results {} - } - } - } - builders { - name: "linux-chromeos-compile-dbg" - swarming_host: "chromium-swarm.appspot.com" - swarming_tags: "vpython:native-python-wrapper" - dimensions: "builderless:1" - dimensions: "cores:8" - dimensions: "cpu:x86-64" - dimensions: "os:Ubuntu-16.04" - dimensions: "pool:luci.chromium.try" - dimensions: "ssd:0" - exe { - cipd_package: "infra/recipe_bundles/chromium.googlesource.com/chromium/tools/build" - cipd_version: "refs/heads/master" - cmd: "recipes" - } - properties: "{\"$build/goma\":{\"enable_ats\":true,\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"tryserver.chromium.chromiumos\",\"recipe\":\"chromium_trybot\"}" - execution_timeout_secs: 14400 - expiration_secs: 7200 - caches { - name: "win_toolchain" - path: "win_toolchain" - } - build_numbers: YES - service_account: "chromium-try-builder@chops-service-accounts.iam.gserviceaccount.com" - task_template_canary_percentage { - value: 5 - } - resultdb { - enable: true - bq_exports { - project: "luci-resultdb" - dataset: "chromium" - table: "try_test_results" - test_results {} - } - } - } - builders { - name: "linux-chromeos-rel" - swarming_host: "chromium-swarm.appspot.com" - swarming_tags: "vpython:native-python-wrapper" - dimensions: "builderless:1" - dimensions: "cores:8" - dimensions: "cpu:x86-64" - dimensions: "os:Ubuntu-16.04" - dimensions: "pool:luci.chromium.try" - dimensions: "ssd:0" - exe { - cipd_package: "infra/recipe_bundles/chromium.googlesource.com/chromium/tools/build" - cipd_version: "refs/heads/master" - cmd: "recipes" - } - properties: "{\"$build/code_coverage\":{\"use_clang_coverage\":true},\"$build/goma\":{\"enable_ats\":true,\"jobs\":150,\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"tryserver.chromium.chromiumos\",\"recipe\":\"chromium_trybot\"}" - execution_timeout_secs: 14400 - expiration_secs: 7200 - caches { - name: "win_toolchain" - path: "win_toolchain" - } - build_numbers: YES - service_account: "chromium-try-builder@chops-service-accounts.iam.gserviceaccount.com" - task_template_canary_percentage { - value: 5 - } - resultdb { - enable: true - bq_exports { - project: "luci-resultdb" - dataset: "chromium" - table: "try_test_results" - test_results {} - } - } - } - builders { - name: "linux-libfuzzer-asan-rel" - swarming_host: "chromium-swarm.appspot.com" - swarming_tags: "vpython:native-python-wrapper" - dimensions: "builderless:1" - dimensions: "cores:8" - dimensions: "cpu:x86-64" - dimensions: "os:Ubuntu-16.04" - dimensions: "pool:luci.chromium.try" - dimensions: "ssd:0" - exe { - cipd_package: "infra/recipe_bundles/chromium.googlesource.com/chromium/tools/build" - cipd_version: "refs/heads/master" - cmd: "recipes" - } - properties: "{\"$build/goma\":{\"enable_ats\":true,\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"tryserver.chromium.linux\",\"recipe\":\"chromium_libfuzzer_trybot\"}" - execution_timeout_secs: 14400 - expiration_secs: 7200 - caches { - name: "win_toolchain" - path: "win_toolchain" - } - build_numbers: YES - service_account: "chromium-try-builder@chops-service-accounts.iam.gserviceaccount.com" - task_template_canary_percentage { - value: 5 - } - resultdb { - enable: true - bq_exports { - project: "luci-resultdb" - dataset: "chromium" - table: "try_test_results" - test_results {} - } - } - } - builders { - name: "linux-ozone-rel" - swarming_host: "chromium-swarm.appspot.com" - swarming_tags: "vpython:native-python-wrapper" - dimensions: "builderless:1" - dimensions: "cores:8" - dimensions: "cpu:x86-64" - dimensions: "os:Ubuntu-16.04" - dimensions: "pool:luci.chromium.try" - dimensions: "ssd:0" - exe { - cipd_package: "infra/recipe_bundles/chromium.googlesource.com/chromium/tools/build" - cipd_version: "refs/heads/master" - cmd: "recipes" - } - properties: "{\"$build/goma\":{\"enable_ats\":true,\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"tryserver.chromium.linux\",\"recipe\":\"chromium_trybot\"}" - execution_timeout_secs: 14400 - expiration_secs: 7200 - caches { - name: "win_toolchain" - path: "win_toolchain" - } - build_numbers: YES - service_account: "chromium-try-builder@chops-service-accounts.iam.gserviceaccount.com" - task_template_canary_percentage { - value: 5 - } - resultdb { - enable: true - bq_exports { - project: "luci-resultdb" - dataset: "chromium" - table: "try_test_results" - test_results {} - } - } - } - builders { - name: "linux-rel" - swarming_host: "chromium-swarm.appspot.com" - swarming_tags: "vpython:native-python-wrapper" - dimensions: "builderless:1" - dimensions: "cores:8" - dimensions: "cpu:x86-64" - dimensions: "os:Ubuntu-16.04" - dimensions: "pool:luci.chromium.try" - dimensions: "ssd:0" - exe { - cipd_package: "infra/recipe_bundles/chromium.googlesource.com/chromium/tools/build" - cipd_version: "refs/heads/master" - cmd: "recipes" - } - properties: "{\"$build/code_coverage\":{\"use_clang_coverage\":true},\"$build/goma\":{\"enable_ats\":true,\"jobs\":150,\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"tryserver.chromium.linux\",\"recipe\":\"chromium_trybot\"}" - execution_timeout_secs: 14400 - expiration_secs: 7200 - caches { - name: "win_toolchain" - path: "win_toolchain" - } - build_numbers: YES - service_account: "chromium-try-builder@chops-service-accounts.iam.gserviceaccount.com" - task_template_canary_percentage { - value: 5 - } - resultdb { - enable: true - bq_exports { - project: "luci-resultdb" - dataset: "chromium" - table: "try_test_results" - test_results {} - } - } - } - builders { - name: "linux_chromium_asan_rel_ng" - swarming_host: "chromium-swarm.appspot.com" - swarming_tags: "vpython:native-python-wrapper" - dimensions: "builderless:1" - dimensions: "cores:8" - dimensions: "cpu:x86-64" - dimensions: "os:Ubuntu-16.04" - dimensions: "pool:luci.chromium.try" - dimensions: "ssd:1" - exe { - cipd_package: "infra/recipe_bundles/chromium.googlesource.com/chromium/tools/build" - cipd_version: "refs/heads/master" - cmd: "recipes" - } - properties: "{\"$build/goma\":{\"enable_ats\":true,\"jobs\":150,\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"tryserver.chromium.linux\",\"recipe\":\"chromium_trybot\"}" - execution_timeout_secs: 14400 - expiration_secs: 7200 - caches { - name: "win_toolchain" - path: "win_toolchain" - } - build_numbers: YES - service_account: "chromium-try-builder@chops-service-accounts.iam.gserviceaccount.com" - task_template_canary_percentage { - value: 5 - } - resultdb { - enable: true - bq_exports { - project: "luci-resultdb" - dataset: "chromium" - table: "try_test_results" - test_results {} - } - } - } - builders { - name: "linux_chromium_compile_dbg_ng" - swarming_host: "chromium-swarm.appspot.com" - swarming_tags: "vpython:native-python-wrapper" - dimensions: "builderless:1" - dimensions: "cores:8" - dimensions: "cpu:x86-64" - dimensions: "os:Ubuntu-16.04" - dimensions: "pool:luci.chromium.try" - dimensions: "ssd:0" - exe { - cipd_package: "infra/recipe_bundles/chromium.googlesource.com/chromium/tools/build" - cipd_version: "refs/heads/master" - cmd: "recipes" - } - properties: "{\"$build/goma\":{\"enable_ats\":true,\"jobs\":150,\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"tryserver.chromium.linux\",\"recipe\":\"chromium_trybot\"}" - execution_timeout_secs: 14400 - expiration_secs: 7200 - caches { - name: "builder" - path: "linux_debug" - } - caches { - name: "win_toolchain" - path: "win_toolchain" - } - build_numbers: YES - service_account: "chromium-try-builder@chops-service-accounts.iam.gserviceaccount.com" - task_template_canary_percentage { - value: 5 - } - resultdb { - enable: true - bq_exports { - project: "luci-resultdb" - dataset: "chromium" - table: "try_test_results" - test_results {} - } - } - } - builders { - name: "linux_chromium_dbg_ng" - swarming_host: "chromium-swarm.appspot.com" - swarming_tags: "vpython:native-python-wrapper" - dimensions: "builderless:1" - dimensions: "cores:8" - dimensions: "cpu:x86-64" - dimensions: "os:Ubuntu-16.04" - dimensions: "pool:luci.chromium.try" - dimensions: "ssd:0" - exe { - cipd_package: "infra/recipe_bundles/chromium.googlesource.com/chromium/tools/build" - cipd_version: "refs/heads/master" - cmd: "recipes" - } - properties: "{\"$build/goma\":{\"enable_ats\":true,\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"tryserver.chromium.linux\",\"recipe\":\"chromium_trybot\"}" - execution_timeout_secs: 14400 - expiration_secs: 7200 - caches { - name: "builder" - path: "linux_debug" - } - caches { - name: "win_toolchain" - path: "win_toolchain" - } - build_numbers: YES - service_account: "chromium-try-builder@chops-service-accounts.iam.gserviceaccount.com" - task_template_canary_percentage { - value: 5 - } - resultdb { - enable: true - bq_exports { - project: "luci-resultdb" - dataset: "chromium" - table: "try_test_results" - test_results {} - } - } - } - builders { - name: "linux_chromium_tsan_rel_ng" - swarming_host: "chromium-swarm.appspot.com" - swarming_tags: "vpython:native-python-wrapper" - dimensions: "builderless:1" - dimensions: "cores:8" - dimensions: "cpu:x86-64" - dimensions: "os:Ubuntu-16.04" - dimensions: "pool:luci.chromium.try" - dimensions: "ssd:0" - exe { - cipd_package: "infra/recipe_bundles/chromium.googlesource.com/chromium/tools/build" - cipd_version: "refs/heads/master" - cmd: "recipes" - } - properties: "{\"$build/goma\":{\"enable_ats\":true,\"jobs\":150,\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"tryserver.chromium.linux\",\"recipe\":\"chromium_trybot\"}" - execution_timeout_secs: 14400 - expiration_secs: 7200 - caches { - name: "win_toolchain" - path: "win_toolchain" - } - build_numbers: YES - service_account: "chromium-try-builder@chops-service-accounts.iam.gserviceaccount.com" - task_template_canary_percentage { - value: 5 - } - resultdb { - enable: true - bq_exports { - project: "luci-resultdb" - dataset: "chromium" - table: "try_test_results" - test_results {} - } - } - } - builders { - name: "linux_layout_tests_composite_after_paint" - swarming_host: "chromium-swarm.appspot.com" - swarming_tags: "vpython:native-python-wrapper" - dimensions: "builderless:1" - dimensions: "cores:8" - dimensions: "cpu:x86-64" - dimensions: "os:Ubuntu-16.04" - dimensions: "pool:luci.chromium.try" - dimensions: "ssd:0" - exe { - cipd_package: "infra/recipe_bundles/chromium.googlesource.com/chromium/tools/build" - cipd_version: "refs/heads/master" - cmd: "recipes" - } - properties: "{\"$build/goma\":{\"enable_ats\":true,\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"tryserver.chromium.linux\",\"recipe\":\"chromium_trybot\"}" - execution_timeout_secs: 14400 - expiration_secs: 7200 - caches { - name: "win_toolchain" - path: "win_toolchain" - } - build_numbers: YES - service_account: "chromium-try-builder@chops-service-accounts.iam.gserviceaccount.com" - task_template_canary_percentage { - value: 5 - } - resultdb { - enable: true - bq_exports { - project: "luci-resultdb" - dataset: "chromium" - table: "try_test_results" - test_results {} - } - } - } - builders { - name: "linux_layout_tests_layout_ng_disabled" - swarming_host: "chromium-swarm.appspot.com" - swarming_tags: "vpython:native-python-wrapper" - dimensions: "builderless:1" - dimensions: "cores:8" - dimensions: "cpu:x86-64" - dimensions: "os:Ubuntu-16.04" - dimensions: "pool:luci.chromium.try" - dimensions: "ssd:0" - exe { - cipd_package: "infra/recipe_bundles/chromium.googlesource.com/chromium/tools/build" - cipd_version: "refs/heads/master" - cmd: "recipes" - } - properties: "{\"$build/goma\":{\"enable_ats\":true,\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"tryserver.chromium.linux\",\"recipe\":\"chromium_trybot\"}" - execution_timeout_secs: 14400 - expiration_secs: 7200 - caches { - name: "win_toolchain" - path: "win_toolchain" - } - build_numbers: YES - service_account: "chromium-try-builder@chops-service-accounts.iam.gserviceaccount.com" - task_template_canary_percentage { - value: 5 - } - resultdb { - enable: true - bq_exports { - project: "luci-resultdb" - dataset: "chromium" - table: "try_test_results" - test_results {} - } - } - } - builders { - name: "linux_optional_gpu_tests_rel" - swarming_host: "chromium-swarm.appspot.com" - swarming_tags: "vpython:native-python-wrapper" - dimensions: "builder:linux_optional_gpu_tests_rel" - dimensions: "cores:8" - dimensions: "cpu:x86-64" - dimensions: "os:Ubuntu-16.04" - dimensions: "pool:luci.chromium.try" - exe { - cipd_package: "infra/recipe_bundles/chromium.googlesource.com/chromium/tools/build" - cipd_version: "refs/heads/master" - cmd: "recipes" - } - properties: "{\"$build/goma\":{\"enable_ats\":true,\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"tryserver.chromium.linux\",\"recipe\":\"chromium_trybot\"}" - execution_timeout_secs: 21600 - expiration_secs: 7200 - caches { - name: "win_toolchain" - path: "win_toolchain" - } - build_numbers: YES - service_account: "chromium-try-gpu-builder@chops-service-accounts.iam.gserviceaccount.com" - task_template_canary_percentage { - value: 5 - } - resultdb { - enable: true - bq_exports { - project: "luci-resultdb" - dataset: "chromium" - table: "try_test_results" - test_results {} - } - } - } - builders { - name: "linux_vr" - swarming_host: "chromium-swarm.appspot.com" - swarming_tags: "vpython:native-python-wrapper" - dimensions: "builderless:1" - dimensions: "cores:8" - dimensions: "cpu:x86-64" - dimensions: "os:Ubuntu-16.04" - dimensions: "pool:luci.chromium.try" - dimensions: "ssd:0" - exe { - cipd_package: "infra/recipe_bundles/chromium.googlesource.com/chromium/tools/build" - cipd_version: "refs/heads/master" - cmd: "recipes" - } - properties: "{\"$build/goma\":{\"enable_ats\":true,\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"tryserver.chromium.linux\",\"recipe\":\"chromium_trybot\"}" - execution_timeout_secs: 14400 - expiration_secs: 7200 - caches { - name: "win_toolchain" - path: "win_toolchain" - } - build_numbers: YES - service_account: "chromium-try-builder@chops-service-accounts.iam.gserviceaccount.com" - task_template_canary_percentage { - value: 5 - } - resultdb { - enable: true - bq_exports { - project: "luci-resultdb" - dataset: "chromium" - table: "try_test_results" - test_results {} - } - } - } - builders { - name: "mac-rel" - swarming_host: "chromium-swarm.appspot.com" - swarming_tags: "vpython:native-python-wrapper" - dimensions: "builderless:1" - dimensions: "cpu:x86-64" - dimensions: "os:Mac-10.13" - dimensions: "pool:luci.chromium.try" - dimensions: "ssd:1" - exe { - cipd_package: "infra/recipe_bundles/chromium.googlesource.com/chromium/tools/build" - cipd_version: "refs/heads/master" - cmd: "recipes" - } - properties: "{\"$build/goma\":{\"jobs\":150,\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"tryserver.chromium.mac\",\"recipe\":\"chromium_trybot\"}" - execution_timeout_secs: 14400 - expiration_secs: 7200 - caches { - name: "win_toolchain" - path: "win_toolchain" - } - build_numbers: YES - service_account: "chromium-try-builder@chops-service-accounts.iam.gserviceaccount.com" - task_template_canary_percentage { - value: 5 - } - resultdb { - enable: true - bq_exports { - project: "luci-resultdb" - dataset: "chromium" - table: "try_test_results" - test_results {} - } - } - } - builders { - name: "mac_chromium_compile_dbg_ng" - swarming_host: "chromium-swarm.appspot.com" - swarming_tags: "vpython:native-python-wrapper" - dimensions: "builderless:1" - dimensions: "cpu:x86-64" - dimensions: "os:Mac-10.13" - dimensions: "pool:luci.chromium.try" - dimensions: "ssd:1" - exe { - cipd_package: "infra/recipe_bundles/chromium.googlesource.com/chromium/tools/build" - cipd_version: "refs/heads/master" - cmd: "recipes" - } - properties: "{\"$build/goma\":{\"jobs\":150,\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"tryserver.chromium.mac\",\"recipe\":\"chromium_trybot\"}" - execution_timeout_secs: 14400 - expiration_secs: 7200 - caches { - name: "win_toolchain" - path: "win_toolchain" - } - build_numbers: YES - service_account: "chromium-try-builder@chops-service-accounts.iam.gserviceaccount.com" - task_template_canary_percentage { - value: 5 - } - resultdb { - enable: true - bq_exports { - project: "luci-resultdb" - dataset: "chromium" - table: "try_test_results" - test_results {} - } - } - } - builders { - name: "mac_optional_gpu_tests_rel" - swarming_host: "chromium-swarm.appspot.com" - swarming_tags: "vpython:native-python-wrapper" - dimensions: "builder:mac_optional_gpu_tests_rel" - dimensions: "cpu:x86-64" - dimensions: "os:Mac" - dimensions: "pool:luci.chromium.try" - exe { - cipd_package: "infra/recipe_bundles/chromium.googlesource.com/chromium/tools/build" - cipd_version: "refs/heads/master" - cmd: "recipes" - } - properties: "{\"$build/goma\":{\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"tryserver.chromium.mac\",\"recipe\":\"chromium_trybot\"}" - execution_timeout_secs: 21600 - expiration_secs: 7200 - caches { - name: "win_toolchain" - path: "win_toolchain" - } - build_numbers: YES - service_account: "chromium-try-gpu-builder@chops-service-accounts.iam.gserviceaccount.com" - task_template_canary_percentage { - value: 5 - } - resultdb { - enable: true - bq_exports { - project: "luci-resultdb" - dataset: "chromium" - table: "try_test_results" - test_results {} - } - } - } - builders { - name: "win-libfuzzer-asan-rel" - swarming_host: "chromium-swarm.appspot.com" - swarming_tags: "vpython:native-python-wrapper" - dimensions: "builder:win-libfuzzer-asan-rel" - dimensions: "cores:8" - dimensions: "cpu:x86-64" - dimensions: "os:Windows" - dimensions: "pool:luci.chromium.try" - exe { - cipd_package: "infra/recipe_bundles/chromium.googlesource.com/chromium/tools/build" - cipd_version: "refs/heads/master" - cmd: "recipes" - } - properties: "{\"$build/goma\":{\"enable_ats\":true,\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"tryserver.chromium.win\",\"recipe\":\"chromium_libfuzzer_trybot\"}" - execution_timeout_secs: 14400 - expiration_secs: 7200 - caches { - name: "win_toolchain" - path: "win_toolchain" - } - build_numbers: YES - service_account: "chromium-try-builder@chops-service-accounts.iam.gserviceaccount.com" - task_template_canary_percentage { - value: 5 - } - resultdb { - enable: true - bq_exports { - project: "luci-resultdb" - dataset: "chromium" - table: "try_test_results" - test_results {} - } - } - } - builders { - name: "win10_chromium_x64_rel_ng" - swarming_host: "chromium-swarm.appspot.com" - swarming_tags: "vpython:native-python-wrapper" - dimensions: "builderless:1" - dimensions: "cores:8" - dimensions: "cpu:x86-64" - dimensions: "os:Windows-10" - dimensions: "pool:luci.chromium.try" - dimensions: "ssd:1" - exe { - cipd_package: "infra/recipe_bundles/chromium.googlesource.com/chromium/tools/build" - cipd_version: "refs/heads/master" - cmd: "recipes" - } - properties: "{\"$build/code_coverage\":{\"use_clang_coverage\":true},\"$build/goma\":{\"enable_ats\":true,\"jobs\":150,\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"tryserver.chromium.win\",\"recipe\":\"chromium_trybot\"}" - execution_timeout_secs: 14400 - expiration_secs: 7200 - caches { - name: "win_toolchain" - path: "win_toolchain" - } - build_numbers: YES - service_account: "chromium-try-builder@chops-service-accounts.iam.gserviceaccount.com" - task_template_canary_percentage { - value: 5 - } - resultdb { - enable: true - bq_exports { - project: "luci-resultdb" - dataset: "chromium" - table: "try_test_results" - test_results {} - } - } - } - builders { - name: "win_chromium_compile_dbg_ng" - swarming_host: "chromium-swarm.appspot.com" - swarming_tags: "vpython:native-python-wrapper" - dimensions: "builderless:1" - dimensions: "cores:8" - dimensions: "cpu:x86-64" - dimensions: "os:Windows-10" - dimensions: "pool:luci.chromium.try" - dimensions: "ssd:0" - exe { - cipd_package: "infra/recipe_bundles/chromium.googlesource.com/chromium/tools/build" - cipd_version: "refs/heads/master" - cmd: "recipes" - } - properties: "{\"$build/goma\":{\"enable_ats\":true,\"jobs\":150,\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"tryserver.chromium.win\",\"recipe\":\"chromium_trybot\"}" - execution_timeout_secs: 14400 - expiration_secs: 7200 - caches { - name: "win_toolchain" - path: "win_toolchain" - } - build_numbers: YES - service_account: "chromium-try-builder@chops-service-accounts.iam.gserviceaccount.com" - task_template_canary_percentage { - value: 5 - } - resultdb { - enable: true - bq_exports { - project: "luci-resultdb" - dataset: "chromium" - table: "try_test_results" - test_results {} - } - } - } - builders { - name: "win_optional_gpu_tests_rel" - swarming_host: "chromium-swarm.appspot.com" - swarming_tags: "vpython:native-python-wrapper" - dimensions: "builderless:1" - dimensions: "cores:8" - dimensions: "cpu:x86-64" - dimensions: "os:Windows-10" - dimensions: "pool:luci.chromium.try" - dimensions: "ssd:0" - exe { - cipd_package: "infra/recipe_bundles/chromium.googlesource.com/chromium/tools/build" - cipd_version: "refs/heads/master" - cmd: "recipes" - } - properties: "{\"$build/goma\":{\"enable_ats\":true,\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"tryserver.chromium.win\",\"recipe\":\"chromium_trybot\"}" - execution_timeout_secs: 21600 - expiration_secs: 7200 - caches { - name: "win_toolchain" - path: "win_toolchain" - } - build_numbers: YES - service_account: "chromium-try-gpu-builder@chops-service-accounts.iam.gserviceaccount.com" - task_template_canary_percentage { - value: 5 - } - resultdb { - enable: true - bq_exports { - project: "luci-resultdb" - dataset: "chromium" - table: "try_test_results" - test_results {} - } - } - } - } -} -buckets { name: "try-m85" acls { role: WRITER @@ -32294,8 +28092,8 @@ path: "win_toolchain" } caches { - name: "xcode_ios_12a8189h" - path: "xcode_ios_12a8189h.app" + name: "xcode_ios_12a8189n" + path: "xcode_ios_12a8189n.app" } build_numbers: YES service_account: "chromium-try-builder@chops-service-accounts.iam.gserviceaccount.com" @@ -32333,8 +28131,8 @@ path: "win_toolchain" } caches { - name: "xcode_ios_12a8189h" - path: "xcode_ios_12a8189h.app" + name: "xcode_ios_12a8189n" + path: "xcode_ios_12a8189n.app" } build_numbers: YES service_account: "chromium-try-builder@chops-service-accounts.iam.gserviceaccount.com" @@ -32372,8 +28170,8 @@ path: "win_toolchain" } caches { - name: "xcode_ios_12a8189h" - path: "xcode_ios_12a8189h.app" + name: "xcode_ios_12a8189n" + path: "xcode_ios_12a8189n.app" } build_numbers: YES service_account: "chromium-try-builder@chops-service-accounts.iam.gserviceaccount.com"
diff --git a/infra/config/generated/luci-milo.cfg b/infra/config/generated/luci-milo.cfg index cb549d3..15d303f 100644 --- a/infra/config/generated/luci-milo.cfg +++ b/infra/config/generated/luci-milo.cfg
@@ -755,671 +755,6 @@ } } consoles { - id: "main-m84" - name: "Chromium M84 Console" - repo_url: "https://chromium.googlesource.com/chromium/src" - refs: "regexp:refs/branch-heads/4147" - manifest_name: "REVISION" - builders { - name: "buildbucket/luci.chromium.ci-m84/Win x64 Builder" - category: "chromium.win|release|builder" - short_name: "64" - } - builders { - name: "buildbucket/luci.chromium.ci-m84/Win 7 Tests x64 (1)" - category: "chromium.win|release|tester" - short_name: "64" - } - builders { - name: "buildbucket/luci.chromium.ci-m84/Win10 Tests x64" - category: "chromium.win|release|tester" - short_name: "w10" - } - builders { - name: "buildbucket/luci.chromium.ci-m84/Win Builder (dbg)" - category: "chromium.win|debug|builder" - short_name: "32" - } - builders { - name: "buildbucket/luci.chromium.ci-m84/Win7 Tests (dbg)(1)" - category: "chromium.win|debug|tester" - short_name: "7" - } - builders { - name: "buildbucket/luci.chromium.ci-m84/Mac Builder" - category: "chromium.mac|release" - short_name: "bld" - } - builders { - name: "buildbucket/luci.chromium.ci-m84/Mac10.10 Tests" - category: "chromium.mac|release" - short_name: "10" - } - builders { - name: "buildbucket/luci.chromium.ci-m84/Mac10.11 Tests" - category: "chromium.mac|release" - short_name: "11" - } - builders { - name: "buildbucket/luci.chromium.ci-m84/Mac10.12 Tests" - category: "chromium.mac|release" - short_name: "12" - } - builders { - name: "buildbucket/luci.chromium.ci-m84/Mac10.13 Tests" - category: "chromium.mac|release" - short_name: "13" - } - builders { - name: "buildbucket/luci.chromium.ci-m84/Mac10.14 Tests" - category: "chromium.mac|release" - short_name: "14" - } - builders { - name: "buildbucket/luci.chromium.ci-m84/Mac10.15 Tests" - category: "chromium.mac|release" - short_name: "15" - } - builders { - name: "buildbucket/luci.chromium.ci-m84/Mac Builder (dbg)" - category: "chromium.mac|debug" - short_name: "bld" - } - builders { - name: "buildbucket/luci.chromium.ci-m84/Mac10.13 Tests (dbg)" - category: "chromium.mac|debug" - short_name: "13" - } - builders { - name: "buildbucket/luci.chromium.ci-m84/ios-simulator" - category: "chromium.mac|ios|default" - short_name: "sim" - } - builders { - name: "buildbucket/luci.chromium.ci-m84/ios-simulator-full-configs" - category: "chromium.mac|ios|default" - short_name: "ful" - } - builders { - name: "buildbucket/luci.chromium.ci-m84/Linux Builder" - category: "chromium.linux|release" - short_name: "bld" - } - builders { - name: "buildbucket/luci.chromium.ci-m84/Linux Tests" - category: "chromium.linux|release" - short_name: "tst" - } - builders { - name: "buildbucket/luci.chromium.ci-m84/linux-ozone-rel" - category: "chromium.linux|release" - short_name: "ozo" - } - builders { - name: "buildbucket/luci.chromium.ci-m84/Linux Builder (dbg)" - category: "chromium.linux|debug|builder" - short_name: "64" - } - builders { - name: "buildbucket/luci.chromium.ci-m84/Linux Tests (dbg)(1)" - category: "chromium.linux|debug|tester" - short_name: "64" - } - builders { - name: "buildbucket/luci.chromium.ci-m84/Cast Linux" - category: "chromium.linux|cast" - short_name: "vid" - } - builders { - name: "buildbucket/luci.chromium.ci-m84/Fuchsia ARM64" - category: "chromium.linux|fuchsia|a64" - short_name: "rel" - } - builders { - name: "buildbucket/luci.chromium.ci-m84/fuchsia-arm64-cast" - category: "chromium.linux|fuchsia|cast" - short_name: "a64" - } - builders { - name: "buildbucket/luci.chromium.ci-m84/fuchsia-x64-cast" - category: "chromium.linux|fuchsia|cast" - short_name: "x64" - } - builders { - name: "buildbucket/luci.chromium.ci-m84/Fuchsia x64" - category: "chromium.linux|fuchsia|x64" - short_name: "rel" - } - builders { - name: "buildbucket/luci.chromium.ci-m84/linux-chromeos-rel" - category: "chromium.chromiumos|default" - short_name: "rel" - } - builders { - name: "buildbucket/luci.chromium.ci-m84/linux-chromeos-dbg" - category: "chromium.chromiumos|default" - short_name: "dbg" - } - builders { - name: "buildbucket/luci.chromium.ci-m84/chromeos-arm-generic-rel" - category: "chromium.chromiumos|simple|release" - short_name: "arm" - } - builders { - name: "buildbucket/luci.chromium.ci-m84/chromeos-amd64-generic-rel" - category: "chromium.chromiumos|simple|release|x64" - short_name: "rel" - } - builders { - name: "buildbucket/luci.chromium.ci-m84/chromeos-amd64-generic-dbg" - category: "chromium.chromiumos|simple|debug|x64" - short_name: "dbg" - } - builders { - name: "buildbucket/luci.chromium.ci-m84/android-cronet-arm-dbg" - category: "chromium.android|cronet|arm" - short_name: "dbg" - } - builders { - name: "buildbucket/luci.chromium.ci-m84/android-cronet-arm-rel" - category: "chromium.android|cronet|arm" - short_name: "rel" - } - builders { - name: "buildbucket/luci.chromium.ci-m84/android-cronet-kitkat-arm-rel" - category: "chromium.android|cronet|test" - short_name: "k" - } - builders { - name: "buildbucket/luci.chromium.ci-m84/android-cronet-lollipop-arm-rel" - category: "chromium.android|cronet|test" - short_name: "l" - } - builders { - name: "buildbucket/luci.chromium.ci-m84/Android arm Builder (dbg)" - category: "chromium.android|builder|arm" - short_name: "32" - } - builders { - name: "buildbucket/luci.chromium.ci-m84/Android arm64 Builder (dbg)" - category: "chromium.android|builder|arm" - short_name: "64" - } - builders { - name: "buildbucket/luci.chromium.ci-m84/Android x86 Builder (dbg)" - category: "chromium.android|builder|x86" - short_name: "32" - } - builders { - name: "buildbucket/luci.chromium.ci-m84/Android x64 Builder (dbg)" - category: "chromium.android|builder|x86" - short_name: "64" - } - builders { - name: "buildbucket/luci.chromium.ci-m84/Marshmallow 64 bit Tester" - category: "chromium.android|tester|phone" - short_name: "M" - } - builders { - name: "buildbucket/luci.chromium.ci-m84/Nougat Phone Tester" - category: "chromium.android|tester|phone" - short_name: "N" - } - builders { - name: "buildbucket/luci.chromium.ci-m84/Oreo Phone Tester" - category: "chromium.android|tester|phone" - short_name: "O" - } - builders { - name: "buildbucket/luci.chromium.ci-m84/android-pie-arm64-dbg" - category: "chromium.android|tester|phone" - short_name: "P" - } - builders { - name: "buildbucket/luci.chromium.ci-m84/Android WebView M (dbg)" - category: "chromium.android|tester|webview" - short_name: "M" - } - builders { - name: "buildbucket/luci.chromium.ci-m84/Android WebView N (dbg)" - category: "chromium.android|tester|webview" - short_name: "N" - } - builders { - name: "buildbucket/luci.chromium.ci-m84/Android WebView O (dbg)" - category: "chromium.android|tester|webview" - short_name: "O" - } - builders { - name: "buildbucket/luci.chromium.ci-m84/Android WebView P (dbg)" - category: "chromium.android|tester|webview" - short_name: "P" - } - builders { - name: "buildbucket/luci.chromium.ci-m84/android-lollipop-arm-rel" - category: "chromium.android|on_cq" - short_name: "L" - } - builders { - name: "buildbucket/luci.chromium.ci-m84/android-marshmallow-arm64-rel" - category: "chromium.android|on_cq" - short_name: "M" - } - builders { - name: "buildbucket/luci.chromium.ci-m84/android-pie-arm64-rel" - category: "chromium.android|on_cq" - short_name: "P" - } - builders { - name: "buildbucket/luci.chromium.ci-m84/Cast Android (dbg)" - category: "chromium.android|on_cq" - short_name: "cst" - } - builders { - name: "buildbucket/luci.chromium.ci-m84/Linux TSan Builder" - category: "chromium.memory|linux|TSan v2" - short_name: "bld" - } - builders { - name: "buildbucket/luci.chromium.ci-m84/Linux TSan Tests" - category: "chromium.memory|linux|TSan v2" - short_name: "tst" - } - builders { - name: "buildbucket/luci.chromium.ci-m84/Linux ASan LSan Builder" - category: "chromium.memory|linux|asan lsan" - short_name: "bld" - } - builders { - name: "buildbucket/luci.chromium.ci-m84/Linux ASan LSan Tests (1)" - category: "chromium.memory|linux|asan lsan" - short_name: "tst" - } - builders { - name: "buildbucket/luci.chromium.ci-m84/Linux ASan Tests (sandboxed)" - category: "chromium.memory|linux|asan lsan" - short_name: "sbx" - } - builders { - name: "buildbucket/luci.chromium.ci-m84/Dawn Linux x64 DEPS Builder" - category: "chromium.dawn|DEPS|Linux|Builder" - short_name: "x64" - } - builders { - name: "buildbucket/luci.chromium.ci-m84/Dawn Linux x64 DEPS Release (Intel HD 630)" - category: "chromium.dawn|DEPS|Linux|Intel" - short_name: "x64" - } - builders { - name: "buildbucket/luci.chromium.ci-m84/Dawn Linux x64 DEPS Release (NVIDIA)" - category: "chromium.dawn|DEPS|Linux|Nvidia" - short_name: "x64" - } - builders { - name: "buildbucket/luci.chromium.ci-m84/Dawn Mac x64 DEPS Builder" - category: "chromium.dawn|DEPS|Mac|Builder" - short_name: "x64" - } - builders { - name: "buildbucket/luci.chromium.ci-m84/Dawn Mac x64 DEPS Release (AMD)" - category: "chromium.dawn|DEPS|Mac|AMD" - short_name: "x64" - } - builders { - name: "buildbucket/luci.chromium.ci-m84/Dawn Mac x64 DEPS Release (Intel)" - category: "chromium.dawn|DEPS|Mac|Intel" - short_name: "x64" - } - builders { - name: "buildbucket/luci.chromium.ci-m84/Dawn Win10 x86 DEPS Builder" - category: "chromium.dawn|DEPS|Windows|Builder" - short_name: "x86" - } - builders { - name: "buildbucket/luci.chromium.ci-m84/Dawn Win10 x64 DEPS Builder" - category: "chromium.dawn|DEPS|Windows|Builder" - short_name: "x64" - } - builders { - name: "buildbucket/luci.chromium.ci-m84/Dawn Win10 x86 DEPS Release (Intel HD 630)" - category: "chromium.dawn|DEPS|Windows|Intel" - short_name: "x86" - } - builders { - name: "buildbucket/luci.chromium.ci-m84/Dawn Win10 x64 DEPS Release (Intel HD 630)" - category: "chromium.dawn|DEPS|Windows|Intel" - short_name: "x64" - } - builders { - name: "buildbucket/luci.chromium.ci-m84/Dawn Win10 x86 DEPS Release (NVIDIA)" - category: "chromium.dawn|DEPS|Windows|Nvidia" - short_name: "x86" - } - builders { - name: "buildbucket/luci.chromium.ci-m84/Dawn Win10 x64 DEPS Release (NVIDIA)" - category: "chromium.dawn|DEPS|Windows|Nvidia" - short_name: "x64" - } - builders { - name: "buildbucket/luci.chromium.ci-m84/GPU Win x64 Builder" - category: "chromium.gpu|Windows" - } - builders { - name: "buildbucket/luci.chromium.ci-m84/Win10 x64 Release (NVIDIA)" - category: "chromium.gpu|Windows" - } - builders { - name: "buildbucket/luci.chromium.ci-m84/GPU Mac Builder" - category: "chromium.gpu|Mac" - } - builders { - name: "buildbucket/luci.chromium.ci-m84/Mac Release (Intel)" - category: "chromium.gpu|Mac" - } - builders { - name: "buildbucket/luci.chromium.ci-m84/Mac Retina Release (AMD)" - category: "chromium.gpu|Mac" - } - builders { - name: "buildbucket/luci.chromium.ci-m84/GPU Linux Builder" - category: "chromium.gpu|Linux" - } - builders { - name: "buildbucket/luci.chromium.ci-m84/Linux Release (NVIDIA)" - category: "chromium.gpu|Linux" - } - builders { - name: "buildbucket/luci.chromium.ci-m84/Android Release (Nexus 5X)" - category: "chromium.gpu|Android" - } - builders { - name: "buildbucket/luci.chromium.ci-m84/ios-simulator-cronet" - category: "chromium.fyi|cronet" - } - builders { - name: "buildbucket/luci.chromium.ci-m84/VR Linux" - category: "chromium.fyi|linux" - } - builders { - name: "buildbucket/luci.chromium.ci-m84/Linux Ozone Tester (Headless)" - category: "chromium.fyi|linux" - short_name: "loh" - } - builders { - name: "buildbucket/luci.chromium.ci-m84/Linux Ozone Tester (Wayland)" - category: "chromium.fyi|linux" - short_name: "low" - } - builders { - name: "buildbucket/luci.chromium.ci-m84/Linux Ozone Tester (X11)" - category: "chromium.fyi|linux" - short_name: "lox" - } - header { - oncalls { - name: "Chromium" - url: "https://chrome-ops-rotation-proxy.appspot.com/current/oncallator:chrome-build-sheriff" - } - oncalls { - name: "Android" - url: "https://chrome-ops-rotation-proxy.appspot.com/current/oncallator:chrome-android-sheriff" - } - oncalls { - name: "iOS" - url: "https://rota-ng.appspot.com/legacy/sheriff_ios.json" - } - oncalls { - name: "GPU" - url: "https://rota-ng.appspot.com/legacy/sheriff_gpu.json" - } - oncalls { - name: "Angle" - url: "https://rota-ng.appspot.com/legacy/sheriff_angle.json" - } - oncalls { - name: "Perf" - url: "https://rota-ng.appspot.com/legacy/sheriff_perf.json" - } - oncalls { - name: "Perfbot" - url: "https://rota-ng.appspot.com/legacy/sheriff_perfbot.json" - } - oncalls { - name: "Trooper" - url: "https://chrome-ops-rotation-proxy.appspot.com/current/oncallator:chrome-ops-client-infra" - show_primary_secondary_labels: true - } - links { - name: "Builds" - links { - text: "continuous" - url: "https://commondatastorage.googleapis.com/chromium-browser-snapshots/index.html" - alt: "Continuous browser snapshots" - } - links { - text: "symbols" - url: "https://www.chromium.org/developers/how-tos/debugging-on-windows" - alt: "Windows Symbols" - } - links { - text: "status" - url: "https://chromium-status.appspot.com/" - alt: "Current tree status" - } - } - links { - name: "Dashboards" - links { - text: "perf" - url: "https://chromeperf.appspot.com/" - alt: "Chrome perf dashboard" - } - links { - text: "flake-portal" - url: "https://analysis.chromium.org/p/chromium/flake-portal" - alt: "New flake portal" - } - links { - text: "legacy-flakiness" - url: "https://test-results.appspot.com/dashboards/flakiness_dashboard.html" - alt: "Legacy flakiness dashboard" - } - } - links { - name: "Chromium" - links { - text: "source" - url: "https://chromium.googlesource.com/chromium/src" - alt: "Chromium source code repository" - } - links { - text: "reviews" - url: "https://chromium-review.googlesource.com" - alt: "Chromium code review tool" - } - links { - text: "bugs" - url: "https://crbug.com" - alt: "Chromium bug tracker" - } - links { - text: "coverage" - url: "https://analysis.chromium.org/p/chromium/coverage" - alt: "Chromium code coverage dashboard" - } - links { - text: "dev" - url: "https://dev.chromium.org/Home" - alt: "Chromium developer home page" - } - links { - text: "support" - url: "https://support.google.com/chrome/#topic=7438008" - alt: "Google Chrome help center" - } - } - links { - name: "Consoles" - links { - text: "android" - url: "/p/chromium/g/chromium.android" - alt: "Chromium Android console" - } - links { - text: "clang" - url: "/p/chromium/g/chromium.clang" - alt: "Chromium Clang console" - } - links { - text: "dawn" - url: "/p/chromium/g/chromium.dawn" - alt: "Chromium Dawn console" - } - links { - text: "fuzz" - url: "/p/chromium/g/chromium.fuzz" - alt: "Chromium Fuzz console" - } - links { - text: "fyi" - url: "/p/chromium/g/chromium.fyi" - alt: "Chromium FYI console" - } - links { - text: "gpu" - url: "/p/chromium/g/chromium.gpu" - alt: "Chromium GPU console" - } - links { - text: "perf" - url: "/p/chrome/g/chrome.perf/console" - alt: "Chromium Perf console" - } - links { - text: "perf.fyi" - url: "/p/chrome/g/chrome.perf.fyi/console" - alt: "Chromium Perf FYI console" - } - links { - text: "swangle" - url: "/p/chromium/g/chromium.swangle" - alt: "Chromium SWANGLE console" - } - links { - text: "webrtc" - url: "/p/chromium/g/chromium.webrtc" - alt: "Chromium WebRTC console" - } - links { - text: "chromiumos" - url: "/p/chromium/g/chromium.chromiumos" - alt: "ChromiumOS console" - } - } - links { - name: "Branch Consoles" - links { - text: "m86" - url: "/p/chromium-m86/g/main/console" - alt: "Beta branch console" - } - links { - text: "m85" - url: "/p/chromium/g/main-m85/console" - alt: "Stable branch console" - } - links { - text: "trunk" - url: "/p/chromium/g/main/console" - alt: "Trunk (ToT) console" - } - } - links { - name: "Tryservers" - links { - text: "android" - url: "/p/chromium/g/tryserver.chromium.android/builders" - alt: "Android" - } - links { - text: "angle" - url: "/p/chromium/g/tryserver.chromium.angle/builders" - alt: "Angle" - } - links { - text: "blink" - url: "/p/chromium/g/tryserver.blink/builders" - alt: "Blink" - } - links { - text: "chrome" - url: "/p/chrome/g/tryserver.chrome/builders" - alt: "Chrome" - } - links { - text: "chromiumos" - url: "/p/chromium/g/tryserver.chromium.chromiumos/builders" - alt: "ChromiumOS" - } - links { - text: "linux" - url: "/p/chromium/g/tryserver.chromium.linux/builders" - alt: "Linux" - } - links { - text: "mac" - url: "/p/chromium/g/tryserver.chromium.mac/builders" - alt: "Mac" - } - links { - text: "swangle" - url: "/p/chromium/g/tryserver.chromium.swangle/builders" - alt: "SWANGLE" - } - links { - text: "win" - url: "/p/chromium/g/tryserver.chromium.win/builders" - alt: "Win" - } - } - links { - name: "Navigate" - links { - text: "about" - url: "http://dev.chromium.org/developers/testing/chromium-build-infrastructure/tour-of-the-chromium-buildbot" - alt: "Tour of the console" - } - links { - text: "customize" - url: "https://chromium.googlesource.com/chromium/src/+/master/infra/config/luci-milo.cfg" - alt: "Customize this console" - } - } - console_groups { - title { - text: "Tree Closers" - url: "https://chromium-status.appspot.com/" - } - console_ids: "chromium/chromium" - console_ids: "chromium/chromium.win" - console_ids: "chromium/chromium.mac" - console_ids: "chromium/chromium.linux" - console_ids: "chromium/chromium.chromiumos" - console_ids: "chrome/chrome" - console_ids: "chromium/chromium.memory" - console_ids: "chromium/chromium.gpu" - } - console_groups { - console_ids: "chromium/chromium.android" - console_ids: "chrome/chrome.perf" - console_ids: "chromium/chromium.gpu.fyi" - console_ids: "chromium/chromium.swangle" - console_ids: "chromium/chromium.fuzz" - } - tree_status_host: "chromium-status.appspot.com" - } -} -consoles { id: "main-m85" name: "Chromium M85 Console" repo_url: "https://chromium.googlesource.com/chromium/src" @@ -2116,26 +1451,6 @@ refs: "regexp:refs/heads/master" manifest_name: "REVISION" builders { - name: "buildbucket/luci.chromium.ci/android-official" - category: "chromium|android" - short_name: "off" - } - builders { - name: "buildbucket/luci.chromium.ci/fuchsia-official" - category: "chromium|fuchsia" - short_name: "off" - } - builders { - name: "buildbucket/luci.chromium.ci/win32-official" - category: "chromium|win|off" - short_name: "32" - } - builders { - name: "buildbucket/luci.chromium.ci/win-official" - category: "chromium|win|off" - short_name: "64" - } - builders { name: "buildbucket/luci.chromium.ci/Win x64 Builder" category: "chromium.win|release|builder" short_name: "64" @@ -2196,11 +1511,6 @@ short_name: "15" } builders { - name: "buildbucket/luci.chromium.ci/mac-arm64-rel" - category: "chromium.mac|release" - short_name: "a64" - } - builders { name: "buildbucket/luci.chromium.ci/Mac Builder (dbg)" category: "chromium.mac|debug" short_name: "bld" @@ -2555,676 +1865,6 @@ category: "chromium.fyi|linux" short_name: "lox" } - builders { - name: "buildbucket/luci.chromium.ci/linux-official" - category: "chromium.fyi|linux" - short_name: "off" - } - header { - oncalls { - name: "Chromium" - url: "https://chrome-ops-rotation-proxy.appspot.com/current/oncallator:chrome-build-sheriff" - } - oncalls { - name: "Android" - url: "https://chrome-ops-rotation-proxy.appspot.com/current/oncallator:chrome-android-sheriff" - } - oncalls { - name: "iOS" - url: "https://rota-ng.appspot.com/legacy/sheriff_ios.json" - } - oncalls { - name: "GPU" - url: "https://rota-ng.appspot.com/legacy/sheriff_gpu.json" - } - oncalls { - name: "Angle" - url: "https://rota-ng.appspot.com/legacy/sheriff_angle.json" - } - oncalls { - name: "Perf" - url: "https://rota-ng.appspot.com/legacy/sheriff_perf.json" - } - oncalls { - name: "Perfbot" - url: "https://rota-ng.appspot.com/legacy/sheriff_perfbot.json" - } - oncalls { - name: "Trooper" - url: "https://chrome-ops-rotation-proxy.appspot.com/current/oncallator:chrome-ops-client-infra" - show_primary_secondary_labels: true - } - links { - name: "Builds" - links { - text: "continuous" - url: "https://commondatastorage.googleapis.com/chromium-browser-snapshots/index.html" - alt: "Continuous browser snapshots" - } - links { - text: "symbols" - url: "https://www.chromium.org/developers/how-tos/debugging-on-windows" - alt: "Windows Symbols" - } - links { - text: "status" - url: "https://chromium-status.appspot.com/" - alt: "Current tree status" - } - } - links { - name: "Dashboards" - links { - text: "perf" - url: "https://chromeperf.appspot.com/" - alt: "Chrome perf dashboard" - } - links { - text: "flake-portal" - url: "https://analysis.chromium.org/p/chromium/flake-portal" - alt: "New flake portal" - } - links { - text: "legacy-flakiness" - url: "https://test-results.appspot.com/dashboards/flakiness_dashboard.html" - alt: "Legacy flakiness dashboard" - } - } - links { - name: "Chromium" - links { - text: "source" - url: "https://chromium.googlesource.com/chromium/src" - alt: "Chromium source code repository" - } - links { - text: "reviews" - url: "https://chromium-review.googlesource.com" - alt: "Chromium code review tool" - } - links { - text: "bugs" - url: "https://crbug.com" - alt: "Chromium bug tracker" - } - links { - text: "coverage" - url: "https://analysis.chromium.org/p/chromium/coverage" - alt: "Chromium code coverage dashboard" - } - links { - text: "dev" - url: "https://dev.chromium.org/Home" - alt: "Chromium developer home page" - } - links { - text: "support" - url: "https://support.google.com/chrome/#topic=7438008" - alt: "Google Chrome help center" - } - } - links { - name: "Consoles" - links { - text: "android" - url: "/p/chromium/g/chromium.android" - alt: "Chromium Android console" - } - links { - text: "clang" - url: "/p/chromium/g/chromium.clang" - alt: "Chromium Clang console" - } - links { - text: "dawn" - url: "/p/chromium/g/chromium.dawn" - alt: "Chromium Dawn console" - } - links { - text: "fuzz" - url: "/p/chromium/g/chromium.fuzz" - alt: "Chromium Fuzz console" - } - links { - text: "fyi" - url: "/p/chromium/g/chromium.fyi" - alt: "Chromium FYI console" - } - links { - text: "gpu" - url: "/p/chromium/g/chromium.gpu" - alt: "Chromium GPU console" - } - links { - text: "perf" - url: "/p/chrome/g/chrome.perf/console" - alt: "Chromium Perf console" - } - links { - text: "perf.fyi" - url: "/p/chrome/g/chrome.perf.fyi/console" - alt: "Chromium Perf FYI console" - } - links { - text: "swangle" - url: "/p/chromium/g/chromium.swangle" - alt: "Chromium SWANGLE console" - } - links { - text: "webrtc" - url: "/p/chromium/g/chromium.webrtc" - alt: "Chromium WebRTC console" - } - links { - text: "chromiumos" - url: "/p/chromium/g/chromium.chromiumos" - alt: "ChromiumOS console" - } - } - links { - name: "Branch Consoles" - links { - text: "m86" - url: "/p/chromium-m86/g/main/console" - alt: "Beta branch console" - } - links { - text: "m85" - url: "/p/chromium/g/main-m85/console" - alt: "Stable branch console" - } - links { - text: "trunk" - url: "/p/chromium/g/main/console" - alt: "Trunk (ToT) console" - } - } - links { - name: "Tryservers" - links { - text: "android" - url: "/p/chromium/g/tryserver.chromium.android/builders" - alt: "Android" - } - links { - text: "angle" - url: "/p/chromium/g/tryserver.chromium.angle/builders" - alt: "Angle" - } - links { - text: "blink" - url: "/p/chromium/g/tryserver.blink/builders" - alt: "Blink" - } - links { - text: "chrome" - url: "/p/chrome/g/tryserver.chrome/builders" - alt: "Chrome" - } - links { - text: "chromiumos" - url: "/p/chromium/g/tryserver.chromium.chromiumos/builders" - alt: "ChromiumOS" - } - links { - text: "linux" - url: "/p/chromium/g/tryserver.chromium.linux/builders" - alt: "Linux" - } - links { - text: "mac" - url: "/p/chromium/g/tryserver.chromium.mac/builders" - alt: "Mac" - } - links { - text: "swangle" - url: "/p/chromium/g/tryserver.chromium.swangle/builders" - alt: "SWANGLE" - } - links { - text: "win" - url: "/p/chromium/g/tryserver.chromium.win/builders" - alt: "Win" - } - } - links { - name: "Navigate" - links { - text: "about" - url: "http://dev.chromium.org/developers/testing/chromium-build-infrastructure/tour-of-the-chromium-buildbot" - alt: "Tour of the console" - } - links { - text: "customize" - url: "https://chromium.googlesource.com/chromium/src/+/master/infra/config/luci-milo.cfg" - alt: "Customize this console" - } - } - console_groups { - title { - text: "Tree Closers" - url: "https://chromium-status.appspot.com/" - } - console_ids: "chromium/chromium" - console_ids: "chromium/chromium.win" - console_ids: "chromium/chromium.mac" - console_ids: "chromium/chromium.linux" - console_ids: "chromium/chromium.chromiumos" - console_ids: "chrome/chrome" - console_ids: "chromium/chromium.memory" - console_ids: "chromium/chromium.gpu" - } - console_groups { - console_ids: "chromium/chromium.android" - console_ids: "chrome/chrome.perf" - console_ids: "chromium/chromium.gpu.fyi" - console_ids: "chromium/chromium.swangle" - console_ids: "chromium/chromium.fuzz" - } - tree_status_host: "chromium-status.appspot.com" - } -} -consoles { - id: "mirrors-m84" - name: "Chromium M84 CQ Mirrors Console" - repo_url: "https://chromium.googlesource.com/chromium/src" - refs: "regexp:refs/branch-heads/4147" - manifest_name: "REVISION" - builders { - name: "buildbucket/luci.chromium.ci-m84/Win x64 Builder" - category: "chromium.win|release|builder" - short_name: "64" - } - builders { - name: "buildbucket/luci.chromium.ci-m84/Win 7 Tests x64 (1)" - category: "chromium.win|release|tester" - short_name: "64" - } - builders { - name: "buildbucket/luci.chromium.ci-m84/Win10 Tests x64" - category: "chromium.win|release|tester" - short_name: "w10" - } - builders { - name: "buildbucket/luci.chromium.ci-m84/Win Builder (dbg)" - category: "chromium.win|debug|builder" - short_name: "32" - } - builders { - name: "buildbucket/luci.chromium.ci-m84/Win7 Tests (dbg)(1)" - category: "chromium.win|debug|tester" - short_name: "7" - } - builders { - name: "buildbucket/luci.chromium.ci-m84/Mac Builder" - category: "chromium.mac|release" - short_name: "bld" - } - builders { - name: "buildbucket/luci.chromium.ci-m84/Mac10.10 Tests" - category: "chromium.mac|release" - short_name: "10" - } - builders { - name: "buildbucket/luci.chromium.ci-m84/Mac10.11 Tests" - category: "chromium.mac|release" - short_name: "11" - } - builders { - name: "buildbucket/luci.chromium.ci-m84/Mac10.12 Tests" - category: "chromium.mac|release" - short_name: "12" - } - builders { - name: "buildbucket/luci.chromium.ci-m84/Mac10.13 Tests" - category: "chromium.mac|release" - short_name: "13" - } - builders { - name: "buildbucket/luci.chromium.ci-m84/Mac10.14 Tests" - category: "chromium.mac|release" - short_name: "14" - } - builders { - name: "buildbucket/luci.chromium.ci-m84/Mac10.15 Tests" - category: "chromium.mac|release" - short_name: "15" - } - builders { - name: "buildbucket/luci.chromium.ci-m84/Mac Builder (dbg)" - category: "chromium.mac|debug" - short_name: "bld" - } - builders { - name: "buildbucket/luci.chromium.ci-m84/Mac10.13 Tests (dbg)" - category: "chromium.mac|debug" - short_name: "13" - } - builders { - name: "buildbucket/luci.chromium.ci-m84/ios-simulator" - category: "chromium.mac|ios|default" - short_name: "sim" - } - builders { - name: "buildbucket/luci.chromium.ci-m84/ios-simulator-full-configs" - category: "chromium.mac|ios|default" - short_name: "ful" - } - builders { - name: "buildbucket/luci.chromium.ci-m84/Linux Builder" - category: "chromium.linux|release" - short_name: "bld" - } - builders { - name: "buildbucket/luci.chromium.ci-m84/Linux Tests" - category: "chromium.linux|release" - short_name: "tst" - } - builders { - name: "buildbucket/luci.chromium.ci-m84/linux-ozone-rel" - category: "chromium.linux|release" - short_name: "ozo" - } - builders { - name: "buildbucket/luci.chromium.ci-m84/Linux Builder (dbg)" - category: "chromium.linux|debug|builder" - short_name: "64" - } - builders { - name: "buildbucket/luci.chromium.ci-m84/Linux Tests (dbg)(1)" - category: "chromium.linux|debug|tester" - short_name: "64" - } - builders { - name: "buildbucket/luci.chromium.ci-m84/Cast Linux" - category: "chromium.linux|cast" - short_name: "vid" - } - builders { - name: "buildbucket/luci.chromium.ci-m84/Fuchsia ARM64" - category: "chromium.linux|fuchsia|a64" - short_name: "rel" - } - builders { - name: "buildbucket/luci.chromium.ci-m84/fuchsia-arm64-cast" - category: "chromium.linux|fuchsia|cast" - short_name: "a64" - } - builders { - name: "buildbucket/luci.chromium.ci-m84/fuchsia-x64-cast" - category: "chromium.linux|fuchsia|cast" - short_name: "x64" - } - builders { - name: "buildbucket/luci.chromium.ci-m84/Fuchsia x64" - category: "chromium.linux|fuchsia|x64" - short_name: "rel" - } - builders { - name: "buildbucket/luci.chromium.ci-m84/linux-chromeos-rel" - category: "chromium.chromiumos|default" - short_name: "rel" - } - builders { - name: "buildbucket/luci.chromium.ci-m84/linux-chromeos-dbg" - category: "chromium.chromiumos|default" - short_name: "dbg" - } - builders { - name: "buildbucket/luci.chromium.ci-m84/chromeos-arm-generic-rel" - category: "chromium.chromiumos|simple|release" - short_name: "arm" - } - builders { - name: "buildbucket/luci.chromium.ci-m84/chromeos-amd64-generic-rel" - category: "chromium.chromiumos|simple|release|x64" - short_name: "rel" - } - builders { - name: "buildbucket/luci.chromium.ci-m84/chromeos-amd64-generic-dbg" - category: "chromium.chromiumos|simple|debug|x64" - short_name: "dbg" - } - builders { - name: "buildbucket/luci.chromium.ci-m84/android-cronet-arm-dbg" - category: "chromium.android|cronet|arm" - short_name: "dbg" - } - builders { - name: "buildbucket/luci.chromium.ci-m84/android-cronet-arm-rel" - category: "chromium.android|cronet|arm" - short_name: "rel" - } - builders { - name: "buildbucket/luci.chromium.ci-m84/android-cronet-kitkat-arm-rel" - category: "chromium.android|cronet|test" - short_name: "k" - } - builders { - name: "buildbucket/luci.chromium.ci-m84/android-cronet-lollipop-arm-rel" - category: "chromium.android|cronet|test" - short_name: "l" - } - builders { - name: "buildbucket/luci.chromium.ci-m84/Android arm Builder (dbg)" - category: "chromium.android|builder|arm" - short_name: "32" - } - builders { - name: "buildbucket/luci.chromium.ci-m84/Android arm64 Builder (dbg)" - category: "chromium.android|builder|arm" - short_name: "64" - } - builders { - name: "buildbucket/luci.chromium.ci-m84/Android x86 Builder (dbg)" - category: "chromium.android|builder|x86" - short_name: "32" - } - builders { - name: "buildbucket/luci.chromium.ci-m84/Android x64 Builder (dbg)" - category: "chromium.android|builder|x86" - short_name: "64" - } - builders { - name: "buildbucket/luci.chromium.ci-m84/Marshmallow 64 bit Tester" - category: "chromium.android|tester|phone" - short_name: "M" - } - builders { - name: "buildbucket/luci.chromium.ci-m84/Nougat Phone Tester" - category: "chromium.android|tester|phone" - short_name: "N" - } - builders { - name: "buildbucket/luci.chromium.ci-m84/Oreo Phone Tester" - category: "chromium.android|tester|phone" - short_name: "O" - } - builders { - name: "buildbucket/luci.chromium.ci-m84/android-pie-arm64-dbg" - category: "chromium.android|tester|phone" - short_name: "P" - } - builders { - name: "buildbucket/luci.chromium.ci-m84/Android WebView M (dbg)" - category: "chromium.android|tester|webview" - short_name: "M" - } - builders { - name: "buildbucket/luci.chromium.ci-m84/Android WebView N (dbg)" - category: "chromium.android|tester|webview" - short_name: "N" - } - builders { - name: "buildbucket/luci.chromium.ci-m84/Android WebView O (dbg)" - category: "chromium.android|tester|webview" - short_name: "O" - } - builders { - name: "buildbucket/luci.chromium.ci-m84/Android WebView P (dbg)" - category: "chromium.android|tester|webview" - short_name: "P" - } - builders { - name: "buildbucket/luci.chromium.ci-m84/android-lollipop-arm-rel" - category: "chromium.android|on_cq" - short_name: "L" - } - builders { - name: "buildbucket/luci.chromium.ci-m84/android-marshmallow-arm64-rel" - category: "chromium.android|on_cq" - short_name: "M" - } - builders { - name: "buildbucket/luci.chromium.ci-m84/android-pie-arm64-rel" - category: "chromium.android|on_cq" - short_name: "P" - } - builders { - name: "buildbucket/luci.chromium.ci-m84/Cast Android (dbg)" - category: "chromium.android|on_cq" - short_name: "cst" - } - builders { - name: "buildbucket/luci.chromium.ci-m84/Linux TSan Builder" - category: "chromium.memory|linux|TSan v2" - short_name: "bld" - } - builders { - name: "buildbucket/luci.chromium.ci-m84/Linux TSan Tests" - category: "chromium.memory|linux|TSan v2" - short_name: "tst" - } - builders { - name: "buildbucket/luci.chromium.ci-m84/Linux ASan LSan Builder" - category: "chromium.memory|linux|asan lsan" - short_name: "bld" - } - builders { - name: "buildbucket/luci.chromium.ci-m84/Linux ASan LSan Tests (1)" - category: "chromium.memory|linux|asan lsan" - short_name: "tst" - } - builders { - name: "buildbucket/luci.chromium.ci-m84/Linux ASan Tests (sandboxed)" - category: "chromium.memory|linux|asan lsan" - short_name: "sbx" - } - builders { - name: "buildbucket/luci.chromium.ci-m84/Dawn Linux x64 DEPS Builder" - category: "chromium.dawn|DEPS|Linux|Builder" - short_name: "x64" - } - builders { - name: "buildbucket/luci.chromium.ci-m84/Dawn Linux x64 DEPS Release (Intel HD 630)" - category: "chromium.dawn|DEPS|Linux|Intel" - short_name: "x64" - } - builders { - name: "buildbucket/luci.chromium.ci-m84/Dawn Linux x64 DEPS Release (NVIDIA)" - category: "chromium.dawn|DEPS|Linux|Nvidia" - short_name: "x64" - } - builders { - name: "buildbucket/luci.chromium.ci-m84/Dawn Mac x64 DEPS Builder" - category: "chromium.dawn|DEPS|Mac|Builder" - short_name: "x64" - } - builders { - name: "buildbucket/luci.chromium.ci-m84/Dawn Mac x64 DEPS Release (AMD)" - category: "chromium.dawn|DEPS|Mac|AMD" - short_name: "x64" - } - builders { - name: "buildbucket/luci.chromium.ci-m84/Dawn Mac x64 DEPS Release (Intel)" - category: "chromium.dawn|DEPS|Mac|Intel" - short_name: "x64" - } - builders { - name: "buildbucket/luci.chromium.ci-m84/Dawn Win10 x86 DEPS Builder" - category: "chromium.dawn|DEPS|Windows|Builder" - short_name: "x86" - } - builders { - name: "buildbucket/luci.chromium.ci-m84/Dawn Win10 x64 DEPS Builder" - category: "chromium.dawn|DEPS|Windows|Builder" - short_name: "x64" - } - builders { - name: "buildbucket/luci.chromium.ci-m84/Dawn Win10 x86 DEPS Release (Intel HD 630)" - category: "chromium.dawn|DEPS|Windows|Intel" - short_name: "x86" - } - builders { - name: "buildbucket/luci.chromium.ci-m84/Dawn Win10 x64 DEPS Release (Intel HD 630)" - category: "chromium.dawn|DEPS|Windows|Intel" - short_name: "x64" - } - builders { - name: "buildbucket/luci.chromium.ci-m84/Dawn Win10 x86 DEPS Release (NVIDIA)" - category: "chromium.dawn|DEPS|Windows|Nvidia" - short_name: "x86" - } - builders { - name: "buildbucket/luci.chromium.ci-m84/Dawn Win10 x64 DEPS Release (NVIDIA)" - category: "chromium.dawn|DEPS|Windows|Nvidia" - short_name: "x64" - } - builders { - name: "buildbucket/luci.chromium.ci-m84/GPU Win x64 Builder" - category: "chromium.gpu|Windows" - } - builders { - name: "buildbucket/luci.chromium.ci-m84/Win10 x64 Release (NVIDIA)" - category: "chromium.gpu|Windows" - } - builders { - name: "buildbucket/luci.chromium.ci-m84/GPU Mac Builder" - category: "chromium.gpu|Mac" - } - builders { - name: "buildbucket/luci.chromium.ci-m84/Mac Release (Intel)" - category: "chromium.gpu|Mac" - } - builders { - name: "buildbucket/luci.chromium.ci-m84/Mac Retina Release (AMD)" - category: "chromium.gpu|Mac" - } - builders { - name: "buildbucket/luci.chromium.ci-m84/GPU Linux Builder" - category: "chromium.gpu|Linux" - } - builders { - name: "buildbucket/luci.chromium.ci-m84/Linux Release (NVIDIA)" - category: "chromium.gpu|Linux" - } - builders { - name: "buildbucket/luci.chromium.ci-m84/Android Release (Nexus 5X)" - category: "chromium.gpu|Android" - } - builders { - name: "buildbucket/luci.chromium.ci-m84/ios-simulator-cronet" - category: "chromium.fyi|cronet" - } - builders { - name: "buildbucket/luci.chromium.ci-m84/VR Linux" - category: "chromium.fyi|linux" - } - builders { - name: "buildbucket/luci.chromium.ci-m84/Linux Ozone Tester (Headless)" - category: "chromium.fyi|linux" - short_name: "loh" - } - builders { - name: "buildbucket/luci.chromium.ci-m84/Linux Ozone Tester (Wayland)" - category: "chromium.fyi|linux" - short_name: "low" - } - builders { - name: "buildbucket/luci.chromium.ci-m84/Linux Ozone Tester (X11)" - category: "chromium.fyi|linux" - short_name: "lox" - } header { oncalls { name: "Chromium" @@ -4500,18 +3140,9 @@ name: "buildbucket/luci.chromium.try/android-marshmallow-arm64-rel" } builders { - name: "buildbucket/luci.chromium.try/android-marshmallow-x86-rel" - } - builders { - name: "buildbucket/luci.chromium.try/android-official" - } - builders { name: "buildbucket/luci.chromium.try/android-pie-arm64-dbg" } builders { - name: "buildbucket/luci.chromium.try/android-pie-arm64-rel" - } - builders { name: "buildbucket/luci.chromium.try/android_compile_dbg" } builders { @@ -4542,9 +3173,6 @@ name: "buildbucket/luci.chromium.try/chromeos-arm-generic-rel" } builders { - name: "buildbucket/luci.chromium.try/chromeos-kevin-compile-rel" - } - builders { name: "buildbucket/luci.chromium.try/chromeos-kevin-rel" } builders { @@ -4569,9 +3197,6 @@ name: "buildbucket/luci.chromium.try/fuchsia-arm64-cast" } builders { - name: "buildbucket/luci.chromium.try/fuchsia-official" - } - builders { name: "buildbucket/luci.chromium.try/fuchsia-x64-cast" } builders { @@ -4599,10 +3224,10 @@ name: "buildbucket/luci.chromium.try/linux-chromeos-rel" } builders { - name: "buildbucket/luci.chromium.try/linux-libfuzzer-asan-rel" + name: "buildbucket/luci.chromium.try/linux-lacros-rel" } builders { - name: "buildbucket/luci.chromium.try/linux-official" + name: "buildbucket/luci.chromium.try/linux-libfuzzer-asan-rel" } builders { name: "buildbucket/luci.chromium.try/linux-ozone-rel" @@ -4635,9 +3260,6 @@ name: "buildbucket/luci.chromium.try/linux_vr" } builders { - name: "buildbucket/luci.chromium.try/mac-arm64-rel" - } - builders { name: "buildbucket/luci.chromium.try/mac-rel" } builders { @@ -4650,15 +3272,9 @@ name: "buildbucket/luci.chromium.try/win-libfuzzer-asan-rel" } builders { - name: "buildbucket/luci.chromium.try/win-official" - } - builders { name: "buildbucket/luci.chromium.try/win10_chromium_x64_rel_ng" } builders { - name: "buildbucket/luci.chromium.try/win32-official" - } - builders { name: "buildbucket/luci.chromium.try/win7-rel" } builders { @@ -4670,161 +3286,6 @@ builder_view_only: true } consoles { - id: "try-m84" - name: "Chromium M84 CQ console" - builders { - name: "buildbucket/luci.chromium.try-m84/android-binary-size" - } - builders { - name: "buildbucket/luci.chromium.try-m84/android-cronet-arm-dbg" - } - builders { - name: "buildbucket/luci.chromium.try-m84/android-lollipop-arm-rel" - } - builders { - name: "buildbucket/luci.chromium.try-m84/android-marshmallow-arm64-rel" - } - builders { - name: "buildbucket/luci.chromium.try-m84/android-pie-arm64-dbg" - } - builders { - name: "buildbucket/luci.chromium.try-m84/android-pie-arm64-rel" - } - builders { - name: "buildbucket/luci.chromium.try-m84/android_compile_dbg" - } - builders { - name: "buildbucket/luci.chromium.try-m84/android_compile_x64_dbg" - } - builders { - name: "buildbucket/luci.chromium.try-m84/android_compile_x86_dbg" - } - builders { - name: "buildbucket/luci.chromium.try-m84/android_cronet" - } - builders { - name: "buildbucket/luci.chromium.try-m84/android_optional_gpu_tests_rel" - } - builders { - name: "buildbucket/luci.chromium.try-m84/cast_shell_android" - } - builders { - name: "buildbucket/luci.chromium.try-m84/cast_shell_linux" - } - builders { - name: "buildbucket/luci.chromium.try-m84/chromeos-amd64-generic-dbg" - } - builders { - name: "buildbucket/luci.chromium.try-m84/chromeos-amd64-generic-rel" - } - builders { - name: "buildbucket/luci.chromium.try-m84/chromeos-arm-generic-rel" - } - builders { - name: "buildbucket/luci.chromium.try-m84/chromium_presubmit" - } - builders { - name: "buildbucket/luci.chromium.try-m84/closure_compilation" - } - builders { - name: "buildbucket/luci.chromium.try-m84/dawn-linux-x64-deps-rel" - } - builders { - name: "buildbucket/luci.chromium.try-m84/dawn-mac-x64-deps-rel" - } - builders { - name: "buildbucket/luci.chromium.try-m84/dawn-win10-x64-deps-rel" - } - builders { - name: "buildbucket/luci.chromium.try-m84/dawn-win10-x86-deps-rel" - } - builders { - name: "buildbucket/luci.chromium.try-m84/fuchsia-arm64-cast" - } - builders { - name: "buildbucket/luci.chromium.try-m84/fuchsia-x64-cast" - } - builders { - name: "buildbucket/luci.chromium.try-m84/fuchsia_arm64" - } - builders { - name: "buildbucket/luci.chromium.try-m84/fuchsia_x64" - } - builders { - name: "buildbucket/luci.chromium.try-m84/ios-simulator" - } - builders { - name: "buildbucket/luci.chromium.try-m84/ios-simulator-cronet" - } - builders { - name: "buildbucket/luci.chromium.try-m84/ios-simulator-full-configs" - } - builders { - name: "buildbucket/luci.chromium.try-m84/linux-blink-rel" - } - builders { - name: "buildbucket/luci.chromium.try-m84/linux-chromeos-compile-dbg" - } - builders { - name: "buildbucket/luci.chromium.try-m84/linux-chromeos-rel" - } - builders { - name: "buildbucket/luci.chromium.try-m84/linux-libfuzzer-asan-rel" - } - builders { - name: "buildbucket/luci.chromium.try-m84/linux-ozone-rel" - } - builders { - name: "buildbucket/luci.chromium.try-m84/linux-rel" - } - builders { - name: "buildbucket/luci.chromium.try-m84/linux_chromium_asan_rel_ng" - } - builders { - name: "buildbucket/luci.chromium.try-m84/linux_chromium_compile_dbg_ng" - } - builders { - name: "buildbucket/luci.chromium.try-m84/linux_chromium_dbg_ng" - } - builders { - name: "buildbucket/luci.chromium.try-m84/linux_chromium_tsan_rel_ng" - } - builders { - name: "buildbucket/luci.chromium.try-m84/linux_layout_tests_composite_after_paint" - } - builders { - name: "buildbucket/luci.chromium.try-m84/linux_layout_tests_layout_ng_disabled" - } - builders { - name: "buildbucket/luci.chromium.try-m84/linux_optional_gpu_tests_rel" - } - builders { - name: "buildbucket/luci.chromium.try-m84/linux_vr" - } - builders { - name: "buildbucket/luci.chromium.try-m84/mac-rel" - } - builders { - name: "buildbucket/luci.chromium.try-m84/mac_chromium_compile_dbg_ng" - } - builders { - name: "buildbucket/luci.chromium.try-m84/mac_optional_gpu_tests_rel" - } - builders { - name: "buildbucket/luci.chromium.try-m84/win-libfuzzer-asan-rel" - } - builders { - name: "buildbucket/luci.chromium.try-m84/win10_chromium_x64_rel_ng" - } - builders { - name: "buildbucket/luci.chromium.try-m84/win_chromium_compile_dbg_ng" - } - builders { - name: "buildbucket/luci.chromium.try-m84/win_optional_gpu_tests_rel" - } - builder_view_only: true -} -consoles { id: "try-m85" name: "Chromium M85 CQ console" builders { @@ -15023,6 +13484,9 @@ name: "buildbucket/luci.chromium.try/android-cronet-arm-dbg" } builders { + name: "buildbucket/luci.chromium.try/android-cronet-marshmallow-arm64-rel" + } + builders { name: "buildbucket/luci.chromium.try/android-lollipop-arm-rel" } builders { @@ -15648,6 +14112,9 @@ name: "buildbucket/luci.chromium.try/android-cronet-arm-dbg" } builders { + name: "buildbucket/luci.chromium.try/android-cronet-marshmallow-arm64-rel" + } + builders { name: "buildbucket/luci.chromium.try/android-deterministic-dbg" } builders {
diff --git a/infra/config/generated/luci-notify.cfg b/infra/config/generated/luci-notify.cfg index 161c2716..52f3364 100644 --- a/infra/config/generated/luci-notify.cfg +++ b/infra/config/generated/luci-notify.cfg
@@ -3118,453 +3118,6 @@ } } builders { - bucket: "ci-m84" - name: "Android Release (Nexus 5X)" - repository: "https://chromium.googlesource.com/chromium/src" - } -} -notifiers { - notifications { - on_occurrence: FAILURE - failed_step_regexp: "bot_update|compile|gclient runhooks|runhooks|update" - email { - recipients: "thomasanderson@chromium.org" - } - } - builders { - bucket: "ci-m84" - name: "Cast Linux" - repository: "https://chromium.googlesource.com/chromium/src" - } -} -notifiers { - notifications { - on_occurrence: FAILURE - failed_step_regexp: "bot_update|compile|gclient runhooks|runhooks|update" - email { - recipients: "thomasanderson@chromium.org" - } - } - notifications { - on_change: true - email { - recipients: "cr-fuchsia+bot@chromium.org" - } - } - builders { - bucket: "ci-m84" - name: "Fuchsia ARM64" - repository: "https://chromium.googlesource.com/chromium/src" - } -} -notifiers { - notifications { - on_occurrence: FAILURE - failed_step_regexp: "bot_update|compile|gclient runhooks|runhooks|update" - email { - recipients: "thomasanderson@chromium.org" - } - } - notifications { - on_change: true - email { - recipients: "cr-fuchsia+bot@chromium.org" - } - } - builders { - bucket: "ci-m84" - name: "Fuchsia x64" - repository: "https://chromium.googlesource.com/chromium/src" - } -} -notifiers { - notifications { - on_occurrence: FAILURE - failed_step_regexp: "bot_update|compile|gclient runhooks|runhooks|update" - email { - recipients: "chrome-gpu-build-failures@google.com" - rotation_urls: "https://rota-ng.appspot.com/legacy/sheriff_gpu.json" - } - } - builders { - bucket: "ci-m84" - name: "GPU Linux Builder" - repository: "https://chromium.googlesource.com/chromium/src" - } -} -notifiers { - notifications { - on_occurrence: FAILURE - failed_step_regexp: "bot_update|compile|gclient runhooks|runhooks|update" - email { - recipients: "chrome-gpu-build-failures@google.com" - rotation_urls: "https://rota-ng.appspot.com/legacy/sheriff_gpu.json" - } - } - builders { - bucket: "ci-m84" - name: "GPU Mac Builder" - repository: "https://chromium.googlesource.com/chromium/src" - } -} -notifiers { - notifications { - on_occurrence: FAILURE - failed_step_regexp: "bot_update|compile|gclient runhooks|runhooks|update" - email { - recipients: "chrome-gpu-build-failures@google.com" - rotation_urls: "https://rota-ng.appspot.com/legacy/sheriff_gpu.json" - } - } - builders { - bucket: "ci-m84" - name: "GPU Win x64 Builder" - repository: "https://chromium.googlesource.com/chromium/src" - } -} -notifiers { - notifications { - on_occurrence: FAILURE - failed_step_regexp: "bot_update|compile|gclient runhooks|runhooks|update" - email { - recipients: "thomasanderson@chromium.org" - } - } - builders { - bucket: "ci-m84" - name: "Linux ASan LSan Builder" - repository: "https://chromium.googlesource.com/chromium/src" - } -} -notifiers { - notifications { - on_occurrence: FAILURE - failed_step_regexp: "bot_update|compile|gclient runhooks|runhooks|update" - email { - recipients: "thomasanderson@chromium.org" - } - } - builders { - bucket: "ci-m84" - name: "Linux ASan LSan Tests (1)" - } -} -notifiers { - notifications { - on_occurrence: FAILURE - failed_step_regexp: "bot_update|compile|gclient runhooks|runhooks|update" - email { - recipients: "thomasanderson@chromium.org" - } - } - builders { - bucket: "ci-m84" - name: "Linux ASan Tests (sandboxed)" - } -} -notifiers { - notifications { - on_occurrence: FAILURE - failed_step_regexp: "bot_update|compile|gclient runhooks|runhooks|update" - email { - recipients: "thomasanderson@chromium.org" - } - } - builders { - bucket: "ci-m84" - name: "Linux Builder" - repository: "https://chromium.googlesource.com/chromium/src" - } -} -notifiers { - notifications { - on_occurrence: FAILURE - failed_step_regexp: "bot_update|compile|gclient runhooks|runhooks|update" - email { - recipients: "thomasanderson@chromium.org" - } - } - builders { - bucket: "ci-m84" - name: "Linux Builder (dbg)" - repository: "https://chromium.googlesource.com/chromium/src" - } -} -notifiers { - notifications { - on_occurrence: FAILURE - failed_step_regexp: "bot_update|compile|gclient runhooks|runhooks|update" - email { - recipients: "thomasanderson@chromium.org" - } - } - builders { - bucket: "ci-m84" - name: "Linux Ozone Tester (Headless)" - } -} -notifiers { - notifications { - on_occurrence: FAILURE - failed_step_regexp: "bot_update|compile|gclient runhooks|runhooks|update" - email { - recipients: "thomasanderson@chromium.org" - } - } - builders { - bucket: "ci-m84" - name: "Linux Ozone Tester (Wayland)" - } -} -notifiers { - notifications { - on_occurrence: FAILURE - failed_step_regexp: "bot_update|compile|gclient runhooks|runhooks|update" - email { - recipients: "thomasanderson@chromium.org" - } - } - builders { - bucket: "ci-m84" - name: "Linux Ozone Tester (X11)" - } -} -notifiers { - notifications { - on_occurrence: FAILURE - failed_step_regexp: "bot_update|compile|gclient runhooks|runhooks|update" - email { - recipients: "chrome-gpu-build-failures@google.com" - rotation_urls: "https://rota-ng.appspot.com/legacy/sheriff_gpu.json" - } - } - builders { - bucket: "ci-m84" - name: "Linux Release (NVIDIA)" - } -} -notifiers { - notifications { - on_occurrence: FAILURE - failed_step_regexp: "bot_update|compile|gclient runhooks|runhooks|update" - email { - recipients: "thomasanderson@chromium.org" - } - } - builders { - bucket: "ci-m84" - name: "Linux TSan Builder" - repository: "https://chromium.googlesource.com/chromium/src" - } -} -notifiers { - notifications { - on_occurrence: FAILURE - failed_step_regexp: "bot_update|compile|gclient runhooks|runhooks|update" - email { - recipients: "thomasanderson@chromium.org" - } - } - builders { - bucket: "ci-m84" - name: "Linux TSan Tests" - } -} -notifiers { - notifications { - on_occurrence: FAILURE - failed_step_regexp: "bot_update|compile|gclient runhooks|runhooks|update" - email { - recipients: "thomasanderson@chromium.org" - } - } - builders { - bucket: "ci-m84" - name: "Linux Tests" - } -} -notifiers { - notifications { - on_occurrence: FAILURE - failed_step_regexp: "bot_update|compile|gclient runhooks|runhooks|update" - email { - recipients: "thomasanderson@chromium.org" - } - } - builders { - bucket: "ci-m84" - name: "Linux Tests (dbg)(1)" - } -} -notifiers { - notifications { - on_occurrence: FAILURE - failed_step_regexp: "bot_update|compile|gclient runhooks|runhooks|update" - email { - recipients: "chrome-gpu-build-failures@google.com" - rotation_urls: "https://rota-ng.appspot.com/legacy/sheriff_gpu.json" - } - } - builders { - bucket: "ci-m84" - name: "Mac Release (Intel)" - } -} -notifiers { - notifications { - on_occurrence: FAILURE - failed_step_regexp: "bot_update|compile|gclient runhooks|runhooks|update" - email { - recipients: "chrome-gpu-build-failures@google.com" - rotation_urls: "https://rota-ng.appspot.com/legacy/sheriff_gpu.json" - } - } - builders { - bucket: "ci-m84" - name: "Mac Retina Release (AMD)" - } -} -notifiers { - notifications { - on_occurrence: FAILURE - failed_step_regexp: "bot_update|compile|gclient runhooks|runhooks|update" - email { - recipients: "chrome-gpu-build-failures@google.com" - rotation_urls: "https://rota-ng.appspot.com/legacy/sheriff_gpu.json" - } - } - builders { - bucket: "ci-m84" - name: "Win10 x64 Release (NVIDIA)" - } -} -notifiers { - notifications { - on_change: true - email { - recipients: "cronet-bots-observer@google.com" - } - } - builders { - bucket: "ci-m84" - name: "android-cronet-arm-dbg" - repository: "https://chromium.googlesource.com/chromium/src" - } -} -notifiers { - notifications { - on_change: true - email { - recipients: "cronet-bots-observer@google.com" - } - } - builders { - bucket: "ci-m84" - name: "android-cronet-arm-rel" - repository: "https://chromium.googlesource.com/chromium/src" - } -} -notifiers { - notifications { - on_change: true - email { - recipients: "cronet-bots-observer@google.com" - } - } - builders { - bucket: "ci-m84" - name: "android-cronet-kitkat-arm-rel" - } -} -notifiers { - notifications { - on_change: true - email { - recipients: "cronet-bots-observer@google.com" - } - } - builders { - bucket: "ci-m84" - name: "android-cronet-lollipop-arm-rel" - } -} -notifiers { - notifications { - on_occurrence: FAILURE - failed_step_regexp: "bot_update|compile|gclient runhooks|runhooks|update" - email { - recipients: "thomasanderson@chromium.org" - } - } - notifications { - on_change: true - email { - recipients: "cr-fuchsia+bot@chromium.org" - } - } - builders { - bucket: "ci-m84" - name: "fuchsia-arm64-cast" - repository: "https://chromium.googlesource.com/chromium/src" - } -} -notifiers { - notifications { - on_occurrence: FAILURE - failed_step_regexp: "bot_update|compile|gclient runhooks|runhooks|update" - email { - recipients: "thomasanderson@chromium.org" - } - } - notifications { - on_change: true - email { - recipients: "cr-fuchsia+bot@chromium.org" - } - } - builders { - bucket: "ci-m84" - name: "fuchsia-x64-cast" - repository: "https://chromium.googlesource.com/chromium/src" - } -} -notifiers { - notifications { - on_change: true - email { - recipients: "cronet-bots-observer@google.com" - } - } - builders { - bucket: "ci-m84" - name: "ios-simulator-cronet" - repository: "https://chromium.googlesource.com/chromium/src" - } -} -notifiers { - notifications { - on_occurrence: FAILURE - failed_step_regexp: "bot_update|compile|gclient runhooks|runhooks|update" - email { - recipients: "thomasanderson@chromium.org" - } - } - builders { - bucket: "ci-m84" - name: "linux-ozone-rel" - repository: "https://chromium.googlesource.com/chromium/src" - } -} -notifiers { - notifications { - on_occurrence: FAILURE - failed_step_regexp: "bot_update|compile|gclient runhooks|runhooks|update" - email { - recipients: "chrome-gpu-build-failures@google.com" - rotation_urls: "https://rota-ng.appspot.com/legacy/sheriff_gpu.json" - } - } - builders { bucket: "ci-m85" name: "Android Release (Nexus 5X)" repository: "https://chromium.googlesource.com/chromium/src"
diff --git a/infra/config/generated/luci-scheduler.cfg b/infra/config/generated/luci-scheduler.cfg index 4953ef4c..9a6ae88 100644 --- a/infra/config/generated/luci-scheduler.cfg +++ b/infra/config/generated/luci-scheduler.cfg
@@ -9094,976 +9094,6 @@ } } job { - id: "ci-m84-Android Release (Nexus 5X)" - realm: "ci-m84" - acl_sets: "ci-m84" - buildbucket { - server: "cr-buildbucket.appspot.com" - bucket: "luci.chromium.ci-m84" - builder: "Android Release (Nexus 5X)" - } -} -job { - id: "ci-m84-Android WebView M (dbg)" - realm: "ci-m84" - acls { - role: TRIGGERER - granted_to: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com" - } - acl_sets: "ci-m84" - buildbucket { - server: "cr-buildbucket.appspot.com" - bucket: "luci.chromium.ci-m84" - builder: "Android WebView M (dbg)" - } -} -job { - id: "ci-m84-Android WebView N (dbg)" - realm: "ci-m84" - acls { - role: TRIGGERER - granted_to: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com" - } - acl_sets: "ci-m84" - buildbucket { - server: "cr-buildbucket.appspot.com" - bucket: "luci.chromium.ci-m84" - builder: "Android WebView N (dbg)" - } -} -job { - id: "ci-m84-Android WebView O (dbg)" - realm: "ci-m84" - acls { - role: TRIGGERER - granted_to: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com" - } - acl_sets: "ci-m84" - buildbucket { - server: "cr-buildbucket.appspot.com" - bucket: "luci.chromium.ci-m84" - builder: "Android WebView O (dbg)" - } -} -job { - id: "ci-m84-Android WebView P (dbg)" - realm: "ci-m84" - acls { - role: TRIGGERER - granted_to: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com" - } - acl_sets: "ci-m84" - buildbucket { - server: "cr-buildbucket.appspot.com" - bucket: "luci.chromium.ci-m84" - builder: "Android WebView P (dbg)" - } -} -job { - id: "ci-m84-Android arm Builder (dbg)" - realm: "ci-m84" - acl_sets: "ci-m84" - buildbucket { - server: "cr-buildbucket.appspot.com" - bucket: "luci.chromium.ci-m84" - builder: "Android arm Builder (dbg)" - } -} -job { - id: "ci-m84-Android arm64 Builder (dbg)" - realm: "ci-m84" - acl_sets: "ci-m84" - buildbucket { - server: "cr-buildbucket.appspot.com" - bucket: "luci.chromium.ci-m84" - builder: "Android arm64 Builder (dbg)" - } -} -job { - id: "ci-m84-Android x64 Builder (dbg)" - realm: "ci-m84" - acl_sets: "ci-m84" - buildbucket { - server: "cr-buildbucket.appspot.com" - bucket: "luci.chromium.ci-m84" - builder: "Android x64 Builder (dbg)" - } -} -job { - id: "ci-m84-Android x86 Builder (dbg)" - realm: "ci-m84" - acl_sets: "ci-m84" - buildbucket { - server: "cr-buildbucket.appspot.com" - bucket: "luci.chromium.ci-m84" - builder: "Android x86 Builder (dbg)" - } -} -job { - id: "ci-m84-Cast Android (dbg)" - realm: "ci-m84" - acl_sets: "ci-m84" - buildbucket { - server: "cr-buildbucket.appspot.com" - bucket: "luci.chromium.ci-m84" - builder: "Cast Android (dbg)" - } -} -job { - id: "ci-m84-Cast Linux" - realm: "ci-m84" - acl_sets: "ci-m84" - buildbucket { - server: "cr-buildbucket.appspot.com" - bucket: "luci.chromium.ci-m84" - builder: "Cast Linux" - } -} -job { - id: "ci-m84-Dawn Linux x64 DEPS Builder" - realm: "ci-m84" - acl_sets: "ci-m84" - buildbucket { - server: "cr-buildbucket.appspot.com" - bucket: "luci.chromium.ci-m84" - builder: "Dawn Linux x64 DEPS Builder" - } -} -job { - id: "ci-m84-Dawn Linux x64 DEPS Release (Intel HD 630)" - realm: "ci-m84" - acls { - role: TRIGGERER - granted_to: "chromium-ci-gpu-builder@chops-service-accounts.iam.gserviceaccount.com" - } - acl_sets: "ci-m84" - buildbucket { - server: "cr-buildbucket.appspot.com" - bucket: "luci.chromium.ci-m84" - builder: "Dawn Linux x64 DEPS Release (Intel HD 630)" - } -} -job { - id: "ci-m84-Dawn Linux x64 DEPS Release (NVIDIA)" - realm: "ci-m84" - acls { - role: TRIGGERER - granted_to: "chromium-ci-gpu-builder@chops-service-accounts.iam.gserviceaccount.com" - } - acl_sets: "ci-m84" - buildbucket { - server: "cr-buildbucket.appspot.com" - bucket: "luci.chromium.ci-m84" - builder: "Dawn Linux x64 DEPS Release (NVIDIA)" - } -} -job { - id: "ci-m84-Dawn Mac x64 DEPS Builder" - realm: "ci-m84" - acl_sets: "ci-m84" - buildbucket { - server: "cr-buildbucket.appspot.com" - bucket: "luci.chromium.ci-m84" - builder: "Dawn Mac x64 DEPS Builder" - } -} -job { - id: "ci-m84-Dawn Mac x64 DEPS Release (AMD)" - realm: "ci-m84" - acls { - role: TRIGGERER - granted_to: "chromium-ci-gpu-builder@chops-service-accounts.iam.gserviceaccount.com" - } - acl_sets: "ci-m84" - buildbucket { - server: "cr-buildbucket.appspot.com" - bucket: "luci.chromium.ci-m84" - builder: "Dawn Mac x64 DEPS Release (AMD)" - } -} -job { - id: "ci-m84-Dawn Mac x64 DEPS Release (Intel)" - realm: "ci-m84" - acls { - role: TRIGGERER - granted_to: "chromium-ci-gpu-builder@chops-service-accounts.iam.gserviceaccount.com" - } - acl_sets: "ci-m84" - buildbucket { - server: "cr-buildbucket.appspot.com" - bucket: "luci.chromium.ci-m84" - builder: "Dawn Mac x64 DEPS Release (Intel)" - } -} -job { - id: "ci-m84-Dawn Win10 x64 DEPS Builder" - realm: "ci-m84" - acl_sets: "ci-m84" - buildbucket { - server: "cr-buildbucket.appspot.com" - bucket: "luci.chromium.ci-m84" - builder: "Dawn Win10 x64 DEPS Builder" - } -} -job { - id: "ci-m84-Dawn Win10 x64 DEPS Release (Intel HD 630)" - realm: "ci-m84" - acls { - role: TRIGGERER - granted_to: "chromium-ci-gpu-builder@chops-service-accounts.iam.gserviceaccount.com" - } - acl_sets: "ci-m84" - buildbucket { - server: "cr-buildbucket.appspot.com" - bucket: "luci.chromium.ci-m84" - builder: "Dawn Win10 x64 DEPS Release (Intel HD 630)" - } -} -job { - id: "ci-m84-Dawn Win10 x64 DEPS Release (NVIDIA)" - realm: "ci-m84" - acls { - role: TRIGGERER - granted_to: "chromium-ci-gpu-builder@chops-service-accounts.iam.gserviceaccount.com" - } - acl_sets: "ci-m84" - buildbucket { - server: "cr-buildbucket.appspot.com" - bucket: "luci.chromium.ci-m84" - builder: "Dawn Win10 x64 DEPS Release (NVIDIA)" - } -} -job { - id: "ci-m84-Dawn Win10 x86 DEPS Builder" - realm: "ci-m84" - acl_sets: "ci-m84" - buildbucket { - server: "cr-buildbucket.appspot.com" - bucket: "luci.chromium.ci-m84" - builder: "Dawn Win10 x86 DEPS Builder" - } -} -job { - id: "ci-m84-Dawn Win10 x86 DEPS Release (Intel HD 630)" - realm: "ci-m84" - acls { - role: TRIGGERER - granted_to: "chromium-ci-gpu-builder@chops-service-accounts.iam.gserviceaccount.com" - } - acl_sets: "ci-m84" - buildbucket { - server: "cr-buildbucket.appspot.com" - bucket: "luci.chromium.ci-m84" - builder: "Dawn Win10 x86 DEPS Release (Intel HD 630)" - } -} -job { - id: "ci-m84-Dawn Win10 x86 DEPS Release (NVIDIA)" - realm: "ci-m84" - acls { - role: TRIGGERER - granted_to: "chromium-ci-gpu-builder@chops-service-accounts.iam.gserviceaccount.com" - } - acl_sets: "ci-m84" - buildbucket { - server: "cr-buildbucket.appspot.com" - bucket: "luci.chromium.ci-m84" - builder: "Dawn Win10 x86 DEPS Release (NVIDIA)" - } -} -job { - id: "ci-m84-Fuchsia ARM64" - realm: "ci-m84" - acl_sets: "ci-m84" - buildbucket { - server: "cr-buildbucket.appspot.com" - bucket: "luci.chromium.ci-m84" - builder: "Fuchsia ARM64" - } -} -job { - id: "ci-m84-Fuchsia x64" - realm: "ci-m84" - acl_sets: "ci-m84" - buildbucket { - server: "cr-buildbucket.appspot.com" - bucket: "luci.chromium.ci-m84" - builder: "Fuchsia x64" - } -} -job { - id: "ci-m84-GPU Linux Builder" - realm: "ci-m84" - acl_sets: "ci-m84" - buildbucket { - server: "cr-buildbucket.appspot.com" - bucket: "luci.chromium.ci-m84" - builder: "GPU Linux Builder" - } -} -job { - id: "ci-m84-GPU Mac Builder" - realm: "ci-m84" - acl_sets: "ci-m84" - buildbucket { - server: "cr-buildbucket.appspot.com" - bucket: "luci.chromium.ci-m84" - builder: "GPU Mac Builder" - } -} -job { - id: "ci-m84-GPU Win x64 Builder" - realm: "ci-m84" - acl_sets: "ci-m84" - buildbucket { - server: "cr-buildbucket.appspot.com" - bucket: "luci.chromium.ci-m84" - builder: "GPU Win x64 Builder" - } -} -job { - id: "ci-m84-Linux ASan LSan Builder" - realm: "ci-m84" - acl_sets: "ci-m84" - buildbucket { - server: "cr-buildbucket.appspot.com" - bucket: "luci.chromium.ci-m84" - builder: "Linux ASan LSan Builder" - } -} -job { - id: "ci-m84-Linux ASan LSan Tests (1)" - realm: "ci-m84" - acls { - role: TRIGGERER - granted_to: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com" - } - acl_sets: "ci-m84" - buildbucket { - server: "cr-buildbucket.appspot.com" - bucket: "luci.chromium.ci-m84" - builder: "Linux ASan LSan Tests (1)" - } -} -job { - id: "ci-m84-Linux ASan Tests (sandboxed)" - realm: "ci-m84" - acls { - role: TRIGGERER - granted_to: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com" - } - acl_sets: "ci-m84" - buildbucket { - server: "cr-buildbucket.appspot.com" - bucket: "luci.chromium.ci-m84" - builder: "Linux ASan Tests (sandboxed)" - } -} -job { - id: "ci-m84-Linux Builder" - realm: "ci-m84" - acl_sets: "ci-m84" - buildbucket { - server: "cr-buildbucket.appspot.com" - bucket: "luci.chromium.ci-m84" - builder: "Linux Builder" - } -} -job { - id: "ci-m84-Linux Builder (dbg)" - realm: "ci-m84" - acl_sets: "ci-m84" - buildbucket { - server: "cr-buildbucket.appspot.com" - bucket: "luci.chromium.ci-m84" - builder: "Linux Builder (dbg)" - } -} -job { - id: "ci-m84-Linux Ozone Tester (Headless)" - realm: "ci-m84" - acls { - role: TRIGGERER - granted_to: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com" - } - acl_sets: "ci-m84" - buildbucket { - server: "cr-buildbucket.appspot.com" - bucket: "luci.chromium.ci-m84" - builder: "Linux Ozone Tester (Headless)" - } -} -job { - id: "ci-m84-Linux Ozone Tester (Wayland)" - realm: "ci-m84" - acls { - role: TRIGGERER - granted_to: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com" - } - acl_sets: "ci-m84" - buildbucket { - server: "cr-buildbucket.appspot.com" - bucket: "luci.chromium.ci-m84" - builder: "Linux Ozone Tester (Wayland)" - } -} -job { - id: "ci-m84-Linux Ozone Tester (X11)" - realm: "ci-m84" - acls { - role: TRIGGERER - granted_to: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com" - } - acl_sets: "ci-m84" - buildbucket { - server: "cr-buildbucket.appspot.com" - bucket: "luci.chromium.ci-m84" - builder: "Linux Ozone Tester (X11)" - } -} -job { - id: "ci-m84-Linux Release (NVIDIA)" - realm: "ci-m84" - acls { - role: TRIGGERER - granted_to: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com" - } - acl_sets: "ci-m84" - buildbucket { - server: "cr-buildbucket.appspot.com" - bucket: "luci.chromium.ci-m84" - builder: "Linux Release (NVIDIA)" - } -} -job { - id: "ci-m84-Linux TSan Builder" - realm: "ci-m84" - acl_sets: "ci-m84" - buildbucket { - server: "cr-buildbucket.appspot.com" - bucket: "luci.chromium.ci-m84" - builder: "Linux TSan Builder" - } -} -job { - id: "ci-m84-Linux TSan Tests" - realm: "ci-m84" - acls { - role: TRIGGERER - granted_to: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com" - } - acl_sets: "ci-m84" - buildbucket { - server: "cr-buildbucket.appspot.com" - bucket: "luci.chromium.ci-m84" - builder: "Linux TSan Tests" - } -} -job { - id: "ci-m84-Linux Tests" - realm: "ci-m84" - acls { - role: TRIGGERER - granted_to: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com" - } - acl_sets: "ci-m84" - buildbucket { - server: "cr-buildbucket.appspot.com" - bucket: "luci.chromium.ci-m84" - builder: "Linux Tests" - } -} -job { - id: "ci-m84-Linux Tests (dbg)(1)" - realm: "ci-m84" - acls { - role: TRIGGERER - granted_to: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com" - } - acl_sets: "ci-m84" - buildbucket { - server: "cr-buildbucket.appspot.com" - bucket: "luci.chromium.ci-m84" - builder: "Linux Tests (dbg)(1)" - } -} -job { - id: "ci-m84-Mac Builder" - realm: "ci-m84" - acl_sets: "ci-m84" - buildbucket { - server: "cr-buildbucket.appspot.com" - bucket: "luci.chromium.ci-m84" - builder: "Mac Builder" - } -} -job { - id: "ci-m84-Mac Builder (dbg)" - realm: "ci-m84" - acl_sets: "ci-m84" - buildbucket { - server: "cr-buildbucket.appspot.com" - bucket: "luci.chromium.ci-m84" - builder: "Mac Builder (dbg)" - } -} -job { - id: "ci-m84-Mac Release (Intel)" - realm: "ci-m84" - acls { - role: TRIGGERER - granted_to: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com" - } - acl_sets: "ci-m84" - buildbucket { - server: "cr-buildbucket.appspot.com" - bucket: "luci.chromium.ci-m84" - builder: "Mac Release (Intel)" - } -} -job { - id: "ci-m84-Mac Retina Release (AMD)" - realm: "ci-m84" - acls { - role: TRIGGERER - granted_to: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com" - } - acl_sets: "ci-m84" - buildbucket { - server: "cr-buildbucket.appspot.com" - bucket: "luci.chromium.ci-m84" - builder: "Mac Retina Release (AMD)" - } -} -job { - id: "ci-m84-Mac10.10 Tests" - realm: "ci-m84" - acls { - role: TRIGGERER - granted_to: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com" - } - acl_sets: "ci-m84" - buildbucket { - server: "cr-buildbucket.appspot.com" - bucket: "luci.chromium.ci-m84" - builder: "Mac10.10 Tests" - } -} -job { - id: "ci-m84-Mac10.11 Tests" - realm: "ci-m84" - acls { - role: TRIGGERER - granted_to: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com" - } - acl_sets: "ci-m84" - buildbucket { - server: "cr-buildbucket.appspot.com" - bucket: "luci.chromium.ci-m84" - builder: "Mac10.11 Tests" - } -} -job { - id: "ci-m84-Mac10.12 Tests" - realm: "ci-m84" - acls { - role: TRIGGERER - granted_to: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com" - } - acl_sets: "ci-m84" - buildbucket { - server: "cr-buildbucket.appspot.com" - bucket: "luci.chromium.ci-m84" - builder: "Mac10.12 Tests" - } -} -job { - id: "ci-m84-Mac10.13 Tests" - realm: "ci-m84" - acls { - role: TRIGGERER - granted_to: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com" - } - acl_sets: "ci-m84" - buildbucket { - server: "cr-buildbucket.appspot.com" - bucket: "luci.chromium.ci-m84" - builder: "Mac10.13 Tests" - } -} -job { - id: "ci-m84-Mac10.13 Tests (dbg)" - realm: "ci-m84" - acls { - role: TRIGGERER - granted_to: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com" - } - acl_sets: "ci-m84" - buildbucket { - server: "cr-buildbucket.appspot.com" - bucket: "luci.chromium.ci-m84" - builder: "Mac10.13 Tests (dbg)" - } -} -job { - id: "ci-m84-Mac10.14 Tests" - realm: "ci-m84" - acls { - role: TRIGGERER - granted_to: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com" - } - acl_sets: "ci-m84" - buildbucket { - server: "cr-buildbucket.appspot.com" - bucket: "luci.chromium.ci-m84" - builder: "Mac10.14 Tests" - } -} -job { - id: "ci-m84-Mac10.15 Tests" - realm: "ci-m84" - acls { - role: TRIGGERER - granted_to: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com" - } - acl_sets: "ci-m84" - buildbucket { - server: "cr-buildbucket.appspot.com" - bucket: "luci.chromium.ci-m84" - builder: "Mac10.15 Tests" - } -} -job { - id: "ci-m84-Marshmallow 64 bit Tester" - realm: "ci-m84" - acls { - role: TRIGGERER - granted_to: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com" - } - acl_sets: "ci-m84" - buildbucket { - server: "cr-buildbucket.appspot.com" - bucket: "luci.chromium.ci-m84" - builder: "Marshmallow 64 bit Tester" - } -} -job { - id: "ci-m84-Nougat Phone Tester" - realm: "ci-m84" - acls { - role: TRIGGERER - granted_to: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com" - } - acl_sets: "ci-m84" - buildbucket { - server: "cr-buildbucket.appspot.com" - bucket: "luci.chromium.ci-m84" - builder: "Nougat Phone Tester" - } -} -job { - id: "ci-m84-Oreo Phone Tester" - realm: "ci-m84" - acls { - role: TRIGGERER - granted_to: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com" - } - acl_sets: "ci-m84" - buildbucket { - server: "cr-buildbucket.appspot.com" - bucket: "luci.chromium.ci-m84" - builder: "Oreo Phone Tester" - } -} -job { - id: "ci-m84-VR Linux" - realm: "ci-m84" - acl_sets: "ci-m84" - buildbucket { - server: "cr-buildbucket.appspot.com" - bucket: "luci.chromium.ci-m84" - builder: "VR Linux" - } -} -job { - id: "ci-m84-Win 7 Tests x64 (1)" - realm: "ci-m84" - acls { - role: TRIGGERER - granted_to: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com" - } - acl_sets: "ci-m84" - buildbucket { - server: "cr-buildbucket.appspot.com" - bucket: "luci.chromium.ci-m84" - builder: "Win 7 Tests x64 (1)" - } -} -job { - id: "ci-m84-Win Builder (dbg)" - realm: "ci-m84" - acl_sets: "ci-m84" - buildbucket { - server: "cr-buildbucket.appspot.com" - bucket: "luci.chromium.ci-m84" - builder: "Win Builder (dbg)" - } -} -job { - id: "ci-m84-Win x64 Builder" - realm: "ci-m84" - acl_sets: "ci-m84" - buildbucket { - server: "cr-buildbucket.appspot.com" - bucket: "luci.chromium.ci-m84" - builder: "Win x64 Builder" - } -} -job { - id: "ci-m84-Win10 Tests x64" - realm: "ci-m84" - acls { - role: TRIGGERER - granted_to: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com" - } - acl_sets: "ci-m84" - buildbucket { - server: "cr-buildbucket.appspot.com" - bucket: "luci.chromium.ci-m84" - builder: "Win10 Tests x64" - } -} -job { - id: "ci-m84-Win10 x64 Release (NVIDIA)" - realm: "ci-m84" - acls { - role: TRIGGERER - granted_to: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com" - } - acl_sets: "ci-m84" - buildbucket { - server: "cr-buildbucket.appspot.com" - bucket: "luci.chromium.ci-m84" - builder: "Win10 x64 Release (NVIDIA)" - } -} -job { - id: "ci-m84-Win7 Tests (dbg)(1)" - realm: "ci-m84" - acls { - role: TRIGGERER - granted_to: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com" - } - acl_sets: "ci-m84" - buildbucket { - server: "cr-buildbucket.appspot.com" - bucket: "luci.chromium.ci-m84" - builder: "Win7 Tests (dbg)(1)" - } -} -job { - id: "ci-m84-android-cronet-arm-dbg" - realm: "ci-m84" - acl_sets: "ci-m84" - buildbucket { - server: "cr-buildbucket.appspot.com" - bucket: "luci.chromium.ci-m84" - builder: "android-cronet-arm-dbg" - } -} -job { - id: "ci-m84-android-cronet-arm-rel" - realm: "ci-m84" - acl_sets: "ci-m84" - buildbucket { - server: "cr-buildbucket.appspot.com" - bucket: "luci.chromium.ci-m84" - builder: "android-cronet-arm-rel" - } -} -job { - id: "ci-m84-android-cronet-kitkat-arm-rel" - realm: "ci-m84" - acls { - role: TRIGGERER - granted_to: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com" - } - acl_sets: "ci-m84" - buildbucket { - server: "cr-buildbucket.appspot.com" - bucket: "luci.chromium.ci-m84" - builder: "android-cronet-kitkat-arm-rel" - } -} -job { - id: "ci-m84-android-cronet-lollipop-arm-rel" - realm: "ci-m84" - acls { - role: TRIGGERER - granted_to: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com" - } - acl_sets: "ci-m84" - buildbucket { - server: "cr-buildbucket.appspot.com" - bucket: "luci.chromium.ci-m84" - builder: "android-cronet-lollipop-arm-rel" - } -} -job { - id: "ci-m84-android-lollipop-arm-rel" - realm: "ci-m84" - acl_sets: "ci-m84" - buildbucket { - server: "cr-buildbucket.appspot.com" - bucket: "luci.chromium.ci-m84" - builder: "android-lollipop-arm-rel" - } -} -job { - id: "ci-m84-android-marshmallow-arm64-rel" - realm: "ci-m84" - acl_sets: "ci-m84" - buildbucket { - server: "cr-buildbucket.appspot.com" - bucket: "luci.chromium.ci-m84" - builder: "android-marshmallow-arm64-rel" - } -} -job { - id: "ci-m84-android-pie-arm64-dbg" - realm: "ci-m84" - acls { - role: TRIGGERER - granted_to: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com" - } - acl_sets: "ci-m84" - buildbucket { - server: "cr-buildbucket.appspot.com" - bucket: "luci.chromium.ci-m84" - builder: "android-pie-arm64-dbg" - } -} -job { - id: "ci-m84-android-pie-arm64-rel" - realm: "ci-m84" - acl_sets: "ci-m84" - buildbucket { - server: "cr-buildbucket.appspot.com" - bucket: "luci.chromium.ci-m84" - builder: "android-pie-arm64-rel" - } -} -job { - id: "ci-m84-chromeos-amd64-generic-dbg" - realm: "ci-m84" - acl_sets: "ci-m84" - buildbucket { - server: "cr-buildbucket.appspot.com" - bucket: "luci.chromium.ci-m84" - builder: "chromeos-amd64-generic-dbg" - } -} -job { - id: "ci-m84-chromeos-amd64-generic-rel" - realm: "ci-m84" - acl_sets: "ci-m84" - buildbucket { - server: "cr-buildbucket.appspot.com" - bucket: "luci.chromium.ci-m84" - builder: "chromeos-amd64-generic-rel" - } -} -job { - id: "ci-m84-chromeos-arm-generic-rel" - realm: "ci-m84" - acl_sets: "ci-m84" - buildbucket { - server: "cr-buildbucket.appspot.com" - bucket: "luci.chromium.ci-m84" - builder: "chromeos-arm-generic-rel" - } -} -job { - id: "ci-m84-fuchsia-arm64-cast" - realm: "ci-m84" - acl_sets: "ci-m84" - buildbucket { - server: "cr-buildbucket.appspot.com" - bucket: "luci.chromium.ci-m84" - builder: "fuchsia-arm64-cast" - } -} -job { - id: "ci-m84-fuchsia-x64-cast" - realm: "ci-m84" - acl_sets: "ci-m84" - buildbucket { - server: "cr-buildbucket.appspot.com" - bucket: "luci.chromium.ci-m84" - builder: "fuchsia-x64-cast" - } -} -job { - id: "ci-m84-ios-simulator" - realm: "ci-m84" - acl_sets: "ci-m84" - buildbucket { - server: "cr-buildbucket.appspot.com" - bucket: "luci.chromium.ci-m84" - builder: "ios-simulator" - } -} -job { - id: "ci-m84-ios-simulator-cronet" - realm: "ci-m84" - acl_sets: "ci-m84" - buildbucket { - server: "cr-buildbucket.appspot.com" - bucket: "luci.chromium.ci-m84" - builder: "ios-simulator-cronet" - } -} -job { - id: "ci-m84-ios-simulator-full-configs" - realm: "ci-m84" - acl_sets: "ci-m84" - buildbucket { - server: "cr-buildbucket.appspot.com" - bucket: "luci.chromium.ci-m84" - builder: "ios-simulator-full-configs" - } -} -job { - id: "ci-m84-linux-chromeos-dbg" - realm: "ci-m84" - acl_sets: "ci-m84" - buildbucket { - server: "cr-buildbucket.appspot.com" - bucket: "luci.chromium.ci-m84" - builder: "linux-chromeos-dbg" - } -} -job { - id: "ci-m84-linux-chromeos-rel" - realm: "ci-m84" - acl_sets: "ci-m84" - buildbucket { - server: "cr-buildbucket.appspot.com" - bucket: "luci.chromium.ci-m84" - builder: "linux-chromeos-rel" - } -} -job { - id: "ci-m84-linux-ozone-rel" - realm: "ci-m84" - acl_sets: "ci-m84" - buildbucket { - server: "cr-buildbucket.appspot.com" - bucket: "luci.chromium.ci-m84" - builder: "linux-ozone-rel" - } -} -job { id: "ci-m85-Android Release (Nexus 5X)" realm: "ci-m85" acl_sets: "ci-m85" @@ -12772,16 +11802,6 @@ } } job { - id: "ci-m84-mac-osxbeta-rel" - schedule: "triggered" - acls { - role: TRIGGERER - granted_to: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com" - } - acl_sets: "ci-m84" - noop {} -} -job { id: "ci-m85-mac-osxbeta-rel" schedule: "triggered" acls { @@ -12792,16 +11812,6 @@ noop {} } job { - id: "ci-m84-Win10 Tests x64 1803" - schedule: "triggered" - acls { - role: TRIGGERER - granted_to: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com" - } - acl_sets: "ci-m84" - noop {} -} -job { id: "ci-m85-Win10 Tests x64 1803" schedule: "triggered" acls { @@ -12812,16 +11822,6 @@ noop {} } job { - id: "ci-m84-Win10 Tests x64 1909" - schedule: "triggered" - acls { - role: TRIGGERER - granted_to: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com" - } - acl_sets: "ci-m84" - noop {} -} -job { id: "ci-m85-Win10 Tests x64 1909" schedule: "triggered" acls { @@ -12832,16 +11832,6 @@ noop {} } job { - id: "ci-m84-Android WebView L (dbg)" - schedule: "triggered" - acls { - role: TRIGGERER - granted_to: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com" - } - acl_sets: "ci-m84" - noop {} -} -job { id: "ci-m85-Android WebView L (dbg)" schedule: "triggered" acls { @@ -12852,16 +11842,6 @@ noop {} } job { - id: "ci-m84-Lollipop Phone Tester" - schedule: "triggered" - acls { - role: TRIGGERER - granted_to: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com" - } - acl_sets: "ci-m84" - noop {} -} -job { id: "ci-m85-Lollipop Phone Tester" schedule: "triggered" acls { @@ -12872,16 +11852,6 @@ noop {} } job { - id: "ci-m84-Lollipop Tablet Tester" - schedule: "triggered" - acls { - role: TRIGGERER - granted_to: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com" - } - acl_sets: "ci-m84" - noop {} -} -job { id: "ci-m85-Lollipop Tablet Tester" schedule: "triggered" acls { @@ -12892,16 +11862,6 @@ noop {} } job { - id: "ci-m84-Marshmallow Tablet Tester" - schedule: "triggered" - acls { - role: TRIGGERER - granted_to: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com" - } - acl_sets: "ci-m84" - noop {} -} -job { id: "ci-m85-Marshmallow Tablet Tester" schedule: "triggered" acls { @@ -12912,56 +11872,6 @@ noop {} } trigger { - id: "m84-gitiles-trigger" - realm: "ci-m84" - acl_sets: "ci-m84" - triggers: "ci-m84-Android Release (Nexus 5X)" - triggers: "ci-m84-Android arm Builder (dbg)" - triggers: "ci-m84-Android arm64 Builder (dbg)" - triggers: "ci-m84-Android x64 Builder (dbg)" - triggers: "ci-m84-Android x86 Builder (dbg)" - triggers: "ci-m84-Cast Android (dbg)" - triggers: "ci-m84-Cast Linux" - triggers: "ci-m84-Dawn Linux x64 DEPS Builder" - triggers: "ci-m84-Dawn Mac x64 DEPS Builder" - triggers: "ci-m84-Dawn Win10 x64 DEPS Builder" - triggers: "ci-m84-Dawn Win10 x86 DEPS Builder" - triggers: "ci-m84-Fuchsia ARM64" - triggers: "ci-m84-Fuchsia x64" - triggers: "ci-m84-GPU Linux Builder" - triggers: "ci-m84-GPU Mac Builder" - triggers: "ci-m84-GPU Win x64 Builder" - triggers: "ci-m84-Linux ASan LSan Builder" - triggers: "ci-m84-Linux Builder" - triggers: "ci-m84-Linux Builder (dbg)" - triggers: "ci-m84-Linux TSan Builder" - triggers: "ci-m84-Mac Builder" - triggers: "ci-m84-Mac Builder (dbg)" - triggers: "ci-m84-VR Linux" - triggers: "ci-m84-Win Builder (dbg)" - triggers: "ci-m84-Win x64 Builder" - triggers: "ci-m84-android-cronet-arm-dbg" - triggers: "ci-m84-android-cronet-arm-rel" - triggers: "ci-m84-android-lollipop-arm-rel" - triggers: "ci-m84-android-marshmallow-arm64-rel" - triggers: "ci-m84-android-pie-arm64-rel" - triggers: "ci-m84-chromeos-amd64-generic-dbg" - triggers: "ci-m84-chromeos-amd64-generic-rel" - triggers: "ci-m84-chromeos-arm-generic-rel" - triggers: "ci-m84-fuchsia-arm64-cast" - triggers: "ci-m84-fuchsia-x64-cast" - triggers: "ci-m84-ios-simulator" - triggers: "ci-m84-ios-simulator-cronet" - triggers: "ci-m84-ios-simulator-full-configs" - triggers: "ci-m84-linux-chromeos-dbg" - triggers: "ci-m84-linux-chromeos-rel" - triggers: "ci-m84-linux-ozone-rel" - gitiles { - repo: "https://chromium.googlesource.com/chromium/src" - refs: "regexp:refs/branch-heads/4147" - } -} -trigger { id: "m85-gitiles-trigger" realm: "ci-m85" acl_sets: "ci-m85" @@ -13418,16 +12328,6 @@ } } acl_sets { - name: "ci-m84" - acls { - role: OWNER - granted_to: "group:project-chromium-admins" - } - acls { - granted_to: "group:all" - } -} -acl_sets { name: "ci-m85" acls { role: OWNER
diff --git a/infra/config/generated/realms.cfg b/infra/config/generated/realms.cfg index d3c0a94..ea9ba5e 100644 --- a/infra/config/generated/realms.cfg +++ b/infra/config/generated/realms.cfg
@@ -50,26 +50,6 @@ } } realms { - name: "ci-m84" - bindings { - role: "role/buildbucket.builderServiceAccount" - principals: "user:chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com" - principals: "user:chromium-ci-gpu-builder@chops-service-accounts.iam.gserviceaccount.com" - } - bindings { - role: "role/buildbucket.owner" - principals: "group:google/luci-task-force@google.com" - } - bindings { - role: "role/buildbucket.reader" - principals: "group:all" - } - bindings { - role: "role/buildbucket.triggerer" - principals: "group:project-chromium-ci-schedulers" - } -} -realms { name: "ci-m85" bindings { role: "role/buildbucket.builderServiceAccount" @@ -184,30 +164,6 @@ } } realms { - name: "try-m84" - bindings { - role: "role/buildbucket.builderServiceAccount" - principals: "user:chromium-try-builder@chops-service-accounts.iam.gserviceaccount.com" - principals: "user:chromium-try-gpu-builder@chops-service-accounts.iam.gserviceaccount.com" - } - bindings { - role: "role/buildbucket.owner" - principals: "group:service-account-chromium-tryserver" - } - bindings { - role: "role/buildbucket.reader" - principals: "group:all" - } - bindings { - role: "role/buildbucket.triggerer" - principals: "group:project-chromium-tryjob-access" - principals: "group:service-account-chromeperf" - principals: "group:service-account-cq" - principals: "user:findit-for-me@appspot.gserviceaccount.com" - principals: "user:tricium-prod@appspot.gserviceaccount.com" - } -} -realms { name: "try-m85" bindings { role: "role/buildbucket.builderServiceAccount"
diff --git a/infra/config/generators/scheduler-noop-jobs.star b/infra/config/generators/scheduler-noop-jobs.star index 0c8257f8..25da4e0 100644 --- a/infra/config/generators/scheduler-noop-jobs.star +++ b/infra/config/generators/scheduler-noop-jobs.star
@@ -25,7 +25,7 @@ # milestone project will use the same bucket names, so we create a no-op job for # the 'ci' bucket. _BRANCH_NOOP_CONFIG = struct( - buckets = ["ci-m84", "ci-m85"], + buckets = ["ci-m85"], fmt = "{bucket}-{builder}", ) if settings.is_master else struct( buckets = ["ci"],
diff --git a/infra/config/lib/builders.star b/infra/config/lib/builders.star index fcd3c6e..f1281d7 100644 --- a/infra/config/lib/builders.star +++ b/infra/config/lib/builders.star
@@ -134,8 +134,8 @@ x11e608c = xcode_enum("xcode_ios_11e608c", "xcode_ios_11e608c.app"), x11e608cwk = xcode_enum("xcode_ios_11e608cwk", "xcode_ios_11e608cwk.app"), x11e503a_xct12b1 = xcode_enum("xcode_ios_11e503a_xct12b1", "xcode_ios_11e503a_xct12b1.app"), - # xc12 beta 5 - x12a8189h = xcode_enum("xcode_ios_12a8189h", "xcode_ios_12a8189h.app"), + # xc12 beta 6 + x12a8189n = xcode_enum("xcode_ios_12a8189n", "xcode_ios_12a8189n.app"), ) ################################################################################
diff --git a/infra/config/lib/ci.star b/infra/config/lib/ci.star index 765c406..373823da 100644 --- a/infra/config/lib/ci.star +++ b/infra/config/lib/ci.star
@@ -679,7 +679,7 @@ os = builders.os.MAC_10_15, **kwargs): if not caches: - caches = [builders.xcode_cache.x12a8189h] + caches = [builders.xcode_cache.x12a8189n] return fyi_builder( name = name, @@ -842,10 +842,10 @@ properties = None, **kwargs): if not caches: - caches = [builders.xcode_cache.x12a8189h] + caches = [builders.xcode_cache.x12a8189n] if not properties: properties = { - "xcode_build_version": "12a8189h", + "xcode_build_version": "12a8189n", } return mac_builder(
diff --git a/infra/config/lib/try.star b/infra/config/lib/try.star index b023a26..04bab76 100644 --- a/infra/config/lib/try.star +++ b/infra/config/lib/try.star
@@ -401,10 +401,10 @@ properties = None, **kwargs): if not caches: - caches = [builders.xcode_cache.x12a8189h] + caches = [builders.xcode_cache.x12a8189n] if not properties: properties = { - "xcode_build_version": "12a8189h", + "xcode_build_version": "12a8189n", } return try_builder( name = name,
diff --git a/infra/config/project.star b/infra/config/project.star index cbb41471..8ad796c 100644 --- a/infra/config/project.star +++ b/infra/config/project.star
@@ -49,8 +49,6 @@ # https://chromiumdash.appspot.com/branches # The 2 highest milestones will be the ones with active branches ACTIVE_BRANCH_NUMBERS = [ - 4103, - 4147, 4183, 4240, ]
diff --git a/infra/config/subprojects/chromium/ci.star b/infra/config/subprojects/chromium/ci.star index c75e65d..57a02d1 100644 --- a/infra/config/subprojects/chromium/ci.star +++ b/infra/config/subprojects/chromium/ci.star
@@ -13,9 +13,6 @@ ci.set_defaults( settings, add_to_console_view = True, - bucketed_triggers = settings.is_master, - main_console_view = None if settings.is_master else settings.main_console_name, - cq_mirrors_console_view = settings.cq_mirrors_console_name, ) ci.declare_bucket(settings, branch_selector = branches.ALL_RELEASES) @@ -287,6 +284,8 @@ category = "tester|webview", short_name = "M", ), + cq_mirrors_console_view = settings.cq_mirrors_console_name, + main_console_view = main_console_if_on_branch(), triggered_by = [builder_name("Android arm64 Builder (dbg)")], ) @@ -297,6 +296,8 @@ category = "tester|webview", short_name = "N", ), + cq_mirrors_console_view = settings.cq_mirrors_console_name, + main_console_view = main_console_if_on_branch(), triggered_by = [builder_name("Android arm64 Builder (dbg)")], ) @@ -307,6 +308,8 @@ category = "tester|webview", short_name = "O", ), + cq_mirrors_console_view = settings.cq_mirrors_console_name, + main_console_view = main_console_if_on_branch(), triggered_by = [builder_name("Android arm64 Builder (dbg)")], ) @@ -317,6 +320,8 @@ category = "tester|webview", short_name = "P", ), + cq_mirrors_console_view = settings.cq_mirrors_console_name, + main_console_view = main_console_if_on_branch(), triggered_by = [builder_name("Android arm64 Builder (dbg)")], ) @@ -327,7 +332,9 @@ category = "builder|arm", short_name = "32", ), + cq_mirrors_console_view = settings.cq_mirrors_console_name, execution_timeout = 4 * time.hour, + main_console_view = main_console_if_on_branch(), tree_closing = True, ) @@ -338,8 +345,10 @@ category = "builder|arm", short_name = "64", ), + cq_mirrors_console_view = settings.cq_mirrors_console_name, goma_jobs = goma.jobs.MANY_JOBS_FOR_CI, execution_timeout = 5 * time.hour, + main_console_view = main_console_if_on_branch(), tree_closing = True, ) @@ -350,7 +359,9 @@ category = "builder|x86", short_name = "64", ), + cq_mirrors_console_view = settings.cq_mirrors_console_name, execution_timeout = 5 * time.hour, + main_console_view = main_console_if_on_branch(), ) ci.android_builder( @@ -360,7 +371,9 @@ category = "builder|x86", short_name = "32", ), + cq_mirrors_console_view = settings.cq_mirrors_console_name, execution_timeout = 4 * time.hour, + main_console_view = main_console_if_on_branch(), ) ci.android_builder( @@ -370,6 +383,8 @@ category = "on_cq", short_name = "cst", ), + cq_mirrors_console_view = settings.cq_mirrors_console_name, + main_console_view = main_console_if_on_branch(), tree_closing = True, ) @@ -380,6 +395,8 @@ category = "tester|phone", short_name = "M", ), + cq_mirrors_console_view = settings.cq_mirrors_console_name, + main_console_view = main_console_if_on_branch(), triggered_by = [builder_name("Android arm64 Builder (dbg)")], ) @@ -390,6 +407,8 @@ category = "tester|phone", short_name = "N", ), + cq_mirrors_console_view = settings.cq_mirrors_console_name, + main_console_view = main_console_if_on_branch(), triggered_by = [builder_name("Android arm64 Builder (dbg)")], ) @@ -400,6 +419,8 @@ category = "tester|phone", short_name = "O", ), + cq_mirrors_console_view = settings.cq_mirrors_console_name, + main_console_view = main_console_if_on_branch(), triggered_by = [builder_name("Android arm64 Builder (dbg)")], ) @@ -410,6 +431,8 @@ category = "cronet|arm", short_name = "dbg", ), + cq_mirrors_console_view = settings.cq_mirrors_console_name, + main_console_view = main_console_if_on_branch(), notifies = ["cronet"], ) @@ -420,6 +443,8 @@ category = "cronet|arm", short_name = "rel", ), + cq_mirrors_console_view = settings.cq_mirrors_console_name, + main_console_view = main_console_if_on_branch(), notifies = ["cronet"], ) @@ -430,6 +455,8 @@ category = "cronet|test", short_name = "k", ), + cq_mirrors_console_view = settings.cq_mirrors_console_name, + main_console_view = main_console_if_on_branch(), notifies = ["cronet"], triggered_by = [builder_name("android-cronet-arm-rel")], ) @@ -441,6 +468,8 @@ category = "cronet|test", short_name = "l", ), + cq_mirrors_console_view = settings.cq_mirrors_console_name, + main_console_view = main_console_if_on_branch(), notifies = ["cronet"], triggered_by = [builder_name("android-cronet-arm-rel")], ) @@ -452,6 +481,8 @@ category = "on_cq", short_name = "L", ), + cq_mirrors_console_view = settings.cq_mirrors_console_name, + main_console_view = main_console_if_on_branch(), tree_closing = True, ) @@ -462,6 +493,8 @@ category = "on_cq", short_name = "M", ), + cq_mirrors_console_view = settings.cq_mirrors_console_name, + main_console_view = main_console_if_on_branch(), tree_closing = True, ) @@ -472,6 +505,8 @@ category = "builder_tester|x86", short_name = "M", ), + cq_mirrors_console_view = settings.cq_mirrors_console_name, + main_console_view = main_console_if_on_branch(), ) ci.android_builder( @@ -481,6 +516,8 @@ category = "builder_tester|arm64", short_name = "N", ), + cq_mirrors_console_view = settings.cq_mirrors_console_name, + main_console_view = main_console_if_on_branch(), ) ci.android_builder( @@ -490,6 +527,8 @@ category = "tester|phone", short_name = "P", ), + cq_mirrors_console_view = settings.cq_mirrors_console_name, + main_console_view = main_console_if_on_branch(), triggered_by = [builder_name("Android arm64 Builder (dbg)")], ) @@ -500,6 +539,8 @@ category = "on_cq", short_name = "P", ), + cq_mirrors_console_view = settings.cq_mirrors_console_name, + main_console_view = main_console_if_on_branch(), tree_closing = True, ) @@ -545,6 +586,7 @@ # TODO: Change this back down to something reasonable once these builders # have populated their cached by getting through the compile step execution_timeout = 10 * time.hour, + main_console_view = main_console_if_on_branch(), tree_closing = False, ) @@ -583,6 +625,7 @@ category = "simple|debug|x64", short_name = "dbg", ), + cq_mirrors_console_view = settings.cq_mirrors_console_name, main_console_view = settings.main_console_name, ) @@ -593,6 +636,7 @@ category = "simple|release|x64", short_name = "rel", ), + cq_mirrors_console_view = settings.cq_mirrors_console_name, main_console_view = settings.main_console_name, ) @@ -603,6 +647,7 @@ category = "simple|release", short_name = "arm", ), + cq_mirrors_console_view = settings.cq_mirrors_console_name, main_console_view = settings.main_console_name, ) @@ -613,6 +658,7 @@ category = "default", short_name = "dbg", ), + cq_mirrors_console_view = settings.cq_mirrors_console_name, main_console_view = settings.main_console_name, ) @@ -623,6 +669,7 @@ category = "default", short_name = "rel", ), + cq_mirrors_console_view = settings.cq_mirrors_console_name, main_console_view = settings.main_console_name, execution_timeout = 4 * time.hour, ) @@ -634,6 +681,7 @@ category = "default", short_name = "lcr", ), + cq_mirrors_console_view = settings.cq_mirrors_console_name, main_console_view = settings.main_console_name, # TODO(crbug.com/1104291): Enable tree closing. tree_closing = False, @@ -647,6 +695,7 @@ short_name = "lcr", ), main_console_view = settings.main_console_name, + cq_mirrors_console_view = settings.cq_mirrors_console_name, triggered_by = ["linux-lacros-builder-rel"], # TODO(crbug.com/1104291): Enable tree closing. tree_closing = False, @@ -659,6 +708,7 @@ category = "DEPS|Linux|Builder", short_name = "x64", ), + cq_mirrors_console_view = settings.cq_mirrors_console_name, main_console_view = main_console_if_on_branch(), ) @@ -670,6 +720,7 @@ short_name = "x64", ), cores = 2, + cq_mirrors_console_view = settings.cq_mirrors_console_name, main_console_view = main_console_if_on_branch(), os = os.LINUX_DEFAULT, triggered_by = [builder_name("Dawn Linux x64 DEPS Builder")], @@ -683,6 +734,7 @@ short_name = "x64", ), cores = 2, + cq_mirrors_console_view = settings.cq_mirrors_console_name, main_console_view = main_console_if_on_branch(), os = os.LINUX_DEFAULT, triggered_by = [builder_name("Dawn Linux x64 DEPS Builder")], @@ -697,6 +749,7 @@ short_name = "x64", ), cores = None, + cq_mirrors_console_view = settings.cq_mirrors_console_name, main_console_view = main_console_if_on_branch(), os = os.MAC_ANY, ) @@ -711,6 +764,7 @@ short_name = "x64", ), cores = 2, + cq_mirrors_console_view = settings.cq_mirrors_console_name, main_console_view = main_console_if_on_branch(), os = os.LINUX_DEFAULT, triggered_by = [builder_name("Dawn Mac x64 DEPS Builder")], @@ -724,6 +778,7 @@ short_name = "x64", ), cores = 2, + cq_mirrors_console_view = settings.cq_mirrors_console_name, main_console_view = main_console_if_on_branch(), os = os.LINUX_DEFAULT, triggered_by = [builder_name("Dawn Mac x64 DEPS Builder")], @@ -736,6 +791,7 @@ category = "DEPS|Windows|Builder", short_name = "x64", ), + cq_mirrors_console_view = settings.cq_mirrors_console_name, main_console_view = main_console_if_on_branch(), os = os.WINDOWS_ANY, ) @@ -748,6 +804,7 @@ short_name = "x64", ), cores = 2, + cq_mirrors_console_view = settings.cq_mirrors_console_name, main_console_view = main_console_if_on_branch(), os = os.LINUX_DEFAULT, triggered_by = [builder_name("Dawn Win10 x64 DEPS Builder")], @@ -761,6 +818,7 @@ short_name = "x64", ), cores = 2, + cq_mirrors_console_view = settings.cq_mirrors_console_name, main_console_view = main_console_if_on_branch(), os = os.LINUX_DEFAULT, triggered_by = [builder_name("Dawn Win10 x64 DEPS Builder")], @@ -773,6 +831,7 @@ category = "DEPS|Windows|Builder", short_name = "x86", ), + cq_mirrors_console_view = settings.cq_mirrors_console_name, main_console_view = main_console_if_on_branch(), os = os.WINDOWS_ANY, ) @@ -785,6 +844,7 @@ short_name = "x86", ), cores = 2, + cq_mirrors_console_view = settings.cq_mirrors_console_name, main_console_view = main_console_if_on_branch(), os = os.LINUX_DEFAULT, triggered_by = [builder_name("Dawn Win10 x86 DEPS Builder")], @@ -798,6 +858,7 @@ short_name = "x86", ), cores = 2, + cq_mirrors_console_view = settings.cq_mirrors_console_name, main_console_view = main_console_if_on_branch(), os = os.LINUX_DEFAULT, triggered_by = [builder_name("Dawn Win10 x86 DEPS Builder")], @@ -809,6 +870,7 @@ console_view_entry = ci.console_view_entry( category = "linux", ), + cq_mirrors_console_view = settings.cq_mirrors_console_name, main_console_view = main_console_if_on_branch(), ) @@ -819,6 +881,7 @@ console_view_entry = ci.console_view_entry( category = "cronet", ), + cq_mirrors_console_view = settings.cq_mirrors_console_name, executable = "recipe:chromium", main_console_view = main_console_if_on_branch(), notifies = ["cronet"], @@ -833,6 +896,8 @@ console_view_entry = ci.console_view_entry( category = "Android", ), + cq_mirrors_console_view = settings.cq_mirrors_console_name, + main_console_view = main_console_if_on_branch(), ) ci.gpu_builder( @@ -844,6 +909,8 @@ console_view_entry = ci.console_view_entry( category = "Linux", ), + cq_mirrors_console_view = settings.cq_mirrors_console_name, + main_console_view = main_console_if_on_branch(), ) ci.gpu_builder( @@ -853,6 +920,8 @@ category = "Mac", ), cores = None, + cq_mirrors_console_view = settings.cq_mirrors_console_name, + main_console_view = main_console_if_on_branch(), os = os.MAC_ANY, ) @@ -863,6 +932,8 @@ console_view_entry = ci.console_view_entry( category = "Windows", ), + cq_mirrors_console_view = settings.cq_mirrors_console_name, + main_console_view = main_console_if_on_branch(), os = os.WINDOWS_ANY, ) @@ -872,9 +943,11 @@ # TODO(https://crbug.com/1109276) Once support for mastername is removed, do # not explicitly set builder_group = "chromium.gpu", + cq_mirrors_console_view = settings.cq_mirrors_console_name, console_view_entry = ci.console_view_entry( category = "Linux", ), + main_console_view = main_console_if_on_branch(), triggered_by = [builder_name("GPU Linux Builder")], ) @@ -884,6 +957,8 @@ console_view_entry = ci.console_view_entry( category = "Mac", ), + cq_mirrors_console_view = settings.cq_mirrors_console_name, + main_console_view = main_console_if_on_branch(), triggered_by = [builder_name("GPU Mac Builder")], ) @@ -893,6 +968,8 @@ console_view_entry = ci.console_view_entry( category = "Mac", ), + cq_mirrors_console_view = settings.cq_mirrors_console_name, + main_console_view = main_console_if_on_branch(), triggered_by = [builder_name("GPU Mac Builder")], ) @@ -902,6 +979,8 @@ console_view_entry = ci.console_view_entry( category = "Windows", ), + cq_mirrors_console_view = settings.cq_mirrors_console_name, + main_console_view = main_console_if_on_branch(), triggered_by = [builder_name("GPU Win x64 Builder")], ) @@ -912,6 +991,7 @@ category = "cast", short_name = "vid", ), + cq_mirrors_console_view = settings.cq_mirrors_console_name, goma_jobs = goma.jobs.J50, main_console_view = settings.main_console_name, ) @@ -923,6 +1003,7 @@ category = "fuchsia|a64", short_name = "rel", ), + cq_mirrors_console_view = settings.cq_mirrors_console_name, main_console_view = settings.main_console_name, extra_notifies = ["cr-fuchsia"], ) @@ -934,6 +1015,7 @@ category = "fuchsia|x64", short_name = "rel", ), + cq_mirrors_console_view = settings.cq_mirrors_console_name, main_console_view = settings.main_console_name, extra_notifies = ["cr-fuchsia"], ) @@ -948,6 +1030,7 @@ category = "release", short_name = "bld", ), + cq_mirrors_console_view = settings.cq_mirrors_console_name, main_console_view = settings.main_console_name, ) @@ -958,6 +1041,7 @@ category = "debug|builder", short_name = "64", ), + cq_mirrors_console_view = settings.cq_mirrors_console_name, main_console_view = settings.main_console_name, ) @@ -971,6 +1055,7 @@ category = "release", short_name = "tst", ), + cq_mirrors_console_view = settings.cq_mirrors_console_name, goma_backend = None, main_console_view = settings.main_console_name, triggered_by = [builder_name("Linux Builder")], @@ -983,6 +1068,7 @@ category = "debug|tester", short_name = "64", ), + cq_mirrors_console_view = settings.cq_mirrors_console_name, main_console_view = settings.main_console_name, triggered_by = [builder_name("Linux Builder (dbg)")], ) @@ -994,6 +1080,7 @@ category = "fuchsia|cast", short_name = "a64", ), + cq_mirrors_console_view = settings.cq_mirrors_console_name, main_console_view = settings.main_console_name, # Set tree_closing to false to disable the defaualt tree closer, which # filters by step name, and instead enable tree closing for any step @@ -1009,6 +1096,7 @@ category = "fuchsia|cast", short_name = "x64", ), + cq_mirrors_console_view = settings.cq_mirrors_console_name, main_console_view = settings.main_console_name, # Set tree_closing to false to disable the defaualt tree closer, which # filters by step name, and instead enable tree closing for any step @@ -1024,6 +1112,7 @@ category = "release", short_name = "ozo", ), + cq_mirrors_console_view = settings.cq_mirrors_console_name, main_console_view = settings.main_console_name, # Set tree_closing to false to disable the defaualt tree closer, which # filters by step name, and instead enable tree closing for any step @@ -1040,6 +1129,7 @@ category = "linux", short_name = "loh", ), + cq_mirrors_console_view = settings.cq_mirrors_console_name, main_console_view = main_console_if_on_branch(), triggered_by = [builder_name("linux-ozone-rel")], ) @@ -1052,6 +1142,7 @@ category = "linux", short_name = "low", ), + cq_mirrors_console_view = settings.cq_mirrors_console_name, main_console_view = main_console_if_on_branch(), triggered_by = [builder_name("linux-ozone-rel")], ) @@ -1064,6 +1155,7 @@ category = "linux", short_name = "lox", ), + cq_mirrors_console_view = settings.cq_mirrors_console_name, main_console_view = main_console_if_on_branch(), triggered_by = [builder_name("linux-ozone-rel")], ) @@ -1075,6 +1167,7 @@ category = "release", short_name = "bld", ), + cq_mirrors_console_view = settings.cq_mirrors_console_name, main_console_view = settings.main_console_name, os = os.MAC_10_15, ) @@ -1086,6 +1179,7 @@ category = "debug", short_name = "bld", ), + cq_mirrors_console_view = settings.cq_mirrors_console_name, main_console_view = settings.main_console_name, os = os.MAC_ANY, ) @@ -1110,6 +1204,7 @@ category = "release", short_name = "10", ), + cq_mirrors_console_view = settings.cq_mirrors_console_name, main_console_view = settings.main_console_name, triggered_by = [builder_name("Mac Builder")], ) @@ -1122,6 +1217,7 @@ category = "release", short_name = "11", ), + cq_mirrors_console_view = settings.cq_mirrors_console_name, main_console_view = settings.main_console_name, triggered_by = [builder_name("Mac Builder")], ) @@ -1134,6 +1230,7 @@ category = "release", short_name = "12", ), + cq_mirrors_console_view = settings.cq_mirrors_console_name, main_console_view = settings.main_console_name, triggered_by = [builder_name("Mac Builder")], ) @@ -1146,6 +1243,7 @@ category = "release", short_name = "13", ), + cq_mirrors_console_view = settings.cq_mirrors_console_name, main_console_view = settings.main_console_name, triggered_by = [builder_name("Mac Builder")], ) @@ -1158,6 +1256,7 @@ category = "release", short_name = "14", ), + cq_mirrors_console_view = settings.cq_mirrors_console_name, main_console_view = settings.main_console_name, triggered_by = [builder_name("Mac Builder")], ) @@ -1170,6 +1269,7 @@ category = "release", short_name = "15", ), + cq_mirrors_console_view = settings.cq_mirrors_console_name, main_console_view = settings.main_console_name, triggered_by = [builder_name("Mac Builder")], ) @@ -1182,6 +1282,7 @@ category = "debug", short_name = "13", ), + cq_mirrors_console_view = settings.cq_mirrors_console_name, main_console_view = settings.main_console_name, triggered_by = [builder_name("Mac Builder (dbg)")], ) @@ -1193,6 +1294,7 @@ category = "ios|default", short_name = "sim", ), + cq_mirrors_console_view = settings.cq_mirrors_console_name, main_console_view = settings.main_console_name, ) @@ -1203,6 +1305,7 @@ category = "ios|default", short_name = "ful", ), + cq_mirrors_console_view = settings.cq_mirrors_console_name, main_console_view = settings.main_console_name, ) @@ -1213,6 +1316,7 @@ category = "linux|asan lsan", short_name = "bld", ), + cq_mirrors_console_view = settings.cq_mirrors_console_name, main_console_view = settings.main_console_name, ssd = True, ) @@ -1224,6 +1328,7 @@ category = "linux|asan lsan", short_name = "tst", ), + cq_mirrors_console_view = settings.cq_mirrors_console_name, main_console_view = settings.main_console_name, triggered_by = [builder_name("Linux ASan LSan Builder")], ) @@ -1235,6 +1340,7 @@ category = "linux|asan lsan", short_name = "sbx", ), + cq_mirrors_console_view = settings.cq_mirrors_console_name, main_console_view = settings.main_console_name, triggered_by = [builder_name("Linux ASan LSan Builder")], ) @@ -1246,6 +1352,7 @@ category = "linux|TSan v2", short_name = "bld", ), + cq_mirrors_console_view = settings.cq_mirrors_console_name, main_console_view = settings.main_console_name, ) @@ -1256,6 +1363,7 @@ category = "linux|TSan v2", short_name = "tst", ), + cq_mirrors_console_view = settings.cq_mirrors_console_name, triggered_by = [builder_name("Linux TSan Builder")], main_console_view = settings.main_console_name, ) @@ -1267,6 +1375,7 @@ category = "debug|tester", short_name = "7", ), + cq_mirrors_console_view = settings.cq_mirrors_console_name, os = os.WINDOWS_7, main_console_view = settings.main_console_name, triggered_by = [builder_name("Win Builder (dbg)")], @@ -1279,6 +1388,7 @@ category = "release|tester", short_name = "64", ), + cq_mirrors_console_view = settings.cq_mirrors_console_name, os = os.WINDOWS_7, main_console_view = settings.main_console_name, triggered_by = [builder_name("Win x64 Builder")], @@ -1292,6 +1402,7 @@ short_name = "32", ), cores = 32, + cq_mirrors_console_view = settings.cq_mirrors_console_name, main_console_view = settings.main_console_name, os = os.WINDOWS_ANY, ) @@ -1304,6 +1415,7 @@ short_name = "64", ), cores = 32, + cq_mirrors_console_view = settings.cq_mirrors_console_name, main_console_view = settings.main_console_name, os = os.WINDOWS_ANY, ) @@ -1315,6 +1427,7 @@ category = "release|tester", short_name = "w10", ), + cq_mirrors_console_view = settings.cq_mirrors_console_name, main_console_view = settings.main_console_name, triggered_by = [builder_name("Win x64 Builder")], )
diff --git a/infra/config/subprojects/chromium/master-only/ci.star b/infra/config/subprojects/chromium/master-only/ci.star index 5020dd9..576fdeed9 100644 --- a/infra/config/subprojects/chromium/master-only/ci.star +++ b/infra/config/subprojects/chromium/master-only/ci.star
@@ -8,7 +8,6 @@ # Execute the versioned files to define all of the per-branch entities # (bucket, builders, console, poller, etc.) -exec("../versioned/m84/buckets/ci.star") exec("../versioned/m85/buckets/ci.star") ci.set_defaults( @@ -1799,7 +1798,7 @@ ci.fyi_coverage_builder( name = "ios-simulator-code-coverage", - caches = [xcode_cache.x12a8189h], + caches = [xcode_cache.x12a8189n], console_view_entry = ci.console_view_entry( category = "code_coverage", short_name = "ios", @@ -1810,7 +1809,7 @@ coverage_exclude_sources = "ios_test_files_and_test_utils", coverage_test_types = ["overall", "unit"], properties = { - "xcode_build_version": "12a8189h", + "xcode_build_version": "12a8189n", }, ) @@ -1867,7 +1866,7 @@ executable = "recipe:chromium", os = os.MAC_10_15, properties = { - "xcode_build_version": "12a8189h", + "xcode_build_version": "12a8189n", }, ) @@ -1879,7 +1878,7 @@ ), executable = "recipe:chromium", properties = { - "xcode_build_version": "12a8189h", + "xcode_build_version": "12a8189n", }, ) @@ -1892,7 +1891,7 @@ executable = "recipe:chromium", os = os.MAC_10_15, properties = { - "xcode_build_version": "12a8189h", + "xcode_build_version": "12a8189n", }, ) @@ -1920,7 +1919,7 @@ executable = "recipe:chromium", os = os.MAC_10_15, properties = { - "xcode_build_version": "12a8189h", + "xcode_build_version": "12a8189n", }, schedule = "0 0,12 * * *", triggered_by = [], @@ -1932,11 +1931,11 @@ category = "iOS|iOS13", short_name = "dev", ), - caches = [xcode_cache.x12a8189h], + caches = [xcode_cache.x12a8189n], executable = "recipe:chromium", os = os.MAC_10_15, properties = { - "xcode_build_version": "12a8189h", + "xcode_build_version": "12a8189n", }, ) @@ -1946,11 +1945,11 @@ category = "iOS|iOS13", short_name = "sdk13", ), - caches = [xcode_cache.x12a8189h], + caches = [xcode_cache.x12a8189n], executable = "recipe:chromium", os = os.MAC_10_15, properties = { - "xcode_build_version": "12a8189h", + "xcode_build_version": "12a8189n", }, schedule = "0 6,18 * * *", triggered_by = [], @@ -1965,7 +1964,7 @@ executable = "recipe:chromium", os = os.MAC_10_15, properties = { - "xcode_build_version": "12a8189h", + "xcode_build_version": "12a8189n", }, ) @@ -1975,11 +1974,11 @@ category = "iOS|iOS14", short_name = "sdk14", ), - caches = [xcode_cache.x12a8189h], + caches = [xcode_cache.x12a8189n], executable = "recipe:chromium", os = os.MAC_10_15, properties = { - "xcode_build_version": "12a8189h", + "xcode_build_version": "12a8189n", }, ) @@ -3039,7 +3038,7 @@ ci.mac_ios_builder( name = "ios-simulator-noncq", caches = [ - xcode_cache.x12a8189h, + xcode_cache.x12a8189n, ], console_view_entry = ci.console_view_entry( category = "ios|default", @@ -3049,7 +3048,7 @@ # is part of the main waterfall main_console_view = "main", properties = { - "xcode_build_version": "12a8189h", + "xcode_build_version": "12a8189n", }, )
diff --git a/infra/config/subprojects/chromium/master-only/consoles/luci.chromium.try.star b/infra/config/subprojects/chromium/master-only/consoles/luci.chromium.try.star index 80c3a3c4..689ed51 100644 --- a/infra/config/subprojects/chromium/master-only/consoles/luci.chromium.try.star +++ b/infra/config/subprojects/chromium/master-only/consoles/luci.chromium.try.star
@@ -6,6 +6,7 @@ name = "luci.chromium.try", entries = [ "try/android-cronet-arm-dbg", + "try/android-cronet-marshmallow-arm64-rel", "try/android-lollipop-arm-rel", "try/android-marshmallow-arm64-rel", "try/android-marshmallow-x86-rel",
diff --git a/infra/config/subprojects/chromium/master-only/try.star b/infra/config/subprojects/chromium/master-only/try.star index 6d9c96e..9ac49b69 100644 --- a/infra/config/subprojects/chromium/master-only/try.star +++ b/infra/config/subprojects/chromium/master-only/try.star
@@ -8,7 +8,6 @@ # Execute the versioned files to define all of the per-branch entities # (bucket, builders, console, cq_group, etc.) -exec("../versioned/m84/buckets/try.star") exec("../versioned/m85/buckets/try.star") try_.set_defaults( @@ -70,6 +69,10 @@ ) try_.chromium_android_builder( + name = "android-cronet-marshmallow-arm64-rel", +) + +try_.chromium_android_builder( name = "android-deterministic-dbg", executable = "recipe:swarming/deterministic_build", execution_timeout = 6 * time.hour, @@ -261,11 +264,11 @@ try_.chromium_chromiumos_builder( name = "chromeos-kevin-compile-rel", - main_list_view = "try", ) try_.chromium_chromiumos_builder( name = "chromeos-kevin-rel", + main_list_view = "try", tryjob = try_.job( location_regexp = [ ".+/[+]/build/chromeos/.+", @@ -273,11 +276,11 @@ ".+/[+]/chromeos/CHROMEOS_LKGM", ], ), - main_list_view = "try", ) try_.chromium_chromiumos_builder( name = "linux-lacros-rel", + main_list_view = "try", tryjob = try_.job(), ) @@ -594,7 +597,7 @@ coverage_test_types = ["unit"], os = os.MAC_10_15, properties = { - "xcode_build_version": "12a8189h", + "xcode_build_version": "12a8189n", }, tryjob = try_.job(experiment_percentage = 3), ) @@ -621,40 +624,40 @@ try_.chromium_mac_ios_builder( name = "ios13-beta-simulator", executable = "recipe:chromium_trybot", - caches = [xcode_cache.x12a8189h], + caches = [xcode_cache.x12a8189n], os = os.MAC_10_15, properties = { - "xcode_build_version": "12a8189h", + "xcode_build_version": "12a8189n", }, ) try_.chromium_mac_ios_builder( name = "ios13-sdk-simulator", executable = "recipe:chromium_trybot", - caches = [xcode_cache.x12a8189h], + caches = [xcode_cache.x12a8189n], os = os.MAC_10_15, properties = { - "xcode_build_version": "12a8189h", + "xcode_build_version": "12a8189n", }, ) try_.chromium_mac_ios_builder( name = "ios14-beta-simulator", executable = "recipe:chromium_trybot", - caches = [xcode_cache.x12a8189h], + caches = [xcode_cache.x12a8189n], os = os.MAC_10_15, properties = { - "xcode_build_version": "12a8189h", + "xcode_build_version": "12a8189n", }, ) try_.chromium_mac_ios_builder( name = "ios14-sdk-simulator", executable = "recipe:chromium_trybot", - caches = [xcode_cache.x12a8189h], + caches = [xcode_cache.x12a8189n], os = os.MAC_10_15, properties = { - "xcode_build_version": "12a8189h", + "xcode_build_version": "12a8189n", }, )
diff --git a/infra/config/subprojects/chromium/try.star b/infra/config/subprojects/chromium/try.star index 36e7c291..2d664b76 100644 --- a/infra/config/subprojects/chromium/try.star +++ b/infra/config/subprojects/chromium/try.star
@@ -12,7 +12,6 @@ try_.set_defaults( settings, add_to_list_view = True, - main_list_view = settings.main_list_view_name, ) # Automatically maintained consoles @@ -76,6 +75,7 @@ name = "linux-blink-rel", branch_selector = branches.STANDARD_RELEASES, goma_backend = goma.backend.RBE_PROD, + main_list_view = settings.main_list_view_name, tryjob = try_.job( location_regexp = [ ".+/[+]/cc/.+", @@ -108,12 +108,14 @@ name = "win-official", branch_selector = branches.STANDARD_RELEASES, os = os.WINDOWS_DEFAULT, + cores = 32, ) try_.chromium_builder( name = "win32-official", branch_selector = branches.STANDARD_RELEASES, os = os.WINDOWS_DEFAULT, + cores = 32, ) try_.chromium_android_builder( @@ -121,6 +123,7 @@ branch_selector = branches.STANDARD_RELEASES, executable = "recipe:binary_size_trybot", goma_jobs = goma.jobs.J150, + main_list_view = settings.main_list_view_name, properties = { "$build/binary_size": { "analyze_targets": [ @@ -141,6 +144,7 @@ try_.chromium_android_builder( name = "android-cronet-arm-dbg", branch_selector = branches.STANDARD_RELEASES, + main_list_view = settings.main_list_view_name, tryjob = try_.job( location_regexp = [ ".+/[+]/components/cronet/.+", @@ -158,6 +162,7 @@ name = "android-lollipop-arm-rel", branch_selector = branches.STANDARD_RELEASES, goma_jobs = goma.jobs.J150, + main_list_view = settings.main_list_view_name, tryjob = try_.job(), ) @@ -166,6 +171,7 @@ branch_selector = branches.STANDARD_RELEASES, cores = 16, goma_jobs = goma.jobs.J300, + main_list_view = settings.main_list_view_name, ssd = True, use_java_coverage = True, tryjob = try_.job(), @@ -186,12 +192,14 @@ # name = "android-nougat-arm64-rel", # branch_selector = branches.STANDARD_RELEASES, # goma_jobs = goma.jobs.J150, +# main_list_view = settings.main_list_view_name, #) try_.chromium_android_builder( name = "android-pie-arm64-dbg", branch_selector = branches.STANDARD_RELEASES, goma_jobs = goma.jobs.J300, + main_list_view = settings.main_list_view_name, tryjob = try_.job( location_regexp = [ ".+/[+]/chrome/android/features/vr/.+", @@ -216,6 +224,7 @@ ssd = True, # TODO(crbug.com/1111436): Enable on CQ once the maintenance for # Pixel 2 devices are finished. + #main_list_view = settings.main_list_view_name, #tryjob = try_.job(), ) @@ -223,12 +232,14 @@ name = "android_compile_dbg", branch_selector = branches.STANDARD_RELEASES, goma_jobs = goma.jobs.J150, + main_list_view = settings.main_list_view_name, tryjob = try_.job(), ) try_.chromium_android_builder( name = "android_compile_x64_dbg", branch_selector = branches.STANDARD_RELEASES, + main_list_view = settings.main_list_view_name, tryjob = try_.job( location_regexp = [ ".+/[+]/chrome/android/java/src/org/chromium/chrome/browser/vr/.+", @@ -246,6 +257,7 @@ try_.chromium_android_builder( name = "android_compile_x86_dbg", branch_selector = branches.STANDARD_RELEASES, + main_list_view = settings.main_list_view_name, tryjob = try_.job( location_regexp = [ ".+/[+]/chrome/android/java/src/org/chromium/chrome/browser/vr/.+", @@ -263,18 +275,21 @@ try_.chromium_android_builder( name = "android_cronet", branch_selector = branches.STANDARD_RELEASES, + main_list_view = settings.main_list_view_name, tryjob = try_.job(), ) try_.chromium_android_builder( name = "cast_shell_android", branch_selector = branches.STANDARD_RELEASES, + main_list_view = settings.main_list_view_name, tryjob = try_.job(), ) try_.chromium_chromiumos_builder( name = "chromeos-amd64-generic-dbg", branch_selector = branches.STANDARD_RELEASES, + main_list_view = settings.main_list_view_name, tryjob = try_.job( location_regexp = [ ".+/[+]/content/gpu/.+", @@ -286,18 +301,21 @@ try_.chromium_chromiumos_builder( name = "chromeos-amd64-generic-rel", branch_selector = branches.STANDARD_RELEASES, + main_list_view = settings.main_list_view_name, tryjob = try_.job(), ) try_.chromium_chromiumos_builder( name = "chromeos-arm-generic-rel", branch_selector = branches.STANDARD_RELEASES, + main_list_view = settings.main_list_view_name, tryjob = try_.job(), ) try_.chromium_chromiumos_builder( name = "linux-chromeos-compile-dbg", branch_selector = branches.STANDARD_RELEASES, + main_list_view = settings.main_list_view_name, tryjob = try_.job(), ) @@ -305,6 +323,7 @@ name = "linux-chromeos-rel", branch_selector = branches.STANDARD_RELEASES, goma_jobs = goma.jobs.J150, + main_list_view = settings.main_list_view_name, tryjob = try_.job(cancel_stale = False), use_clang_coverage = True, ) @@ -312,6 +331,7 @@ try_.chromium_dawn_builder( name = "dawn-linux-x64-deps-rel", branch_selector = branches.STANDARD_RELEASES, + main_list_view = settings.main_list_view_name, tryjob = try_.job( location_regexp = [ ".+/[+]/gpu/.+", @@ -330,6 +350,7 @@ try_.chromium_dawn_builder( name = "dawn-mac-x64-deps-rel", branch_selector = branches.STANDARD_RELEASES, + main_list_view = settings.main_list_view_name, os = os.MAC_ANY, tryjob = try_.job( location_regexp = [ @@ -349,6 +370,7 @@ try_.chromium_dawn_builder( name = "dawn-win10-x64-deps-rel", branch_selector = branches.STANDARD_RELEASES, + main_list_view = settings.main_list_view_name, os = os.WINDOWS_ANY, tryjob = try_.job( location_regexp = [ @@ -368,6 +390,7 @@ try_.chromium_dawn_builder( name = "dawn-win10-x86-deps-rel", branch_selector = branches.STANDARD_RELEASES, + main_list_view = settings.main_list_view_name, os = os.WINDOWS_ANY, tryjob = try_.job( location_regexp = [ @@ -387,6 +410,7 @@ try_.chromium_linux_builder( name = "cast_shell_linux", branch_selector = branches.STANDARD_RELEASES, + main_list_view = settings.main_list_view_name, tryjob = try_.job(), ) @@ -394,6 +418,7 @@ name = "closure_compilation", branch_selector = branches.STANDARD_RELEASES, executable = "recipe:closure_compilation", + main_list_view = settings.main_list_view_name, tryjob = try_.job( location_regexp = [ ".+/[+]/third_party/closure_compiler/.+", @@ -406,6 +431,7 @@ branch_selector = branches.STANDARD_RELEASES, executable = "recipe:presubmit", goma_backend = None, + main_list_view = settings.main_list_view_name, properties = { "$depot_tools/presubmit": { "runhooks": True, @@ -422,6 +448,7 @@ try_.chromium_linux_builder( name = "fuchsia-arm64-cast", branch_selector = branches.STANDARD_RELEASES, + main_list_view = settings.main_list_view_name, tryjob = try_.job( location_regexp = [ ".+/[+]/chromecast/.+", @@ -432,18 +459,21 @@ try_.chromium_linux_builder( name = "fuchsia-x64-cast", branch_selector = branches.STANDARD_RELEASES, + main_list_view = settings.main_list_view_name, tryjob = try_.job(), ) try_.chromium_linux_builder( name = "fuchsia_arm64", branch_selector = branches.STANDARD_RELEASES, + main_list_view = settings.main_list_view_name, tryjob = try_.job(), ) try_.chromium_linux_builder( name = "fuchsia_x64", branch_selector = branches.STANDARD_RELEASES, + main_list_view = settings.main_list_view_name, tryjob = try_.job(), ) @@ -451,12 +481,14 @@ name = "linux-libfuzzer-asan-rel", branch_selector = branches.STANDARD_RELEASES, executable = "recipe:chromium_libfuzzer_trybot", + main_list_view = settings.main_list_view_name, tryjob = try_.job(), ) try_.chromium_linux_builder( name = "linux-ozone-rel", branch_selector = branches.STANDARD_RELEASES, + main_list_view = settings.main_list_view_name, tryjob = try_.job(), ) @@ -467,6 +499,7 @@ # not explicitly set builder_group = "tryserver.chromium.linux", goma_jobs = goma.jobs.J150, + main_list_view = settings.main_list_view_name, tryjob = try_.job(), use_clang_coverage = True, ) @@ -475,6 +508,7 @@ name = "linux_chromium_asan_rel_ng", branch_selector = branches.STANDARD_RELEASES, goma_jobs = goma.jobs.J150, + main_list_view = settings.main_list_view_name, ssd = True, tryjob = try_.job(), ) @@ -489,6 +523,7 @@ ), ], goma_jobs = goma.jobs.J150, + main_list_view = settings.main_list_view_name, tryjob = try_.job(), ) @@ -501,6 +536,7 @@ path = "linux_debug", ), ], + main_list_view = settings.main_list_view_name, tryjob = try_.job( location_regexp = [ ".+/[+]/build/.*check_gn_headers.*", @@ -512,12 +548,14 @@ name = "linux_chromium_tsan_rel_ng", branch_selector = branches.STANDARD_RELEASES, goma_jobs = goma.jobs.J150, + main_list_view = settings.main_list_view_name, tryjob = try_.job(), ) try_.chromium_linux_builder( name = "linux_layout_tests_composite_after_paint", branch_selector = branches.STANDARD_RELEASES, + main_list_view = settings.main_list_view_name, tryjob = try_.job( location_regexp = [ ".+/[+]/third_party/blink/renderer/core/paint/.+", @@ -531,6 +569,7 @@ try_.chromium_linux_builder( name = "linux_layout_tests_layout_ng_disabled", branch_selector = branches.STANDARD_RELEASES, + main_list_view = settings.main_list_view_name, tryjob = try_.job( location_regexp = [ ".+/[+]/third_party/blink/renderer/core/editing/.+", @@ -548,6 +587,7 @@ try_.chromium_linux_builder( name = "linux_vr", branch_selector = branches.STANDARD_RELEASES, + main_list_view = settings.main_list_view_name, tryjob = try_.job( location_regexp = [ ".+/[+]/chrome/browser/vr/.+", @@ -560,6 +600,7 @@ name = "mac-rel", branch_selector = branches.STANDARD_RELEASES, goma_jobs = goma.jobs.J150, + main_list_view = settings.main_list_view_name, os = os.MAC_10_13, tryjob = try_.job(), ) @@ -575,6 +616,7 @@ name = "mac_chromium_compile_dbg_ng", branch_selector = branches.STANDARD_RELEASES, goma_jobs = goma.jobs.J150, + main_list_view = settings.main_list_view_name, os = os.MAC_10_13, tryjob = try_.job(), ) @@ -583,8 +625,9 @@ name = "ios-simulator", branch_selector = branches.STANDARD_RELEASES, executable = "recipe:chromium_trybot", + main_list_view = settings.main_list_view_name, properties = { - "xcode_build_version": "12a8189h", + "xcode_build_version": "12a8189n", }, tryjob = try_.job(), ) @@ -594,6 +637,7 @@ branch_selector = branches.STANDARD_RELEASES, caches = [xcode_cache.x11e146], executable = "recipe:chromium_trybot", + main_list_view = settings.main_list_view_name, properties = { "xcode_build_version": "11e146", }, @@ -613,6 +657,7 @@ name = "ios-simulator-full-configs", branch_selector = branches.STANDARD_RELEASES, executable = "recipe:chromium_trybot", + main_list_view = settings.main_list_view_name, tryjob = try_.job( location_regexp = [ ".+/[+]/ios/.+", @@ -625,6 +670,7 @@ branch_selector = branches.STANDARD_RELEASES, builderless = False, executable = "recipe:chromium_libfuzzer_trybot", + main_list_view = settings.main_list_view_name, os = os.WINDOWS_ANY, tryjob = try_.job(cancel_stale = False), ) @@ -633,6 +679,7 @@ name = "win_chromium_compile_dbg_ng", branch_selector = branches.STANDARD_RELEASES, goma_jobs = goma.jobs.J150, + main_list_view = settings.main_list_view_name, tryjob = try_.job(cancel_stale = False), ) @@ -640,6 +687,7 @@ name = "win10_chromium_x64_rel_ng", branch_selector = branches.STANDARD_RELEASES, goma_jobs = goma.jobs.J150, + main_list_view = settings.main_list_view_name, os = os.WINDOWS_10, ssd = True, use_clang_coverage = True, @@ -651,6 +699,7 @@ branch_selector = branches.STANDARD_RELEASES, execution_timeout = 4 * time.hour + 30 * time.minute, goma_jobs = goma.jobs.J300, + main_list_view = settings.main_list_view_name, ssd = True, tryjob = try_.job( location_regexp = [ @@ -662,6 +711,7 @@ try_.gpu_chromium_android_builder( name = "android_optional_gpu_tests_rel", branch_selector = branches.STANDARD_RELEASES, + main_list_view = settings.main_list_view_name, tryjob = try_.job( location_regexp = [ ".+/[+]/cc/.+", @@ -673,6 +723,7 @@ ".+/[+]/media/audio/.+", ".+/[+]/media/filters/.+", ".+/[+]/media/gpu/.+", + ".+/[+]/media/renderers/.+", ".+/[+]/services/viz/.+", ".+/[+]/testing/trigger_scripts/.+", ".+/[+]/third_party/blink/renderer/modules/webgl/.+", @@ -686,6 +737,7 @@ try_.gpu_chromium_linux_builder( name = "linux_optional_gpu_tests_rel", branch_selector = branches.STANDARD_RELEASES, + main_list_view = settings.main_list_view_name, tryjob = try_.job( location_regexp = [ ".+/[+]/chrome/browser/vr/.+", @@ -695,6 +747,7 @@ ".+/[+]/media/audio/.+", ".+/[+]/media/filters/.+", ".+/[+]/media/gpu/.+", + ".+/[+]/media/renderers/.+", ".+/[+]/testing/buildbot/chromium.gpu.fyi.json", ".+/[+]/testing/trigger_scripts/.+", ".+/[+]/third_party/blink/renderer/modules/webgl/.+", @@ -708,6 +761,7 @@ try_.gpu_chromium_mac_builder( name = "mac_optional_gpu_tests_rel", branch_selector = branches.STANDARD_RELEASES, + main_list_view = settings.main_list_view_name, tryjob = try_.job( location_regexp = [ ".+/[+]/chrome/browser/vr/.+", @@ -717,6 +771,7 @@ ".+/[+]/media/audio/.+", ".+/[+]/media/filters/.+", ".+/[+]/media/gpu/.+", + ".+/[+]/media/renderers/.+", ".+/[+]/services/shape_detection/.+", ".+/[+]/testing/buildbot/chromium.gpu.fyi.json", ".+/[+]/testing/trigger_scripts/.+", @@ -732,6 +787,7 @@ name = "win_optional_gpu_tests_rel", branch_selector = branches.STANDARD_RELEASES, builderless = True, + main_list_view = settings.main_list_view_name, os = os.WINDOWS_DEFAULT, tryjob = try_.job( location_regexp = [ @@ -743,6 +799,7 @@ ".+/[+]/media/audio/.+", ".+/[+]/media/filters/.+", ".+/[+]/media/gpu/.+", + ".+/[+]/media/renderers/.+", ".+/[+]/testing/buildbot/chromium.gpu.fyi.json", ".+/[+]/testing/trigger_scripts/.+", ".+/[+]/third_party/blink/renderer/modules/vr/.+",
diff --git a/infra/config/subprojects/chromium/versioned/m84/buckets/ci.star b/infra/config/subprojects/chromium/versioned/m84/buckets/ci.star deleted file mode 100644 index 55353900..0000000 --- a/infra/config/subprojects/chromium/versioned/m84/buckets/ci.star +++ /dev/null
@@ -1,774 +0,0 @@ -# Copyright 2020 The Chromium Authors. All rights reserved. -# Use of this source code is governed by a BSD-style license that can be -# found in the LICENSE file. - -load("//lib/builders.star", "builder_name", "goma", "os") -load("//lib/ci.star", "ci") - -# Load this using relative path so that the load statement doesn't -# need to be changed when making a new milestone -load("../vars.star", "vars") - -ci.set_defaults( - vars, - bucketed_triggers = True, - main_console_view = vars.main_console_name, - cq_mirrors_console_view = vars.cq_mirrors_console_name, -) - -ci.declare_bucket(vars) - -# Builders are sorted first lexicographically by the function used to define -# them, then lexicographically by their name - -ci.android_builder( - name = "Android WebView M (dbg)", - console_view_entry = ci.console_view_entry( - category = "tester|webview", - short_name = "M", - ), - triggered_by = [builder_name("Android arm64 Builder (dbg)")], -) - -ci.android_builder( - name = "Android WebView N (dbg)", - console_view_entry = ci.console_view_entry( - category = "tester|webview", - short_name = "N", - ), - triggered_by = [builder_name("Android arm64 Builder (dbg)")], -) - -ci.android_builder( - name = "Android WebView O (dbg)", - console_view_entry = ci.console_view_entry( - category = "tester|webview", - short_name = "O", - ), - triggered_by = [builder_name("Android arm64 Builder (dbg)")], -) - -ci.android_builder( - name = "Android WebView P (dbg)", - console_view_entry = ci.console_view_entry( - category = "tester|webview", - short_name = "P", - ), - triggered_by = [builder_name("Android arm64 Builder (dbg)")], -) - -ci.android_builder( - name = "Android arm Builder (dbg)", - console_view_entry = ci.console_view_entry( - category = "builder|arm", - short_name = "32", - ), - execution_timeout = 4 * time.hour, -) - -ci.android_builder( - name = "Android arm64 Builder (dbg)", - console_view_entry = ci.console_view_entry( - category = "builder|arm", - short_name = "64", - ), - goma_jobs = goma.jobs.MANY_JOBS_FOR_CI, - execution_timeout = 4 * time.hour, -) - -ci.android_builder( - name = "Android x64 Builder (dbg)", - console_view_entry = ci.console_view_entry( - category = "builder|x86", - short_name = "64", - ), - execution_timeout = 4 * time.hour, -) - -ci.android_builder( - name = "Android x86 Builder (dbg)", - console_view_entry = ci.console_view_entry( - category = "builder|x86", - short_name = "32", - ), -) - -ci.android_builder( - name = "Cast Android (dbg)", - console_view_entry = ci.console_view_entry( - category = "on_cq", - short_name = "cst", - ), -) - -ci.android_builder( - name = "Marshmallow 64 bit Tester", - console_view_entry = ci.console_view_entry( - category = "tester|phone", - short_name = "M", - ), - triggered_by = [builder_name("Android arm64 Builder (dbg)")], -) - -ci.android_builder( - name = "Nougat Phone Tester", - console_view_entry = ci.console_view_entry( - category = "tester|phone", - short_name = "N", - ), - triggered_by = [builder_name("Android arm64 Builder (dbg)")], -) - -ci.android_builder( - name = "Oreo Phone Tester", - console_view_entry = ci.console_view_entry( - category = "tester|phone", - short_name = "O", - ), - triggered_by = [builder_name("Android arm64 Builder (dbg)")], -) - -ci.android_builder( - name = "android-cronet-arm-dbg", - console_view_entry = ci.console_view_entry( - category = "cronet|arm", - short_name = "dbg", - ), - notifies = ["cronet"], -) - -ci.android_builder( - name = "android-cronet-arm-rel", - console_view_entry = ci.console_view_entry( - category = "cronet|arm", - short_name = "rel", - ), - notifies = ["cronet"], -) - -ci.android_builder( - name = "android-cronet-kitkat-arm-rel", - console_view_entry = ci.console_view_entry( - category = "cronet|test", - short_name = "k", - ), - notifies = ["cronet"], - triggered_by = [builder_name("android-cronet-arm-rel")], -) - -ci.android_builder( - name = "android-cronet-lollipop-arm-rel", - console_view_entry = ci.console_view_entry( - category = "cronet|test", - short_name = "l", - ), - notifies = ["cronet"], - triggered_by = [builder_name("android-cronet-arm-rel")], -) - -ci.android_builder( - name = "android-lollipop-arm-rel", - console_view_entry = ci.console_view_entry( - category = "on_cq", - short_name = "L", - ), -) - -ci.android_builder( - name = "android-marshmallow-arm64-rel", - console_view_entry = ci.console_view_entry( - category = "on_cq", - short_name = "M", - ), -) - -ci.android_builder( - name = "android-pie-arm64-dbg", - console_view_entry = ci.console_view_entry( - category = "tester|phone", - short_name = "P", - ), - triggered_by = [builder_name("Android arm64 Builder (dbg)")], -) - -ci.android_builder( - name = "android-pie-arm64-rel", - console_view_entry = ci.console_view_entry( - category = "on_cq", - short_name = "P", - ), -) - -ci.chromiumos_builder( - name = "chromeos-amd64-generic-dbg", - console_view_entry = ci.console_view_entry( - category = "simple|debug|x64", - short_name = "dbg", - ), -) - -ci.chromiumos_builder( - name = "chromeos-amd64-generic-rel", - console_view_entry = ci.console_view_entry( - category = "simple|release|x64", - short_name = "rel", - ), -) - -ci.chromiumos_builder( - name = "chromeos-arm-generic-rel", - console_view_entry = ci.console_view_entry( - category = "simple|release", - short_name = "arm", - ), -) - -ci.chromiumos_builder( - name = "linux-chromeos-dbg", - console_view_entry = ci.console_view_entry( - category = "default", - short_name = "dbg", - ), -) - -ci.chromiumos_builder( - name = "linux-chromeos-rel", - console_view_entry = ci.console_view_entry( - category = "default", - short_name = "rel", - ), -) - -ci.dawn_builder( - name = "Dawn Linux x64 DEPS Builder", - console_view_entry = ci.console_view_entry( - category = "DEPS|Linux|Builder", - short_name = "x64", - ), -) - -ci.dawn_builder( - name = "Dawn Linux x64 DEPS Release (Intel HD 630)", - console_view_entry = ci.console_view_entry( - category = "DEPS|Linux|Intel", - short_name = "x64", - ), - cores = 2, - os = os.LINUX_DEFAULT, - triggered_by = [builder_name("Dawn Linux x64 DEPS Builder")], -) - -ci.dawn_builder( - name = "Dawn Linux x64 DEPS Release (NVIDIA)", - console_view_entry = ci.console_view_entry( - category = "DEPS|Linux|Nvidia", - short_name = "x64", - ), - cores = 2, - os = os.LINUX_DEFAULT, - triggered_by = [builder_name("Dawn Linux x64 DEPS Builder")], -) - -ci.dawn_builder( - name = "Dawn Mac x64 DEPS Builder", - builderless = False, - console_view_entry = ci.console_view_entry( - category = "DEPS|Mac|Builder", - short_name = "x64", - ), - cores = None, - os = os.MAC_ANY, -) - -# Note that the Mac testers are all thin Linux VMs, triggering jobs on the -# physical Mac hardware in the Swarming pool which is why they run on linux -ci.dawn_builder( - name = "Dawn Mac x64 DEPS Release (AMD)", - console_view_entry = ci.console_view_entry( - category = "DEPS|Mac|AMD", - short_name = "x64", - ), - cores = 2, - os = os.LINUX_DEFAULT, - triggered_by = [builder_name("Dawn Mac x64 DEPS Builder")], -) - -ci.dawn_builder( - name = "Dawn Mac x64 DEPS Release (Intel)", - console_view_entry = ci.console_view_entry( - category = "DEPS|Mac|Intel", - short_name = "x64", - ), - cores = 2, - os = os.LINUX_DEFAULT, - triggered_by = [builder_name("Dawn Mac x64 DEPS Builder")], -) - -ci.dawn_builder( - name = "Dawn Win10 x64 DEPS Builder", - console_view_entry = ci.console_view_entry( - category = "DEPS|Windows|Builder", - short_name = "x64", - ), - os = os.WINDOWS_ANY, -) - -ci.dawn_builder( - name = "Dawn Win10 x64 DEPS Release (Intel HD 630)", - console_view_entry = ci.console_view_entry( - category = "DEPS|Windows|Intel", - short_name = "x64", - ), - cores = 2, - os = os.LINUX_DEFAULT, - triggered_by = [builder_name("Dawn Win10 x64 DEPS Builder")], -) - -ci.dawn_builder( - name = "Dawn Win10 x64 DEPS Release (NVIDIA)", - console_view_entry = ci.console_view_entry( - category = "DEPS|Windows|Nvidia", - short_name = "x64", - ), - cores = 2, - os = os.LINUX_DEFAULT, - triggered_by = [builder_name("Dawn Win10 x64 DEPS Builder")], -) - -ci.dawn_builder( - name = "Dawn Win10 x86 DEPS Builder", - console_view_entry = ci.console_view_entry( - category = "DEPS|Windows|Builder", - short_name = "x86", - ), - os = os.WINDOWS_ANY, -) - -ci.dawn_builder( - name = "Dawn Win10 x86 DEPS Release (Intel HD 630)", - console_view_entry = ci.console_view_entry( - category = "DEPS|Windows|Intel", - short_name = "x86", - ), - cores = 2, - os = os.LINUX_DEFAULT, - triggered_by = [builder_name("Dawn Win10 x86 DEPS Builder")], -) - -ci.dawn_builder( - name = "Dawn Win10 x86 DEPS Release (NVIDIA)", - console_view_entry = ci.console_view_entry( - category = "DEPS|Windows|Nvidia", - short_name = "x86", - ), - cores = 2, - os = os.LINUX_DEFAULT, - triggered_by = [builder_name("Dawn Win10 x86 DEPS Builder")], -) - -ci.fyi_builder( - name = "VR Linux", - console_view_entry = ci.console_view_entry( - category = "linux", - ), -) - -ci.fyi_ios_builder( - name = "ios-simulator-cronet", - console_view_entry = ci.console_view_entry( - category = "cronet", - ), - executable = "recipe:chromium", - fully_qualified_builder_dimension = True, - notifies = ["cronet"], - properties = { - "xcode_build_version": "11c29", - }, -) - -ci.gpu_builder( - name = "Android Release (Nexus 5X)", - console_view_entry = ci.console_view_entry( - category = "Android", - ), -) - -ci.gpu_builder( - name = "GPU Linux Builder", - console_view_entry = ci.console_view_entry( - category = "Linux", - ), -) - -ci.gpu_builder( - name = "GPU Mac Builder", - console_view_entry = ci.console_view_entry( - category = "Mac", - ), - cores = None, - os = os.MAC_ANY, -) - -ci.gpu_builder( - name = "GPU Win x64 Builder", - builderless = True, - console_view_entry = ci.console_view_entry( - category = "Windows", - ), - os = os.WINDOWS_ANY, -) - -ci.gpu_thin_tester( - name = "Linux Release (NVIDIA)", - console_view_entry = ci.console_view_entry( - category = "Linux", - ), - triggered_by = [builder_name("GPU Linux Builder")], -) - -ci.gpu_thin_tester( - name = "Mac Release (Intel)", - console_view_entry = ci.console_view_entry( - category = "Mac", - ), - triggered_by = [builder_name("GPU Mac Builder")], -) - -ci.gpu_thin_tester( - name = "Mac Retina Release (AMD)", - console_view_entry = ci.console_view_entry( - category = "Mac", - ), - triggered_by = [builder_name("GPU Mac Builder")], -) - -ci.gpu_thin_tester( - name = "Win10 x64 Release (NVIDIA)", - console_view_entry = ci.console_view_entry( - category = "Windows", - ), - triggered_by = [builder_name("GPU Win x64 Builder")], -) - -ci.linux_builder( - name = "Cast Linux", - console_view_entry = ci.console_view_entry( - category = "cast", - short_name = "vid", - ), - goma_jobs = goma.jobs.J50, -) - -ci.linux_builder( - name = "Fuchsia ARM64", - console_view_entry = ci.console_view_entry( - category = "fuchsia|a64", - short_name = "rel", - ), - extra_notifies = ["cr-fuchsia"], -) - -ci.linux_builder( - name = "Fuchsia x64", - console_view_entry = ci.console_view_entry( - category = "fuchsia|x64", - short_name = "rel", - ), - extra_notifies = ["cr-fuchsia"], -) - -ci.linux_builder( - name = "Linux Builder", - console_view_entry = ci.console_view_entry( - category = "release", - short_name = "bld", - ), -) - -ci.linux_builder( - name = "Linux Builder (dbg)", - console_view_entry = ci.console_view_entry( - category = "debug|builder", - short_name = "64", - ), -) - -ci.linux_builder( - name = "Linux Tests", - console_view_entry = ci.console_view_entry( - category = "release", - short_name = "tst", - ), - goma_backend = None, - triggered_by = [builder_name("Linux Builder")], -) - -ci.linux_builder( - name = "Linux Tests (dbg)(1)", - console_view_entry = ci.console_view_entry( - category = "debug|tester", - short_name = "64", - ), - triggered_by = [builder_name("Linux Builder (dbg)")], -) - -ci.linux_builder( - name = "fuchsia-arm64-cast", - console_view_entry = ci.console_view_entry( - category = "fuchsia|cast", - short_name = "a64", - ), - extra_notifies = ["cr-fuchsia"], -) - -ci.linux_builder( - name = "fuchsia-x64-cast", - console_view_entry = ci.console_view_entry( - category = "fuchsia|cast", - short_name = "x64", - ), - extra_notifies = ["cr-fuchsia"], -) - -ci.linux_builder( - name = "linux-ozone-rel", - console_view_entry = ci.console_view_entry( - category = "release", - short_name = "ozo", - ), -) - -ci.linux_builder( - name = "Linux Ozone Tester (Headless)", - console_view = "chromium.fyi", - console_view_entry = ci.console_view_entry( - category = "linux", - short_name = "loh", - ), - triggered_by = [builder_name("linux-ozone-rel")], -) - -ci.linux_builder( - name = "Linux Ozone Tester (Wayland)", - console_view = "chromium.fyi", - console_view_entry = ci.console_view_entry( - category = "linux", - short_name = "low", - ), - triggered_by = [builder_name("linux-ozone-rel")], -) - -ci.linux_builder( - name = "Linux Ozone Tester (X11)", - console_view = "chromium.fyi", - console_view_entry = ci.console_view_entry( - category = "linux", - short_name = "lox", - ), - triggered_by = [builder_name("linux-ozone-rel")], -) - -ci.mac_builder( - name = "Mac Builder", - console_view_entry = ci.console_view_entry( - category = "release", - short_name = "bld", - ), - os = os.MAC_10_15, -) - -ci.mac_builder( - name = "Mac Builder (dbg)", - console_view_entry = ci.console_view_entry( - category = "debug", - short_name = "bld", - ), - os = os.MAC_ANY, -) - -ci.thin_tester( - name = "Mac10.10 Tests", - mastername = "chromium.mac", - console_view_entry = ci.console_view_entry( - category = "release", - short_name = "10", - ), - triggered_by = [builder_name("Mac Builder")], -) - -ci.thin_tester( - name = "Mac10.11 Tests", - mastername = "chromium.mac", - console_view_entry = ci.console_view_entry( - category = "release", - short_name = "11", - ), - triggered_by = [builder_name("Mac Builder")], -) - -ci.thin_tester( - name = "Mac10.12 Tests", - mastername = "chromium.mac", - console_view_entry = ci.console_view_entry( - category = "release", - short_name = "12", - ), - triggered_by = [builder_name("Mac Builder")], -) - -ci.thin_tester( - name = "Mac10.13 Tests", - mastername = "chromium.mac", - console_view_entry = ci.console_view_entry( - category = "release", - short_name = "13", - ), - triggered_by = [builder_name("Mac Builder")], -) - -ci.thin_tester( - name = "Mac10.14 Tests", - mastername = "chromium.mac", - console_view_entry = ci.console_view_entry( - category = "release", - short_name = "14", - ), - triggered_by = [builder_name("Mac Builder")], -) - -ci.thin_tester( - name = "Mac10.15 Tests", - mastername = "chromium.mac", - console_view_entry = ci.console_view_entry( - category = "release", - short_name = "15", - ), - triggered_by = [builder_name("Mac Builder")], -) - -ci.thin_tester( - name = "Mac10.13 Tests (dbg)", - mastername = "chromium.mac", - console_view_entry = ci.console_view_entry( - category = "debug", - short_name = "13", - ), - triggered_by = [builder_name("Mac Builder (dbg)")], -) - -ci.mac_ios_builder( - name = "ios-simulator", - console_view_entry = ci.console_view_entry( - category = "ios|default", - short_name = "sim", - ), - fully_qualified_builder_dimension = True, - properties = { - "xcode_build_version": "11e146", - }, -) - -ci.mac_ios_builder( - name = "ios-simulator-full-configs", - console_view_entry = ci.console_view_entry( - category = "ios|default", - short_name = "ful", - ), - fully_qualified_builder_dimension = True, - properties = { - "xcode_build_version": "11e146", - }, -) - -ci.memory_builder( - name = "Linux ASan LSan Builder", - console_view_entry = ci.console_view_entry( - category = "linux|asan lsan", - short_name = "bld", - ), - ssd = True, -) - -ci.memory_builder( - name = "Linux ASan LSan Tests (1)", - console_view_entry = ci.console_view_entry( - category = "linux|asan lsan", - short_name = "tst", - ), - triggered_by = [builder_name("Linux ASan LSan Builder")], -) - -ci.memory_builder( - name = "Linux ASan Tests (sandboxed)", - console_view_entry = ci.console_view_entry( - category = "linux|asan lsan", - short_name = "sbx", - ), - triggered_by = [builder_name("Linux ASan LSan Builder")], -) - -ci.memory_builder( - name = "Linux TSan Builder", - console_view_entry = ci.console_view_entry( - category = "linux|TSan v2", - short_name = "bld", - ), -) - -ci.memory_builder( - name = "Linux TSan Tests", - console_view_entry = ci.console_view_entry( - category = "linux|TSan v2", - short_name = "tst", - ), - triggered_by = [builder_name("Linux TSan Builder")], -) - -ci.win_builder( - name = "Win7 Tests (dbg)(1)", - console_view_entry = ci.console_view_entry( - category = "debug|tester", - short_name = "7", - ), - os = os.WINDOWS_7, - triggered_by = [builder_name("Win Builder (dbg)")], -) - -ci.win_builder( - name = "Win 7 Tests x64 (1)", - console_view_entry = ci.console_view_entry( - category = "release|tester", - short_name = "64", - ), - os = os.WINDOWS_7, - triggered_by = [builder_name("Win x64 Builder")], -) - -ci.win_builder( - name = "Win Builder (dbg)", - console_view_entry = ci.console_view_entry( - category = "debug|builder", - short_name = "32", - ), - cores = 32, - os = os.WINDOWS_ANY, -) - -ci.win_builder( - name = "Win x64 Builder", - console_view_entry = ci.console_view_entry( - category = "release|builder", - short_name = "64", - ), - cores = 32, - os = os.WINDOWS_ANY, -) - -ci.win_builder( - name = "Win10 Tests x64", - console_view_entry = ci.console_view_entry( - category = "release|tester", - short_name = "w10", - ), - triggered_by = [builder_name("Win x64 Builder")], -)
diff --git a/infra/config/subprojects/chromium/versioned/m84/buckets/try.star b/infra/config/subprojects/chromium/versioned/m84/buckets/try.star deleted file mode 100644 index f34652f..0000000 --- a/infra/config/subprojects/chromium/versioned/m84/buckets/try.star +++ /dev/null
@@ -1,643 +0,0 @@ -# Copyright 2020 The Chromium Authors. All rights reserved. -# Use of this source code is governed by a BSD-style license that can be -# found in the LICENSE file. - -load("//lib/builders.star", "goma", "os") -load("//lib/try.star", "try_") - -# Load this using relative path so that the load statement doesn't -# need to be changed when making a new milestone -load("../vars.star", "vars") - -try_.declare_bucket(vars) - -try_.set_defaults( - vars, - main_list_view = vars.main_list_view_name, -) - -# Builders are sorted first lexicographically by the function used to define -# them, then lexicographically by their name - -try_.blink_builder( - name = "linux-blink-rel", - goma_backend = goma.backend.RBE_PROD, - tryjob = try_.job( - location_regexp = [ - ".+/[+]/cc/.+", - ".+/[+]/third_party/blink/renderer/core/paint/.+", - ".+/[+]/third_party/blink/renderer/core/svg/.+", - ".+/[+]/third_party/blink/renderer/platform/graphics/.+", - ], - ), -) - -try_.chromium_android_builder( - name = "android-binary-size", - executable = "recipe:binary_size_trybot", - goma_jobs = goma.jobs.J150, - properties = { - "$build/binary_size": { - "analyze_targets": [ - "//android_webview:system_webview_apk_manifest_expectations", - "//android_webview:trichrome_webview_apk_manifest_expectations", - "//chrome/android:chrome_modern_public_bundle__base_libs_and_assets_expectations", - "//chrome/android:monochrome_public_bundle__base_bundle_module_manifest_expectations", - "//chrome/android:monochrome_public_bundle__base_libs_and_assets_expectations", - "//chrome/android:monochrome_public_bundle_proguard_expectations", - "//chrome/android:monochrome_public_minimal_apks", - "//chrome/android:trichrome_chrome_bundle__base_bundle_module_manifest_expectations", - "//chrome/android:trichrome_chrome_bundle__base_libs_and_assets_expectations", - "//chrome/android:trichrome_library_apk_libs_and_assets_expectations", - "//chrome/android:trichrome_library_apk_manifest_expectations", - "//tools/binary_size:binary_size_trybot_py", - ], - "compile_targets": [ - "chrome_modern_public_bundle__base_libs_and_assets_expectations", - "monochrome_public_bundle__base_bundle_module_manifest_expectations", - "monochrome_public_bundle__base_libs_and_assets_expectations", - "monochrome_public_bundle_proguard_expectations", - "monochrome_public_minimal_apks", - "monochrome_static_initializers", - "system_webview_apk_manifest_expectations", - "trichrome_chrome_bundle__base_bundle_module_manifest_expectations", - "trichrome_chrome_bundle__base_libs_and_assets_expectations", - "trichrome_library_apk_libs_and_assets_expectations", - "trichrome_library_apk_manifest_expectations", - "trichrome_webview_apk_manifest_expectations", - ], - }, - }, - tryjob = try_.job(), -) - -try_.chromium_android_builder( - name = "android-cronet-arm-dbg", - tryjob = try_.job( - location_regexp = [ - ".+/[+]/components/cronet/.+", - ".+/[+]/components/grpc_support/.+", - ".+/[+]/build/android/.+", - ".+/[+]/build/config/android/.+", - ], - location_regexp_exclude = [ - ".+/[+]/components/cronet/ios/.+", - ], - ), -) - -try_.chromium_android_builder( - name = "android-lollipop-arm-rel", - goma_jobs = goma.jobs.J150, - tryjob = try_.job(), -) - -try_.chromium_android_builder( - name = "android-marshmallow-arm64-rel", - cores = 16, - goma_jobs = goma.jobs.J300, - ssd = True, - use_java_coverage = True, - tryjob = try_.job(), -) - -try_.chromium_android_builder( - name = "android-pie-arm64-dbg", - tryjob = try_.job( - location_regexp = [ - ".+/[+]/chrome/android/features/vr/.+", - ".+/[+]/chrome/android/java/src/org/chromium/chrome/browser/vr/.+", - ".+/[+]/chrome/android/javatests/src/org/chromium/chrome/browser/vr/.+", - ".+/[+]/chrome/browser/vr/.+", - ".+/[+]/content/browser/xr/.+", - ".+/[+]/third_party/gvr-android-sdk/.+", - ".+/[+]/third_party/arcore-android-sdk/.+", - ".+/[+]/third_party/arcore-android-sdk-client/.+", - ], - ), -) - -try_.chromium_android_builder( - name = "android-pie-arm64-rel", - cores = 16, - goma_jobs = goma.jobs.J300, - ssd = True, - # TODO(crbug.com/1111436): Enable on CQ once the maintenance for - # Pixel 2 devices are finished. - #tryjob = try_.job(), -) - -try_.chromium_android_builder( - name = "android_compile_dbg", - goma_jobs = goma.jobs.J150, - tryjob = try_.job(), -) - -try_.chromium_android_builder( - name = "android_compile_x64_dbg", - tryjob = try_.job( - location_regexp = [ - ".+/[+]/chrome/android/java/src/org/chromium/chrome/browser/vr/.+", - ".+/[+]/chrome/browser/vr/.+", - ".+/[+]/content/browser/xr/.+", - ".+/[+]/sandbox/linux/seccomp-bpf/.+", - ".+/[+]/sandbox/linux/seccomp-bpf-helpers/.+", - ".+/[+]/sandbox/linux/system_headers/.+", - ".+/[+]/sandbox/linux/tests/.+", - ".+/[+]/third_party/gvr-android-sdk/.+", - ], - ), -) - -try_.chromium_android_builder( - name = "android_compile_x86_dbg", - tryjob = try_.job( - location_regexp = [ - ".+/[+]/chrome/android/java/src/org/chromium/chrome/browser/vr/.+", - ".+/[+]/chrome/browser/vr/.+", - ".+/[+]/content/browser/xr/.+", - ".+/[+]/sandbox/linux/seccomp-bpf/.+", - ".+/[+]/sandbox/linux/seccomp-bpf-helpers/.+", - ".+/[+]/sandbox/linux/system_headers/.+", - ".+/[+]/sandbox/linux/tests/.+", - ".+/[+]/third_party/gvr-android-sdk/.+", - ], - ), -) - -try_.chromium_android_builder( - name = "android_cronet", - tryjob = try_.job(), -) - -try_.chromium_android_builder( - name = "cast_shell_android", - tryjob = try_.job(), -) - -try_.chromium_chromiumos_builder( - name = "chromeos-amd64-generic-dbg", - tryjob = try_.job( - location_regexp = [ - ".+/[+]/content/gpu/.+", - ".+/[+]/media/.+", - ], - ), -) - -try_.chromium_chromiumos_builder( - name = "chromeos-amd64-generic-rel", - tryjob = try_.job(), -) - -try_.chromium_chromiumos_builder( - name = "chromeos-arm-generic-rel", - tryjob = try_.job(), -) - -try_.chromium_chromiumos_builder( - name = "linux-chromeos-compile-dbg", - tryjob = try_.job(), -) - -try_.chromium_chromiumos_builder( - name = "linux-chromeos-rel", - goma_jobs = goma.jobs.J150, - tryjob = try_.job(cancel_stale = False), - use_clang_coverage = True, -) - -try_.chromium_dawn_builder( - name = "dawn-linux-x64-deps-rel", - tryjob = try_.job( - location_regexp = [ - ".+/[+]/gpu/.+", - ".+/[+]/testing/buildbot/chromium.dawn.json", - ".+/[+]/third_party/blink/renderer/modules/webgpu/.+", - ".+/[+]/third_party/blink/web_tests/external/wpt/webgpu/.+", - ".+/[+]/third_party/blink/web_tests/wpt_internal/webgpu/.+", - ".+/[+]/third_party/blink/web_tests/WebGPUExpectations", - ".+/[+]/third_party/dawn/.+", - ".+/[+]/tools/clang/scripts/update.py", - ".+/[+]/ui/gl/features.gni", - ], - ), -) - -try_.chromium_dawn_builder( - name = "dawn-mac-x64-deps-rel", - os = os.MAC_ANY, - tryjob = try_.job( - location_regexp = [ - ".+/[+]/gpu/.+", - ".+/[+]/testing/buildbot/chromium.dawn.json", - ".+/[+]/third_party/blink/renderer/modules/webgpu/.+", - ".+/[+]/third_party/blink/web_tests/external/wpt/webgpu/.+", - ".+/[+]/third_party/blink/web_tests/wpt_internal/webgpu/.+", - ".+/[+]/third_party/blink/web_tests/WebGPUExpectations", - ".+/[+]/third_party/dawn/.+", - ".+/[+]/tools/clang/scripts/update.py", - ".+/[+]/ui/gl/features.gni", - ], - ), -) - -try_.chromium_dawn_builder( - name = "dawn-win10-x64-deps-rel", - os = os.WINDOWS_ANY, - tryjob = try_.job( - location_regexp = [ - ".+/[+]/gpu/.+", - ".+/[+]/testing/buildbot/chromium.dawn.json", - ".+/[+]/third_party/blink/renderer/modules/webgpu/.+", - ".+/[+]/third_party/blink/web_tests/external/wpt/webgpu/.+", - ".+/[+]/third_party/blink/web_tests/wpt_internal/webgpu/.+", - ".+/[+]/third_party/blink/web_tests/WebGPUExpectations", - ".+/[+]/third_party/dawn/.+", - ".+/[+]/tools/clang/scripts/update.py", - ".+/[+]/ui/gl/features.gni", - ], - ), -) - -try_.chromium_dawn_builder( - name = "dawn-win10-x86-deps-rel", - os = os.WINDOWS_ANY, - tryjob = try_.job( - location_regexp = [ - ".+/[+]/gpu/.+", - ".+/[+]/testing/buildbot/chromium.dawn.json", - ".+/[+]/third_party/blink/renderer/modules/webgpu/.+", - ".+/[+]/third_party/blink/web_tests/external/wpt/webgpu/.+", - ".+/[+]/third_party/blink/web_tests/wpt_internal/webgpu/.+", - ".+/[+]/third_party/blink/web_tests/WebGPUExpectations", - ".+/[+]/third_party/dawn/.+", - ".+/[+]/tools/clang/scripts/update.py", - ".+/[+]/ui/gl/features.gni", - ], - ), -) - -try_.chromium_linux_builder( - name = "cast_shell_linux", - tryjob = try_.job(), -) - -try_.chromium_linux_builder( - name = "closure_compilation", - executable = "recipe:closure_compilation", - tryjob = try_.job( - location_regexp = [ - ".+/[+]/third_party/closure_compiler/.+", - ], - ), -) - -try_.chromium_linux_builder( - name = "chromium_presubmit", - executable = "recipe:presubmit", - goma_backend = None, - properties = { - "$depot_tools/presubmit": { - "runhooks": True, - "timeout_s": 480, - }, - "repo_name": "chromium", - }, - tryjob = try_.job( - disable_reuse = True, - add_default_excludes = False, - ), -) - -try_.chromium_linux_builder( - name = "fuchsia-arm64-cast", - tryjob = try_.job( - location_regexp = [ - ".+/[+]/chromecast/.+", - ], - ), -) - -try_.chromium_linux_builder( - name = "fuchsia-x64-cast", - tryjob = try_.job(), -) - -try_.chromium_linux_builder( - name = "fuchsia_arm64", - tryjob = try_.job(), -) - -try_.chromium_linux_builder( - name = "fuchsia_x64", - tryjob = try_.job(), -) - -try_.chromium_linux_builder( - name = "linux-libfuzzer-asan-rel", - executable = "recipe:chromium_libfuzzer_trybot", - tryjob = try_.job(), -) - -try_.chromium_linux_builder( - name = "linux-ozone-rel", - tryjob = try_.job(), -) - -try_.chromium_linux_builder( - name = "linux-rel", - goma_jobs = goma.jobs.J150, - tryjob = try_.job(), - use_clang_coverage = True, -) - -try_.chromium_linux_builder( - name = "linux_chromium_asan_rel_ng", - goma_jobs = goma.jobs.J150, - ssd = True, - tryjob = try_.job(), -) - -try_.chromium_linux_builder( - name = "linux_chromium_compile_dbg_ng", - caches = [ - swarming.cache( - name = "builder", - path = "linux_debug", - ), - ], - goma_jobs = goma.jobs.J150, - tryjob = try_.job(), -) - -try_.chromium_linux_builder( - name = "linux_chromium_dbg_ng", - caches = [ - swarming.cache( - name = "builder", - path = "linux_debug", - ), - ], - tryjob = try_.job( - location_regexp = [ - ".+/[+]/build/.*check_gn_headers.*", - ], - ), -) - -try_.chromium_linux_builder( - name = "linux_chromium_tsan_rel_ng", - goma_jobs = goma.jobs.J150, - tryjob = try_.job(), -) - -try_.chromium_linux_builder( - name = "linux_layout_tests_composite_after_paint", - tryjob = try_.job( - location_regexp = [ - ".+/[+]/third_party/blink/renderer/core/paint/.+", - ".+/[+]/third_party/blink/renderer/core/svg/.+", - ".+/[+]/third_party/blink/renderer/platform/graphics/.+", - ".+/[+]/third_party/blink/web_tests/.+", - ], - ), -) - -try_.chromium_linux_builder( - name = "linux_layout_tests_layout_ng_disabled", - tryjob = try_.job( - location_regexp = [ - ".+/[+]/third_party/blink/renderer/core/editing/.+", - ".+/[+]/third_party/blink/renderer/core/layout/.+", - ".+/[+]/third_party/blink/renderer/core/paint/.+", - ".+/[+]/third_party/blink/renderer/core/svg/.+", - ".+/[+]/third_party/blink/renderer/platform/fonts/shaping/.+", - ".+/[+]/third_party/blink/renderer/platform/graphics/.+", - ".+/[+]/third_party/blink/web_tests/FlagExpectations/disable-layout-ng", - ".+/[+]/third_party/blink/web_tests/flag-specific/disable-layout-ng/.+", - ], - ), -) - -try_.chromium_linux_builder( - name = "linux_vr", - tryjob = try_.job( - location_regexp = [ - ".+/[+]/chrome/browser/vr/.+", - ".+/[+]/content/browser/xr/.+", - ], - ), -) - -try_.chromium_mac_builder( - name = "mac-rel", - goma_jobs = goma.jobs.J150, - os = os.MAC_10_13, - tryjob = try_.job(), -) - -try_.chromium_mac_builder( - name = "mac_chromium_compile_dbg_ng", - goma_jobs = goma.jobs.J150, - os = os.MAC_10_13, - tryjob = try_.job(), -) - -try_.chromium_mac_ios_builder( - name = "ios-simulator", - executable = "recipe:chromium_trybot", - fully_qualified_builder_dimension = True, - properties = { - "xcode_build_version": "11e146", - }, - tryjob = try_.job(), -) - -try_.chromium_mac_ios_builder( - name = "ios-simulator-cronet", - executable = "recipe:chromium_trybot", - fully_qualified_builder_dimension = True, - properties = { - "xcode_build_version": "11e146", - }, - tryjob = try_.job( - location_regexp = [ - ".+/[+]/components/cronet/.+", - ".+/[+]/components/grpc_support/.+", - ".+/[+]/ios/.+", - ], - location_regexp_exclude = [ - ".+/[+]/components/cronet/android/.+", - ], - ), -) - -try_.chromium_mac_ios_builder( - name = "ios-simulator-full-configs", - executable = "recipe:chromium_trybot", - fully_qualified_builder_dimension = True, - properties = { - "xcode_build_version": "11e146", - }, - tryjob = try_.job( - location_regexp = [ - ".+/[+]/ios/.+", - ], - ), -) - -try_.chromium_win_builder( - name = "win-libfuzzer-asan-rel", - builderless = False, - executable = "recipe:chromium_libfuzzer_trybot", - os = os.WINDOWS_ANY, - tryjob = try_.job(cancel_stale = False), -) - -try_.chromium_win_builder( - name = "win_chromium_compile_dbg_ng", - goma_jobs = goma.jobs.J150, - tryjob = try_.job(cancel_stale = False), -) - -try_.chromium_win_builder( - name = "win10_chromium_x64_rel_ng", - goma_jobs = goma.jobs.J150, - os = os.WINDOWS_10, - ssd = True, - use_clang_coverage = True, - tryjob = try_.job(cancel_stale = False), -) - -try_.gpu_chromium_android_builder( - name = "android_optional_gpu_tests_rel", - tryjob = try_.job( - location_regexp = [ - ".+/[+]/cc/.+", - ".+/[+]/chrome/browser/vr/.+", - ".+/[+]/content/browser/xr/.+", - ".+/[+]/components/viz/.+", - ".+/[+]/content/test/gpu/.+", - ".+/[+]/gpu/.+", - ".+/[+]/media/audio/.+", - ".+/[+]/media/filters/.+", - ".+/[+]/media/gpu/.+", - ".+/[+]/services/viz/.+", - ".+/[+]/testing/trigger_scripts/.+", - ".+/[+]/third_party/blink/renderer/modules/webgl/.+", - ".+/[+]/third_party/blink/renderer/platform/graphics/gpu/.+", - ".+/[+]/tools/clang/scripts/update.py", - ".+/[+]/ui/gl/.+", - ], - ), -) - -try_.gpu_chromium_linux_builder( - name = "linux_optional_gpu_tests_rel", - tryjob = try_.job( - location_regexp = [ - ".+/[+]/chrome/browser/vr/.+", - ".+/[+]/content/browser/xr/.+", - ".+/[+]/content/test/gpu/.+", - ".+/[+]/gpu/.+", - ".+/[+]/media/audio/.+", - ".+/[+]/media/filters/.+", - ".+/[+]/media/gpu/.+", - ".+/[+]/testing/buildbot/chromium.gpu.fyi.json", - ".+/[+]/testing/trigger_scripts/.+", - ".+/[+]/third_party/blink/renderer/modules/webgl/.+", - ".+/[+]/third_party/blink/renderer/platform/graphics/gpu/.+", - ".+/[+]/tools/clang/scripts/update.py", - ".+/[+]/ui/gl/.+", - ], - ), -) - -try_.gpu_chromium_mac_builder( - name = "mac_optional_gpu_tests_rel", - tryjob = try_.job( - location_regexp = [ - ".+/[+]/chrome/browser/vr/.+", - ".+/[+]/content/browser/xr/.+", - ".+/[+]/content/test/gpu/.+", - ".+/[+]/gpu/.+", - ".+/[+]/media/audio/.+", - ".+/[+]/media/filters/.+", - ".+/[+]/media/gpu/.+", - ".+/[+]/services/shape_detection/.+", - ".+/[+]/testing/buildbot/chromium.gpu.fyi.json", - ".+/[+]/testing/trigger_scripts/.+", - ".+/[+]/third_party/blink/renderer/modules/webgl/.+", - ".+/[+]/third_party/blink/renderer/platform/graphics/gpu/.+", - ".+/[+]/tools/clang/scripts/update.py", - ".+/[+]/ui/gl/.+", - ], - ), -) - -try_.gpu_chromium_win_builder( - name = "win_optional_gpu_tests_rel", - builderless = True, - os = os.WINDOWS_DEFAULT, - tryjob = try_.job( - location_regexp = [ - ".+/[+]/chrome/browser/vr/.+", - ".+/[+]/content/browser/xr/.+", - ".+/[+]/content/test/gpu/.+", - ".+/[+]/device/vr/.+", - ".+/[+]/gpu/.+", - ".+/[+]/media/audio/.+", - ".+/[+]/media/filters/.+", - ".+/[+]/media/gpu/.+", - ".+/[+]/testing/buildbot/chromium.gpu.fyi.json", - ".+/[+]/testing/trigger_scripts/.+", - ".+/[+]/third_party/blink/renderer/modules/vr/.+", - ".+/[+]/third_party/blink/renderer/modules/webgl/.+", - ".+/[+]/third_party/blink/renderer/modules/xr/.+", - ".+/[+]/third_party/blink/renderer/platform/graphics/gpu/.+", - ".+/[+]/tools/clang/scripts/update.py", - ".+/[+]/ui/gl/.+", - ], - ), -) - -# Used for listing chrome trybots in chromium's commit-queue.cfg without also -# adding them to chromium's cr-buildbucket.cfg. Note that the recipe these -# builders run allow only known roller accounts when triggered via the CQ. -def chrome_internal_verifier( - *, - builder): - luci.cq_tryjob_verifier( - builder = "chrome:try/" + builder, - cq_group = vars.cq_group, - includable_only = True, - owner_whitelist = [ - "googlers", - "project-chromium-robot-committers", - ], - ) - -chrome_internal_verifier( - builder = "mac-chrome-beta", -) - -chrome_internal_verifier( - builder = "mac-chrome-stable", -) - -chrome_internal_verifier( - builder = "win-chrome-beta", -) - -chrome_internal_verifier( - builder = "win-chrome-stable", -) - -chrome_internal_verifier( - builder = "win64-chrome-beta", -) - -chrome_internal_verifier( - builder = "win64-chrome-stable", -)
diff --git a/infra/config/subprojects/chromium/versioned/m84/vars.star b/infra/config/subprojects/chromium/versioned/m84/vars.star deleted file mode 100644 index 4d18907..0000000 --- a/infra/config/subprojects/chromium/versioned/m84/vars.star +++ /dev/null
@@ -1,21 +0,0 @@ -# Copyright 2020 The Chromium Authors. All rights reserved. -# Use of this source code is governed by a BSD-style license that can be -# found in the LICENSE file. - -vars = struct( - is_master = False, - ref = "refs/branch-heads/4147", - ci_bucket = "ci-m84", - ci_poller = "m84-gitiles-trigger", - main_console_name = "main-m84", - main_console_title = "Chromium M84 Console", - cq_mirrors_console_name = "mirrors-m84", - cq_mirrors_console_title = "Chromium M84 CQ Mirrors Console", - try_bucket = "try-m84", - try_triggering_projects = [], - cq_group = "cq-m84", - cq_ref_regexp = "refs/branch-heads/4147", - main_list_view_name = "try-m84", - main_list_view_title = "Chromium M84 CQ console", - tree_status_host = None, -)
diff --git a/ios/chrome/app/strings/ios_chromium_strings.grd b/ios/chrome/app/strings/ios_chromium_strings.grd index c2a99e856..2b651c55f 100644 --- a/ios/chrome/app/strings/ios_chromium_strings.grd +++ b/ios/chrome/app/strings/ios_chromium_strings.grd
@@ -193,9 +193,6 @@ 2. Tap Default Browser App. 3. Select Chromium. </message> - <message name="IDS_IOS_DEFAULT_BROWSER_MAIN_BUTTON_TEXT" desc="Text of the button that will take the user to the Settings page to configure the default browser [iOS only]"> - Open Settings - </message> <message name="IDS_IOS_DISCONNECT_DIALOG_TITLE" desc="The title of the disconnect dialog [Length: 30em]."> Sign out of Chromium? </message>
diff --git a/ios/chrome/app/strings/ios_chromium_strings_grd/IDS_IOS_DEFAULT_BROWSER_MAIN_BUTTON_TEXT.png.sha1 b/ios/chrome/app/strings/ios_chromium_strings_grd/IDS_IOS_DEFAULT_BROWSER_MAIN_BUTTON_TEXT.png.sha1 deleted file mode 100644 index 7780499..0000000 --- a/ios/chrome/app/strings/ios_chromium_strings_grd/IDS_IOS_DEFAULT_BROWSER_MAIN_BUTTON_TEXT.png.sha1 +++ /dev/null
@@ -1 +0,0 @@ -7aae04d002cdaa1231f1c8e7b4bfc9e206de5d20 \ No newline at end of file
diff --git a/ios/chrome/app/strings/ios_google_chrome_strings.grd b/ios/chrome/app/strings/ios_google_chrome_strings.grd index a818a55..aea8d80 100644 --- a/ios/chrome/app/strings/ios_google_chrome_strings.grd +++ b/ios/chrome/app/strings/ios_google_chrome_strings.grd
@@ -193,9 +193,6 @@ 2. Tap Default Browser App. 3. Select Chrome. </message> - <message name="IDS_IOS_DEFAULT_BROWSER_MAIN_BUTTON_TEXT" desc="Text of the button that will take the user to the Settings page to configure the default browser [iOS only]"> - Open Settings - </message> <message name="IDS_IOS_DISCONNECT_DIALOG_TITLE" desc="The title of the disconnect dialog [Length: 30em]."> Sign out of Chrome? </message>
diff --git a/ios/chrome/app/strings/ios_google_chrome_strings_grd/IDS_IOS_DEFAULT_BROWSER_MAIN_BUTTON_TEXT.png.sha1 b/ios/chrome/app/strings/ios_google_chrome_strings_grd/IDS_IOS_DEFAULT_BROWSER_MAIN_BUTTON_TEXT.png.sha1 deleted file mode 100644 index 49a2d4c..0000000 --- a/ios/chrome/app/strings/ios_google_chrome_strings_grd/IDS_IOS_DEFAULT_BROWSER_MAIN_BUTTON_TEXT.png.sha1 +++ /dev/null
@@ -1 +0,0 @@ -e1e58ae4b84528a857549e1e78e290e2a9e73b4f \ No newline at end of file
diff --git a/ios/chrome/app/strings/ios_strings.grd b/ios/chrome/app/strings/ios_strings.grd index ffb14b3..25553c5 100644 --- a/ios/chrome/app/strings/ios_strings.grd +++ b/ios/chrome/app/strings/ios_strings.grd
@@ -688,6 +688,12 @@ <message name="IDS_IOS_CREDIT_CARD_SCANNER_VIEWPORT_CAPTION" desc="Message displayed below the Credit Card scanner viewport instructing the user to position the Credit Card inside the viewport. [Length: unlimited] [iOS only]"> Position Credit Card in this frame </message> + <message name="IDS_IOS_DEFAULT_BROWSER_MAIN_BUTTON_TEXT" desc="Text of the button that will take the user to the Settings page to configure the default browser [iOS only]"> + Open Settings + </message> + <message name="IDS_IOS_DEFAULT_BROWSER_SECONDARY_BUTTON_TEXT" desc="Text of secondary button that will dismiss the default browser modal promo UI [iOS only]"> + No Thanks + </message> <message name="IDS_IOS_DISCONNECT_DIALOG_CONTINUE_BUTTON_MOBILE" desc="The title of the continue button on the disconnect dialog [Length: 20em]."> Sign Out </message>
diff --git a/ios/chrome/app/strings/ios_strings_grd/IDS_IOS_DEFAULT_BROWSER_MAIN_BUTTON_TEXT.png.sha1 b/ios/chrome/app/strings/ios_strings_grd/IDS_IOS_DEFAULT_BROWSER_MAIN_BUTTON_TEXT.png.sha1 new file mode 100644 index 0000000..73d3081 --- /dev/null +++ b/ios/chrome/app/strings/ios_strings_grd/IDS_IOS_DEFAULT_BROWSER_MAIN_BUTTON_TEXT.png.sha1
@@ -0,0 +1 @@ +eb29c6230942f94836f7cc4011c52e5083b7b20f \ No newline at end of file
diff --git a/ios/chrome/app/strings/ios_strings_grd/IDS_IOS_DEFAULT_BROWSER_SECONDARY_BUTTON_TEXT.png.sha1 b/ios/chrome/app/strings/ios_strings_grd/IDS_IOS_DEFAULT_BROWSER_SECONDARY_BUTTON_TEXT.png.sha1 new file mode 100644 index 0000000..73d3081 --- /dev/null +++ b/ios/chrome/app/strings/ios_strings_grd/IDS_IOS_DEFAULT_BROWSER_SECONDARY_BUTTON_TEXT.png.sha1
@@ -0,0 +1 @@ +eb29c6230942f94836f7cc4011c52e5083b7b20f \ No newline at end of file
diff --git a/ios/chrome/app/strings/resources/ios_chromium_strings_af.xtb b/ios/chrome/app/strings/resources/ios_chromium_strings_af.xtb index 039c8e5..14c22ce1 100644 --- a/ios/chrome/app/strings/resources/ios_chromium_strings_af.xtb +++ b/ios/chrome/app/strings/resources/ios_chromium_strings_af.xtb
@@ -45,7 +45,7 @@ <translation id="7118091470949186573">Jy kan Chromium nou enige tyd gebruik wanneer jy op skakels in boodskappe, dokumente en ander programme tik.</translation> <translation id="7173114856073700355">Maak Instellings oop</translation> <translation id="7208566199746267865">Chromium spaar jou tyd deur jou rekeninge na die web te bring. Jy kan rekeninge in Instellings byvoeg of verwyder.</translation> -<translation id="725427773388857052">Chromium kan help om jou teen dataskendings, onveilige webwerwe, en meer te beskerm.</translation> +<translation id="725427773388857052">Chromium kan help om jou teen dataskendings, onveilige webwerwe en meer te beskerm.</translation> <translation id="7269362888766543920">Sekere byvoegings veroorsaak dat Chromium omval. Probeer om hulle te deïnstalleer.</translation> <translation id="7337881442233988129">Chromium</translation> <translation id="7349905826685622881">Om Chromium jou verstekblaaier te maak:
diff --git a/ios/chrome/app/strings/resources/ios_google_chrome_strings_af.xtb b/ios/chrome/app/strings/resources/ios_google_chrome_strings_af.xtb index 7c411cf..6308de7 100644 --- a/ios/chrome/app/strings/resources/ios_google_chrome_strings_af.xtb +++ b/ios/chrome/app/strings/resources/ios_google_chrome_strings_af.xtb
@@ -35,7 +35,7 @@ <translation id="4249068189593983585">Chrome-wenk. Vir meer oortjieopsies, raak en hou die Wys Oortjies-knoppie op die nutsbalk aan die onderkant of bokant van jou skerm.</translation> <translation id="4523886039239821078">Sekere byvoegings het veroorsaak dat Chrome omval. Probeer om hulle te deïnstalleer:</translation> <translation id="4698415050768537821">Chrome kon nie alle wagwoorde nagaan nie. Probeer môre weer of <ph name="BEGIN_LINK" />gaan wagwoorde in jou Google-rekening na<ph name="END_LINK" />.</translation> -<translation id="5030102366287574140">Chrome kan help om jou teen dataskendings, onveilige webwerwe, en meer te beskerm.</translation> +<translation id="5030102366287574140">Chrome kan help om jou teen dataskendings, onveilige webwerwe en meer te beskerm.</translation> <translation id="5389212809648216794">Google Chrome kan nie jou kamera gebruik nie omdat dit deur 'n ander program gebruik word</translation> <translation id="5639704535586432836">Maak Instellings > Privaatheid > Kamera > Google Chrome oop en skakel die kamera aan.</translation> <translation id="5642200033778930880">Google Chrome kan nie jou kamera in deelaansigmodus gebruik nie</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_bn.xtb b/ios/chrome/app/strings/resources/ios_strings_bn.xtb index 13875b5..0325879 100644 --- a/ios/chrome/app/strings/resources/ios_strings_bn.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_bn.xtb
@@ -156,6 +156,7 @@ <translation id="2712127207578915686">ফাইল খুলতে অক্ষম</translation> <translation id="2718352093833049315">শুধুমাত্র ওয়াই-ফাই এ</translation> <translation id="2747003861858887689">পূর্ববর্তী ফিল্ড</translation> +<translation id="2764831210418622012">এইমাত্র</translation> <translation id="2773292004659987824">ছদ্মবেশী সার্চ</translation> <translation id="277771892408211951">ভাষা বেছে নিন</translation> <translation id="2780046210906776326">কোনো ইমেল অ্যাকাউন্ট নেই</translation> @@ -301,6 +302,7 @@ <translation id="4476574785019001431">সেটিংস</translation> <translation id="4496373720959965247">পৃষ্ঠার মধ্যে ট্যাব এবং পাল্টানো যোগ করুন</translation> <translation id="4502566650163919158">এখনই চেক করুন</translation> +<translation id="4505980578794259603"><ph name="TIME" /> শেষবার চেক করা হয়েছে।</translation> <translation id="4508750114462689118">সাইন-ইন প্রোমো বন্ধ করুন</translation> <translation id="4526249700380860531"><ph name="BEGIN_LINK" />passwords.google.com<ph name="END_LINK" /> এ গিয়ে সংরক্ষণ করা পাসওয়ার্ডগুলি দেখুন ও পরিচালনা করুন</translation> <translation id="4536418791685807335">আবার সাইন ইন করার চেষ্টা করুন।</translation> @@ -483,6 +485,7 @@ <translation id="6445051938772793705">দেশ</translation> <translation id="6445981559479772097">বার্তা পাঠানো হয়েছে৷</translation> <translation id="6447842834002726250">কুকিজ</translation> +<translation id="6453018583485750254">কখনও চেক করা হয়নি।</translation> <translation id="6464071786529933911">নতুন ছদ্মবেশী ট্যাবে খুলুন</translation> <translation id="6464397691496239022">আপনি যাতে সাইন-ইন হয়ে থাকতে পারেন তার ব্যবস্থা করা বা শপিং কার্টে আপনার বেছে নেওয়া আইটেমগুলি মনে রাখার মতো আপনার ব্রাউজিং অভিজ্ঞতা আরও ভাল করার জন্য সাইট কুকি ব্যবহার করতে পারবে।
diff --git a/ios/chrome/app/strings/resources/ios_strings_fr-CA.xtb b/ios/chrome/app/strings/resources/ios_strings_fr-CA.xtb index 9dbfe4b..8121912a 100644 --- a/ios/chrome/app/strings/resources/ios_strings_fr-CA.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_fr-CA.xtb
@@ -500,7 +500,7 @@ <translation id="6624219055418309072">Bloquer en mode de navigation privée</translation> <translation id="6628106477656132239">Date d'expiration incorrecte</translation> <translation id="6638511529934826365">Zoomer sur le texte…</translation> -<translation id="6639730758971422557">Pour activer la navigation sécurisée, ouvrez <ph name="BEGIN_LINK" />Synchronisation et services Google<ph name="END_LINK" /> et appuyez sur Navigation sécurisée.</translation> +<translation id="6639730758971422557">Pour activer la navigation sécurisée, ouvrez <ph name="BEGIN_LINK" />Synchronisation et services Google<ph name="END_LINK" /> et touchez Navigation sécurisée.</translation> <translation id="6642362222295953972">Passer à l'onglet déjà ouvert</translation> <translation id="6643016212128521049">Effacer</translation> <translation id="6645899968535965230">Code QR : <ph name="PAGE_TITLE" /></translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_fr.xtb b/ios/chrome/app/strings/resources/ios_strings_fr.xtb index 77c8c85..a93ee701 100644 --- a/ios/chrome/app/strings/resources/ios_strings_fr.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_fr.xtb
@@ -156,6 +156,7 @@ <translation id="2712127207578915686">Impossible ouvrir fichier</translation> <translation id="2718352093833049315">Wi-Fi uniquement</translation> <translation id="2747003861858887689">Champ précédent</translation> +<translation id="2764831210418622012">à l'instant</translation> <translation id="2773292004659987824">Recherche en mode navigation privée</translation> <translation id="277771892408211951">Sélectionner la langue</translation> <translation id="2780046210906776326">Aucun compte messag.</translation> @@ -301,6 +302,7 @@ <translation id="4476574785019001431">Paramètres</translation> <translation id="4496373720959965247">Ajoutez des onglets pour naviguer d'une page à l'autre</translation> <translation id="4502566650163919158">Vérifier maintenant</translation> +<translation id="4505980578794259603">Dernière vérification <ph name="TIME" />.</translation> <translation id="4508750114462689118">Fermer la promo de connexion</translation> <translation id="4526249700380860531">Afficher et gérer les mots de passe enregistrés sur <ph name="BEGIN_LINK" />passwords.google.com<ph name="END_LINK" /></translation> <translation id="4536418791685807335">Veuillez essayer de vous reconnecter.</translation> @@ -482,6 +484,7 @@ <translation id="6445051938772793705">Pays</translation> <translation id="6445981559479772097">Message envoyé.</translation> <translation id="6447842834002726250">Cookies</translation> +<translation id="6453018583485750254">Aucune vérification jusqu'à présent.</translation> <translation id="6464071786529933911">Ouvrir nouvel onglet navigation privée</translation> <translation id="6464397691496239022">Les sites peuvent utiliser des cookies pour améliorer votre expérience de navigation (par exemple, pour maintenir votre connexion ou mémoriser les articles de votre panier).
diff --git a/ios/chrome/app/strings/resources/ios_strings_gl.xtb b/ios/chrome/app/strings/resources/ios_strings_gl.xtb index e9d4220..e631529e 100644 --- a/ios/chrome/app/strings/resources/ios_strings_gl.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_gl.xtb
@@ -156,6 +156,7 @@ <translation id="2712127207578915686">Non se pode abrir o ficheiro</translation> <translation id="2718352093833049315">Só con wifi</translation> <translation id="2747003861858887689">Campo anterior</translation> +<translation id="2764831210418622012">agora mesmo</translation> <translation id="2773292004659987824">Busca do modo de incógnito</translation> <translation id="277771892408211951">Seleccionar idioma</translation> <translation id="2780046210906776326">Non hai ningunha conta de correo electrónico</translation> @@ -301,6 +302,7 @@ <translation id="4476574785019001431">Configuración</translation> <translation id="4496373720959965247">Engade pestanas e cambia dunha páxina a outra</translation> <translation id="4502566650163919158">Comprobar agora</translation> +<translation id="4505980578794259603">Última comprobación: <ph name="TIME" />.</translation> <translation id="4508750114462689118">Pecha a promoción de inicio de sesión</translation> <translation id="4526249700380860531">Ver e xestionar os contrasinais gardados en <ph name="BEGIN_LINK" />passwords.google.com<ph name="END_LINK" /></translation> <translation id="4536418791685807335">Proba a volver iniciar sesión.</translation> @@ -482,6 +484,7 @@ <translation id="6445051938772793705">País</translation> <translation id="6445981559479772097">Mensaxe enviada.</translation> <translation id="6447842834002726250">Cookies</translation> +<translation id="6453018583485750254">Aínda non se realizou ningunha comprobación.</translation> <translation id="6464071786529933911">Abrir en pestana incógn.</translation> <translation id="6464397691496239022">Os sitios poden utilizar cookies para mellorar a túa experiencia de navegación a través de funcións como manter a sesión iniciada ou lembrar artigos da túa cesta da compra.
diff --git a/ios/chrome/app/strings/resources/ios_strings_gu.xtb b/ios/chrome/app/strings/resources/ios_strings_gu.xtb index 5849dc4..649a0b8 100644 --- a/ios/chrome/app/strings/resources/ios_strings_gu.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_gu.xtb
@@ -156,6 +156,7 @@ <translation id="2712127207578915686">ફાઇલ ખોલવામાં અસમર્થ છે</translation> <translation id="2718352093833049315">ફક્ત વાઇ-ફાઇ પર</translation> <translation id="2747003861858887689">પાછલી ફીલ્ડ</translation> +<translation id="2764831210418622012">હમણાં જ</translation> <translation id="2773292004659987824">છૂપી શોધ</translation> <translation id="277771892408211951">ભાષા પસંદ કરો</translation> <translation id="2780046210906776326">ઇમેઇલ એકાઉન્ટ્સ નથી</translation> @@ -301,6 +302,7 @@ <translation id="4476574785019001431">સેટિંગ</translation> <translation id="4496373720959965247">ટૅબ ઉમેરો અને પેજ વચ્ચે સ્વિચ કરો</translation> <translation id="4502566650163919158">હમણાં ચેક કરો</translation> +<translation id="4505980578794259603">છેલ્લે <ph name="TIME" /> તપાસ્યું.</translation> <translation id="4508750114462689118">સાઇન-ઇન પ્રોમો બંધ કરો</translation> <translation id="4526249700380860531"><ph name="BEGIN_LINK" />passwords.google.com<ph name="END_LINK" /> પર સાચવેલા પાસવર્ડ જુઓ અને મેનેજ કરો</translation> <translation id="4536418791685807335">ફરીથી સાઇન ઇન કરવાનો પ્રયાસ કરો.</translation> @@ -482,6 +484,7 @@ <translation id="6445051938772793705">દેશ</translation> <translation id="6445981559479772097">સંદેશ મોકલ્યો.</translation> <translation id="6447842834002726250">કૂકીઝ</translation> +<translation id="6453018583485750254">ચેક ક્યારેય ચાલ્યું નથી.</translation> <translation id="6464071786529933911">નવા છુપા ટૅબમાં ખોલો</translation> <translation id="6464397691496239022">સાઇટ તમને વધુ સારો બ્રાઉઝિંગ અનુભવ આપવા, ઉદાહરણ તરીકે, તમને સાઇન ઇન કરીને રાખવા અથવા તમારા શૉપિંગ કાર્ટની આઇટમ યાદ રાખવા માટે, કુકીનો ઉપયોગ કરી શકે છે.
diff --git a/ios/chrome/app/strings/resources/ios_strings_mk.xtb b/ios/chrome/app/strings/resources/ios_strings_mk.xtb index 09dfcd9..693cd73 100644 --- a/ios/chrome/app/strings/resources/ios_strings_mk.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_mk.xtb
@@ -500,7 +500,7 @@ <translation id="6624219055418309072">Блокирај во „Инкогнито“</translation> <translation id="6628106477656132239">Погрешен рок на важност</translation> <translation id="6638511529934826365">Зумирај текст…</translation> -<translation id="6639730758971422557">За да го вклучите „Безбедното прелистување“, отворете<ph name="BEGIN_LINK" />Синхронизација и услуги на Google<ph name="END_LINK" /> и допрете „Безбедно прелистување“.</translation> +<translation id="6639730758971422557">За да го вклучите „Безбедното прелистување“, отворете <ph name="BEGIN_LINK" />Синхронизација и услуги на Google<ph name="END_LINK" /> и допрете „Безбедно прелистување“.</translation> <translation id="6642362222295953972">Префрлете се на постојната картичка</translation> <translation id="6643016212128521049">Исчисти</translation> <translation id="6645899968535965230">QR-код: <ph name="PAGE_TITLE" /></translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_ne.xtb b/ios/chrome/app/strings/resources/ios_strings_ne.xtb index 9948e8c..c3f11b2 100644 --- a/ios/chrome/app/strings/resources/ios_strings_ne.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_ne.xtb
@@ -156,6 +156,7 @@ <translation id="2712127207578915686">फाइल खोल्न असमर्थ</translation> <translation id="2718352093833049315">Wi-Fi मा मात्र</translation> <translation id="2747003861858887689">अघिल्लो क्षेत्र</translation> +<translation id="2764831210418622012">भर्खरै</translation> <translation id="2773292004659987824">इन्कोग्निटो खोज</translation> <translation id="277771892408211951">भाषा चयन गर्नुहोस्</translation> <translation id="2780046210906776326">इमेल खाताहरू छैन</translation> @@ -301,6 +302,7 @@ <translation id="4476574785019001431">सेटिङहरू</translation> <translation id="4496373720959965247">ट्याबहरू थप्नुहोस् र पृष्ठहरू बीच बदल्नुहोस्</translation> <translation id="4502566650163919158">अहिले नै जाँच्नुहोस्</translation> +<translation id="4505980578794259603">अन्तिम पटक <ph name="TIME" /> जाँच गरिएको थियो।</translation> <translation id="4508750114462689118">साइन-इन प्रोमो बन्द गर्नुहोस्</translation> <translation id="4526249700380860531">हेर्नुहोस् र <ph name="BEGIN_LINK" /> passwords.google.com <ph name="END_LINK" /> सुरक्षित गरिएका पासवर्डहरू व्यवस्थापन गर्नुहोस्</translation> <translation id="4536418791685807335">फेरि साइन इन गरी हेर्नुहोस्।</translation> @@ -482,6 +484,7 @@ <translation id="6445051938772793705">देश</translation> <translation id="6445981559479772097">सन्देश पठाइयो।</translation> <translation id="6447842834002726250">कुकीहरू</translation> +<translation id="6453018583485750254">कहिल्यै पनि जाँच गरिएको छैन।</translation> <translation id="6464071786529933911">नयाँ इन्कोग्निटो ट्याबमा खोल्नुहोस्</translation> <translation id="6464397691496239022">साइटहरूले तपाईंलाई राम्रो ब्राउजिङको अनुभव प्रदान गर्न कुकीहरूको प्रयोग गर्न सक्छन्। उदाहरणको लागि साइटहरूले कुकीहरूको प्रयोग गरी तपाईंलाई साइन इन अवस्थामै राख्न वा तपाईंको किनमेलको कार्टमा भएका वस्तुहरू सम्झन सक्छन्।
diff --git a/ios/chrome/app/strings/resources/ios_strings_or.xtb b/ios/chrome/app/strings/resources/ios_strings_or.xtb index 1afca02..bb747e6cf 100644 --- a/ios/chrome/app/strings/resources/ios_strings_or.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_or.xtb
@@ -156,6 +156,7 @@ <translation id="2712127207578915686">ଫାଇଲ୍ ଖୋଲିବାକୁ ଅକ୍ଷମ</translation> <translation id="2718352093833049315">କେବଳ ୱାଇ-ଫାଇରେ</translation> <translation id="2747003861858887689">ପୂର୍ବବର୍ତ୍ତୀ ଫିଲ୍ଡ</translation> +<translation id="2764831210418622012">ଏହିକ୍ଷଣି</translation> <translation id="2773292004659987824">ଇନ୍କଗ୍ନିଟୋ ସର୍ଚ୍ଚ</translation> <translation id="277771892408211951">ଭାଷା ଚୟନ କରନ୍ତୁ</translation> <translation id="2780046210906776326">କୌଣସି ଇମେଲ୍ ଆକାଉଣ୍ଟ ନାହିଁ</translation> @@ -301,6 +302,7 @@ <translation id="4476574785019001431">ସେଟିଂସ୍</translation> <translation id="4496373720959965247">ଟାବ୍ ଯୋଗ କରନ୍ତୁ ଏବଂ ପୃଷ୍ଠାଗୁଡ଼ିକ ମଧ୍ୟରେ ସ୍ୱିଚ୍ କରନ୍ତୁ</translation> <translation id="4502566650163919158">ଏବେ ଯାଞ୍ଚ କରନ୍ତୁ</translation> +<translation id="4505980578794259603">ଶେଷଥର <ph name="TIME" /> ପୂର୍ବେ ଯାଞ୍ଚ କରାଯାଇଥିଲା।</translation> <translation id="4508750114462689118">ସାଇନ୍-ଇନ୍ ପ୍ରୋମୋକୁ ବନ୍ଦ କରନ୍ତୁ</translation> <translation id="4526249700380860531"><ph name="BEGIN_LINK" />passwords.google.com<ph name="END_LINK" />ରେ ସେଭ୍ ହୋଇଥିବା ପାସ୍ୱର୍ଡଗୁଡ଼ିକ ଦେଖନ୍ତୁ ଏବଂ ପରିଚାଳନା କରନ୍ତୁ</translation> <translation id="4536418791685807335">ପୁଣି ସାଇନ୍ ଇନ୍ କରିବାକୁ ଚେଷ୍ଟା କରନ୍ତୁ।</translation> @@ -480,6 +482,7 @@ <translation id="6445051938772793705">ଦେଶ</translation> <translation id="6445981559479772097">ମେସେଜ୍ ପଠାଗଲା।</translation> <translation id="6447842834002726250">କୁକୀଗୁଡିକ</translation> +<translation id="6453018583485750254">କେବେ ବି ଯାଞ୍ଚ କରାଯାଇନାହିଁ।</translation> <translation id="6464071786529933911">ନୂଆ ଇନ୍କଗ୍ନିଟୋ ଟାବ୍ରେ ଖୋଲନ୍ତୁ</translation> <translation id="6464397691496239022">ଆପଣଙ୍କୁ ସାଇନ୍ ଇନ୍ ରଖିବା କିମ୍ବା ଆପଣଙ୍କ ସପିଂ କାର୍ଟରେ ଥିବା ଆଇଟମଗୁଡ଼ିକୁ ମନେରଖିବା ପରି, ଆପଣଙ୍କ ବ୍ରାଉଜିଂ ଅନୁଭୂତିକୁ ଉନ୍ନତ କରିବା ନିମନ୍ତେ ସାଇଟଗୁଡ଼ିକ କୁକୀଗୁଡ଼ିକୁ ବ୍ୟବହାର କରିପାରିବ।
diff --git a/ios/chrome/app/strings/resources/ios_strings_ru.xtb b/ios/chrome/app/strings/resources/ios_strings_ru.xtb index 7e0c905..f48e3804918 100644 --- a/ios/chrome/app/strings/resources/ios_strings_ru.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_ru.xtb
@@ -156,6 +156,7 @@ <translation id="2712127207578915686">Невозможно открыть файл</translation> <translation id="2718352093833049315">Только Wi-Fi</translation> <translation id="2747003861858887689">Предыдущее поле</translation> +<translation id="2764831210418622012">только что</translation> <translation id="2773292004659987824">Поиск в режиме инкогнито</translation> <translation id="277771892408211951">Выберите язык</translation> <translation id="2780046210906776326">Создайте аккаунт</translation> @@ -301,6 +302,7 @@ <translation id="4476574785019001431">Настройки</translation> <translation id="4496373720959965247">Добавляйте вкладки и переключайтесь между ними</translation> <translation id="4502566650163919158">Проверить сейчас</translation> +<translation id="4505980578794259603">Последняя проверка: <ph name="TIME" />.</translation> <translation id="4508750114462689118">Закрыть сообщение о входе</translation> <translation id="4526249700380860531">Просматривайте сохраненные пароли и управляйте ими на странице <ph name="BEGIN_LINK" />passwords.google.com<ph name="END_LINK" /></translation> <translation id="4536418791685807335">Войдите в аккаунт снова.</translation> @@ -482,6 +484,7 @@ <translation id="6445051938772793705">Страна</translation> <translation id="6445981559479772097">Сообщение отправлено</translation> <translation id="6447842834002726250">Файлы сookie</translation> +<translation id="6453018583485750254">Пароли не проверялись.</translation> <translation id="6464071786529933911">Откр. в режиме инкогнито</translation> <translation id="6464397691496239022">Сайты могут использовать файлы cookie для вашего удобства, например сохранять информацию о товарах в корзине или о том, что вы вошли в аккаунт.
diff --git a/ios/chrome/app/strings/resources/ios_strings_ta.xtb b/ios/chrome/app/strings/resources/ios_strings_ta.xtb index 96d444d..e0efd31 100644 --- a/ios/chrome/app/strings/resources/ios_strings_ta.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_ta.xtb
@@ -156,6 +156,7 @@ <translation id="2712127207578915686">கோப்பைத் திறக்க முடியவில்லை</translation> <translation id="2718352093833049315">வைஃபையில் மட்டும்</translation> <translation id="2747003861858887689">முந்தைய புலம்</translation> +<translation id="2764831210418622012">சற்றுமுன்</translation> <translation id="2773292004659987824">மறைநிலைத் தேடல்</translation> <translation id="277771892408211951">மொழியைத் தேர்வுசெய்யுங்கள்</translation> <translation id="2780046210906776326">மின்னஞ்சல் கணக்குகள் எதுவுமில்லை</translation> @@ -301,6 +302,7 @@ <translation id="4476574785019001431">அமைப்புகள்</translation> <translation id="4496373720959965247">தாவல்களைச் சேர்த்து, பக்கங்களுக்கு இடையில் மாறலாம்</translation> <translation id="4502566650163919158">இப்போது சரிபார்</translation> +<translation id="4505980578794259603">கடைசியாகச் சரிபார்த்தது: <ph name="TIME" />.</translation> <translation id="4508750114462689118">உள்நுழைவு விளம்பரத்தை மூடு</translation> <translation id="4526249700380860531"><ph name="BEGIN_LINK" />passwords.google.com<ph name="END_LINK" /> இல் சேமித்த கடவுச்சொற்களைப் பார்க்கலாம் மற்றும் நிர்வகிக்கலாம்.</translation> <translation id="4536418791685807335">மீண்டும் உள்நுழைந்து முயலவும்.</translation> @@ -482,6 +484,7 @@ <translation id="6445051938772793705">நாடு</translation> <translation id="6445981559479772097">செய்தி அனுப்பப்பட்டது.</translation> <translation id="6447842834002726250">குக்கீகள்</translation> +<translation id="6453018583485750254">இதுவரை சரிபார்ப்பு இயக்கப்படவில்லை.</translation> <translation id="6464071786529933911">புதிய மறைநிலைத் தாவலில் திற</translation> <translation id="6464397691496239022">உங்கள் உலாவல் அனுபவத்தை மேம்படுத்துவதற்காக (எ.கா., உங்களை உள்நுழைந்தபடியே வைத்திருப்பது, உங்கள் ஷாப்பிங் கார்ட்டில் உள்ளவற்றை நினைவில் கொள்வது போன்றவை) குக்கீகளைத் தளங்கள் பயன்படுத்த முடியும்.
diff --git a/ios/chrome/app/strings/resources/ios_strings_zh-CN.xtb b/ios/chrome/app/strings/resources/ios_strings_zh-CN.xtb index c4e363c1..3f9ad2f 100644 --- a/ios/chrome/app/strings/resources/ios_strings_zh-CN.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_zh-CN.xtb
@@ -156,6 +156,7 @@ <translation id="2712127207578915686">无法打开该文件</translation> <translation id="2718352093833049315">仅限使用无线局域网时</translation> <translation id="2747003861858887689">上一个字段</translation> +<translation id="2764831210418622012">刚刚</translation> <translation id="2773292004659987824">无痕搜索</translation> <translation id="277771892408211951">选择语言</translation> <translation id="2780046210906776326">没有电子邮件帐号</translation> @@ -301,6 +302,7 @@ <translation id="4476574785019001431">设置</translation> <translation id="4496373720959965247">添加标签页并在网页之间切换</translation> <translation id="4502566650163919158">立即检查</translation> +<translation id="4505980578794259603">上次检查时间:<ph name="TIME" />。</translation> <translation id="4508750114462689118">关闭登录推广元素</translation> <translation id="4526249700380860531">通过 <ph name="BEGIN_LINK" />passwords.google.com<ph name="END_LINK" /> 查看和管理已保存的密码</translation> <translation id="4536418791685807335">请尝试重新登录。</translation> @@ -482,6 +484,7 @@ <translation id="6445051938772793705">国家/地区</translation> <translation id="6445981559479772097">短信已发送。</translation> <translation id="6447842834002726250">Cookie</translation> +<translation id="6453018583485750254">从未检查过。</translation> <translation id="6464071786529933911">在新的无痕式标签页中打开</translation> <translation id="6464397691496239022">网站可以使用 Cookie 来提升您的浏览体验,例如让您保持登录状态或记住您购物车中的商品。
diff --git a/ios/chrome/browser/geolocation/BUILD.gn b/ios/chrome/browser/geolocation/BUILD.gn index c273fe0..08e9aaf 100644 --- a/ios/chrome/browser/geolocation/BUILD.gn +++ b/ios/chrome/browser/geolocation/BUILD.gn
@@ -18,6 +18,7 @@ "omnibox_geolocation_config.mm", "omnibox_geolocation_local_state.h", "omnibox_geolocation_local_state.mm", + "omnibox_geolocation_tab_helper.h", ] deps = [ "//base", @@ -28,6 +29,7 @@ "//ios/chrome/browser", "//ios/chrome/browser/ui/util", "//ios/public/provider/chrome/browser", + "//ios/web/public", "//ui/base", "//url", ] @@ -72,6 +74,7 @@ "omnibox_geolocation_controller+Testing.h", "omnibox_geolocation_controller.h", "omnibox_geolocation_controller.mm", + "omnibox_geolocation_tab_helper.mm", ] deps = [ ":geolocation", @@ -79,8 +82,10 @@ "//components/google/core/common", "//components/version_info", "//ios/chrome/browser/browser_state", + "//ios/chrome/browser/browser_state", "//ios/chrome/browser/tabs", "//ios/web", + "//ios/web/public/navigation", "//ui/base", "//url", ]
diff --git a/ios/chrome/browser/geolocation/omnibox_geolocation_tab_helper.h b/ios/chrome/browser/geolocation/omnibox_geolocation_tab_helper.h new file mode 100644 index 0000000..6d84a1c --- /dev/null +++ b/ios/chrome/browser/geolocation/omnibox_geolocation_tab_helper.h
@@ -0,0 +1,45 @@ +// Copyright 2020 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef IOS_CHROME_BROWSER_GEOLOCATION_OMNIBOX_GEOLOCATION_TAB_HELPER_H_ +#define IOS_CHROME_BROWSER_GEOLOCATION_OMNIBOX_GEOLOCATION_TAB_HELPER_H_ + +#include "ios/web/public/web_state_observer.h" +#import "ios/web/public/web_state_user_data.h" + +#if !defined(__has_feature) || !__has_feature(objc_arc) +#error "This file requires ARC support." +#endif + +// A tab helper which handles the current device location for omnibox search +// queries. +class OmniboxGeolocationTabHelper + : public web::WebStateObserver, + public web::WebStateUserData<OmniboxGeolocationTabHelper> { + public: + // Not copyable or moveable + OmniboxGeolocationTabHelper(const OmniboxGeolocationTabHelper&) = delete; + OmniboxGeolocationTabHelper& operator=(const OmniboxGeolocationTabHelper&) = + delete; + ~OmniboxGeolocationTabHelper() override; + + private: + friend class web::WebStateUserData<OmniboxGeolocationTabHelper>; + + explicit OmniboxGeolocationTabHelper(web::WebState* web_state); + + // web::WebStateObserver + void DidStartNavigation(web::WebState* web_state, + web::NavigationContext* navigation_context) override; + void PageLoaded( + web::WebState* web_state, + web::PageLoadCompletionStatus load_completion_status) override; + void WebStateDestroyed(web::WebState* web_state) override; + + web::WebState* web_state_ = nullptr; + + WEB_STATE_USER_DATA_KEY_DECL(); +}; + +#endif // IOS_CHROME_BROWSER_GEOLOCATION_OMNIBOX_GEOLOCATION_TAB_HELPER_H_
diff --git a/ios/chrome/browser/geolocation/omnibox_geolocation_tab_helper.mm b/ios/chrome/browser/geolocation/omnibox_geolocation_tab_helper.mm new file mode 100644 index 0000000..8df7999f --- /dev/null +++ b/ios/chrome/browser/geolocation/omnibox_geolocation_tab_helper.mm
@@ -0,0 +1,68 @@ +// Copyright 2020 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#import "ios/chrome/browser/geolocation/omnibox_geolocation_tab_helper.h" + +#import "ios/chrome/browser/browser_state/chrome_browser_state.h" +#import "ios/chrome/browser/geolocation/omnibox_geolocation_controller.h" +#import "ios/web/public/navigation/navigation_context.h" +#import "ios/web/public/navigation/navigation_item.h" +#import "ios/web/public/navigation/navigation_manager.h" + +#if !defined(__has_feature) || !__has_feature(objc_arc) +#error "This file requires ARC support." +#endif + +OmniboxGeolocationTabHelper::OmniboxGeolocationTabHelper( + web::WebState* web_state) + : web_state_(web_state) { + web_state_->AddObserver(this); +} + +OmniboxGeolocationTabHelper::~OmniboxGeolocationTabHelper() { + if (web_state_) { + web_state_->RemoveObserver(this); + web_state_ = nullptr; + } +} + +void OmniboxGeolocationTabHelper::DidStartNavigation( + web::WebState* web_state, + web::NavigationContext* navigation_context) { + DCHECK(web_state->GetNavigationManager()); + web::NavigationItem* navigation_item = + web_state->GetNavigationManager()->GetPendingItem(); + + if (!navigation_item) { + // Pending item may not exist due to the bug in //ios/web layer. + // TODO(crbug.com/899827): remove this early return once GetPendingItem() + // always return valid object inside WebStateObserver::DidStartNavigation() + // callback. + // + // Note that GetLastCommittedItem() returns null if navigation manager does + // not have committed items (which is normal situation). + return; + } + + [[OmniboxGeolocationController sharedInstance] + addLocationToNavigationItem:navigation_item + browserState:ChromeBrowserState::FromBrowserState( + web_state->GetBrowserState())]; +} + +void OmniboxGeolocationTabHelper::PageLoaded( + web::WebState* web_state, + web::PageLoadCompletionStatus load_completion_status) { + [[OmniboxGeolocationController sharedInstance] + finishPageLoadForWebState:web_state + loadSuccess:(load_completion_status == + web::PageLoadCompletionStatus::SUCCESS)]; +} + +void OmniboxGeolocationTabHelper::WebStateDestroyed(web::WebState* web_state) { + web_state->RemoveObserver(this); + web_state_ = nullptr; +} + +WEB_STATE_USER_DATA_KEY_IMPL(OmniboxGeolocationTabHelper)
diff --git a/ios/chrome/browser/tabs/BUILD.gn b/ios/chrome/browser/tabs/BUILD.gn index d8a84f6..c235acf2 100644 --- a/ios/chrome/browser/tabs/BUILD.gn +++ b/ios/chrome/browser/tabs/BUILD.gn
@@ -69,6 +69,7 @@ "//ios/chrome/browser/download", "//ios/chrome/browser/favicon", "//ios/chrome/browser/find_in_page", + "//ios/chrome/browser/geolocation", "//ios/chrome/browser/geolocation:geolocation_internal", "//ios/chrome/browser/history", "//ios/chrome/browser/history:tab_helper",
diff --git a/ios/chrome/browser/tabs/tab_helper_util.mm b/ios/chrome/browser/tabs/tab_helper_util.mm index 9d9cfb0..adec82a 100644 --- a/ios/chrome/browser/tabs/tab_helper_util.mm +++ b/ios/chrome/browser/tabs/tab_helper_util.mm
@@ -30,6 +30,7 @@ #import "ios/chrome/browser/download/ar_quick_look_tab_helper.h" #include "ios/chrome/browser/favicon/favicon_service_factory.h" #import "ios/chrome/browser/find_in_page/find_tab_helper.h" +#import "ios/chrome/browser/geolocation/omnibox_geolocation_tab_helper.h" #include "ios/chrome/browser/history/history_service_factory.h" #include "ios/chrome/browser/history/history_tab_helper.h" #include "ios/chrome/browser/history/top_sites_factory.h" @@ -216,6 +217,8 @@ InfobarBadgeTabHelper::CreateForWebState(web_state); } + OmniboxGeolocationTabHelper::CreateForWebState(web_state); + // Allow the embedder to attach tab helpers. ios::GetChromeBrowserProvider()->AttachTabHelpers(web_state); }
diff --git a/ios/chrome/browser/tabs/tab_model.mm b/ios/chrome/browser/tabs/tab_model.mm index dba66bf..6e2128f 100644 --- a/ios/chrome/browser/tabs/tab_model.mm +++ b/ios/chrome/browser/tabs/tab_model.mm
@@ -97,27 +97,9 @@ base::Unretained(web_state_list))); } -// Records metrics for the interface's orientation. -void RecordInterfaceOrientationMetric() { - switch ([[UIApplication sharedApplication] statusBarOrientation]) { - case UIInterfaceOrientationPortrait: - case UIInterfaceOrientationPortraitUpsideDown: - UMA_HISTOGRAM_BOOLEAN("Tab.PageLoadInPortrait", YES); - break; - case UIInterfaceOrientationLandscapeLeft: - case UIInterfaceOrientationLandscapeRight: - UMA_HISTOGRAM_BOOLEAN("Tab.PageLoadInPortrait", NO); - break; - case UIInterfaceOrientationUnknown: - // TODO(crbug.com/228832): Convert from a boolean histogram to an - // enumerated histogram and log this case as well. - break; - } -} - } // anonymous namespace -@interface TabModel () <CRWWebStateObserver> { +@interface TabModel () { // Weak reference to the underlying shared model implementation. WebStateList* _webStateList; @@ -262,81 +244,4 @@ } } -#pragma mark - CRWWebStateObserver - -- (void)webState:(web::WebState*)webState - didFinishNavigation:(web::NavigationContext*)navigation { - if (!navigation->HasCommitted()) - return; - - if (!navigation->IsSameDocument() && !self.browserState->IsOffTheRecord()) { - int tabCount = static_cast<int>(self.count); - UMA_HISTOGRAM_CUSTOM_COUNTS("Tabs.TabCountPerLoad", tabCount, 1, 200, 50); - } - - web::NavigationItem* item = - webState->GetNavigationManager()->GetLastCommittedItem(); - navigation_metrics::RecordMainFrameNavigation( - item ? item->GetVirtualURL() : GURL::EmptyGURL(), - navigation->IsSameDocument(), self.browserState->IsOffTheRecord(), - GetBrowserStateType(webState->GetBrowserState())); -} - -- (void)webState:(web::WebState*)webState - didStartNavigation:(web::NavigationContext*)navigation { - - // In order to avoid false positive in the crash loop detection, disable the - // counter as soon as an URL is loaded. This requires an user action and is a - // significant source of crashes. Ignore NTP as it is loaded by default after - // a crash. - if (navigation->GetUrl().host_piece() != kChromeUINewTabHost) { - static dispatch_once_t dispatch_once_token; - dispatch_once(&dispatch_once_token, ^{ - crash_util::ResetFailedStartupAttemptCount(); - }); - } - - DCHECK(webState->GetNavigationManager()); - web::NavigationItem* navigationItem = - webState->GetNavigationManager()->GetPendingItem(); - - // TODO(crbug.com/676129): the pending item is not correctly set when the - // page is reloading, use the last committed item if pending item is null. - // Remove this once tracking bug is fixed. - if (!navigationItem) { - navigationItem = webState->GetNavigationManager()->GetLastCommittedItem(); - } - - if (!navigationItem) { - // Pending item may not exist due to the bug in //ios/web layer. - // TODO(crbug.com/899827): remove this early return once GetPendingItem() - // always return valid object inside WebStateObserver::DidStartNavigation() - // callback. - // - // Note that GetLastCommittedItem() returns null if navigation manager does - // not have committed items (which is normal situation). - return; - } - - [[OmniboxGeolocationController sharedInstance] - addLocationToNavigationItem:navigationItem - browserState:ChromeBrowserState::FromBrowserState( - webState->GetBrowserState())]; -} - -- (void)webState:(web::WebState*)webState didLoadPageWithSuccess:(BOOL)success { - RecordInterfaceOrientationMetric(); - - [[OmniboxGeolocationController sharedInstance] - finishPageLoadForWebState:webState - loadSuccess:success]; -} - -- (void)webStateDestroyed:(web::WebState*)webState { - // The TabModel is removed from WebState's observer when the WebState is - // detached from WebStateList which happens before WebState destructor, - // so this method should never be called. - NOTREACHED(); -} - @end
diff --git a/ios/chrome/browser/ui/browser_view/BUILD.gn b/ios/chrome/browser/ui/browser_view/BUILD.gn index cc31afc..6d07901 100644 --- a/ios/chrome/browser/ui/browser_view/BUILD.gn +++ b/ios/chrome/browser/ui/browser_view/BUILD.gn
@@ -154,6 +154,7 @@ "//ios/chrome/browser/ui/util", "//ios/chrome/browser/ui/util:multiwindow_util", "//ios/chrome/browser/ui/voice", + "//ios/chrome/browser/ui/whats_new", "//ios/chrome/browser/upgrade", "//ios/chrome/browser/url_loading", "//ios/chrome/browser/voice:voice",
diff --git a/ios/chrome/browser/ui/browser_view/browser_coordinator.mm b/ios/chrome/browser/ui/browser_view/browser_coordinator.mm index 284ed1d..741e21a 100644 --- a/ios/chrome/browser/ui/browser_view/browser_coordinator.mm +++ b/ios/chrome/browser/ui/browser_view/browser_coordinator.mm
@@ -39,6 +39,7 @@ #import "ios/chrome/browser/ui/commands/password_breach_commands.h" #import "ios/chrome/browser/ui/commands/qr_generation_commands.h" #import "ios/chrome/browser/ui/commands/text_zoom_commands.h" +#import "ios/chrome/browser/ui/commands/whats_new_commands.h" #import "ios/chrome/browser/ui/download/ar_quick_look_coordinator.h" #import "ios/chrome/browser/ui/download/features.h" #import "ios/chrome/browser/ui/download/pass_kit_coordinator.h" @@ -64,6 +65,7 @@ #import "ios/chrome/browser/ui/toolbar/accessory/toolbar_accessory_presenter.h" #import "ios/chrome/browser/ui/translate/legacy_translate_infobar_coordinator.h" #include "ios/chrome/browser/ui/ui_feature_flags.h" +#import "ios/chrome/browser/ui/whats_new/default_browser_promo_coordinator.h" #import "ios/chrome/browser/url_loading/url_loading_browser_agent.h" #import "ios/chrome/browser/url_loading/url_loading_params.h" #import "ios/chrome/browser/web/features.h" @@ -81,6 +83,7 @@ @interface BrowserCoordinator () <ActivityServiceCommands, BrowserCoordinatorCommands, + DefaultBrowserPromoCommands, FormInputAccessoryCoordinatorNavigator, PageInfoCommands, PasswordBreachCommands, @@ -171,6 +174,10 @@ @property(nonatomic, strong) LegacyTranslateInfobarCoordinator* translateInfobarCoordinator; +// Coordinator that manages the default browser promo modal. +@property(nonatomic, strong) + DefaultBrowserPromoCoordinator* defaultBrowserPromoCoordinator; + // The container coordinators for the infobar modalities. @property(nonatomic, strong) OverlayContainerCoordinator* infobarBannerOverlayContainerCoordinator; @@ -204,6 +211,9 @@ [self startBrowserContainer]; [self.dispatcher startDispatchingToTarget:self forProtocol:@protocol(TextZoomCommands)]; + [self.browser->GetCommandDispatcher() + startDispatchingToTarget:self + forProtocol:@protocol(WhatsNewCommands)]; [self.dispatcher startDispatchingToTarget:self forProtocol:@protocol(FindInPageCommands)]; [self createViewController]; @@ -541,6 +551,25 @@ [self.addCreditCardCoordinator start]; } +#pragma mark - WhatsNewCommands + +- (void)showDefaultBrowserFullscreenPromo { + if (!self.defaultBrowserPromoCoordinator) { + self.defaultBrowserPromoCoordinator = + [[DefaultBrowserPromoCoordinator alloc] + initWithBaseViewController:self.viewController + browser:self.browser]; + self.defaultBrowserPromoCoordinator.handler = self; + } + [self.defaultBrowserPromoCoordinator start]; +} + +#pragma mark - DefaultBrowserPromoCommands + +- (void)hidePromo { + [self.defaultBrowserPromoCoordinator stop]; +} + #pragma mark - FindInPageCommands - (void)openFindInPage {
diff --git a/ios/chrome/browser/ui/commands/BUILD.gn b/ios/chrome/browser/ui/commands/BUILD.gn index 0e138ac..fdaf538 100644 --- a/ios/chrome/browser/ui/commands/BUILD.gn +++ b/ios/chrome/browser/ui/commands/BUILD.gn
@@ -36,6 +36,7 @@ "snackbar_commands.h", "text_zoom_commands.h", "toolbar_commands.h", + "whats_new_commands.h", ] deps = [
diff --git a/ios/chrome/browser/ui/commands/browser_commands.h b/ios/chrome/browser/ui/commands/browser_commands.h index 2c617240..11813a8 100644 --- a/ios/chrome/browser/ui/commands/browser_commands.h +++ b/ios/chrome/browser/ui/commands/browser_commands.h
@@ -15,6 +15,7 @@ #import "ios/chrome/browser/ui/commands/popup_menu_commands.h" #import "ios/chrome/browser/ui/commands/qr_scanner_commands.h" #import "ios/chrome/browser/ui/commands/snackbar_commands.h" +#import "ios/chrome/browser/ui/commands/whats_new_commands.h" class GURL; @class ReadingListAddCommand; @@ -30,7 +31,8 @@ PageInfoCommands, PopupMenuCommands, QRScannerCommands, - SnackbarCommands> + SnackbarCommands, + WhatsNewCommands> // Closes the current tab. - (void)closeCurrentTab;
diff --git a/ios/chrome/browser/ui/commands/whats_new_commands.h b/ios/chrome/browser/ui/commands/whats_new_commands.h new file mode 100644 index 0000000..383b8cc --- /dev/null +++ b/ios/chrome/browser/ui/commands/whats_new_commands.h
@@ -0,0 +1,16 @@ +// Copyright 2020 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef IOS_CHROME_BROWSER_UI_COMMANDS_WHATS_NEW_COMMANDS_H_ +#define IOS_CHROME_BROWSER_UI_COMMANDS_WHATS_NEW_COMMANDS_H_ + +// Commands to control the display of user eduction promotional UI. +@protocol WhatsNewCommands <NSObject> + +// Display a modal promotional UI about the iOS14 default browser feature. +- (void)showDefaultBrowserFullscreenPromo; + +@end + +#endif // IOS_CHROME_BROWSER_UI_COMMANDS_WHATS_NEW_COMMANDS_H_
diff --git a/ios/chrome/browser/ui/content_suggestions/cells/content_suggestions_discover_header_item.h b/ios/chrome/browser/ui/content_suggestions/cells/content_suggestions_discover_header_item.h index b596652..f06e12b 100644 --- a/ios/chrome/browser/ui/content_suggestions/cells/content_suggestions_discover_header_item.h +++ b/ios/chrome/browser/ui/content_suggestions/cells/content_suggestions_discover_header_item.h
@@ -35,7 +35,7 @@ @property(nonatomic, readonly, strong) UIButton* menuButton; // Title label for the feed. -@property(nonatomic, strong) UILabel* titleLabel; +@property(nonatomic, copy) NSString* title; // Changes header UI based on Discover feed visibility. - (void)changeHeaderForFeedVisible:(BOOL)visible;
diff --git a/ios/chrome/browser/ui/content_suggestions/cells/content_suggestions_discover_header_item.mm b/ios/chrome/browser/ui/content_suggestions/cells/content_suggestions_discover_header_item.mm index ce0923c..228bebde 100644 --- a/ios/chrome/browser/ui/content_suggestions/cells/content_suggestions_discover_header_item.mm +++ b/ios/chrome/browser/ui/content_suggestions/cells/content_suggestions_discover_header_item.mm
@@ -18,23 +18,15 @@ #endif namespace { -// Leading and trailing margin for label and button to the container border. -// Different margins based on feed being visible or hidden. -const CGFloat kHeaderMarginFeedVisible = 20; -const CGFloat kHeaderMarginFeedHidden = 9; -// Leading and trailing margin for the header container (space between border -// and frame). -const CGFloat kHeaderBorderMargin = 16; +// Leading and trailing margin for label and button. +const CGFloat kHeaderHorizontalMargin = 20; // Font size for label text in header. const CGFloat kDiscoverFeedTitleFontSize = 16; // Insets for header menu button. const CGFloat kHeaderMenuButtonInsetTopAndBottom = 2; const CGFloat kHeaderMenuButtonInsetSides = 2; // Duration for the header animation when Discover feed visibility changes. -const CGFloat kHeaderChangeAnimationDuration = 0.5; -// Border properties for the header's 'Off' state. -const CGFloat kHeaderBorderWidth = 1; -const CGFloat kHeaderBorderRadius = 8; +const CGFloat kHeaderChangeAnimationDuration = 0.3; } #pragma mark - ContentSuggestionsDiscoverHeaderItem @@ -52,13 +44,7 @@ - (void)configureCell:(ContentSuggestionsDiscoverHeaderCell*)cell { [super configureCell:cell]; - cell.titleLabel.text = - self.discoverFeedVisible - ? self.title - : [NSString - stringWithFormat:@"%@ – %@", self.title, - l10n_util::GetNSString( - IDS_IOS_DISCOVER_FEED_TITLE_OFF_LABEL)]; + cell.title = self.title; [cell changeHeaderForFeedVisible:self.discoverFeedVisible]; } @@ -72,9 +58,6 @@ // for nil value before being set. @property(nonatomic) NSNumber* discoverFeedVisible; -// Container for the header which allows for adding a border and animation. -@property(nonatomic, strong) UIView* container; - // Header constraints for when the feed is visible. @property(nonatomic, strong) NSArray<NSLayoutConstraint*>* feedVisibleConstraints; @@ -83,6 +66,9 @@ @property(nonatomic, strong) NSArray<NSLayoutConstraint*>* feedHiddenConstraints; +// Title label for the feed. +@property(nonatomic, strong) UILabel* titleLabel; + @end @implementation ContentSuggestionsDiscoverHeaderCell @@ -90,10 +76,6 @@ - (instancetype)initWithFrame:(CGRect)frame { self = [super initWithFrame:frame]; if (self) { - _container = [[UIView alloc] init]; - _container.translatesAutoresizingMaskIntoConstraints = NO; - _container.layer.borderColor = [UIColor colorNamed:kGrey300Color].CGColor; - _container.layer.cornerRadius = kHeaderBorderRadius; _titleLabel = [[UILabel alloc] init]; _titleLabel.translatesAutoresizingMaskIntoConstraints = NO; @@ -117,56 +99,19 @@ kHeaderMenuButtonInsetTopAndBottom, kHeaderMenuButtonInsetSides, kHeaderMenuButtonInsetTopAndBottom, kHeaderMenuButtonInsetSides); - [_container addSubview:_menuButton]; - [_container addSubview:_titleLabel]; - [self.contentView addSubview:_container]; - - _container.layer.cornerRadius = kHeaderBorderRadius; - _container.layer.borderColor = [UIColor colorNamed:kGrey300Color].CGColor; + [self.contentView addSubview:_menuButton]; + [self.contentView addSubview:_titleLabel]; [NSLayoutConstraint activateConstraints:@[ - [_container.topAnchor constraintEqualToAnchor:self.contentView.topAnchor], - [_container.bottomAnchor - constraintEqualToAnchor:self.contentView.bottomAnchor], - - [_titleLabel.topAnchor constraintEqualToAnchor:_container.topAnchor], - [_titleLabel.bottomAnchor - constraintEqualToAnchor:_container.bottomAnchor], + [_titleLabel.leadingAnchor + constraintEqualToAnchor:self.contentView.leadingAnchor + constant:kHeaderHorizontalMargin], [_titleLabel.trailingAnchor constraintLessThanOrEqualToAnchor:_menuButton.leadingAnchor], - - [_menuButton.topAnchor constraintEqualToAnchor:_container.topAnchor], - [_menuButton.bottomAnchor - constraintEqualToAnchor:_container.bottomAnchor], - ]]; - - _feedVisibleConstraints = @[ - [_container.trailingAnchor - constraintEqualToAnchor:self.contentView.trailingAnchor], - [_container.leadingAnchor - constraintEqualToAnchor:self.contentView.leadingAnchor], - [_titleLabel.leadingAnchor - constraintEqualToAnchor:_container.leadingAnchor - constant:kHeaderMarginFeedVisible], [_menuButton.trailingAnchor - constraintEqualToAnchor:_container.trailingAnchor - constant:-kHeaderMarginFeedVisible], - ]; - - _feedHiddenConstraints = @[ - [_container.trailingAnchor constraintEqualToAnchor:self.contentView.trailingAnchor - constant:-kHeaderBorderMargin], - [_container.leadingAnchor - constraintEqualToAnchor:self.contentView.leadingAnchor - constant:kHeaderBorderMargin], - [_titleLabel.leadingAnchor - constraintEqualToAnchor:_container.leadingAnchor - constant:kHeaderMarginFeedHidden], - [_menuButton.trailingAnchor - constraintEqualToAnchor:_container.trailingAnchor - constant:-kHeaderMarginFeedHidden], - ]; + constant:-kHeaderHorizontalMargin], + ]]; } return self; } @@ -189,7 +134,6 @@ } else { [self setHeaderForFeedVisible:visible animate:NO]; } - [self.contentView layoutIfNeeded]; self.discoverFeedVisible = [NSNumber numberWithBool:visible]; } @@ -197,49 +141,26 @@ - (void)setHeaderForFeedVisible:(BOOL)visible animate:(BOOL)animate { if (animate) { - // If the header already exists, force the animation by setting other header - // view first. This is because the header constraints are lost when the NTP - // is reloaded, which happens when toggling the visibility. - [self setConstraintsForFeedVisible:!visible]; - [self.contentView layoutIfNeeded]; - [UIView animateWithDuration:kHeaderChangeAnimationDuration - animations:^{ - [self setConstraintsForFeedVisible:visible]; - [self.contentView layoutIfNeeded]; - }]; - [self animateBorderForFeedVisible:visible]; + [UIView transitionWithView:self.titleLabel + duration:kHeaderChangeAnimationDuration + options:UIViewAnimationOptionTransitionCrossDissolve + animations:^{ + [self setHeaderTitleForFeedVisible:visible]; + } + completion:nil]; } else { - [self setConstraintsForFeedVisible:visible]; - } - self.container.layer.borderWidth = visible ? 0 : kHeaderBorderWidth; - [self.contentView layoutIfNeeded]; - NamedGuide* menuButtonGuide = - [NamedGuide guideWithName:kDiscoverFeedHeaderMenuGuide - view:self.menuButton]; - - menuButtonGuide.constrainedFrame = - [self.contentView convertRect:self.menuButton.frame toView:nil]; - self.discoverFeedVisible = [NSNumber numberWithBool:visible]; -} - -// Sets header properties for when the Discover feed is visible. -- (void)setConstraintsForFeedVisible:(BOOL)visible { - if (visible) { - [NSLayoutConstraint deactivateConstraints:self.feedHiddenConstraints]; - [NSLayoutConstraint activateConstraints:self.feedVisibleConstraints]; - } else { - [NSLayoutConstraint deactivateConstraints:self.feedVisibleConstraints]; - [NSLayoutConstraint activateConstraints:self.feedHiddenConstraints]; + [self setHeaderTitleForFeedVisible:visible]; } } -// Animates border visibility when header changes state. -- (void)animateBorderForFeedVisible:(BOOL)visible { - CABasicAnimation* width = - [CABasicAnimation animationWithKeyPath:@"borderWidth"]; - width.fromValue = visible ? @(kHeaderBorderWidth) : @0; - width.toValue = visible ? @0 : @(kHeaderBorderWidth); - [self.container.layer addAnimation:width forKey:@"borderWidth"]; +- (void)setHeaderTitleForFeedVisible:(BOOL)visible { + self.titleLabel.text = + visible + ? self.title + : [NSString + stringWithFormat:@"%@ – %@", self.title, + l10n_util::GetNSString( + IDS_IOS_DISCOVER_FEED_TITLE_OFF_LABEL)]; } @end
diff --git a/ios/chrome/browser/ui/main/BUILD.gn b/ios/chrome/browser/ui/main/BUILD.gn index c890db4..acd143c 100644 --- a/ios/chrome/browser/ui/main/BUILD.gn +++ b/ios/chrome/browser/ui/main/BUILD.gn
@@ -93,6 +93,7 @@ "//ios/chrome/browser/ui/toolbar/public", "//ios/chrome/browser/ui/util", "//ios/chrome/browser/ui/util:multiwindow_util", + "//ios/chrome/browser/ui/whats_new:utils", "//ios/chrome/browser/url_loading", "//ios/chrome/browser/web_state_list", "//ios/chrome/browser/web_state_list:agents",
diff --git a/ios/chrome/browser/ui/main/scene_controller.mm b/ios/chrome/browser/ui/main/scene_controller.mm index 7a6c83c..c3bf611 100644 --- a/ios/chrome/browser/ui/main/scene_controller.mm +++ b/ios/chrome/browser/ui/main/scene_controller.mm
@@ -54,6 +54,7 @@ #import "ios/chrome/browser/ui/commands/omnibox_commands.h" #import "ios/chrome/browser/ui/commands/open_new_tab_command.h" #import "ios/chrome/browser/ui/commands/show_signin_command.h" +#import "ios/chrome/browser/ui/commands/whats_new_commands.h" #import "ios/chrome/browser/ui/first_run/first_run_util.h" #import "ios/chrome/browser/ui/first_run/orientation_limiting_navigation_controller.h" #import "ios/chrome/browser/ui/first_run/welcome_to_chrome_view_controller.h" @@ -69,6 +70,7 @@ #import "ios/chrome/browser/ui/util/multi_window_support.h" #import "ios/chrome/browser/ui/util/top_view_controller.h" #import "ios/chrome/browser/ui/util/uikit_ui_util.h" +#import "ios/chrome/browser/ui/whats_new/default_browser_utils.h" #import "ios/chrome/browser/url_loading/scene_url_loading_service.h" #import "ios/chrome/browser/url_loading/url_loading_browser_agent.h" #import "ios/chrome/browser/url_loading/url_loading_params.h" @@ -293,7 +295,23 @@ if (level == SceneActivationLevelForegroundActive) { if (![self presentSigninUpgradePromoIfPossible]) { - [self presentSignInAccountsViewControllerIfNecessary]; + if (![self presentSignInAccountsViewControllerIfNecessary] && + initializingUIInColdStart) { + // Show the Default Browser promo UI if the user's past behavior fits + // the categorization of potentially interested users or if the user is + // signed in. Do not show if it is determined that Chrome is already the + // default browser or if the user has already seen the promo UI. + BOOL isEligibleUser = IsLikelyInterestedDefaultBrowserUser() || + ios::GetChromeBrowserProvider() + ->GetChromeIdentityService() + ->HasIdentities(); + if (!IsChromeLikelyDefaultBrowser() && + !HasUserInteractedWithFullscreenPromoBefore() && isEligibleUser) { + [HandlerForProtocol( + self.currentInterface.browser->GetCommandDispatcher(), + WhatsNewCommands) showDefaultBrowserFullscreenPromo]; + } + } } // Mitigation for crbug.com/1092326, where a nil browser state is passed // (presumably because mainInterface is nil as well). @@ -424,13 +442,15 @@ } } -- (void)presentSignInAccountsViewControllerIfNecessary { +- (BOOL)presentSignInAccountsViewControllerIfNecessary { ChromeBrowserState* browserState = self.currentInterface.browserState; DCHECK(browserState); if ([SignedInAccountsViewController shouldBePresentedForBrowserState:browserState]) { [self presentSignedInAccountsViewControllerForBrowserState:browserState]; + return YES; } + return NO; } - (void)sceneState:(SceneState*)sceneState
diff --git a/ios/chrome/browser/ui/passwords/password_breach_mediator.mm b/ios/chrome/browser/ui/passwords/password_breach_mediator.mm index f73d17e..c6d9028 100644 --- a/ios/chrome/browser/ui/passwords/password_breach_mediator.mm +++ b/ios/chrome/browser/ui/passwords/password_breach_mediator.mm
@@ -99,6 +99,10 @@ } } +- (void)confirmationAlertSecondaryAction { + // No-op. +} + - (void)confirmationAlertLearnMoreAction { [self.presenter presentLearnMore]; }
diff --git a/ios/chrome/browser/ui/qr_generator/qr_generator_coordinator.mm b/ios/chrome/browser/ui/qr_generator/qr_generator_coordinator.mm index 90631aa7..f2f7dbb7 100644 --- a/ios/chrome/browser/ui/qr_generator/qr_generator_coordinator.mm +++ b/ios/chrome/browser/ui/qr_generator/qr_generator_coordinator.mm
@@ -126,6 +126,10 @@ [self.activityServiceCoordinator start]; } +- (void)confirmationAlertSecondaryAction { + // No-op. +} + - (void)confirmationAlertLearnMoreAction { NSString* message = l10n_util::GetNSString(IDS_IOS_QR_CODE_LEARN_MORE_MESSAGE);
diff --git a/ios/chrome/browser/ui/whats_new/BUILD.gn b/ios/chrome/browser/ui/whats_new/BUILD.gn index c2fac1e..0c7b7f5 100644 --- a/ios/chrome/browser/ui/whats_new/BUILD.gn +++ b/ios/chrome/browser/ui/whats_new/BUILD.gn
@@ -25,6 +25,7 @@ ":utils", "//base", "//ios/chrome/app/strings:ios_google_chrome_strings", + "//ios/chrome/app/strings:ios_strings", "//ios/chrome/browser/ui/coordinators:chrome_coordinators", "//ios/chrome/browser/ui/whats_new/resources", "//ios/chrome/common/ui/confirmation_alert",
diff --git a/ios/chrome/browser/ui/whats_new/default_browser_promo_coordinator.mm b/ios/chrome/browser/ui/whats_new/default_browser_promo_coordinator.mm index 38d6b95..05d02ec 100644 --- a/ios/chrome/browser/ui/whats_new/default_browser_promo_coordinator.mm +++ b/ios/chrome/browser/ui/whats_new/default_browser_promo_coordinator.mm
@@ -67,9 +67,8 @@ #pragma mark - ConfirmationAlertActionHandler - (void)confirmationAlertDismissAction { - UMA_HISTOGRAM_ENUMERATION("IOS.DefaultBrowserFullscreenPromo", CANCEL); - LogUserInteractionWithFullscreenPromo(); - [self.handler hidePromo]; + // There should be no cancel toolbar button for this UI. + NOTREACHED(); } - (void)confirmationAlertPrimaryAction { @@ -83,6 +82,12 @@ [self.handler hidePromo]; } +- (void)confirmationAlertSecondaryAction { + UMA_HISTOGRAM_ENUMERATION("IOS.DefaultBrowserFullscreenPromo", CANCEL); + LogUserInteractionWithFullscreenPromo(); + [self.handler hidePromo]; +} + - (void)confirmationAlertLearnMoreAction { base::RecordAction(base::UserMetricsAction( "IOS.DefaultBrowserFullscreenPromoMoreInfoTapped"));
diff --git a/ios/chrome/browser/ui/whats_new/default_browser_promo_view_controller.mm b/ios/chrome/browser/ui/whats_new/default_browser_promo_view_controller.mm index cd3b409..642e4bb 100644 --- a/ios/chrome/browser/ui/whats_new/default_browser_promo_view_controller.mm +++ b/ios/chrome/browser/ui/whats_new/default_browser_promo_view_controller.mm
@@ -5,6 +5,7 @@ #import "ios/chrome/browser/ui/whats_new/default_browser_promo_view_controller.h" #include "ios/chrome/grit/ios_google_chrome_strings.h" +#include "ios/chrome/grit/ios_strings.h" #include "ui/base/l10n/l10n_util_mac.h" #if !defined(__has_feature) || !__has_feature(objc_arc) @@ -22,11 +23,15 @@ self.helpButtonAvailable = YES; self.primaryActionAvailable = YES; + self.secondaryActionAvailable = YES; + self.showDismissBarButton = NO; self.titleString = l10n_util::GetNSString(IDS_IOS_DEFAULT_BROWSER_TITLE); self.subtitleString = l10n_util::GetNSString(IDS_IOS_DEFAULT_BROWSER_DESCRIPTION); self.primaryActionString = l10n_util::GetNSString(IDS_IOS_DEFAULT_BROWSER_MAIN_BUTTON_TEXT); + self.secondaryActionString = + l10n_util::GetNSString(IDS_IOS_DEFAULT_BROWSER_SECONDARY_BUTTON_TEXT); self.dismissBarButtonSystemItem = UIBarButtonSystemItemCancel; #if defined(__IPHONE_13_4) if (@available(iOS 13.4, *)) {
diff --git a/ios/chrome/browser/web_state_list/BUILD.gn b/ios/chrome/browser/web_state_list/BUILD.gn index ef06252..6a87247 100644 --- a/ios/chrome/browser/web_state_list/BUILD.gn +++ b/ios/chrome/browser/web_state_list/BUILD.gn
@@ -47,7 +47,12 @@ ] deps = [ ":web_state_list", + "//components/navigation_metrics", + "//components/profile_metrics", + "//ios/chrome/browser:chrome_url_constants", "//ios/chrome/browser/browser_state", + "//ios/chrome/browser/browser_state_metrics", + "//ios/chrome/browser/crash_report", "//ios/chrome/browser/main:public", "//ios/chrome/browser/sessions:restoration_agent", "//ios/chrome/browser/sessions:restoration_observer",
diff --git a/ios/chrome/browser/web_state_list/web_state_list_metrics_browser_agent.h b/ios/chrome/browser/web_state_list/web_state_list_metrics_browser_agent.h index b5c9d20..60877b6a 100644 --- a/ios/chrome/browser/web_state_list/web_state_list_metrics_browser_agent.h +++ b/ios/chrome/browser/web_state_list/web_state_list_metrics_browser_agent.h
@@ -10,11 +10,13 @@ #import "ios/chrome/browser/main/browser_user_data.h" #include "ios/chrome/browser/sessions/session_restoration_observer.h" #import "ios/chrome/browser/web_state_list/web_state_list_observer.h" +#import "ios/web/public/web_state_observer.h" class WebStateListMetricsBrowserAgent : BrowserObserver, public WebStateListObserver, public SessionRestorationObserver, + public web::WebStateObserver, public BrowserUserData<WebStateListMetricsBrowserAgent> { public: WebStateListMetricsBrowserAgent(); @@ -52,6 +54,15 @@ void SessionRestorationFinished( const std::vector<web::WebState*>& restored_web_states) override; + // web::WebStateObserver + void DidStartNavigation(web::WebState* web_state, + web::NavigationContext* navigation_context) override; + void DidFinishNavigation(web::WebState* web_state, + web::NavigationContext* navigation_context) override; + void PageLoaded( + web::WebState* web_state, + web::PageLoadCompletionStatus load_completion_status) override; + // The WebStateList containing all the monitored tabs. WebStateList* web_state_list_; // weak
diff --git a/ios/chrome/browser/web_state_list/web_state_list_metrics_browser_agent.mm b/ios/chrome/browser/web_state_list/web_state_list_metrics_browser_agent.mm index 297e35e..e46697f 100644 --- a/ios/chrome/browser/web_state_list/web_state_list_metrics_browser_agent.mm +++ b/ios/chrome/browser/web_state_list/web_state_list_metrics_browser_agent.mm
@@ -7,8 +7,19 @@ #include "base/metrics/histogram_macros.h" #include "base/metrics/user_metrics.h" #include "base/metrics/user_metrics_action.h" +#include "components/navigation_metrics/navigation_metrics.h" +#include "components/profile_metrics/browser_profile_type.h" +#include "ios/chrome/browser/browser_state/chrome_browser_state.h" +#include "ios/chrome/browser/browser_state_metrics/browser_state_metrics.h" +#include "ios/chrome/browser/chrome_url_constants.h" +#include "ios/chrome/browser/crash_report/crash_loop_detection_util.h" #import "ios/chrome/browser/sessions/session_restoration_browser_agent.h" #import "ios/chrome/browser/web_state_list/web_state_list.h" +#include "ios/web/public/browser_state.h" +#include "ios/web/public/navigation/navigation_context.h" +#include "ios/web/public/navigation/navigation_item.h" +#include "ios/web/public/navigation/navigation_manager.h" +#import "ios/web/public/web_state.h" #if !defined(__has_feature) || !__has_feature(objc_arc) #error "This file requires ARC support." @@ -96,6 +107,84 @@ metric_collection_paused_ = false; } +// web::WebStateObserver +void WebStateListMetricsBrowserAgent::DidStartNavigation( + web::WebState* web_state, + web::NavigationContext* navigation_context) { + // In order to avoid false positive in the crash loop detection, disable the + // counter as soon as an URL is loaded. This requires an user action and is a + // significant source of crashes. Ignore NTP as it is loaded by default after + // a crash. + if (navigation_context->GetUrl().host_piece() != kChromeUINewTabHost) { + static dispatch_once_t dispatch_once_token; + dispatch_once(&dispatch_once_token, ^{ + crash_util::ResetFailedStartupAttemptCount(); + }); + } + + DCHECK(web_state->GetNavigationManager()); + web::NavigationItem* navigation_item = + web_state->GetNavigationManager()->GetPendingItem(); + + // TODO(crbug.com/676129): the pending item is not correctly set when the + // page is reloading, use the last committed item if pending item is null. + // Remove this once tracking bug is fixed. + if (!navigation_item) { + navigation_item = web_state->GetNavigationManager()->GetLastCommittedItem(); + } + + if (!navigation_item) { + // Pending item may not exist due to the bug in //ios/web layer. + // TODO(crbug.com/899827): remove this early return once GetPendingItem() + // always return valid object inside WebStateObserver::DidStartNavigation() + // callback. + // + // Note that GetLastCommittedItem() returns null if navigation manager does + // not have committed items (which is normal situation). + return; + } +} + +void WebStateListMetricsBrowserAgent::DidFinishNavigation( + web::WebState* web_state, + web::NavigationContext* navigation_context) { + if (!navigation_context->HasCommitted()) + return; + + if (!navigation_context->IsSameDocument() && + !web_state->GetBrowserState()->IsOffTheRecord()) { + int tab_count = static_cast<int>(web_state_list_->count()); + UMA_HISTOGRAM_CUSTOM_COUNTS("Tabs.TabCountPerLoad", tab_count, 1, 200, 50); + } + + web::NavigationItem* item = + web_state->GetNavigationManager()->GetLastCommittedItem(); + navigation_metrics::RecordMainFrameNavigation( + item ? item->GetVirtualURL() : GURL::EmptyGURL(), + navigation_context->IsSameDocument(), + web_state->GetBrowserState()->IsOffTheRecord(), + GetBrowserStateType(web_state->GetBrowserState())); +} + +void WebStateListMetricsBrowserAgent::PageLoaded( + web::WebState* web_state, + web::PageLoadCompletionStatus load_completion_status) { + switch ([[UIApplication sharedApplication] statusBarOrientation]) { + case UIInterfaceOrientationPortrait: + case UIInterfaceOrientationPortraitUpsideDown: + UMA_HISTOGRAM_BOOLEAN("Tab.PageLoadInPortrait", YES); + break; + case UIInterfaceOrientationLandscapeLeft: + case UIInterfaceOrientationLandscapeRight: + UMA_HISTOGRAM_BOOLEAN("Tab.PageLoadInPortrait", NO); + break; + case UIInterfaceOrientationUnknown: + // TODO(crbug.com/228832): Convert from a boolean histogram to an + // enumerated histogram and log this case as well. + break; + } +} + void WebStateListMetricsBrowserAgent::BrowserDestroyed(Browser* browser) { DCHECK_EQ(browser->GetWebStateList(), web_state_list_);
diff --git a/ios/chrome/common/ui/confirmation_alert/BUILD.gn b/ios/chrome/common/ui/confirmation_alert/BUILD.gn index cfb9f6b..974934a 100644 --- a/ios/chrome/common/ui/confirmation_alert/BUILD.gn +++ b/ios/chrome/common/ui/confirmation_alert/BUILD.gn
@@ -15,6 +15,7 @@ ] deps = [ ":confirmation_alert_ic_help", + "//base", "//ios/chrome/common/ui/colors", "//ios/chrome/common/ui/util", "//ios/chrome/common/ui/util:dynamic_type_util",
diff --git a/ios/chrome/common/ui/confirmation_alert/confirmation_alert_action_handler.h b/ios/chrome/common/ui/confirmation_alert/confirmation_alert_action_handler.h index 518fcc4..bdbfab5 100644 --- a/ios/chrome/common/ui/confirmation_alert/confirmation_alert_action_handler.h +++ b/ios/chrome/common/ui/confirmation_alert/confirmation_alert_action_handler.h
@@ -15,6 +15,9 @@ // The "Primary Action" was touched. - (void)confirmationAlertPrimaryAction; +// The "Secondary Action" was touched. +- (void)confirmationAlertSecondaryAction; + // The "Learn More" button was touched. - (void)confirmationAlertLearnMoreAction;
diff --git a/ios/chrome/common/ui/confirmation_alert/confirmation_alert_view_controller.h b/ios/chrome/common/ui/confirmation_alert/confirmation_alert_view_controller.h index 9726ca1..9b4fb9c 100644 --- a/ios/chrome/common/ui/confirmation_alert/confirmation_alert_view_controller.h +++ b/ios/chrome/common/ui/confirmation_alert/confirmation_alert_view_controller.h
@@ -38,6 +38,13 @@ // The text for the primary action. Must be set before the view is loaded. @property(nonatomic, strong) NSString* primaryActionString; +// Controls if there is a secondary action in the view. Must be set before the +// view is loaded. +@property(nonatomic) BOOL secondaryActionAvailable; + +// The text for the secondary action. Must be set before the view is loaded. +@property(nonatomic, strong) NSString* secondaryActionString; + // The image. Must be set before the view is loaded. @property(nonatomic, strong) UIImage* image; @@ -71,6 +78,10 @@ // The help button item in the top left of the view. Nil if not available. @property(nonatomic, readonly) UIBarButtonItem* helpButton; +// Controls if the toolbar dismiss button is available in the view. Default is +// YES. Must be set before the view is loaded. +@property(nonatomic) BOOL showDismissBarButton; + // Allows to modify the system item for the dismiss bar button (defaults to // UIBarButtonSystemItemDone). Must be set before the view is loaded. @property(nonatomic, assign) UIBarButtonSystemItem dismissBarButtonSystemItem;
diff --git a/ios/chrome/common/ui/confirmation_alert/confirmation_alert_view_controller.mm b/ios/chrome/common/ui/confirmation_alert/confirmation_alert_view_controller.mm index 1149b44..503d20d 100644 --- a/ios/chrome/common/ui/confirmation_alert/confirmation_alert_view_controller.mm +++ b/ios/chrome/common/ui/confirmation_alert/confirmation_alert_view_controller.mm
@@ -4,6 +4,7 @@ #import "ios/chrome/common/ui/confirmation_alert/confirmation_alert_view_controller.h" +#include "base/check.h" #import "ios/chrome/common/ui/colors/semantic_color_names.h" #import "ios/chrome/common/ui/confirmation_alert/confirmation_alert_action_handler.h" #import "ios/chrome/common/ui/util/constraints_ui_util.h" @@ -23,6 +24,8 @@ @"kConfirmationAlertSubtitleAccessibilityIdentifier"; NSString* const kConfirmationAlertPrimaryActionAccessibilityIdentifier = @"kConfirmationAlertPrimaryActionAccessibilityIdentifier"; +NSString* const kConfirmationAlertSecondaryActionAccessibilityIdentifier = + @"kConfirmationAlertSecondaryActionAccessibilityIdentifier"; NSString* const kConfirmationAlertBarPrimaryActionAccessibilityIdentifier = @"kConfirmationAlertBarPrimaryActionAccessibilityIdentifier"; @@ -46,6 +49,7 @@ // References to the UI properties that need to be updated when the trait // collection changes. @property(nonatomic, strong) UIButton* primaryActionButton; +@property(nonatomic, strong) UIButton* secondaryActionButton; @property(nonatomic, strong) UIToolbar* topToolbar; @property(nonatomic, strong) NSArray* regularHeightToolbarItems; @property(nonatomic, strong) NSArray* compactHeightToolbarItems; @@ -59,8 +63,7 @@ NSLayoutConstraint* regularHeightScrollViewBottomVerticalConstraint; @property(nonatomic, strong) NSLayoutConstraint* compactHeightScrollViewBottomVerticalConstraint; -@property(nonatomic, strong) - NSLayoutConstraint* primaryButtonBottomVerticalConstraint; +@property(nonatomic, strong) NSLayoutConstraint* buttonBottomVerticalConstraint; @end @implementation ConfirmationAlertViewController @@ -71,6 +74,7 @@ self = [super init]; if (self) { _customSpacingAfterImage = kStackViewSpacingAfterIllustration; + _showDismissBarButton = YES; _dismissBarButtonSystemItem = UIBarButtonSystemItemDone; } return self; @@ -143,31 +147,67 @@ multiplier:kSafeAreaMultiplier], ]; - // The bottom anchor for the scroll view. It will be updated to the button top - // anchor if it exists. - NSLayoutYAxisAnchor* scrollViewBottomAnchor = - self.view.safeAreaLayoutGuide.bottomAnchor; - if (self.primaryActionAvailable) { UIButton* primaryActionButton = [self createPrimaryActionButton]; [self.view addSubview:primaryActionButton]; // Primary Action Button constraints. - self.primaryButtonBottomVerticalConstraint = - [primaryActionButton.bottomAnchor - constraintEqualToAnchor:self.view.safeAreaLayoutGuide.bottomAnchor]; + self.buttonBottomVerticalConstraint = [primaryActionButton.bottomAnchor + constraintEqualToAnchor:self.view.safeAreaLayoutGuide.bottomAnchor]; [NSLayoutConstraint activateConstraints:@[ [primaryActionButton.leadingAnchor constraintEqualToAnchor:scrollView.leadingAnchor], [primaryActionButton.trailingAnchor constraintEqualToAnchor:scrollView.trailingAnchor], - self.primaryButtonBottomVerticalConstraint, ]]; - scrollViewBottomAnchor = primaryActionButton.topAnchor; self.primaryActionButton = primaryActionButton; } + if (self.secondaryActionAvailable) { + UIButton* secondaryActionButton = [self createSecondaryActionButton]; + [self.view addSubview:secondaryActionButton]; + + // Secondary Action Button constraints. + self.buttonBottomVerticalConstraint = [secondaryActionButton.bottomAnchor + constraintEqualToAnchor:self.view.safeAreaLayoutGuide.bottomAnchor]; + [NSLayoutConstraint activateConstraints:@[ + [secondaryActionButton.leadingAnchor + constraintEqualToAnchor:scrollView.leadingAnchor], + [secondaryActionButton.trailingAnchor + constraintEqualToAnchor:scrollView.trailingAnchor] + ]]; + + self.secondaryActionButton = secondaryActionButton; + } + + // The bottom anchor for the scroll view. It will be updated to the button top + // anchor if it exists. + NSLayoutYAxisAnchor* scrollViewBottomAnchor = + self.view.safeAreaLayoutGuide.bottomAnchor; + + if (self.primaryActionAvailable || self.secondaryActionAvailable) { + // Set the ScrollView bottom anchor to the top anchor of the highest + // positioned button. It is always |primaryActionButton| if it is there, + // |secondaryActionButton| otherwise. + scrollViewBottomAnchor = self.primaryActionButton + ? self.primaryActionButton.topAnchor + : self.secondaryActionButton.topAnchor; + // Add |buttonBottomVerticalConstraint|. It is always the + // |secondaryActionButton|'s bottom anchor if it is there, + // |primaryActionButton|'s otherwise. + self.buttonBottomVerticalConstraint.active = YES; + + if (self.primaryActionAvailable && self.secondaryActionAvailable) { + // If both buttons are there, then |primaryActionButton| needs to be + // constrainted to the top of |secondaryActionButton|. + [NSLayoutConstraint activateConstraints:@[ + [self.primaryActionButton.bottomAnchor + constraintEqualToAnchor:self.secondaryActionButton.topAnchor] + ]]; + } + } + self.regularHeightScrollViewBottomVerticalConstraint = [scrollView.bottomAnchor constraintLessThanOrEqualToAnchor:scrollViewBottomAnchor]; @@ -248,7 +288,7 @@ - (void)updateViewConstraints { CGFloat marginValue = self.view.layoutMargins.left - self.view.safeAreaInsets.left; - self.primaryButtonBottomVerticalConstraint.constant = -marginValue; + self.buttonBottomVerticalConstraint.constant = -marginValue; if (self.traitCollection.horizontalSizeClass == UIUserInterfaceSizeClassCompact) { [NSLayoutConstraint deactivateConstraints:self.regularWidthConstraints]; @@ -313,6 +353,7 @@ // Handle taps on the dismiss button. - (void)didTapDismissBarButton { + DCHECK(self.showDismissBarButton); [self.actionHandler confirmationAlertDismissAction]; } @@ -326,6 +367,12 @@ [self.actionHandler confirmationAlertPrimaryAction]; } +// Handle taps on the secondary action button +- (void)didTapSecondaryActionButton { + DCHECK(self.secondaryActionAvailable); + [self.actionHandler confirmationAlertSecondaryAction]; +} + // Helper to create the top toolbar. - (UIToolbar*)createTopToolbar { UIToolbar* topToolbar = [[UIToolbar alloc] init]; @@ -387,12 +434,14 @@ [regularHeightItems addObject:spacer]; [compactHeightItems addObject:spacer]; - UIBarButtonItem* dismissButton = [[UIBarButtonItem alloc] - initWithBarButtonSystemItem:self.dismissBarButtonSystemItem - target:self - action:@selector(didTapDismissBarButton)]; - [regularHeightItems addObject:dismissButton]; - [compactHeightItems addObject:dismissButton]; + if (self.showDismissBarButton) { + UIBarButtonItem* dismissButton = [[UIBarButtonItem alloc] + initWithBarButtonSystemItem:self.dismissBarButtonSystemItem + target:self + action:@selector(didTapDismissBarButton)]; + [regularHeightItems addObject:dismissButton]; + [compactHeightItems addObject:dismissButton]; + } topToolbar.translatesAutoresizingMaskIntoConstraints = NO; @@ -518,4 +567,41 @@ return primaryActionButton; } +// Helper to create the primary action button. +- (UIButton*)createSecondaryActionButton { + DCHECK(self.secondaryActionAvailable); + UIButton* secondaryActionButton = + [UIButton buttonWithType:UIButtonTypeSystem]; + [secondaryActionButton addTarget:self + action:@selector(didTapSecondaryActionButton) + forControlEvents:UIControlEventTouchUpInside]; + [secondaryActionButton setTitle:self.secondaryActionString.capitalizedString + forState:UIControlStateNormal]; + secondaryActionButton.contentEdgeInsets = + UIEdgeInsetsMake(kButtonVerticalInsets, 0, kButtonVerticalInsets, 0); + [secondaryActionButton setBackgroundColor:[UIColor clearColor]]; + UIColor* titleColor = [UIColor colorNamed:kBlueColor]; + [secondaryActionButton setTitleColor:titleColor + forState:UIControlStateNormal]; + secondaryActionButton.titleLabel.font = + [UIFont preferredFontForTextStyle:UIFontTextStyleHeadline]; + secondaryActionButton.layer.cornerRadius = kPrimaryButtonCornerRadius; + secondaryActionButton.titleLabel.adjustsFontForContentSizeCategory = NO; + secondaryActionButton.translatesAutoresizingMaskIntoConstraints = NO; + secondaryActionButton.accessibilityIdentifier = + kConfirmationAlertSecondaryActionAccessibilityIdentifier; + +#if defined(__IPHONE_13_4) + if (@available(iOS 13.4, *)) { + if (self.pointerInteractionEnabled) { + secondaryActionButton.pointerInteractionEnabled = YES; + secondaryActionButton.pointerStyleProvider = + CreateOpaqueButtonPointerStyleProvider(); + } + } +#endif // defined(__IPHONE_13_4) + + return secondaryActionButton; +} + @end
diff --git a/ios/chrome/credential_provider_extension/credential_provider_view_controller.mm b/ios/chrome/credential_provider_extension/credential_provider_view_controller.mm index acadf0a..82ae8556 100644 --- a/ios/chrome/credential_provider_extension/credential_provider_view_controller.mm +++ b/ios/chrome/credential_provider_extension/credential_provider_view_controller.mm
@@ -267,6 +267,10 @@ // No-op. } +- (void)confirmationAlertSecondaryAction { + // No-op. +} + - (void)confirmationAlertLearnMoreAction { // No-op. }
diff --git a/ios/chrome/credential_provider_extension/ui/consent_coordinator.mm b/ios/chrome/credential_provider_extension/ui/consent_coordinator.mm index aa678356..8cb53b16 100644 --- a/ios/chrome/credential_provider_extension/ui/consent_coordinator.mm +++ b/ios/chrome/credential_provider_extension/ui/consent_coordinator.mm
@@ -109,6 +109,10 @@ presentReminderOnViewController:self.viewController]; } +- (void)confirmationAlertSecondaryAction { + // No-op. +} + - (void)confirmationAlertLearnMoreAction { NSString* message = NSLocalizedString(@"IDS_IOS_CREDENTIAL_PROVIDER_CONSENT_MORE_INFO_STRING",
diff --git a/ios/chrome/credential_provider_extension/ui/credential_list_coordinator.mm b/ios/chrome/credential_provider_extension/ui/credential_list_coordinator.mm index 1172ad2..c55b615 100644 --- a/ios/chrome/credential_provider_extension/ui/credential_list_coordinator.mm +++ b/ios/chrome/credential_provider_extension/ui/credential_list_coordinator.mm
@@ -193,6 +193,10 @@ // No-op. } +- (void)confirmationAlertSecondaryAction { + // No-op. +} + - (void)confirmationAlertLearnMoreAction { // No-op. }
diff --git a/media/capture/video/win/video_capture_device_mf_win.cc b/media/capture/video/win/video_capture_device_mf_win.cc index 7cacd57..7823853 100644 --- a/media/capture/video/win/video_capture_device_mf_win.cc +++ b/media/capture/video/win/video_capture_device_mf_win.cc
@@ -777,8 +777,17 @@ } ComPtr<IMFAttributes> attributes; - MFCreateAttributes(&attributes, 1); - DCHECK(attributes); + hr = MFCreateAttributes(&attributes, 1); + if (FAILED(hr)) { + LogError(FROM_HERE, hr); + return false; + } + + hr = attributes->SetUINT32(MF_CAPTURE_ENGINE_USE_VIDEO_DEVICE_ONLY, TRUE); + if (FAILED(hr)) { + LogError(FROM_HERE, hr); + return false; + } video_callback_ = new MFVideoCallback(this); hr = engine_->Initialize(video_callback_.get(), attributes.Get(), nullptr,
diff --git a/media/renderers/BUILD.gn b/media/renderers/BUILD.gn index b4f4e8d..bbbc19ad 100644 --- a/media/renderers/BUILD.gn +++ b/media/renderers/BUILD.gn
@@ -26,14 +26,14 @@ "remote_playback_client_wrapper.h", "renderer_impl.cc", "renderer_impl.h", + "video_frame_yuv_converter.cc", + "video_frame_yuv_converter.h", "video_overlay_factory.cc", "video_overlay_factory.h", "video_renderer_impl.cc", "video_renderer_impl.h", "video_resource_updater.cc", "video_resource_updater.h", - "yuv_util.cc", - "yuv_util.h", ] deps = [
diff --git a/media/renderers/paint_canvas_video_renderer.cc b/media/renderers/paint_canvas_video_renderer.cc index a796019..085535d9 100644 --- a/media/renderers/paint_canvas_video_renderer.cc +++ b/media/renderers/paint_canvas_video_renderer.cc
@@ -17,7 +17,6 @@ #include "base/system/sys_info.h" #include "base/task/thread_pool.h" #include "base/threading/thread_restrictions.h" -#include "build/build_config.h" #include "cc/paint/paint_canvas.h" #include "cc/paint/paint_flags.h" #include "cc/paint/paint_image_builder.h" @@ -33,7 +32,6 @@ #include "gpu/command_buffer/common/shared_image_usage.h" #include "media/base/data_buffer.h" #include "media/base/video_frame.h" -#include "media/renderers/yuv_util.h" #include "third_party/libyuv/include/libyuv.h" #include "third_party/skia/include/core/SkImage.h" #include "third_party/skia/include/core/SkImageGenerator.h" @@ -592,27 +590,6 @@ done->Run(); } -// Valid gl texture internal format that can try to use direct uploading path. -bool ValidFormatForDirectUploading(GrGLenum format, unsigned int type) { - switch (format) { - case GL_RGBA: - return type == GL_UNSIGNED_BYTE || type == GL_UNSIGNED_SHORT_4_4_4_4; - case GL_RGB: - return type == GL_UNSIGNED_BYTE || type == GL_UNSIGNED_SHORT_5_6_5; - // WebGL2 supported sized formats - case GL_RGBA8: - case GL_RGB565: - case GL_RGBA16F: - case GL_RGB8: - case GL_RGB10_A2: - case GL_RGBA4: - case GL_SRGB8_ALPHA8: - return true; - default: - return false; - } -} - } // anonymous namespace // Generates an RGB image from a VideoFrame. Convert YUV to RGB plain on GPU. @@ -1262,21 +1239,6 @@ GrContext* gr_context = raster_context_provider->GrContext(); if (!gr_context) return false; - -// TODO(crbug.com/1108154): This uploading path failed on mac with error -// invalid mailbox name. Suspect it is related to texture target. Disable -// direct uploading path on mac platform for now. -#if !defined(OS_MAC) - // Try direct uploading path - if (!premultiply_alpha && level == 0) { - if (UploadVideoFrameToGLTexture(raster_context_provider, destination_gl, - video_frame, target, texture, - internal_format, format, type, flip_y)) { - return true; - } - } -#endif // !defined(OS_MAC) - if (!UpdateLastImage(video_frame, raster_context_provider, true /* allow_wrap_texture */)) { return false; @@ -1334,75 +1296,6 @@ return true; } -bool PaintCanvasVideoRenderer::UploadVideoFrameToGLTexture( - viz::RasterContextProvider* raster_context_provider, - gpu::gles2::GLES2Interface* destination_gl, - scoped_refptr<VideoFrame> video_frame, - unsigned int target, - unsigned int texture, - unsigned int internal_format, - unsigned int format, - unsigned int type, - bool flip_y) { - DCHECK(thread_checker_.CalledOnValidThread()); - DCHECK(video_frame); - DCHECK(video_frame->HasTextures()); - // Support uploading for NV12 and I420 video frame only. - if (video_frame->format() != PIXEL_FORMAT_I420 && - video_frame->format() != PIXEL_FORMAT_NV12) { - return false; - } - - // TODO(crbug.com/1108154): Investigate how to support other texture target - if (target != GL_TEXTURE_2D) { - return false; - } - - if (!ValidFormatForDirectUploading(static_cast<GLenum>(internal_format), - type)) { - return false; - } - - if (!raster_context_provider || !raster_context_provider->GrContext()) - return false; - - // Trigger resource allocation for dst texture to back SkSurface. - // Dst texture size should equal to video frame visible rect. - destination_gl->BindTexture(target, texture); - destination_gl->TexImage2D( - target, 0, internal_format, video_frame->visible_rect().width(), - video_frame->visible_rect().height(), 0, format, type, nullptr); - - gpu::MailboxHolder mailbox_holder; - mailbox_holder.texture_target = target; - destination_gl->ProduceTextureDirectCHROMIUM(texture, - mailbox_holder.mailbox.name); - - destination_gl->GenUnverifiedSyncTokenCHROMIUM( - mailbox_holder.sync_token.GetData()); - - ConvertFromVideoFrameYUV(video_frame.get(), raster_context_provider, - mailbox_holder, internal_format, type, flip_y, - true // use visible_rect - ); - - gpu::raster::RasterInterface* source_ri = - raster_context_provider->RasterInterface(); - // Wait for mailbox creation on canvas context before consuming it and - // copying from it on the consumer context. - source_ri->GenUnverifiedSyncTokenCHROMIUM( - mailbox_holder.sync_token.GetData()); - - destination_gl->WaitSyncTokenCHROMIUM( - mailbox_holder.sync_token.GetConstData()); - - SyncTokenClientImpl client(source_ri); - video_frame->UpdateReleaseSyncToken(&client); - - DCHECK(!cache_ || !cache_->wraps_video_frame_texture); - return true; -} - bool PaintCanvasVideoRenderer::PrepareVideoFrameForWebGL( viz::RasterContextProvider* raster_context_provider, gpu::gles2::GLES2Interface* destination_gl, @@ -1520,7 +1413,8 @@ dest_holder.mailbox = yuv_cache_.mailbox; dest_holder.texture_target = GL_TEXTURE_2D; dest_holder.sync_token = token; - ConvertFromVideoFrameYUV(&video_frame, raster_context_provider, dest_holder); + yuv_cache_.yuv_converter.ConvertYUVVideoFrame( + &video_frame, raster_context_provider, dest_holder); gpu::SyncToken post_conversion_sync_token; source_ri->GenUnverifiedSyncTokenCHROMIUM( @@ -1738,8 +1632,8 @@ } else { gpu::MailboxHolder dest_holder{cache_->source_mailbox, gpu::SyncToken(), GL_TEXTURE_2D}; - ConvertFromVideoFrameYUV(video_frame.get(), raster_context_provider, - dest_holder); + VideoFrameYUVConverter::ConvertYUVVideoFrameNoCaching( + video_frame.get(), raster_context_provider, dest_holder); } raster_context_provider->GrContext()->flushAndSubmit(); } @@ -1827,8 +1721,8 @@ // could cause problems since the pool of VideoFrames has a fixed size. if (video_frame->HasTextures()) { if (video_frame->NumTextures() > 1) { - ConvertFromVideoFrameYUV(video_frame.get(), raster_context_provider, - dest_holder); + VideoFrameYUVConverter::ConvertYUVVideoFrameNoCaching( + video_frame.get(), raster_context_provider, dest_holder); } else { // We don't support Android now. return false; @@ -1853,6 +1747,8 @@ sii->DestroySharedImage(sync_token, mailbox); mailbox.SetZero(); + yuv_converter.ReleaseCachedData(); + // Kick off the GL work up to the OrderingBarrierCHROMIUM above as well as the // SharedImageInterface work, to ensure the shared image memory is released in // a timely fashion.
diff --git a/media/renderers/paint_canvas_video_renderer.h b/media/renderers/paint_canvas_video_renderer.h index 4f9339d5..d685f39 100644 --- a/media/renderers/paint_canvas_video_renderer.h +++ b/media/renderers/paint_canvas_video_renderer.h
@@ -22,6 +22,7 @@ #include "media/base/timestamp_constants.h" #include "media/base/video_frame.h" #include "media/base/video_transformation.h" +#include "media/renderers/video_frame_yuv_converter.h" namespace gfx { class RectF; @@ -257,17 +258,6 @@ viz::RasterContextProvider* raster_context_provider, const gpu::MailboxHolder& dest_holder); - bool UploadVideoFrameToGLTexture( - viz::RasterContextProvider* raster_context_provider, - gpu::gles2::GLES2Interface* destination_gl, - scoped_refptr<VideoFrame> video_frame, - unsigned int target, - unsigned int texture, - unsigned int internal_format, - unsigned int format, - unsigned int type, - bool flip_y); - base::Optional<Cache> cache_; // If |cache_| is not used for a while, it's deleted to save memory. @@ -292,6 +282,10 @@ // The shared image backing the texture. gpu::Mailbox mailbox; + // Used to perform YUV->RGB conversion on video frames. Internally caches + // shared images that are created to upload CPU video frame data to the GPU. + VideoFrameYUVConverter yuv_converter; + // A SyncToken after last usage, used for reusing or destroying texture and // shared image. gpu::SyncToken sync_token;
diff --git a/media/renderers/video_frame_yuv_converter.cc b/media/renderers/video_frame_yuv_converter.cc new file mode 100644 index 0000000..25bb8d0 --- /dev/null +++ b/media/renderers/video_frame_yuv_converter.cc
@@ -0,0 +1,410 @@ +// Copyright 2020 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "media/renderers/video_frame_yuv_converter.h" + +#include <GLES3/gl3.h> + +#include "components/viz/common/gpu/raster_context_provider.h" +#include "gpu/GLES2/gl2extchromium.h" +#include "gpu/command_buffer/client/raster_interface.h" +#include "gpu/command_buffer/client/shared_image_interface.h" +#include "gpu/command_buffer/common/shared_image_usage.h" +#include "media/base/video_frame.h" +#include "third_party/skia/include/core/SkImage.h" +#include "third_party/skia/include/gpu/GrDirectContext.h" + +namespace media { + +namespace { + +SkYUVColorSpace ColorSpaceToSkYUVColorSpace( + const gfx::ColorSpace& color_space) { + // TODO(hubbe): This should really default to rec709. + // https://crbug.com/828599 + SkYUVColorSpace sk_color_space = kRec601_SkYUVColorSpace; + color_space.ToSkYUVColorSpace(&sk_color_space); + return sk_color_space; +} + +sk_sp<SkImage> YUVGrBackendTexturesToSkImage( + GrDirectContext* gr_context, + gfx::ColorSpace video_color_space, + VideoPixelFormat video_format, + GrBackendTexture* yuv_textures, + const GrBackendTexture& result_texture) { + SkYUVColorSpace color_space = ColorSpaceToSkYUVColorSpace(video_color_space); + + switch (video_format) { + case PIXEL_FORMAT_NV12: + return SkImage::MakeFromNV12TexturesCopyWithExternalBackend( + gr_context, color_space, yuv_textures, kTopLeft_GrSurfaceOrigin, + result_texture); + case PIXEL_FORMAT_I420: + return SkImage::MakeFromYUVTexturesCopyWithExternalBackend( + gr_context, color_space, yuv_textures, kTopLeft_GrSurfaceOrigin, + result_texture); + default: + NOTREACHED(); + return nullptr; + } +} + +gfx::Size GetVideoYSize(const VideoFrame* video_frame) { + DCHECK(video_frame); + return video_frame->coded_size(); +} + +gfx::Size GetVideoUVSize(const VideoFrame* video_frame) { + gfx::Size y_size = GetVideoYSize(video_frame); + return gfx::Size((y_size.width() + 1) / 2, (y_size.height() + 1) / 2); +} + +} // namespace + +class VideoFrameYUVConverter::VideoFrameYUVMailboxesHolder { + public: + enum YUVIndex : size_t { + kYIndex = 0, + kUIndex = 1, + kVIndex = 2, + }; + static constexpr size_t kNumNV12Planes = kUIndex + 1; + static constexpr size_t kNumYUVPlanes = kVIndex + 1; + + VideoFrameYUVMailboxesHolder() = default; + ~VideoFrameYUVMailboxesHolder() { ReleaseCachedData(); } + + void ReleaseCachedData(); + void ReleaseTextures(); + + // Extracts shared image information if |video_frame| is texture backed or + // creates new shared images and uploads YUV data to GPU if |video_frame| is + // mappable. If |import_textures| is true also obtains GL texture IDs for each + // plane. This function can be called repeatedly to re-use shared images in + // the case of CPU backed VideoFrames. + void SetVideoFrame(const VideoFrame* video_frame, + viz::RasterContextProvider* raster_context_provider, + bool import_textures); + + bool is_nv12() { return is_nv12_; } + + const gpu::Mailbox& mailbox(size_t plane) { + DCHECK_LT(plane, holders_.size()); + return holders_[plane].mailbox; + } + + const GrGLTextureInfo& texture(size_t plane) { + DCHECK_LT(plane, holders_.size()); + DCHECK(imported_textures_); + return textures_[plane].texture; + } + + private: + void ImportTextures(); + size_t NumPlanes() { return is_nv12_ ? kNumNV12Planes : kNumYUVPlanes; } + + scoped_refptr<viz::RasterContextProvider> provider_; + bool imported_textures_ = false; + bool is_nv12_ = false; + bool created_shared_images_ = false; + gfx::Size cached_video_size_; + gfx::ColorSpace cached_video_color_space_; + std::array<gpu::MailboxHolder, kNumYUVPlanes> holders_; + + struct YUVPlaneTextureInfo { + GrGLTextureInfo texture = {0, 0}; + bool is_shared_image = false; + }; + std::array<YUVPlaneTextureInfo, kNumYUVPlanes> textures_; +}; + +void VideoFrameYUVConverter::VideoFrameYUVMailboxesHolder::ReleaseCachedData() { + if (holders_[kYIndex].mailbox.IsZero()) + return; + + ReleaseTextures(); + + // Don't destroy shared images we don't own. + if (!created_shared_images_) + return; + + auto* ri = provider_->RasterInterface(); + DCHECK(ri); + gpu::SyncToken token; + ri->GenUnverifiedSyncTokenCHROMIUM(token.GetData()); + + auto* sii = provider_->SharedImageInterface(); + DCHECK(sii); + for (auto& mailbox_holder : holders_) { + if (!mailbox_holder.mailbox.IsZero()) + sii->DestroySharedImage(token, mailbox_holder.mailbox); + mailbox_holder.mailbox.SetZero(); + } + + created_shared_images_ = false; +} + +void VideoFrameYUVConverter::VideoFrameYUVMailboxesHolder::SetVideoFrame( + const VideoFrame* video_frame, + viz::RasterContextProvider* raster_context_provider, + bool import_textures) { + is_nv12_ = video_frame->format() == PIXEL_FORMAT_NV12; + + // If we have cached shared images but the provider or video has changed we + // need to release shared images created on the old context and recreate them. + if (created_shared_images_ && + (provider_.get() != raster_context_provider || + video_frame->coded_size() != cached_video_size_ || + video_frame->ColorSpace() != cached_video_color_space_)) + ReleaseCachedData(); + provider_ = raster_context_provider; + DCHECK(provider_); + auto* ri = provider_->RasterInterface(); + DCHECK(ri); + + if (video_frame->HasTextures()) { + for (size_t plane = 0; plane < video_frame->NumTextures(); ++plane) { + holders_[plane] = video_frame->mailbox_holder(plane); + DCHECK(holders_[plane].texture_target == GL_TEXTURE_2D || + holders_[plane].texture_target == GL_TEXTURE_EXTERNAL_OES || + holders_[plane].texture_target == GL_TEXTURE_RECTANGLE_ARB) + << "Unsupported texture target " << std::hex << std::showbase + << holders_[plane].texture_target; + ri->WaitSyncTokenCHROMIUM(holders_[plane].sync_token.GetConstData()); + } + } else { + DCHECK(!is_nv12_) << "NV12 CPU backed VideoFrames aren't supported."; + gfx::Size y_size = GetVideoYSize(video_frame); + gfx::Size uv_size = GetVideoUVSize(video_frame); + + if (!created_shared_images_) { + auto* sii = provider_->SharedImageInterface(); + DCHECK(sii); + uint32_t mailbox_usage; + if (provider_->ContextCapabilities().supports_oop_raster) { + mailbox_usage = gpu::SHARED_IMAGE_USAGE_RASTER | + gpu::SHARED_IMAGE_USAGE_OOP_RASTERIZATION; + } else { + mailbox_usage = gpu::SHARED_IMAGE_USAGE_GLES2; + } + for (size_t plane = 0; plane < kNumYUVPlanes; ++plane) { + gfx::Size tex_size = plane == kYIndex ? y_size : uv_size; + holders_[plane].mailbox = sii->CreateSharedImage( + viz::ResourceFormat::LUMINANCE_8, tex_size, + video_frame->ColorSpace(), kTopLeft_GrSurfaceOrigin, + kPremul_SkAlphaType, mailbox_usage, gpu::kNullSurfaceHandle); + holders_[plane].texture_target = GL_TEXTURE_2D; + } + + // Split up shared image creation from upload so we only have to wait on + // one sync token. + ri->WaitSyncTokenCHROMIUM(sii->GenUnverifiedSyncToken().GetConstData()); + + cached_video_size_ = video_frame->coded_size(); + cached_video_color_space_ = video_frame->ColorSpace(); + created_shared_images_ = true; + } + + // If we have cached shared images that have been imported release them to + // prevent writing to a shared image for which we're holding read access. + ReleaseTextures(); + + for (size_t plane = 0; plane < kNumYUVPlanes; ++plane) { + gfx::Size tex_size = plane == kYIndex ? y_size : uv_size; + SkImageInfo info = + SkImageInfo::Make(tex_size.width(), tex_size.height(), + kGray_8_SkColorType, kUnknown_SkAlphaType); + ri->WritePixels(holders_[plane].mailbox, 0, 0, GL_TEXTURE_2D, + video_frame->stride(plane), info, + video_frame->data(plane)); + } + } + + if (import_textures) + ImportTextures(); +} + +void VideoFrameYUVConverter::VideoFrameYUVMailboxesHolder::ImportTextures() { + DCHECK(!imported_textures_) + << "Textures should always be released after converting video frame. " + "Call ReleaseTextures() for each call to SetVideoFrame() with " + "import_textures=true"; + + auto* ri = provider_->RasterInterface(); + GrGLenum skia_texture_format = is_nv12_ ? GL_RGB8 : GL_LUMINANCE8_EXT; + for (size_t plane = 0; plane < NumPlanes(); ++plane) { + textures_[plane].texture.fID = + ri->CreateAndConsumeForGpuRaster(holders_[plane].mailbox); + if (holders_[plane].mailbox.IsSharedImage()) { + textures_[plane].is_shared_image = true; + ri->BeginSharedImageAccessDirectCHROMIUM( + textures_[plane].texture.fID, + GL_SHARED_IMAGE_ACCESS_MODE_READ_CHROMIUM); + } + + textures_[plane].texture.fTarget = holders_[plane].texture_target; + textures_[plane].texture.fFormat = skia_texture_format; + } + + imported_textures_ = true; +} + +void VideoFrameYUVConverter::VideoFrameYUVMailboxesHolder::ReleaseTextures() { + if (!imported_textures_) + return; + + auto* ri = provider_->RasterInterface(); + DCHECK(ri); + for (auto& tex_info : textures_) { + if (!tex_info.texture.fID) + continue; + + if (tex_info.is_shared_image) + ri->EndSharedImageAccessDirectCHROMIUM(tex_info.texture.fID); + ri->DeleteGpuRasterTexture(tex_info.texture.fID); + + tex_info.texture.fID = 0; + } + + imported_textures_ = false; +} + +VideoFrameYUVConverter::VideoFrameYUVConverter() = default; +VideoFrameYUVConverter::~VideoFrameYUVConverter() = default; + +void VideoFrameYUVConverter::ConvertYUVVideoFrameNoCaching( + const VideoFrame* video_frame, + viz::RasterContextProvider* raster_context_provider, + const gpu::MailboxHolder& dest_mailbox_holder) { + VideoFrameYUVConverter converter; + converter.ConvertYUVVideoFrame(video_frame, raster_context_provider, + dest_mailbox_holder); +} + +void VideoFrameYUVConverter::ConvertYUVVideoFrame( + const VideoFrame* video_frame, + viz::RasterContextProvider* raster_context_provider, + const gpu::MailboxHolder& dest_mailbox_holder) { + DCHECK(video_frame); + DCHECK(video_frame->format() == PIXEL_FORMAT_I420 || + video_frame->format() == PIXEL_FORMAT_NV12) + << "VideoFrame has an unsupported YUV format " << video_frame->format(); + DCHECK( + video_frame->HasTextures() || + (video_frame->IsMappable() && video_frame->format() == PIXEL_FORMAT_I420)) + << "CPU backed VideoFrames must have PIXEL_FORMAT_I420"; + DCHECK(!video_frame->coded_size().IsEmpty()) + << "|video_frame| must have an area > 0"; + DCHECK(raster_context_provider); + + if (!holder_) + holder_ = std::make_unique<VideoFrameYUVMailboxesHolder>(); + + if (raster_context_provider->GrContext()) { + ConvertFromVideoFrameYUVWithGrContext(video_frame, raster_context_provider, + dest_mailbox_holder); + return; + } + + auto* ri = raster_context_provider->RasterInterface(); + DCHECK(ri); + ri->WaitSyncTokenCHROMIUM(dest_mailbox_holder.sync_token.GetConstData()); + SkYUVColorSpace color_space = + ColorSpaceToSkYUVColorSpace(video_frame->ColorSpace()); + + holder_->SetVideoFrame(video_frame, raster_context_provider, false); + + if (holder_->is_nv12()) { + ri->ConvertNV12MailboxesToRGB( + dest_mailbox_holder.mailbox, color_space, + holder_->mailbox(VideoFrameYUVMailboxesHolder::kYIndex), + holder_->mailbox(VideoFrameYUVMailboxesHolder::kUIndex)); + } else { + DCHECK_EQ(video_frame->NumTextures(), + VideoFrameYUVMailboxesHolder::kNumYUVPlanes); + ri->ConvertYUVMailboxesToRGB( + dest_mailbox_holder.mailbox, color_space, + holder_->mailbox(VideoFrameYUVMailboxesHolder::kYIndex), + holder_->mailbox(VideoFrameYUVMailboxesHolder::kUIndex), + holder_->mailbox(VideoFrameYUVMailboxesHolder::kVIndex)); + } +} + +void VideoFrameYUVConverter::ReleaseCachedData() { + holder_.reset(); +} + +void VideoFrameYUVConverter::ConvertFromVideoFrameYUVWithGrContext( + const VideoFrame* video_frame, + viz::RasterContextProvider* raster_context_provider, + const gpu::MailboxHolder& dest_mailbox_holder) { + gpu::raster::RasterInterface* ri = raster_context_provider->RasterInterface(); + DCHECK(ri); + ri->WaitSyncTokenCHROMIUM(dest_mailbox_holder.sync_token.GetConstData()); + GLuint dest_tex_id = + ri->CreateAndConsumeForGpuRaster(dest_mailbox_holder.mailbox); + if (dest_mailbox_holder.mailbox.IsSharedImage()) { + ri->BeginSharedImageAccessDirectCHROMIUM( + dest_tex_id, GL_SHARED_IMAGE_ACCESS_MODE_READWRITE_CHROMIUM); + } + + ConvertFromVideoFrameYUVSkia(video_frame, raster_context_provider, + dest_mailbox_holder.texture_target, dest_tex_id); + + if (dest_mailbox_holder.mailbox.IsSharedImage()) + ri->EndSharedImageAccessDirectCHROMIUM(dest_tex_id); + ri->DeleteGpuRasterTexture(dest_tex_id); +} + +void VideoFrameYUVConverter::ConvertFromVideoFrameYUVSkia( + const VideoFrame* video_frame, + viz::RasterContextProvider* raster_context_provider, + unsigned int texture_target, + unsigned int texture_id) { + GrDirectContext* gr_context = raster_context_provider->GrContext(); + DCHECK(gr_context); + // TODO: We should compare the DCHECK vs when UpdateLastImage calls this + // function. (https://crbug.com/674185) + DCHECK(video_frame->format() == PIXEL_FORMAT_I420 || + video_frame->format() == PIXEL_FORMAT_NV12); + + gfx::Size ya_tex_size = GetVideoYSize(video_frame); + gfx::Size uv_tex_size = GetVideoUVSize(video_frame); + + GrGLTextureInfo backend_texture{}; + + holder_->SetVideoFrame(video_frame, raster_context_provider, true); + + GrBackendTexture yuv_textures[3] = { + GrBackendTexture(ya_tex_size.width(), ya_tex_size.height(), + GrMipMapped::kNo, + holder_->texture(VideoFrameYUVMailboxesHolder::kYIndex)), + GrBackendTexture(uv_tex_size.width(), uv_tex_size.height(), + GrMipMapped::kNo, + holder_->texture(VideoFrameYUVMailboxesHolder::kUIndex)), + GrBackendTexture(uv_tex_size.width(), uv_tex_size.height(), + GrMipMapped::kNo, + holder_->texture(VideoFrameYUVMailboxesHolder::kVIndex)), + }; + backend_texture.fID = texture_id; + backend_texture.fTarget = texture_target; + backend_texture.fFormat = GL_RGBA8; + GrBackendTexture result_texture(video_frame->coded_size().width(), + video_frame->coded_size().height(), + GrMipMapped::kNo, backend_texture); + + // Creating the SkImage triggers conversion into the dest texture. Let the + // image fall out of scope and track the result using |dest_mailbox_holder| + YUVGrBackendTexturesToSkImage(gr_context, video_frame->ColorSpace(), + video_frame->format(), yuv_textures, + result_texture); + gr_context->flushAndSubmit(); + + // Release textures to guarantee |holder_| doesn't hold read access on + // textures it doesn't own. + holder_->ReleaseTextures(); +} + +} // namespace media
diff --git a/media/renderers/video_frame_yuv_converter.h b/media/renderers/video_frame_yuv_converter.h new file mode 100644 index 0000000..ad4ff7be --- /dev/null +++ b/media/renderers/video_frame_yuv_converter.h
@@ -0,0 +1,64 @@ +// Copyright 2020 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef MEDIA_RENDERERS_VIDEO_FRAME_YUV_CONVERTER_H_ +#define MEDIA_RENDERERS_VIDEO_FRAME_YUV_CONVERTER_H_ + +#include <array> + +#include "gpu/command_buffer/common/mailbox_holder.h" +#include "media/base/media_export.h" +#include "ui/gfx/color_space.h" +#include "ui/gfx/geometry/size.h" + +namespace viz { +class RasterContextProvider; +} // namespace viz + +namespace media { + +class VideoFrame; + +// Converts YUV video frames to RGB format and stores the results in the +// provided mailbox. The caller of functions in this class maintains ownership +// of the destination mailbox. VideoFrames that wrap external textures can be +// I420 or NV12 format. Automatically handles upload of CPU memory backed +// VideoFrames in I420 format. Converting CPU backed VideoFrames requires +// creation of shared images to upload the frame to the GPU where the conversion +// takes place. +// IMPORTANT: Callers of this function can cache this class and call +// ConvertYUVVideoFrame() to prevent repeated creation/deletion of shared +// images. +class MEDIA_EXPORT VideoFrameYUVConverter { + public: + static void ConvertYUVVideoFrameNoCaching( + const VideoFrame* video_frame, + viz::RasterContextProvider* raster_context_provider, + const gpu::MailboxHolder& dest_mailbox_holder); + + VideoFrameYUVConverter(); + ~VideoFrameYUVConverter(); + + void ConvertYUVVideoFrame(const VideoFrame* video_frame, + viz::RasterContextProvider* raster_context_provider, + const gpu::MailboxHolder& dest_mailbox_holder); + void ReleaseCachedData(); + + private: + void ConvertFromVideoFrameYUVWithGrContext( + const VideoFrame* video_frame, + viz::RasterContextProvider* raster_context_provider, + const gpu::MailboxHolder& dest_mailbox_holder); + void ConvertFromVideoFrameYUVSkia( + const VideoFrame* video_frame, + viz::RasterContextProvider* raster_context_provider, + unsigned int texture_target, + unsigned int texture_id); + + class VideoFrameYUVMailboxesHolder; + std::unique_ptr<VideoFrameYUVMailboxesHolder> holder_; +}; +} // namespace media + +#endif // MEDIA_RENDERERS_VIDEO_FRAME_YUV_CONVERTER_H_ \ No newline at end of file
diff --git a/media/renderers/yuv_util.cc b/media/renderers/yuv_util.cc deleted file mode 100644 index 1a21eaf..0000000 --- a/media/renderers/yuv_util.cc +++ /dev/null
@@ -1,446 +0,0 @@ -// Copyright (c) 2020 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#include "media/renderers/yuv_util.h" - -#include <GLES3/gl3.h> - -#include "components/viz/common/gpu/raster_context_provider.h" -#include "gpu/command_buffer/client/raster_interface.h" -#include "gpu/command_buffer/client/shared_image_interface.h" -#include "gpu/command_buffer/common/mailbox_holder.h" -#include "gpu/command_buffer/common/shared_image_usage.h" -#include "media/base/video_frame.h" -#include "third_party/skia/include/core/SkCanvas.h" -#include "third_party/skia/include/core/SkImage.h" -#include "third_party/skia/include/core/SkRefCnt.h" -#include "third_party/skia/include/core/SkSurface.h" -#include "third_party/skia/include/core/SkYUVAIndex.h" -#include "third_party/skia/include/gpu/GrContext.h" -#include "third_party/skia/include/gpu/GrDirectContext.h" -#include "third_party/skia/include/gpu/gl/GrGLTypes.h" - -namespace media { - -namespace { - -enum YUVIndex : size_t { - kYIndex = 0, - kUIndex = 1, - kVIndex = 2, -}; -static constexpr size_t kNumNV12Planes = kUIndex + 1; -static constexpr size_t kNumYUVPlanes = kVIndex + 1; - -using YUVMailboxes = std::array<gpu::MailboxHolder, kNumYUVPlanes>; -struct YUVPlaneTextureInfo { - GrGLTextureInfo texture = {0, 0}; - bool is_shared_image = false; -}; -using YUVTexturesInfo = std::array<YUVPlaneTextureInfo, kNumYUVPlanes>; - -class VideoFrameYUVMailboxesHolder { - public: - VideoFrameYUVMailboxesHolder(const VideoFrame* video_frame, - viz::RasterContextProvider* provider, - bool import_textures) - : provider_(provider) { - DCHECK(video_frame); - DCHECK(video_frame->HasTextures() || video_frame->IsMappable()); - DCHECK(video_frame->format() == PIXEL_FORMAT_I420 | - video_frame->format() == PIXEL_FORMAT_NV12) - << "VideoFrame has an unsupported YUV format " << video_frame->format(); - is_nv12_ = video_frame->format() == PIXEL_FORMAT_NV12; - - DCHECK(provider_); - auto* ri = provider_->RasterInterface(); - DCHECK(ri); - - if (video_frame->HasTextures()) { - video_frame_owns_holders_ = true; - for (size_t plane = 0; plane < video_frame->NumTextures(); ++plane) { - holders_[plane] = video_frame->mailbox_holder(plane); - DCHECK(holders_[plane].texture_target == GL_TEXTURE_2D || - holders_[plane].texture_target == GL_TEXTURE_EXTERNAL_OES || - holders_[plane].texture_target == GL_TEXTURE_RECTANGLE_ARB) - << "Unsupported texture target " << std::hex << std::showbase - << holders_[plane].texture_target; - ri->WaitSyncTokenCHROMIUM(holders_[plane].sync_token.GetConstData()); - } - } else { - DCHECK(!is_nv12_) << "NV12 CPU backed VideoFrames aren't supported."; - video_frame_owns_holders_ = false; - gfx::Size y_size = video_frame->coded_size(); - gfx::Size uv_size = gfx::Size(y_size.width() / 2, y_size.height() / 2); - - auto* sii = provider_->SharedImageInterface(); - DCHECK(sii); - uint32_t mailbox_usage; - if (provider_->ContextCapabilities().supports_oop_raster) { - mailbox_usage = gpu::SHARED_IMAGE_USAGE_RASTER | - gpu::SHARED_IMAGE_USAGE_OOP_RASTERIZATION; - } else { - mailbox_usage = gpu::SHARED_IMAGE_USAGE_GLES2; - } - for (size_t plane = 0; plane < kNumYUVPlanes; ++plane) { - gfx::Size tex_size = plane == kYIndex ? y_size : uv_size; - holders_[plane].mailbox = sii->CreateSharedImage( - viz::ResourceFormat::LUMINANCE_8, tex_size, - video_frame->ColorSpace(), kTopLeft_GrSurfaceOrigin, - kPremul_SkAlphaType, mailbox_usage, gpu::kNullSurfaceHandle); - holders_[plane].texture_target = GL_TEXTURE_2D; - } - - // Split up shared image creation from upload so we only have to wait on - // one sync token. - ri->WaitSyncTokenCHROMIUM(sii->GenUnverifiedSyncToken().GetConstData()); - for (size_t plane = 0; plane < kNumYUVPlanes; ++plane) { - gfx::Size tex_size = plane == kYIndex ? y_size : uv_size; - SkImageInfo info = - SkImageInfo::Make(tex_size.width(), tex_size.height(), - kGray_8_SkColorType, kUnknown_SkAlphaType); - ri->WritePixels(holders_[plane].mailbox, 0, 0, GL_TEXTURE_2D, - video_frame->stride(plane), info, - video_frame->data(plane)); - } - } - - if (import_textures) { - ImportTextures(); - } - } - - ~VideoFrameYUVMailboxesHolder() { - auto* ri = provider_->RasterInterface(); - DCHECK(ri); - if (imported_textures_) { - for (auto& tex_info : textures_) { - if (!tex_info.texture.fID) - continue; - - if (tex_info.is_shared_image) - ri->EndSharedImageAccessDirectCHROMIUM(tex_info.texture.fID); - ri->DeleteGpuRasterTexture(tex_info.texture.fID); - } - } - - // Don't destroy shared images we don't own. - if (video_frame_owns_holders_) - return; - - gpu::SyncToken token; - ri->GenUnverifiedSyncTokenCHROMIUM(token.GetData()); - - auto* sii = provider_->SharedImageInterface(); - DCHECK(sii); - for (auto& mailbox_holder : holders_) { - if (!mailbox_holder.mailbox.IsZero()) - sii->DestroySharedImage(token, mailbox_holder.mailbox); - mailbox_holder.mailbox.SetZero(); - } - } - - bool is_nv12() { return is_nv12_; } - - const gpu::Mailbox& mailbox(size_t plane) { - DCHECK_LE(plane, is_nv12_ ? kNumNV12Planes : kNumYUVPlanes); - return holders_[plane].mailbox; - } - - const GrGLTextureInfo& texture(size_t plane) { - DCHECK_LE(plane, is_nv12_ ? kNumNV12Planes : kNumYUVPlanes); - DCHECK(imported_textures_); - return textures_[plane].texture; - } - - private: - void ImportTextures() { - auto* ri = provider_->RasterInterface(); - GrGLenum skia_texture_format = is_nv12_ ? GL_RGB8 : GL_LUMINANCE8_EXT; - for (size_t plane = 0; plane < NumPlanes(); ++plane) { - textures_[plane].texture.fID = - ri->CreateAndConsumeForGpuRaster(holders_[plane].mailbox); - if (holders_[plane].mailbox.IsSharedImage()) { - textures_[plane].is_shared_image = true; - ri->BeginSharedImageAccessDirectCHROMIUM( - textures_[plane].texture.fID, - GL_SHARED_IMAGE_ACCESS_MODE_READ_CHROMIUM); - } - - textures_[plane].texture.fTarget = holders_[plane].texture_target; - textures_[plane].texture.fFormat = skia_texture_format; - } - - imported_textures_ = true; - } - - size_t NumPlanes() { return is_nv12_ ? kNumNV12Planes : kNumYUVPlanes; } - - viz::RasterContextProvider* provider_ = nullptr; - bool imported_textures_ = false; - bool video_frame_owns_holders_ = false; - bool is_nv12_ = false; - - YUVMailboxes holders_; - YUVTexturesInfo textures_; -}; - -// Some YUVA factories infer the YUVAIndices. This helper identifies the channel -// to use for single channel textures. -static SkColorChannel GetSingleChannel(const GrBackendTexture& tex) { - switch (tex.getBackendFormat().channelMask()) { - case kGray_SkColorChannelFlag: // Gray can be read as any of kR, kG, kB. - case kRed_SkColorChannelFlag: - return SkColorChannel::kR; - case kAlpha_SkColorChannelFlag: - return SkColorChannel::kA; - default: // multiple channels in the texture. Guess kR. - return SkColorChannel::kR; - } -} - -SkYUVColorSpace ColorSpaceToSkYUVColorSpace( - const gfx::ColorSpace& color_space) { - // TODO(hubbe): This should really default to rec709. - // https://crbug.com/828599 - SkYUVColorSpace sk_color_space = kRec601_SkYUVColorSpace; - color_space.ToSkYUVColorSpace(&sk_color_space); - return sk_color_space; -} - -SkColorType GetCompatibleSurfaceColorType(GrGLenum format) { - switch (format) { - case GL_RGBA8: - return kRGBA_8888_SkColorType; - case GL_RGB565: - return kRGB_565_SkColorType; - case GL_RGBA16F: - return kRGBA_F16_SkColorType; - case GL_RGB8: - return kRGB_888x_SkColorType; - case GL_RGB10_A2: - return kRGBA_1010102_SkColorType; - case GL_RGBA4: - return kARGB_4444_SkColorType; - case GL_SRGB8_ALPHA8: - return kRGBA_8888_SkColorType; - default: - NOTREACHED(); - return kUnknown_SkColorType; - } -} - -GrGLenum GetSurfaceColorFormat(GrGLenum format, GrGLenum type) { - if (format == GL_RGBA) { - if (type == GL_UNSIGNED_BYTE) - return GL_RGBA8; - if (type == GL_UNSIGNED_SHORT_4_4_4_4) - return GL_RGBA4; - } - if (format == GL_RGB) { - if (type == GL_UNSIGNED_BYTE) - return GL_RGB8; - if (type == GL_UNSIGNED_SHORT_5_6_5) - return GL_RGB565; - } - return format; -} - -bool YUVGrBackendTexturesToSkSurface(GrDirectContext* gr_context, - const VideoFrame* video_frame, - GrBackendTexture* yuv_textures, - sk_sp<SkSurface> surface, - bool flip_y, - bool use_visible_rect) { - SkYUVAIndex indices[4]; - - switch (video_frame->format()) { - case PIXEL_FORMAT_NV12: - indices[SkYUVAIndex::kY_Index] = { - 0, GetSingleChannel(yuv_textures[0])}; // the first backend texture - indices[SkYUVAIndex::kU_Index] = { - 1, SkColorChannel::kR}; // the second backend texture - indices[SkYUVAIndex::kV_Index] = {1, SkColorChannel::kG}; - indices[SkYUVAIndex::kA_Index] = {-1, - SkColorChannel::kA}; // no alpha plane - break; - case PIXEL_FORMAT_I420: - indices[SkYUVAIndex::kY_Index] = { - 0, GetSingleChannel(yuv_textures[0])}; // the first backend texture - indices[SkYUVAIndex::kU_Index] = { - 1, GetSingleChannel(yuv_textures[1])}; // the second backend texture - indices[SkYUVAIndex::kV_Index] = {2, GetSingleChannel(yuv_textures[2])}; - indices[SkYUVAIndex::kA_Index] = {-1, - SkColorChannel::kA}; // no alpha plane - break; - default: - NOTREACHED(); - return false; - } - - auto image = SkImage::MakeFromYUVATextures( - gr_context, ColorSpaceToSkYUVColorSpace(video_frame->ColorSpace()), - yuv_textures, indices, - {video_frame->coded_size().width(), video_frame->coded_size().height()}, - kTopLeft_GrSurfaceOrigin, SkColorSpace::MakeSRGB()); - - if (!image) { - return false; - } - - if (!use_visible_rect) { - surface->getCanvas()->drawImage(image, 0, 0); - } else { - // Draw the planar SkImage to the SkSurface wrapping the WebGL texture. - // Using drawImageRect to draw visible rect from video frame to dst texture. - const gfx::Rect& visible_rect = video_frame->visible_rect(); - const SkRect src_rect = - SkRect::MakeXYWH(visible_rect.x(), visible_rect.y(), - visible_rect.width(), visible_rect.height()); - const SkRect dst_rect = - SkRect::MakeWH(visible_rect.width(), visible_rect.height()); - surface->getCanvas()->drawImageRect(image, src_rect, dst_rect, nullptr); - } - - surface->flushAndSubmit(); - return true; -} - -bool ConvertFromVideoFrameYUVToSkSurface( - const VideoFrame* video_frame, - viz::RasterContextProvider* raster_context_provider, - unsigned int texture_target, - unsigned int texture_id, - unsigned int internal_format, - unsigned int type, - bool flip_y, - bool use_visible_rect) { - DCHECK(video_frame->HasTextures() || - (video_frame->IsMappable() && - video_frame->format() == PIXEL_FORMAT_I420)); - GrDirectContext* gr_context = raster_context_provider->GrContext(); - DCHECK(gr_context); - // TODO: We should compare the DCHECK vs when UpdateLastImage calls this - // function. (https://crbug.com/674185) - DCHECK(video_frame->format() == PIXEL_FORMAT_I420 || - video_frame->format() == PIXEL_FORMAT_NV12); - - gfx::Size ya_tex_size = video_frame->coded_size(); - gfx::Size uv_tex_size((ya_tex_size.width() + 1) / 2, - (ya_tex_size.height() + 1) / 2); - - GrGLTextureInfo backend_texture{}; - - VideoFrameYUVMailboxesHolder yuv_textures_info(video_frame, - raster_context_provider, true); - - GrBackendTexture yuv_textures[3] = { - GrBackendTexture(ya_tex_size.width(), ya_tex_size.height(), - GrMipMapped::kNo, yuv_textures_info.texture(kYIndex)), - GrBackendTexture(uv_tex_size.width(), uv_tex_size.height(), - GrMipMapped::kNo, yuv_textures_info.texture(kUIndex)), - GrBackendTexture(uv_tex_size.width(), uv_tex_size.height(), - GrMipMapped::kNo, yuv_textures_info.texture(kVIndex)), - }; - - backend_texture.fID = texture_id; - backend_texture.fTarget = texture_target; - backend_texture.fFormat = GetSurfaceColorFormat(internal_format, type); - - // For method like texImage2D, dst texture is Ok to use visible_rect - // but for method like create imageBitmap from video frame, it is better - // to use coded_size to store more pixels. - int backend_texture_width = use_visible_rect - ? video_frame->visible_rect().width() - : video_frame->coded_size().width(); - int backend_texture_height = use_visible_rect - ? video_frame->visible_rect().height() - : video_frame->coded_size().height(); - - GrBackendTexture result_texture(backend_texture_width, backend_texture_height, - GrMipMapped::kNo, backend_texture); - - // Wraps the result texture in a SkSurface which allows Skia to render to it - // (creates FBO, etc) - auto surface = SkSurface::MakeFromBackendTexture( - gr_context, result_texture, - flip_y ? kBottomLeft_GrSurfaceOrigin : kTopLeft_GrSurfaceOrigin, 1, - GetCompatibleSurfaceColorType(backend_texture.fFormat), - SkColorSpace::MakeSRGB(), nullptr); - - if (!surface) { - return false; - } - - return YUVGrBackendTexturesToSkSurface(gr_context, video_frame, yuv_textures, - surface, flip_y, use_visible_rect); -} - -void ConvertFromVideoFrameYUVWithGrContext( - const VideoFrame* video_frame, - viz::RasterContextProvider* raster_context_provider, - const gpu::MailboxHolder& dest_mailbox_holder, - unsigned int internal_format, - unsigned int type, - bool flip_y, - bool use_visible_rect) { - gpu::raster::RasterInterface* ri = raster_context_provider->RasterInterface(); - DCHECK(ri); - ri->WaitSyncTokenCHROMIUM(dest_mailbox_holder.sync_token.GetConstData()); - GLuint dest_tex_id = - ri->CreateAndConsumeForGpuRaster(dest_mailbox_holder.mailbox); - if (dest_mailbox_holder.mailbox.IsSharedImage()) { - ri->BeginSharedImageAccessDirectCHROMIUM( - dest_tex_id, GL_SHARED_IMAGE_ACCESS_MODE_READWRITE_CHROMIUM); - } - // Let the SkImage fall out of scope and track the result using dest_tex_id - ConvertFromVideoFrameYUVToSkSurface( - video_frame, raster_context_provider, dest_mailbox_holder.texture_target, - dest_tex_id, internal_format, type, flip_y, use_visible_rect); - if (dest_mailbox_holder.mailbox.IsSharedImage()) - ri->EndSharedImageAccessDirectCHROMIUM(dest_tex_id); - ri->DeleteGpuRasterTexture(dest_tex_id); -} - -} // namespace - -void ConvertFromVideoFrameYUV( - const VideoFrame* video_frame, - viz::RasterContextProvider* raster_context_provider, - const gpu::MailboxHolder& dest_mailbox_holder, - unsigned int internal_format, - unsigned int type, - bool flip_y, - bool use_visible_rect) { - DCHECK(raster_context_provider); - if (raster_context_provider->GrContext()) { - ConvertFromVideoFrameYUVWithGrContext(video_frame, raster_context_provider, - dest_mailbox_holder, internal_format, - type, flip_y, use_visible_rect); - return; - } - - auto* ri = raster_context_provider->RasterInterface(); - DCHECK(ri); - ri->WaitSyncTokenCHROMIUM(dest_mailbox_holder.sync_token.GetConstData()); - SkYUVColorSpace color_space = - ColorSpaceToSkYUVColorSpace(video_frame->ColorSpace()); - - VideoFrameYUVMailboxesHolder yuv_mailboxes(video_frame, - raster_context_provider, false); - - if (yuv_mailboxes.is_nv12()) { - ri->ConvertNV12MailboxesToRGB(dest_mailbox_holder.mailbox, color_space, - yuv_mailboxes.mailbox(kYIndex), - yuv_mailboxes.mailbox(kUIndex)); - } else { - DCHECK_EQ(video_frame->NumTextures(), kNumYUVPlanes); - ri->ConvertYUVMailboxesToRGB(dest_mailbox_holder.mailbox, color_space, - yuv_mailboxes.mailbox(kYIndex), - yuv_mailboxes.mailbox(kUIndex), - yuv_mailboxes.mailbox(kVIndex)); - } -} - -} // namespace media
diff --git a/media/renderers/yuv_util.h b/media/renderers/yuv_util.h deleted file mode 100644 index 8302e33..0000000 --- a/media/renderers/yuv_util.h +++ /dev/null
@@ -1,42 +0,0 @@ -// Copyright (c) 2020 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#ifndef MEDIA_RENDERERS_YUV_UTIL_H_ -#define MEDIA_RENDERERS_YUV_UTIL_H_ - -#include "gpu/GLES2/gl2extchromium.h" -#include "media/base/media_export.h" -#include "media/base/video_types.h" -#include "third_party/skia/include/core/SkRefCnt.h" -#include "ui/gfx/color_space.h" - -namespace gpu { -struct MailboxHolder; -} - -namespace viz { -class RasterContextProvider; -} // namespace viz - -namespace media { - -class VideoFrame; - -// Converts a YUV video frame to RGB format and stores the results in the -// provided mailbox. The caller of this function maintains ownership of the -// mailbox. Automatically handles upload of CPU memory backed VideoFrames in -// I420 format. VideoFrames that wrap external textures can be I420 or NV12 -// format. -MEDIA_EXPORT void ConvertFromVideoFrameYUV( - const VideoFrame* video_frame, - viz::RasterContextProvider* raster_context_provider, - const gpu::MailboxHolder& dest_mailbox_holder, - unsigned int internal_format = GL_RGBA, - unsigned int type = GL_UNSIGNED_BYTE, - bool flip_y = false, - bool use_visible_rect = false); - -} // namespace media - -#endif // MEDIA_RENDERERS_YUV_UTIL_H_ \ No newline at end of file
diff --git a/net/base/features.cc b/net/base/features.cc index e840f6643..4bd1158 100644 --- a/net/base/features.cc +++ b/net/base/features.cc
@@ -149,8 +149,11 @@ "UseRegistrableDomainInNetworkIsolationKey", base::FEATURE_ENABLED_BY_DEFAULT}; -const base::Feature kTurnOffStreamingMediaCaching{ - "TurnOffStreamingMediaCaching", base::FEATURE_DISABLED_BY_DEFAULT}; +const base::Feature kTurnOffStreamingMediaCachingOnBattery{ + "TurnOffStreamingMediaCachingOnBattery", base::FEATURE_DISABLED_BY_DEFAULT}; + +const base::Feature kTurnOffStreamingMediaCachingAlways{ + "TurnOffStreamingMediaCachingAlways", base::FEATURE_DISABLED_BY_DEFAULT}; const base::Feature kLegacyTLSEnforced{"LegacyTLSEnforced", base::FEATURE_DISABLED_BY_DEFAULT};
diff --git a/net/base/features.h b/net/base/features.h index 54c5705a..175569d1 100644 --- a/net/base/features.h +++ b/net/base/features.h
@@ -223,8 +223,11 @@ NET_EXPORT extern const base::Feature kUseRegistrableDomainInNetworkIsolationKey; -// Turns off streaming media caching to disk. -NET_EXPORT extern const base::Feature kTurnOffStreamingMediaCaching; +// Turns off streaming media caching to disk when on battery power. +NET_EXPORT extern const base::Feature kTurnOffStreamingMediaCachingOnBattery; + +// Turns off streaming media caching to disk always. +NET_EXPORT extern const base::Feature kTurnOffStreamingMediaCachingAlways; // When enabled, sites that use TLS versions below the |version_min_warn| // threshold are marked with the LEGACY_TLS CertStatus and return an
diff --git a/net/dns/host_cache.cc b/net/dns/host_cache.cc index 7080589..fe7b7a1 100644 --- a/net/dns/host_cache.cc +++ b/net/dns/host_cache.cc
@@ -43,7 +43,7 @@ const char kExpirationKey[] = "expiration"; const char kTtlKey[] = "ttl"; const char kNetworkChangesKey[] = "network_changes"; -const char kErrorKey[] = "error"; +const char kNetErrorKey[] = "net_error"; const char kAddressesKey[] = "addresses"; const char kTextRecordsKey[] = "text_records"; const char kHostnameResultsKey[] = "hostname_results"; @@ -324,7 +324,7 @@ } if (error() != OK) { - entry_dict.SetInteger(kErrorKey, error()); + entry_dict.SetInteger(kNetErrorKey, error()); } else { if (addresses()) { // Append all of the resolved addresses. @@ -721,7 +721,7 @@ const base::ListValue* text_records_value = nullptr; const base::ListValue* hostname_records_value = nullptr; const base::ListValue* host_ports_value = nullptr; - if (!entry_dict->GetInteger(kErrorKey, &error)) { + if (!entry_dict->GetInteger(kNetErrorKey, &error)) { entry_dict->GetList(kAddressesKey, &addresses_value); entry_dict->GetList(kTextRecordsKey, &text_records_value);
diff --git a/net/http/http_cache_transaction.cc b/net/http/http_cache_transaction.cc index 9d5bc7f3..b89b3d79 100644 --- a/net/http/http_cache_transaction.cc +++ b/net/http/http_cache_transaction.cc
@@ -3601,13 +3601,17 @@ bool HttpCache::Transaction::ShouldDisableCaching( const HttpResponseHeaders* headers) const { bool disable_caching = false; - if (base::FeatureList::IsEnabled(features::kTurnOffStreamingMediaCaching) && - IsOnBatteryPower()) { - // If we're running on battery, and the acquired content is 'large' and - // not already cached, and we have a MIME type of audio or video, then - // disable the cache for this response. We based our initial definition of - // 'large' on the disk cache maximum block size of 16K, which we observed - // captures the majority of responses from various MSE implementations. + if (base::FeatureList::IsEnabled( + features::kTurnOffStreamingMediaCachingAlways) || + (base::FeatureList::IsEnabled( + features::kTurnOffStreamingMediaCachingOnBattery) && + IsOnBatteryPower())) { + // If the feature is always enabled or enabled while we're running on + // battery, and the acquired content is 'large' and not already cached, and + // we have a MIME type of audio or video, then disable the cache for this + // response. We based our initial definition of 'large' on the disk cache + // maximum block size of 16K, which we observed captures the majority of + // responses from various MSE implementations. static constexpr int kMaxContentSize = 4096 * 4; std::string mime_type; base::CompareCase insensitive_ascii = base::CompareCase::INSENSITIVE_ASCII;
diff --git a/pdf/document_layout.cc b/pdf/document_layout.cc index 16f56d41..0809cc75 100644 --- a/pdf/document_layout.cc +++ b/pdf/document_layout.cc
@@ -8,8 +8,6 @@ #include "base/check_op.h" #include "base/values.h" -#include "pdf/ppapi_migration/geometry_conversions.h" -#include "ppapi/cpp/rect.h" #include "ppapi/cpp/var.h" #include "ppapi/cpp/var_dictionary.h" #include "ui/gfx/geometry/point.h" @@ -32,11 +30,12 @@ return widest_page_width; } -pp::Rect InsetRect(pp::Rect rect, - const draw_utils::PageInsetSizes& inset_sizes) { - rect.Inset(inset_sizes.left, inset_sizes.top, inset_sizes.right, - inset_sizes.bottom); - return rect; +gfx::Rect InsetRect(const gfx::Rect& rect, + const draw_utils::PageInsetSizes& inset_sizes) { + gfx::Rect inset_rect(rect); + inset_rect.Inset(inset_sizes.left, inset_sizes.top, inset_sizes.right, + inset_sizes.bottom); + return inset_rect; } } // namespace @@ -118,11 +117,11 @@ } const gfx::Size& page_size = page_sizes[i]; - pp::Rect page_rect = PPRectFromRect( - draw_utils::GetRectForSingleView(page_size, document_size)); - CopyRectIfModified(page_rect, &page_layouts_[i].outer_rect); + gfx::Rect page_rect = + draw_utils::GetRectForSingleView(page_size, document_size); + CopyRectIfModified(page_rect, page_layouts_[i].outer_rect); CopyRectIfModified(InsetRect(page_rect, kSingleViewInsets), - &page_layouts_[i].inner_rect); + page_layouts_[i].inner_rect); draw_utils::ExpandDocumentSize(page_size, &document_size); } @@ -149,19 +148,19 @@ i, page_sizes.size(), kSingleViewInsets, kHorizontalSeparator); const gfx::Size& page_size = page_sizes[i]; - pp::Rect page_rect; + gfx::Rect page_rect; if (i % 2 == 0) { - page_rect = PPRectFromRect(draw_utils::GetLeftRectForTwoUpView( - page_size, {document_size.width(), document_size.height()})); + page_rect = draw_utils::GetLeftRectForTwoUpView( + page_size, {document_size.width(), document_size.height()}); } else { - page_rect = PPRectFromRect(draw_utils::GetRightRectForTwoUpView( - page_size, {document_size.width(), document_size.height()})); + page_rect = draw_utils::GetRightRectForTwoUpView( + page_size, {document_size.width(), document_size.height()}); document_size.Enlarge( 0, std::max(page_size.height(), page_sizes[i - 1].height())); } - CopyRectIfModified(page_rect, &page_layouts_[i].outer_rect); + CopyRectIfModified(page_rect, page_layouts_[i].outer_rect); CopyRectIfModified(InsetRect(page_rect, page_insets), - &page_layouts_[i].inner_rect); + page_layouts_[i].inner_rect); } if (page_sizes.size() % 2 == 1) { @@ -176,10 +175,10 @@ } } -void DocumentLayout::CopyRectIfModified(const pp::Rect& source_rect, - pp::Rect* destination_rect) { - if (*destination_rect != source_rect) { - *destination_rect = source_rect; +void DocumentLayout::CopyRectIfModified(const gfx::Rect& source_rect, + gfx::Rect& destination_rect) { + if (destination_rect != source_rect) { + destination_rect = source_rect; dirty_ = true; } }
diff --git a/pdf/document_layout.h b/pdf/document_layout.h index 95d63877..e998c74f 100644 --- a/pdf/document_layout.h +++ b/pdf/document_layout.h
@@ -11,7 +11,7 @@ #include "base/check_op.h" #include "pdf/draw_utils/coordinates.h" #include "pdf/page_orientation.h" -#include "ppapi/cpp/rect.h" +#include "ui/gfx/geometry/rect.h" #include "ui/gfx/geometry/size.h" namespace base { @@ -113,14 +113,14 @@ size_t page_count() const { return page_layouts_.size(); } // Gets the layout rectangle for a page. Only valid after computing a layout. - const pp::Rect& page_rect(size_t page_index) const { + const gfx::Rect& page_rect(size_t page_index) const { DCHECK_LT(page_index, page_count()); return page_layouts_[page_index].outer_rect; } // Gets the layout rectangle for a page's bounds (which excludes additional // regions like page shadows). Only valid after computing a layout. - const pp::Rect& page_bounds_rect(size_t page_index) const { + const gfx::Rect& page_bounds_rect(size_t page_index) const { DCHECK_LT(page_index, page_count()); return page_layouts_[page_index].inner_rect; } @@ -139,16 +139,16 @@ // Layout of a single page. struct PageLayout { // Bounding rectangle for the page with decorations. - pp::Rect outer_rect; + gfx::Rect outer_rect; // Bounding rectangle for the page without decorations. - pp::Rect inner_rect; + gfx::Rect inner_rect; }; // Copies |source_rect| to |destination_rect|, setting |dirty_| to true if // |destination_rect| is modified as a result. - void CopyRectIfModified(const pp::Rect& source_rect, - pp::Rect* destination_rect); + void CopyRectIfModified(const gfx::Rect& source_rect, + gfx::Rect& destination_rect); Options options_;
diff --git a/pdf/document_layout_unittest.cc b/pdf/document_layout_unittest.cc index 350a95c..b65c194 100644 --- a/pdf/document_layout_unittest.cc +++ b/pdf/document_layout_unittest.cc
@@ -5,6 +5,7 @@ #include "pdf/document_layout.h" #include "testing/gtest/include/gtest/gtest.h" +#include "ui/gfx/geometry/rect.h" #include "ui/gfx/geometry/size.h" namespace chrome_pdf { @@ -21,13 +22,6 @@ DocumentLayout layout_; }; -// TODO(kmoon): Need to use this with EXPECT_PRED2 instead of just using -// EXPECT_EQ, due to ADL issues with pp::Rect's operator== (defined in global -// namespace, instead of in "pp"). -inline bool PpRectEq(const pp::Rect& lhs, const pp::Rect& rhs) { - return lhs == rhs; -} - TEST_F(DocumentLayoutOptionsTest, DefaultConstructor) { EXPECT_EQ(options_.default_page_orientation(), PageOrientation::kOriginal); EXPECT_FALSE(options_.two_up_view_enabled()); @@ -194,38 +188,29 @@ {300, 400}, {400, 500}, {300, 400}, {200, 300}}; layout_.ComputeSingleViewLayout(page_sizes); ASSERT_EQ(4u, layout_.page_count()); - EXPECT_PRED2(PpRectEq, pp::Rect(50, 0, 300, 400), layout_.page_rect(0)); - EXPECT_PRED2(PpRectEq, pp::Rect(0, 404, 400, 500), layout_.page_rect(1)); - EXPECT_PRED2(PpRectEq, pp::Rect(50, 908, 300, 400), layout_.page_rect(2)); - EXPECT_PRED2(PpRectEq, pp::Rect(100, 1312, 200, 300), layout_.page_rect(3)); - EXPECT_PRED2(PpRectEq, pp::Rect(55, 3, 290, 390), - layout_.page_bounds_rect(0)); - EXPECT_PRED2(PpRectEq, pp::Rect(5, 407, 390, 490), - layout_.page_bounds_rect(1)); - EXPECT_PRED2(PpRectEq, pp::Rect(55, 911, 290, 390), - layout_.page_bounds_rect(2)); - EXPECT_PRED2(PpRectEq, pp::Rect(105, 1315, 190, 290), - layout_.page_bounds_rect(3)); + EXPECT_EQ(gfx::Rect(50, 0, 300, 400), layout_.page_rect(0)); + EXPECT_EQ(gfx::Rect(0, 404, 400, 500), layout_.page_rect(1)); + EXPECT_EQ(gfx::Rect(50, 908, 300, 400), layout_.page_rect(2)); + EXPECT_EQ(gfx::Rect(100, 1312, 200, 300), layout_.page_rect(3)); + EXPECT_EQ(gfx::Rect(55, 3, 290, 390), layout_.page_bounds_rect(0)); + EXPECT_EQ(gfx::Rect(5, 407, 390, 490), layout_.page_bounds_rect(1)); + EXPECT_EQ(gfx::Rect(55, 911, 290, 390), layout_.page_bounds_rect(2)); + EXPECT_EQ(gfx::Rect(105, 1315, 190, 290), layout_.page_bounds_rect(3)); EXPECT_EQ(gfx::Size(400, 1612), layout_.size()); page_sizes = {{240, 300}, {320, 400}, {250, 360}, {300, 600}, {270, 555}}; layout_.ComputeSingleViewLayout(page_sizes); ASSERT_EQ(5u, layout_.page_count()); - EXPECT_PRED2(PpRectEq, pp::Rect(40, 0, 240, 300), layout_.page_rect(0)); - EXPECT_PRED2(PpRectEq, pp::Rect(0, 304, 320, 400), layout_.page_rect(1)); - EXPECT_PRED2(PpRectEq, pp::Rect(35, 708, 250, 360), layout_.page_rect(2)); - EXPECT_PRED2(PpRectEq, pp::Rect(10, 1072, 300, 600), layout_.page_rect(3)); - EXPECT_PRED2(PpRectEq, pp::Rect(25, 1676, 270, 555), layout_.page_rect(4)); - EXPECT_PRED2(PpRectEq, pp::Rect(45, 3, 230, 290), - layout_.page_bounds_rect(0)); - EXPECT_PRED2(PpRectEq, pp::Rect(5, 307, 310, 390), - layout_.page_bounds_rect(1)); - EXPECT_PRED2(PpRectEq, pp::Rect(40, 711, 240, 350), - layout_.page_bounds_rect(2)); - EXPECT_PRED2(PpRectEq, pp::Rect(15, 1075, 290, 590), - layout_.page_bounds_rect(3)); - EXPECT_PRED2(PpRectEq, pp::Rect(30, 1679, 260, 545), - layout_.page_bounds_rect(4)); + EXPECT_EQ(gfx::Rect(40, 0, 240, 300), layout_.page_rect(0)); + EXPECT_EQ(gfx::Rect(0, 304, 320, 400), layout_.page_rect(1)); + EXPECT_EQ(gfx::Rect(35, 708, 250, 360), layout_.page_rect(2)); + EXPECT_EQ(gfx::Rect(10, 1072, 300, 600), layout_.page_rect(3)); + EXPECT_EQ(gfx::Rect(25, 1676, 270, 555), layout_.page_rect(4)); + EXPECT_EQ(gfx::Rect(45, 3, 230, 290), layout_.page_bounds_rect(0)); + EXPECT_EQ(gfx::Rect(5, 307, 310, 390), layout_.page_bounds_rect(1)); + EXPECT_EQ(gfx::Rect(40, 711, 240, 350), layout_.page_bounds_rect(2)); + EXPECT_EQ(gfx::Rect(15, 1075, 290, 590), layout_.page_bounds_rect(3)); + EXPECT_EQ(gfx::Rect(30, 1679, 260, 545), layout_.page_bounds_rect(4)); EXPECT_EQ(gfx::Size(320, 2231), layout_.size()); } @@ -235,57 +220,44 @@ {826, 1066}, {1066, 826}, {826, 1066}, {826, 900}}; layout_.ComputeTwoUpViewLayout(page_sizes); ASSERT_EQ(4u, layout_.page_count()); - EXPECT_PRED2(PpRectEq, pp::Rect(240, 0, 826, 1066), layout_.page_rect(0)); - EXPECT_PRED2(PpRectEq, pp::Rect(1066, 0, 1066, 826), layout_.page_rect(1)); - EXPECT_PRED2(PpRectEq, pp::Rect(240, 1066, 826, 1066), layout_.page_rect(2)); - EXPECT_PRED2(PpRectEq, pp::Rect(1066, 1066, 826, 900), layout_.page_rect(3)); - EXPECT_PRED2(PpRectEq, pp::Rect(245, 3, 820, 1056), - layout_.page_bounds_rect(0)); - EXPECT_PRED2(PpRectEq, pp::Rect(1067, 3, 1060, 816), - layout_.page_bounds_rect(1)); - EXPECT_PRED2(PpRectEq, pp::Rect(245, 1069, 820, 1056), - layout_.page_bounds_rect(2)); - EXPECT_PRED2(PpRectEq, pp::Rect(1067, 1069, 820, 890), - layout_.page_bounds_rect(3)); + EXPECT_EQ(gfx::Rect(240, 0, 826, 1066), layout_.page_rect(0)); + EXPECT_EQ(gfx::Rect(1066, 0, 1066, 826), layout_.page_rect(1)); + EXPECT_EQ(gfx::Rect(240, 1066, 826, 1066), layout_.page_rect(2)); + EXPECT_EQ(gfx::Rect(1066, 1066, 826, 900), layout_.page_rect(3)); + EXPECT_EQ(gfx::Rect(245, 3, 820, 1056), layout_.page_bounds_rect(0)); + EXPECT_EQ(gfx::Rect(1067, 3, 1060, 816), layout_.page_bounds_rect(1)); + EXPECT_EQ(gfx::Rect(245, 1069, 820, 1056), layout_.page_bounds_rect(2)); + EXPECT_EQ(gfx::Rect(1067, 1069, 820, 890), layout_.page_bounds_rect(3)); EXPECT_EQ(gfx::Size(2132, 2132), layout_.size()); // Test case where the widest page is on the left. page_sizes = {{1066, 826}, {820, 1056}, {820, 890}, {826, 1066}}; layout_.ComputeTwoUpViewLayout(page_sizes); ASSERT_EQ(4u, layout_.page_count()); - EXPECT_PRED2(PpRectEq, pp::Rect(0, 0, 1066, 826), layout_.page_rect(0)); - EXPECT_PRED2(PpRectEq, pp::Rect(1066, 0, 820, 1056), layout_.page_rect(1)); - EXPECT_PRED2(PpRectEq, pp::Rect(246, 1056, 820, 890), layout_.page_rect(2)); - EXPECT_PRED2(PpRectEq, pp::Rect(1066, 1056, 826, 1066), layout_.page_rect(3)); - EXPECT_PRED2(PpRectEq, pp::Rect(5, 3, 1060, 816), - layout_.page_bounds_rect(0)); - EXPECT_PRED2(PpRectEq, pp::Rect(1067, 3, 814, 1046), - layout_.page_bounds_rect(1)); - EXPECT_PRED2(PpRectEq, pp::Rect(251, 1059, 814, 880), - layout_.page_bounds_rect(2)); - EXPECT_PRED2(PpRectEq, pp::Rect(1067, 1059, 820, 1056), - layout_.page_bounds_rect(3)); + EXPECT_EQ(gfx::Rect(0, 0, 1066, 826), layout_.page_rect(0)); + EXPECT_EQ(gfx::Rect(1066, 0, 820, 1056), layout_.page_rect(1)); + EXPECT_EQ(gfx::Rect(246, 1056, 820, 890), layout_.page_rect(2)); + EXPECT_EQ(gfx::Rect(1066, 1056, 826, 1066), layout_.page_rect(3)); + EXPECT_EQ(gfx::Rect(5, 3, 1060, 816), layout_.page_bounds_rect(0)); + EXPECT_EQ(gfx::Rect(1067, 3, 814, 1046), layout_.page_bounds_rect(1)); + EXPECT_EQ(gfx::Rect(251, 1059, 814, 880), layout_.page_bounds_rect(2)); + EXPECT_EQ(gfx::Rect(1067, 1059, 820, 1056), layout_.page_bounds_rect(3)); EXPECT_EQ(gfx::Size(2132, 2122), layout_.size()); // Test case where there's an odd # of pages. page_sizes = {{200, 300}, {400, 200}, {300, 600}, {250, 500}, {300, 400}}; layout_.ComputeTwoUpViewLayout(page_sizes); ASSERT_EQ(5u, layout_.page_count()); - EXPECT_PRED2(PpRectEq, pp::Rect(200, 0, 200, 300), layout_.page_rect(0)); - EXPECT_PRED2(PpRectEq, pp::Rect(400, 0, 400, 200), layout_.page_rect(1)); - EXPECT_PRED2(PpRectEq, pp::Rect(100, 300, 300, 600), layout_.page_rect(2)); - EXPECT_PRED2(PpRectEq, pp::Rect(400, 300, 250, 500), layout_.page_rect(3)); - EXPECT_PRED2(PpRectEq, pp::Rect(100, 900, 300, 400), layout_.page_rect(4)); - EXPECT_PRED2(PpRectEq, pp::Rect(205, 3, 194, 290), - layout_.page_bounds_rect(0)); - EXPECT_PRED2(PpRectEq, pp::Rect(401, 3, 394, 190), - layout_.page_bounds_rect(1)); - EXPECT_PRED2(PpRectEq, pp::Rect(105, 303, 294, 590), - layout_.page_bounds_rect(2)); - EXPECT_PRED2(PpRectEq, pp::Rect(401, 303, 244, 490), - layout_.page_bounds_rect(3)); - EXPECT_PRED2(PpRectEq, pp::Rect(105, 903, 290, 390), - layout_.page_bounds_rect(4)); + EXPECT_EQ(gfx::Rect(200, 0, 200, 300), layout_.page_rect(0)); + EXPECT_EQ(gfx::Rect(400, 0, 400, 200), layout_.page_rect(1)); + EXPECT_EQ(gfx::Rect(100, 300, 300, 600), layout_.page_rect(2)); + EXPECT_EQ(gfx::Rect(400, 300, 250, 500), layout_.page_rect(3)); + EXPECT_EQ(gfx::Rect(100, 900, 300, 400), layout_.page_rect(4)); + EXPECT_EQ(gfx::Rect(205, 3, 194, 290), layout_.page_bounds_rect(0)); + EXPECT_EQ(gfx::Rect(401, 3, 394, 190), layout_.page_bounds_rect(1)); + EXPECT_EQ(gfx::Rect(105, 303, 294, 590), layout_.page_bounds_rect(2)); + EXPECT_EQ(gfx::Rect(401, 303, 244, 490), layout_.page_bounds_rect(3)); + EXPECT_EQ(gfx::Rect(105, 903, 290, 390), layout_.page_bounds_rect(4)); EXPECT_EQ(gfx::Size(800, 1300), layout_.size()); }
diff --git a/pdf/out_of_process_instance.cc b/pdf/out_of_process_instance.cc index 26eba1f..943dee9 100644 --- a/pdf/out_of_process_instance.cc +++ b/pdf/out_of_process_instance.cc
@@ -1159,7 +1159,7 @@ dimensions.Set(kJSLayoutOptions, VarFromValue(layout.options().ToValue())); pp::VarArray page_dimensions_array; for (size_t i = 0; i < layout.page_count(); ++i) { - const pp::Rect& page_rect = layout.page_rect(i); + const gfx::Rect& page_rect = layout.page_rect(i); pp::VarDictionary page_dimensions; page_dimensions.Set(kJSPageX, pp::Var(page_rect.x())); page_dimensions.Set(kJSPageY, pp::Var(page_rect.y()));
diff --git a/pdf/pdfium/pdfium_engine.cc b/pdf/pdfium/pdfium_engine.cc index 1107c7c..733e9be 100644 --- a/pdf/pdfium/pdfium_engine.cc +++ b/pdf/pdfium/pdfium_engine.cc
@@ -2698,7 +2698,7 @@ DCHECK_EQ(pages_.size(), layout_.page_count()); for (size_t i = 0; i < layout_.page_count(); ++i) { // TODO(kmoon): This should be the only place that sets |PDFiumPage::rect_|. - pages_[i]->set_rect(RectFromPPRect(layout_.page_bounds_rect(i))); + pages_[i]->set_rect(layout_.page_bounds_rect(i)); } layout_.clear_dirty();
diff --git a/remoting/host/BUILD.gn b/remoting/host/BUILD.gn index ed19434..1eaaec6 100644 --- a/remoting/host/BUILD.gn +++ b/remoting/host/BUILD.gn
@@ -146,8 +146,10 @@ "desktop_resizer.h", "desktop_resizer_mac.cc", "desktop_resizer_ozone.cc", + "desktop_resizer_ozone.h", "desktop_resizer_win.cc", "desktop_resizer_x11.cc", + "desktop_resizer_x11.h", "desktop_session.cc", "desktop_session.h", "desktop_session_agent.cc", @@ -353,6 +355,7 @@ } if (is_linux && !is_chromeos) { + sources += [ "desktop_resizer_linux.cc" ] public_deps += [ "//remoting/host/linux" ] libs += [ "pam" ] } @@ -369,12 +372,16 @@ sources -= [ "clipboard_x11.cc", "desktop_resizer_x11.cc", + "desktop_resizer_x11.h", "input_injector_x11.cc", ] } if (!use_ozone) { - sources -= [ "desktop_resizer_ozone.cc" ] + sources -= [ + "desktop_resizer_ozone.cc", + "desktop_resizer_ozone.h", + ] } if (is_chromeos) { @@ -399,11 +406,15 @@ if (use_ozone) { deps += [ "//ui/ozone" ] - sources -= [ "desktop_resizer_ozone.cc" ] + sources -= [ + "desktop_resizer_ozone.cc", + "desktop_resizer_ozone.h", + ] } else { sources -= [ "clipboard_x11.cc", "desktop_resizer_x11.cc", + "desktop_resizer_x11.h", "input_injector_chromeos.cc", "input_injector_chromeos.h", ]
diff --git a/remoting/host/desktop_resizer_linux.cc b/remoting/host/desktop_resizer_linux.cc new file mode 100644 index 0000000..d00697c --- /dev/null +++ b/remoting/host/desktop_resizer_linux.cc
@@ -0,0 +1,35 @@ +// Copyright 2020 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "remoting/host/desktop_resizer.h" + +#include <memory> + +#include "base/notreached.h" + +#if defined(USE_X11) +#include "remoting/host/desktop_resizer_x11.h" +#endif + +#if defined(USE_OZONE) +#include "remoting/host/desktop_resizer_ozone.h" +#include "ui/base/ui_base_features.h" +#endif + +namespace remoting { + +std::unique_ptr<DesktopResizer> DesktopResizer::Create() { +#if defined(USE_OZONE) + if (features::IsUsingOzonePlatform()) + return std::make_unique<DesktopResizerOzone>(); +#endif +#if defined(USE_X11) + return std::make_unique<DesktopResizerX11>(); +#else + NOTREACHED(); + return nullptr; +#endif +} + +} // namespace remoting
diff --git a/remoting/host/desktop_resizer_ozone.cc b/remoting/host/desktop_resizer_ozone.cc index 76032fb9..35a5133 100644 --- a/remoting/host/desktop_resizer_ozone.cc +++ b/remoting/host/desktop_resizer_ozone.cc
@@ -2,35 +2,15 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#include "remoting/host/desktop_resizer.h" +#include "remoting/host/desktop_resizer_ozone.h" -#include "base/macros.h" -#include "base/memory/ptr_util.h" -#include "base/notreached.h" +#include "build/build_config.h" namespace remoting { -class DesktopResizerOzone : public DesktopResizer { - public: - DesktopResizerOzone(); - ~DesktopResizerOzone() override; +DesktopResizerOzone::DesktopResizerOzone() = default; - // DesktopResizer: - ScreenResolution GetCurrentResolution() override; - std::list<ScreenResolution> GetSupportedResolutions( - const ScreenResolution& preferred) override; - void SetResolution(const ScreenResolution& resolution) override; - void RestoreResolution(const ScreenResolution& original) override; - - private: - DISALLOW_COPY_AND_ASSIGN(DesktopResizerOzone); -}; - -DesktopResizerOzone::DesktopResizerOzone() { -} - -DesktopResizerOzone::~DesktopResizerOzone() { -} +DesktopResizerOzone::~DesktopResizerOzone() = default; ScreenResolution DesktopResizerOzone::GetCurrentResolution() { NOTIMPLEMENTED(); @@ -47,11 +27,15 @@ NOTIMPLEMENTED(); } -void DesktopResizerOzone::RestoreResolution(const ScreenResolution& original) { -} +void DesktopResizerOzone::RestoreResolution(const ScreenResolution& original) {} +// To avoid multiple definitions when use_x11 && use_ozone is true, disable this +// factory method for OS_LINUX as Linux has a factory method that decides what +// desktopresizer to use based on IsUsingOzonePlatform feature flag. +#if !defined(OS_LINUX) && !defined(OS_CHROMEOS) std::unique_ptr<DesktopResizer> DesktopResizer::Create() { return base::WrapUnique(new DesktopResizerOzone); } +#endif } // namespace remoting
diff --git a/remoting/host/desktop_resizer_ozone.h b/remoting/host/desktop_resizer_ozone.h new file mode 100644 index 0000000..47e1e77 --- /dev/null +++ b/remoting/host/desktop_resizer_ozone.h
@@ -0,0 +1,32 @@ +// Copyright 2020 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef REMOTING_HOST_DESKTOP_RESIZER_OZONE_H_ +#define REMOTING_HOST_DESKTOP_RESIZER_OZONE_H_ + +#include "base/macros.h" +#include "base/memory/ptr_util.h" +#include "base/notreached.h" +#include "remoting/host/desktop_resizer.h" + +namespace remoting { + +class DesktopResizerOzone : public DesktopResizer { + public: + DesktopResizerOzone(); + DesktopResizerOzone(const DesktopResizerOzone&) = delete; + DesktopResizerOzone& operator=(const DesktopResizerOzone&) = delete; + ~DesktopResizerOzone() override; + + // DesktopResizer: + ScreenResolution GetCurrentResolution() override; + std::list<ScreenResolution> GetSupportedResolutions( + const ScreenResolution& preferred) override; + void SetResolution(const ScreenResolution& resolution) override; + void RestoreResolution(const ScreenResolution& original) override; +}; + +} // namespace remoting + +#endif // REMOTING_HOST_DESKTOP_RESIZER_OZONE_H_
diff --git a/remoting/host/desktop_resizer_x11.cc b/remoting/host/desktop_resizer_x11.cc index f6f43d5..58eafa6 100644 --- a/remoting/host/desktop_resizer_x11.cc +++ b/remoting/host/desktop_resizer_x11.cc
@@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#include "remoting/host/desktop_resizer.h" +#include "remoting/host/desktop_resizer_x11.h" #include <string.h> @@ -67,98 +67,42 @@ namespace remoting { -// Wrapper class for the XRRScreenResources struct. -class ScreenResources { - public: - ScreenResources() = default; +ScreenResources::ScreenResources() = default; - ~ScreenResources() = default; +ScreenResources::~ScreenResources() = default; - bool Refresh(x11::RandR* randr, x11::Window window) { - resources_ = nullptr; - if (auto response = randr->GetScreenResourcesCurrent({window}).Sync()) - resources_ = std::move(response.reply); - return resources_ != nullptr; +bool ScreenResources::Refresh(x11::RandR* randr, x11::Window window) { + resources_ = nullptr; + if (auto response = randr->GetScreenResourcesCurrent({window}).Sync()) + resources_ = std::move(response.reply); + return resources_ != nullptr; +} + +x11::RandR::Mode ScreenResources::GetIdForMode(const std::string& name) { + CHECK(resources_); + const char* names = reinterpret_cast<const char*>(resources_->names.data()); + for (const auto& mode_info : resources_->modes) { + std::string mode_name(names, mode_info.name_len); + names += mode_info.name_len; + if (name == mode_name) + return static_cast<x11::RandR::Mode>(mode_info.id); } + return kInvalidMode; +} - x11::RandR::Mode GetIdForMode(const std::string& name) { - CHECK(resources_); - const char* names = reinterpret_cast<const char*>(resources_->names.data()); - for (const auto& mode_info : resources_->modes) { - std::string mode_name(names, mode_info.name_len); - names += mode_info.name_len; - if (name == mode_name) - return static_cast<x11::RandR::Mode>(mode_info.id); - } - return kInvalidMode; - } +x11::RandR::Output ScreenResources::GetOutput() { + CHECK(resources_); + return resources_->outputs[0]; +} - // For now, assume we're only ever interested in the first output. - x11::RandR::Output GetOutput() { - CHECK(resources_); - return resources_->outputs[0]; - } +x11::RandR::Crtc ScreenResources::GetCrtc() { + CHECK(resources_); + return resources_->crtcs[0]; +} - // For now, assume we're only ever interested in the first crtc. - x11::RandR::Crtc GetCrtc() { - CHECK(resources_); - return resources_->crtcs[0]; - } - - x11::RandR::GetScreenResourcesCurrentReply* get() { return resources_.get(); } - - private: - std::unique_ptr<x11::RandR::GetScreenResourcesCurrentReply> resources_; -}; - -class DesktopResizerX11 : public DesktopResizer, - public x11::Connection::Delegate { - public: - DesktopResizerX11(); - ~DesktopResizerX11() override; - - // DesktopResizer interface - ScreenResolution GetCurrentResolution() override; - std::list<ScreenResolution> GetSupportedResolutions( - const ScreenResolution& preferred) override; - void SetResolution(const ScreenResolution& resolution) override; - void RestoreResolution(const ScreenResolution& original) override; - - private: - // x11::Connection::Delegate: - bool ShouldContinueStream() const override; - void DispatchXEvent(x11::Event* event) override; - - // Add a mode matching the specified resolution and switch to it. - void SetResolutionNewMode(const ScreenResolution& resolution); - - // Attempt to switch to an existing mode matching the specified resolution - // using RandR, if such a resolution exists. Otherwise, do nothing. - void SetResolutionExistingMode(const ScreenResolution& resolution); - - // Create a mode, and attach it to the primary output. If the mode already - // exists, it is left unchanged. - void CreateMode(const char* name, int width, int height); - - // Remove the specified mode from the primary output, and delete it. If the - // mode is in use, it is not deleted. - void DeleteMode(const char* name); - - // Switch the primary output to the specified mode. If name is nullptr, the - // primary output is disabled instead, which is required before changing - // its resolution. - void SwitchToMode(const char* name); - - x11::Connection connection_; - x11::RandR* const randr_ = nullptr; - const x11::Screen* const screen_ = nullptr; - x11::Window root_; - ScreenResources resources_; - bool exact_resize_; - bool has_randr_; - - DISALLOW_COPY_AND_ASSIGN(DesktopResizerX11); -}; +x11::RandR::GetScreenResourcesCurrentReply* ScreenResources::get() { + return resources_.get(); +} DesktopResizerX11::DesktopResizerX11() : randr_(&connection_.randr()), @@ -359,8 +303,4 @@ }); } -std::unique_ptr<DesktopResizer> DesktopResizer::Create() { - return base::WrapUnique(new DesktopResizerX11); -} - } // namespace remoting
diff --git a/remoting/host/desktop_resizer_x11.h b/remoting/host/desktop_resizer_x11.h new file mode 100644 index 0000000..a6f7f62 --- /dev/null +++ b/remoting/host/desktop_resizer_x11.h
@@ -0,0 +1,95 @@ +// Copyright 2020 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef REMOTING_HOST_DESKTOP_RESIZER_X11_H_ +#define REMOTING_HOST_DESKTOP_RESIZER_X11_H_ + +#include <string.h> + +#include "base/command_line.h" +#include "base/macros.h" +#include "base/memory/ptr_util.h" +#include "base/numerics/ranges.h" +#include "remoting/base/logging.h" +#include "remoting/host/desktop_resizer.h" +#include "remoting/host/linux/x11_util.h" +#include "ui/gfx/x/randr.h" +#include "ui/gfx/x/x11.h" + +namespace remoting { + +// Wrapper class for the XRRScreenResources struct. +class ScreenResources { + public: + ScreenResources(); + ~ScreenResources(); + + bool Refresh(x11::RandR* randr, x11::Window window); + + x11::RandR::Mode GetIdForMode(const std::string& name); + + // For now, assume we're only ever interested in the first output. + x11::RandR::Output GetOutput(); + + // For now, assume we're only ever interested in the first crtc. + x11::RandR::Crtc GetCrtc(); + + x11::RandR::GetScreenResourcesCurrentReply* get(); + + private: + std::unique_ptr<x11::RandR::GetScreenResourcesCurrentReply> resources_; +}; + +class DesktopResizerX11 : public DesktopResizer, + public x11::Connection::Delegate { + public: + DesktopResizerX11(); + DesktopResizerX11(const DesktopResizerX11&) = delete; + DesktopResizerX11& operator=(const DesktopResizerX11&) = delete; + ~DesktopResizerX11() override; + + // DesktopResizer interface + ScreenResolution GetCurrentResolution() override; + std::list<ScreenResolution> GetSupportedResolutions( + const ScreenResolution& preferred) override; + void SetResolution(const ScreenResolution& resolution) override; + void RestoreResolution(const ScreenResolution& original) override; + + private: + // x11::Connection::Delegate: + bool ShouldContinueStream() const override; + void DispatchXEvent(x11::Event* event) override; + + // Add a mode matching the specified resolution and switch to it. + void SetResolutionNewMode(const ScreenResolution& resolution); + + // Attempt to switch to an existing mode matching the specified resolution + // using RandR, if such a resolution exists. Otherwise, do nothing. + void SetResolutionExistingMode(const ScreenResolution& resolution); + + // Create a mode, and attach it to the primary output. If the mode already + // exists, it is left unchanged. + void CreateMode(const char* name, int width, int height); + + // Remove the specified mode from the primary output, and delete it. If the + // mode is in use, it is not deleted. + void DeleteMode(const char* name); + + // Switch the primary output to the specified mode. If name is nullptr, the + // primary output is disabled instead, which is required before changing + // its resolution. + void SwitchToMode(const char* name); + + x11::Connection connection_; + x11::RandR* const randr_ = nullptr; + const x11::Screen* const screen_ = nullptr; + x11::Window root_; + ScreenResources resources_; + bool exact_resize_; + bool has_randr_; +}; + +} // namespace remoting + +#endif // REMOTING_HOST_DESKTOP_RESIZER_X11_H_
diff --git a/services/shape_detection/barcode_detection_impl_mac_vision.mm b/services/shape_detection/barcode_detection_impl_mac_vision.mm index 2e59312..2dc2144 100644 --- a/services/shape_detection/barcode_detection_impl_mac_vision.mm +++ b/services/shape_detection/barcode_detection_impl_mac_vision.mm
@@ -5,6 +5,7 @@ #include "services/shape_detection/barcode_detection_impl_mac_vision.h" #include <Foundation/Foundation.h> + #include <vector> #include "base/bind.h" @@ -12,6 +13,7 @@ #include "base/containers/flat_set.h" #include "base/logging.h" #include "base/strings/sys_string_conversions.h" +#include "base/system/sys_info.h" #include "third_party/skia/include/core/SkBitmap.h" namespace shape_detection { @@ -109,15 +111,17 @@ } } -} // unnamed namespace +} // namespace // static bool BarcodeDetectionImplMacVision::IsBlockedMacOSVersion() { - static NSOperatingSystemVersion version = - [[NSProcessInfo processInfo] operatingSystemVersion]; - DCHECK_EQ(version.majorVersion, 10); + int32_t major_version; + int32_t minor_version; + int32_t bugfix_version; + base::SysInfo::OperatingSystemVersionNumbers(&major_version, &minor_version, + &bugfix_version); // Vision Framework doesn't work properly on 10.14.{0,1,2}: crbug.com/921968. - return version.minorVersion == 14 && version.patchVersion < 3; + return major_version == 10 && minor_version == 14 && bugfix_version < 3; } BarcodeDetectionImplMacVision::BarcodeDetectionImplMacVision(
diff --git a/testing/buildbot/chromium.ci.json b/testing/buildbot/chromium.ci.json index b879531..3b8d468 100644 --- a/testing/buildbot/chromium.ci.json +++ b/testing/buildbot/chromium.ci.json
@@ -28459,6 +28459,35 @@ }, { "args": [ + "context_lost", + "--show-stdout", + "--browser=web-engine-shell", + "--passthrough", + "-v", + "--extra-browser-args=--enable-logging=stderr --js-flags=--expose-gc --use-cmd-decoder=validating" + ], + "isolate_name": "fuchsia_telemetry_gpu_integration_test", + "merge": { + "args": [], + "script": "//testing/merge_scripts/standard_isolated_script_merge.py" + }, + "name": "context_lost_validating_tests", + "should_retry_with_patch": false, + "swarming": { + "can_use_on_swarming_builders": true, + "dimension_sets": [ + { + "kvm": "1", + "os": "Ubuntu-16.04" + } + ], + "idempotent": false, + "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com" + }, + "test_id_prefix": "ninja://content/test:fuchsia_telemetry_gpu_integration_test/" + }, + { + "args": [ "depth_capture", "--show-stdout", "--browser=web-engine-shell", @@ -28576,6 +28605,99 @@ "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com" }, "test_id_prefix": "ninja://content/test:fuchsia_telemetry_gpu_integration_test/" + }, + { + "args": [ + "pixel", + "--show-stdout", + "--browser=web-engine-shell", + "--passthrough", + "-v", + "--extra-browser-args=--enable-logging=stderr --js-flags=--expose-gc", + "--git-revision=${got_revision}" + ], + "isolate_name": "fuchsia_telemetry_gpu_integration_test", + "merge": { + "args": [], + "script": "//testing/merge_scripts/standard_isolated_script_merge.py" + }, + "name": "pixel_tests", + "precommit_args": [ + "--gerrit-issue=${patch_issue}", + "--gerrit-patchset=${patch_set}", + "--buildbucket-id=${buildbucket_build_id}" + ], + "should_retry_with_patch": false, + "swarming": { + "can_use_on_swarming_builders": true, + "dimension_sets": [ + { + "kvm": "1", + "os": "Ubuntu-16.04" + } + ], + "idempotent": false, + "service_account": "chrome-gpu-gold@chops-service-accounts.iam.gserviceaccount.com" + }, + "test_id_prefix": "ninja://content/test:fuchsia_telemetry_gpu_integration_test/" + }, + { + "args": [ + "screenshot_sync", + "--show-stdout", + "--browser=web-engine-shell", + "--passthrough", + "-v", + "--extra-browser-args=--enable-logging=stderr --js-flags=--expose-gc" + ], + "isolate_name": "fuchsia_telemetry_gpu_integration_test", + "merge": { + "args": [], + "script": "//testing/merge_scripts/standard_isolated_script_merge.py" + }, + "name": "screenshot_sync_tests", + "should_retry_with_patch": false, + "swarming": { + "can_use_on_swarming_builders": true, + "dimension_sets": [ + { + "kvm": "1", + "os": "Ubuntu-16.04" + } + ], + "idempotent": false, + "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com" + }, + "test_id_prefix": "ninja://content/test:fuchsia_telemetry_gpu_integration_test/" + }, + { + "args": [ + "trace_test", + "--show-stdout", + "--browser=web-engine-shell", + "--passthrough", + "-v", + "--extra-browser-args=--enable-logging=stderr --js-flags=--expose-gc" + ], + "isolate_name": "fuchsia_telemetry_gpu_integration_test", + "merge": { + "args": [], + "script": "//testing/merge_scripts/standard_isolated_script_merge.py" + }, + "name": "trace_test", + "should_retry_with_patch": false, + "swarming": { + "can_use_on_swarming_builders": true, + "dimension_sets": [ + { + "kvm": "1", + "os": "Ubuntu-16.04" + } + ], + "idempotent": false, + "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com" + }, + "test_id_prefix": "ninja://content/test:fuchsia_telemetry_gpu_integration_test/" } ] }, @@ -130464,7 +130586,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h" + "12a8189n" ], "isolate_name": "absl_hardening_tests", "merge": { @@ -130488,7 +130610,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -130505,7 +130627,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h" + "12a8189n" ], "isolate_name": "base_unittests", "merge": { @@ -130529,7 +130651,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -130546,7 +130668,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h" + "12a8189n" ], "isolate_name": "boringssl_crypto_tests", "merge": { @@ -130570,7 +130692,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -130587,7 +130709,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h" + "12a8189n" ], "isolate_name": "boringssl_ssl_tests", "merge": { @@ -130611,7 +130733,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -130628,7 +130750,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h" + "12a8189n" ], "isolate_name": "components_unittests", "merge": { @@ -130652,7 +130774,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -130669,7 +130791,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h" + "12a8189n" ], "isolate_name": "crypto_unittests", "merge": { @@ -130693,7 +130815,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -130710,7 +130832,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h" + "12a8189n" ], "isolate_name": "gfx_unittests", "merge": { @@ -130734,7 +130856,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -130751,7 +130873,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h" + "12a8189n" ], "isolate_name": "google_apis_unittests", "merge": { @@ -130775,7 +130897,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -130792,7 +130914,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h" + "12a8189n" ], "isolate_name": "ios_chrome_unittests", "merge": { @@ -130816,7 +130938,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -130833,7 +130955,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h" + "12a8189n" ], "isolate_name": "ios_net_unittests", "merge": { @@ -130857,7 +130979,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -130874,7 +130996,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h" + "12a8189n" ], "isolate_name": "ios_web_inttests", "merge": { @@ -130898,7 +131020,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -130915,7 +131037,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h" + "12a8189n" ], "isolate_name": "ios_web_unittests", "merge": { @@ -130939,7 +131061,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -130956,7 +131078,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h" + "12a8189n" ], "isolate_name": "ios_web_view_inttests", "merge": { @@ -130980,7 +131102,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -130997,7 +131119,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h" + "12a8189n" ], "isolate_name": "net_unittests", "merge": { @@ -131021,7 +131143,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -131038,7 +131160,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h" + "12a8189n" ], "isolate_name": "skia_unittests", "merge": { @@ -131062,7 +131184,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -131079,7 +131201,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h" + "12a8189n" ], "isolate_name": "sql_unittests", "merge": { @@ -131103,7 +131225,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -131120,7 +131242,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h" + "12a8189n" ], "isolate_name": "ui_base_unittests", "merge": { @@ -131144,7 +131266,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -131161,7 +131283,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h" + "12a8189n" ], "isolate_name": "url_unittests", "merge": { @@ -131185,7 +131307,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -131221,7 +131343,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h" + "12a8189n" ], "isolate_name": "absl_hardening_tests", "merge": { @@ -131246,7 +131368,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -131259,7 +131381,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h" + "12a8189n" ], "isolate_name": "base_unittests", "merge": { @@ -131284,7 +131406,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -131297,7 +131419,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h" + "12a8189n" ], "isolate_name": "boringssl_crypto_tests", "merge": { @@ -131322,7 +131444,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -131335,7 +131457,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h" + "12a8189n" ], "isolate_name": "boringssl_ssl_tests", "merge": { @@ -131360,7 +131482,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -131373,7 +131495,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h" + "12a8189n" ], "isolate_name": "components_unittests", "merge": { @@ -131398,7 +131520,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -131411,7 +131533,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h" + "12a8189n" ], "isolate_name": "crypto_unittests", "merge": { @@ -131436,7 +131558,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -131449,7 +131571,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h" + "12a8189n" ], "isolate_name": "gfx_unittests", "merge": { @@ -131474,7 +131596,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -131487,7 +131609,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h" + "12a8189n" ], "isolate_name": "google_apis_unittests", "merge": { @@ -131512,7 +131634,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -131525,7 +131647,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h" + "12a8189n" ], "isolate_name": "ios_chrome_unittests", "merge": { @@ -131550,7 +131672,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -131563,7 +131685,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h" + "12a8189n" ], "isolate_name": "ios_net_unittests", "merge": { @@ -131588,7 +131710,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -131601,7 +131723,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h" + "12a8189n" ], "isolate_name": "ios_web_inttests", "merge": { @@ -131626,7 +131748,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -131639,7 +131761,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h" + "12a8189n" ], "isolate_name": "ios_web_unittests", "merge": { @@ -131664,7 +131786,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -131677,7 +131799,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h" + "12a8189n" ], "isolate_name": "ios_web_view_inttests", "merge": { @@ -131702,7 +131824,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -131715,7 +131837,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h" + "12a8189n" ], "isolate_name": "net_unittests", "merge": { @@ -131740,7 +131862,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -131753,7 +131875,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h" + "12a8189n" ], "isolate_name": "skia_unittests", "merge": { @@ -131778,7 +131900,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -131791,7 +131913,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h" + "12a8189n" ], "isolate_name": "sql_unittests", "merge": { @@ -131816,7 +131938,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -131829,7 +131951,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h" + "12a8189n" ], "isolate_name": "ui_base_unittests", "merge": { @@ -131854,7 +131976,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -131867,7 +131989,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h" + "12a8189n" ], "isolate_name": "url_unittests", "merge": { @@ -131892,7 +132014,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -206072,7 +206194,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "absl_hardening_tests", @@ -206097,7 +206219,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -206114,7 +206236,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "absl_hardening_tests", @@ -206139,7 +206261,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -206156,7 +206278,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "base_unittests", @@ -206181,7 +206303,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -206198,7 +206320,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "base_unittests", @@ -206223,7 +206345,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -206240,7 +206362,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "boringssl_crypto_tests", @@ -206265,7 +206387,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -206282,7 +206404,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "boringssl_crypto_tests", @@ -206307,7 +206429,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -206324,7 +206446,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "boringssl_ssl_tests", @@ -206349,7 +206471,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -206366,7 +206488,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "boringssl_ssl_tests", @@ -206391,7 +206513,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -206408,7 +206530,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "components_unittests", @@ -206433,7 +206555,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -206450,7 +206572,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "components_unittests", @@ -206475,7 +206597,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -206492,7 +206614,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "crypto_unittests", @@ -206517,7 +206639,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -206534,7 +206656,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "crypto_unittests", @@ -206559,7 +206681,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -206576,7 +206698,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "gfx_unittests", @@ -206601,7 +206723,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -206618,7 +206740,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "gfx_unittests", @@ -206643,7 +206765,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -206660,7 +206782,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "google_apis_unittests", @@ -206685,7 +206807,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -206702,7 +206824,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "google_apis_unittests", @@ -206727,7 +206849,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -206744,7 +206866,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "ios_chrome_unittests", @@ -206769,7 +206891,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -206786,7 +206908,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "ios_chrome_unittests", @@ -206811,7 +206933,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -206828,7 +206950,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "ios_components_unittests", @@ -206853,7 +206975,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -206870,7 +206992,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "ios_components_unittests", @@ -206895,7 +207017,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -206912,7 +207034,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "ios_net_unittests", @@ -206937,7 +207059,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -206954,7 +207076,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "ios_net_unittests", @@ -206979,7 +207101,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -206996,7 +207118,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "ios_remoting_unittests", @@ -207021,7 +207143,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -207038,7 +207160,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "ios_remoting_unittests", @@ -207063,7 +207185,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -207080,7 +207202,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "ios_testing_unittests", @@ -207105,7 +207227,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -207122,7 +207244,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "ios_testing_unittests", @@ -207147,7 +207269,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -207164,7 +207286,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "ios_web_inttests", @@ -207189,7 +207311,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -207206,7 +207328,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "ios_web_inttests", @@ -207231,7 +207353,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -207248,7 +207370,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "ios_web_unittests", @@ -207273,7 +207395,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -207290,7 +207412,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "ios_web_unittests", @@ -207315,7 +207437,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -207332,7 +207454,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "ios_web_view_inttests", @@ -207357,7 +207479,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -207374,7 +207496,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "ios_web_view_inttests", @@ -207399,7 +207521,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -207416,7 +207538,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "ios_web_view_unittests", @@ -207441,7 +207563,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -207458,7 +207580,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "ios_web_view_unittests", @@ -207483,7 +207605,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -207500,7 +207622,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "net_unittests", @@ -207525,7 +207647,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -207542,7 +207664,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "net_unittests", @@ -207567,7 +207689,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -207584,7 +207706,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "services_unittests", @@ -207609,7 +207731,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -207626,7 +207748,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "services_unittests", @@ -207651,7 +207773,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -207668,7 +207790,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "skia_unittests", @@ -207693,7 +207815,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -207710,7 +207832,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "skia_unittests", @@ -207735,7 +207857,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -207752,7 +207874,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "sql_unittests", @@ -207777,7 +207899,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -207794,7 +207916,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "sql_unittests", @@ -207819,7 +207941,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -207836,7 +207958,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "ui_base_unittests", @@ -207861,7 +207983,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -207878,7 +208000,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "ui_base_unittests", @@ -207903,7 +208025,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -207920,7 +208042,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "url_unittests", @@ -207945,7 +208067,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -207962,7 +208084,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "url_unittests", @@ -207987,7 +208109,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -208016,7 +208138,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "absl_hardening_tests", @@ -208041,7 +208163,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -208058,7 +208180,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "absl_hardening_tests", @@ -208083,7 +208205,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -208100,7 +208222,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "base_unittests", @@ -208125,7 +208247,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -208142,7 +208264,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "base_unittests", @@ -208167,7 +208289,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -208184,7 +208306,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "base_unittests", @@ -208209,7 +208331,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -208226,7 +208348,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "base_unittests", @@ -208251,7 +208373,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -208268,7 +208390,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "boringssl_crypto_tests", @@ -208293,7 +208415,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -208310,7 +208432,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "boringssl_crypto_tests", @@ -208335,7 +208457,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -208352,7 +208474,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "boringssl_ssl_tests", @@ -208377,7 +208499,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -208394,7 +208516,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "boringssl_ssl_tests", @@ -208419,7 +208541,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -208436,7 +208558,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "components_unittests", @@ -208461,7 +208583,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -208478,7 +208600,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "components_unittests", @@ -208503,7 +208625,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -208520,7 +208642,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "components_unittests", @@ -208545,7 +208667,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -208562,7 +208684,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "components_unittests", @@ -208587,7 +208709,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -208604,7 +208726,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "crypto_unittests", @@ -208629,7 +208751,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -208646,7 +208768,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "crypto_unittests", @@ -208671,7 +208793,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -208688,7 +208810,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "gfx_unittests", @@ -208713,7 +208835,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -208730,7 +208852,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "gfx_unittests", @@ -208755,7 +208877,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -208772,7 +208894,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "gfx_unittests", @@ -208797,7 +208919,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -208814,7 +208936,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "gfx_unittests", @@ -208839,7 +208961,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -208856,7 +208978,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "google_apis_unittests", @@ -208881,7 +209003,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -208898,7 +209020,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "google_apis_unittests", @@ -208923,7 +209045,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -208940,7 +209062,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_chrome_integration_eg2tests_module", @@ -208965,7 +209087,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -208983,7 +209105,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_chrome_integration_eg2tests_module", @@ -209008,7 +209130,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -209026,7 +209148,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_chrome_signin_eg2tests_module", @@ -209051,7 +209173,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -209068,7 +209190,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_chrome_signin_eg2tests_module", @@ -209093,7 +209215,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -209110,7 +209232,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_chrome_ui_eg2tests_module", @@ -209135,7 +209257,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -209153,7 +209275,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_chrome_ui_eg2tests_module", @@ -209178,7 +209300,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -209196,7 +209318,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "ios_chrome_unittests", @@ -209221,7 +209343,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -209238,7 +209360,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "ios_chrome_unittests", @@ -209263,7 +209385,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -209280,7 +209402,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "ios_chrome_unittests", @@ -209305,7 +209427,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -209322,7 +209444,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "ios_chrome_unittests", @@ -209347,7 +209469,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -209364,7 +209486,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "ios_components_unittests", @@ -209389,7 +209511,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -209406,7 +209528,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "ios_components_unittests", @@ -209431,7 +209553,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -209448,7 +209570,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "ios_net_unittests", @@ -209473,7 +209595,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -209490,7 +209612,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "ios_net_unittests", @@ -209515,7 +209637,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -209532,7 +209654,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "ios_remoting_unittests", @@ -209557,7 +209679,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -209574,7 +209696,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "ios_remoting_unittests", @@ -209599,7 +209721,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -209616,7 +209738,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "ios_testing_unittests", @@ -209641,7 +209763,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -209658,7 +209780,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "ios_testing_unittests", @@ -209683,7 +209805,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -209700,7 +209822,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "ios_web_inttests", @@ -209725,7 +209847,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -209742,7 +209864,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "ios_web_inttests", @@ -209767,7 +209889,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -209784,7 +209906,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "ios_web_inttests", @@ -209809,7 +209931,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -209826,7 +209948,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "ios_web_inttests", @@ -209851,7 +209973,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -209868,7 +209990,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_web_shell_eg2tests_module", @@ -209893,7 +210015,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -209910,7 +210032,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_web_shell_eg2tests_module", @@ -209935,7 +210057,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -209952,7 +210074,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "ios_web_unittests", @@ -209977,7 +210099,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -209994,7 +210116,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "ios_web_unittests", @@ -210019,7 +210141,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -210036,7 +210158,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "ios_web_unittests", @@ -210061,7 +210183,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -210078,7 +210200,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "ios_web_unittests", @@ -210103,7 +210225,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -210120,7 +210242,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "ios_web_view_inttests", @@ -210145,7 +210267,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -210162,7 +210284,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "ios_web_view_inttests", @@ -210187,7 +210309,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -210204,7 +210326,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "ios_web_view_inttests", @@ -210229,7 +210351,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -210246,7 +210368,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "ios_web_view_inttests", @@ -210271,7 +210393,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -210288,7 +210410,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "ios_web_view_unittests", @@ -210313,7 +210435,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -210330,7 +210452,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "ios_web_view_unittests", @@ -210355,7 +210477,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -210372,7 +210494,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "ios_web_view_unittests", @@ -210397,7 +210519,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -210414,7 +210536,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "ios_web_view_unittests", @@ -210439,7 +210561,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -210456,7 +210578,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "net_unittests", @@ -210481,7 +210603,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -210498,7 +210620,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "net_unittests", @@ -210523,7 +210645,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -210540,7 +210662,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "services_unittests", @@ -210565,7 +210687,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -210582,7 +210704,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "services_unittests", @@ -210607,7 +210729,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -210624,7 +210746,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "skia_unittests", @@ -210649,7 +210771,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -210666,7 +210788,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "skia_unittests", @@ -210691,7 +210813,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -210708,7 +210830,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "skia_unittests", @@ -210733,7 +210855,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -210750,7 +210872,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "skia_unittests", @@ -210775,7 +210897,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -210792,7 +210914,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "sql_unittests", @@ -210817,7 +210939,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -210834,7 +210956,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "sql_unittests", @@ -210859,7 +210981,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -210876,7 +210998,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "ui_base_unittests", @@ -210901,7 +211023,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -210918,7 +211040,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "ui_base_unittests", @@ -210943,7 +211065,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -210960,7 +211082,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "ui_base_unittests", @@ -210985,7 +211107,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -211002,7 +211124,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "ui_base_unittests", @@ -211027,7 +211149,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -211044,7 +211166,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "url_unittests", @@ -211069,7 +211191,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -211086,7 +211208,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "url_unittests", @@ -211111,7 +211233,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -211134,7 +211256,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "absl_hardening_tests", @@ -211160,7 +211282,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -211179,7 +211301,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "absl_hardening_tests", @@ -211205,7 +211327,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -211224,7 +211346,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "base_unittests", @@ -211250,7 +211372,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -211269,7 +211391,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "base_unittests", @@ -211295,7 +211417,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -211314,7 +211436,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "base_unittests", @@ -211340,7 +211462,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -211359,7 +211481,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "base_unittests", @@ -211385,7 +211507,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -211404,7 +211526,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "boringssl_crypto_tests", @@ -211430,7 +211552,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -211449,7 +211571,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "boringssl_crypto_tests", @@ -211475,7 +211597,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -211494,7 +211616,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "boringssl_ssl_tests", @@ -211520,7 +211642,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -211539,7 +211661,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "boringssl_ssl_tests", @@ -211565,7 +211687,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -211584,7 +211706,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "components_unittests", @@ -211610,7 +211732,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -211629,7 +211751,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "components_unittests", @@ -211655,7 +211777,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -211674,7 +211796,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "components_unittests", @@ -211700,7 +211822,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -211719,7 +211841,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "components_unittests", @@ -211745,7 +211867,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -211764,7 +211886,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "crypto_unittests", @@ -211790,7 +211912,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -211809,7 +211931,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "crypto_unittests", @@ -211835,7 +211957,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -211854,7 +211976,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "gfx_unittests", @@ -211880,7 +212002,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -211899,7 +212021,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "gfx_unittests", @@ -211925,7 +212047,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -211944,7 +212066,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "gfx_unittests", @@ -211970,7 +212092,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -211989,7 +212111,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "gfx_unittests", @@ -212015,7 +212137,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -212034,7 +212156,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "google_apis_unittests", @@ -212060,7 +212182,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -212079,7 +212201,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "google_apis_unittests", @@ -212105,7 +212227,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -212124,7 +212246,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_chrome_bookmarks_eg2tests_module", @@ -212150,7 +212272,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -212169,7 +212291,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_chrome_bookmarks_eg2tests_module", @@ -212195,7 +212317,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -212214,7 +212336,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_chrome_bookmarks_eg2tests_module", @@ -212240,7 +212362,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -212259,7 +212381,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_chrome_bookmarks_eg2tests_module", @@ -212285,7 +212407,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -212304,7 +212426,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_chrome_bookmarks_eg2tests_module", @@ -212330,7 +212452,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -212349,7 +212471,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_chrome_integration_eg2tests_module", @@ -212375,7 +212497,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -212395,7 +212517,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_chrome_integration_eg2tests_module", @@ -212421,7 +212543,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -212441,7 +212563,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_chrome_integration_eg2tests_module", @@ -212467,7 +212589,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -212487,7 +212609,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_chrome_integration_eg2tests_module", @@ -212513,7 +212635,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -212533,7 +212655,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_chrome_integration_eg2tests_module", @@ -212559,7 +212681,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -212579,7 +212701,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_chrome_settings_eg2tests_module", @@ -212605,7 +212727,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -212625,7 +212747,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_chrome_settings_eg2tests_module", @@ -212651,7 +212773,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -212671,7 +212793,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_chrome_settings_eg2tests_module", @@ -212697,7 +212819,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -212717,7 +212839,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_chrome_settings_eg2tests_module", @@ -212743,7 +212865,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -212763,7 +212885,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_chrome_settings_eg2tests_module", @@ -212789,7 +212911,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -212809,7 +212931,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_chrome_signin_eg2tests_module", @@ -212835,7 +212957,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -212854,7 +212976,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_chrome_signin_eg2tests_module", @@ -212880,7 +213002,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -212899,7 +213021,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_chrome_signin_eg2tests_module", @@ -212925,7 +213047,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -212944,7 +213066,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_chrome_signin_eg2tests_module", @@ -212970,7 +213092,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -212989,7 +213111,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_chrome_signin_eg2tests_module", @@ -213015,7 +213137,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -213034,7 +213156,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_chrome_smoke_eg2tests_module", @@ -213060,7 +213182,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -213079,7 +213201,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_chrome_smoke_eg2tests_module", @@ -213105,7 +213227,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -213124,7 +213246,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_chrome_smoke_eg2tests_module", @@ -213150,7 +213272,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -213169,7 +213291,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_chrome_smoke_eg2tests_module", @@ -213195,7 +213317,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -213214,7 +213336,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_chrome_smoke_eg2tests_module", @@ -213240,7 +213362,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -213259,7 +213381,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_chrome_ui_eg2tests_module", @@ -213285,7 +213407,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -213305,7 +213427,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_chrome_ui_eg2tests_module", @@ -213331,7 +213453,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -213351,7 +213473,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_chrome_ui_eg2tests_module", @@ -213377,7 +213499,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -213397,7 +213519,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_chrome_ui_eg2tests_module", @@ -213423,7 +213545,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -213443,7 +213565,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_chrome_ui_eg2tests_module", @@ -213469,7 +213591,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -213489,7 +213611,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "ios_chrome_unittests", @@ -213515,7 +213637,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -213534,7 +213656,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "ios_chrome_unittests", @@ -213560,7 +213682,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -213579,7 +213701,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "ios_chrome_unittests", @@ -213605,7 +213727,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -213624,7 +213746,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "ios_chrome_unittests", @@ -213650,7 +213772,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -213669,7 +213791,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_chrome_web_eg2tests_module", @@ -213695,7 +213817,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -213714,7 +213836,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_chrome_web_eg2tests_module", @@ -213740,7 +213862,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -213759,7 +213881,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_chrome_web_eg2tests_module", @@ -213785,7 +213907,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -213804,7 +213926,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_chrome_web_eg2tests_module", @@ -213830,7 +213952,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -213849,7 +213971,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_chrome_web_eg2tests_module", @@ -213875,7 +213997,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -213894,7 +214016,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "ios_components_unittests", @@ -213920,7 +214042,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -213939,7 +214061,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "ios_components_unittests", @@ -213965,7 +214087,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -213984,7 +214106,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "ios_net_unittests", @@ -214010,7 +214132,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -214029,7 +214151,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "ios_net_unittests", @@ -214055,7 +214177,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -214074,7 +214196,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "ios_remoting_unittests", @@ -214100,7 +214222,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -214119,7 +214241,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "ios_remoting_unittests", @@ -214145,7 +214267,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -214164,7 +214286,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_showcase_eg2tests_module", @@ -214190,7 +214312,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -214209,7 +214331,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_showcase_eg2tests_module", @@ -214235,7 +214357,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -214254,7 +214376,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_showcase_eg2tests_module", @@ -214280,7 +214402,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -214299,7 +214421,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_showcase_eg2tests_module", @@ -214325,7 +214447,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -214344,7 +214466,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_showcase_eg2tests_module", @@ -214370,7 +214492,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -214389,7 +214511,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "ios_testing_unittests", @@ -214415,7 +214537,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -214434,7 +214556,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "ios_testing_unittests", @@ -214460,7 +214582,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -214479,7 +214601,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "ios_web_inttests", @@ -214505,7 +214627,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -214524,7 +214646,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "ios_web_inttests", @@ -214550,7 +214672,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -214569,7 +214691,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "ios_web_inttests", @@ -214595,7 +214717,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -214614,7 +214736,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "ios_web_inttests", @@ -214640,7 +214762,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -214659,7 +214781,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_web_shell_eg2tests_module", @@ -214685,7 +214807,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -214704,7 +214826,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_web_shell_eg2tests_module", @@ -214730,7 +214852,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -214749,7 +214871,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_web_shell_eg2tests_module", @@ -214775,7 +214897,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -214794,7 +214916,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_web_shell_eg2tests_module", @@ -214820,7 +214942,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -214839,7 +214961,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_web_shell_eg2tests_module", @@ -214865,7 +214987,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -214884,7 +215006,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "ios_web_unittests", @@ -214910,7 +215032,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -214929,7 +215051,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "ios_web_unittests", @@ -214955,7 +215077,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -214974,7 +215096,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "ios_web_unittests", @@ -215000,7 +215122,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -215019,7 +215141,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "ios_web_unittests", @@ -215045,7 +215167,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -215064,7 +215186,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "ios_web_view_inttests", @@ -215090,7 +215212,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -215109,7 +215231,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "ios_web_view_inttests", @@ -215135,7 +215257,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -215154,7 +215276,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "ios_web_view_inttests", @@ -215180,7 +215302,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -215199,7 +215321,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "ios_web_view_inttests", @@ -215225,7 +215347,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -215244,7 +215366,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "ios_web_view_unittests", @@ -215270,7 +215392,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -215289,7 +215411,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "ios_web_view_unittests", @@ -215315,7 +215437,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -215334,7 +215456,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "ios_web_view_unittests", @@ -215360,7 +215482,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -215379,7 +215501,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "ios_web_view_unittests", @@ -215405,7 +215527,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -215424,7 +215546,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "net_unittests", @@ -215450,7 +215572,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -215469,7 +215591,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "net_unittests", @@ -215495,7 +215617,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -215514,7 +215636,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "services_unittests", @@ -215540,7 +215662,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -215559,7 +215681,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "services_unittests", @@ -215585,7 +215707,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -215604,7 +215726,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "skia_unittests", @@ -215630,7 +215752,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -215649,7 +215771,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "skia_unittests", @@ -215675,7 +215797,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -215694,7 +215816,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "skia_unittests", @@ -215720,7 +215842,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -215739,7 +215861,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "skia_unittests", @@ -215765,7 +215887,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -215784,7 +215906,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "sql_unittests", @@ -215810,7 +215932,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -215829,7 +215951,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "sql_unittests", @@ -215855,7 +215977,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -215874,7 +215996,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "ui_base_unittests", @@ -215900,7 +216022,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -215919,7 +216041,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "ui_base_unittests", @@ -215945,7 +216067,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -215964,7 +216086,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "ui_base_unittests", @@ -215990,7 +216112,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -216009,7 +216131,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "ui_base_unittests", @@ -216035,7 +216157,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -216054,7 +216176,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "url_unittests", @@ -216080,7 +216202,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -216099,7 +216221,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "url_unittests", @@ -216125,7 +216247,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -216235,7 +216357,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_chrome_bookmarks_eg2tests_module", @@ -216260,7 +216382,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -216277,7 +216399,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_chrome_bookmarks_eg2tests_module", @@ -216302,7 +216424,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -216319,7 +216441,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_chrome_bookmarks_eg2tests_module", @@ -216344,7 +216466,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -216361,7 +216483,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_chrome_bookmarks_eg2tests_module", @@ -216386,7 +216508,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -216403,7 +216525,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_chrome_bookmarks_eg2tests_module", @@ -216428,7 +216550,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -216445,7 +216567,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_chrome_integration_eg2tests_module", @@ -216470,7 +216592,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -216488,7 +216610,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_chrome_integration_eg2tests_module", @@ -216513,7 +216635,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -216531,7 +216653,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_chrome_integration_eg2tests_module", @@ -216556,7 +216678,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -216574,7 +216696,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_chrome_settings_eg2tests_module", @@ -216599,7 +216721,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -216617,7 +216739,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_chrome_settings_eg2tests_module", @@ -216642,7 +216764,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -216660,7 +216782,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_chrome_settings_eg2tests_module", @@ -216685,7 +216807,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -216703,7 +216825,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_chrome_settings_eg2tests_module", @@ -216728,7 +216850,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -216746,7 +216868,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_chrome_settings_eg2tests_module", @@ -216771,7 +216893,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -216789,7 +216911,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_chrome_signin_eg2tests_module", @@ -216814,7 +216936,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -216831,7 +216953,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_chrome_signin_eg2tests_module", @@ -216856,7 +216978,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -216873,7 +216995,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_chrome_signin_eg2tests_module", @@ -216898,7 +217020,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -216915,7 +217037,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_chrome_smoke_eg2tests_module", @@ -216940,7 +217062,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -216957,7 +217079,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_chrome_smoke_eg2tests_module", @@ -216982,7 +217104,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -216999,7 +217121,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_chrome_smoke_eg2tests_module", @@ -217024,7 +217146,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -217041,7 +217163,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_chrome_smoke_eg2tests_module", @@ -217066,7 +217188,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -217083,7 +217205,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_chrome_smoke_eg2tests_module", @@ -217108,7 +217230,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -217125,7 +217247,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_chrome_ui_eg2tests_module", @@ -217150,7 +217272,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -217168,7 +217290,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_chrome_ui_eg2tests_module", @@ -217193,7 +217315,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -217211,7 +217333,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_chrome_ui_eg2tests_module", @@ -217236,7 +217358,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -217254,7 +217376,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_chrome_web_eg2tests_module", @@ -217279,7 +217401,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -217296,7 +217418,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_chrome_web_eg2tests_module", @@ -217321,7 +217443,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -217338,7 +217460,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_chrome_web_eg2tests_module", @@ -217363,7 +217485,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -217380,7 +217502,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_chrome_web_eg2tests_module", @@ -217405,7 +217527,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -217422,7 +217544,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_chrome_web_eg2tests_module", @@ -217447,7 +217569,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -217464,7 +217586,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_showcase_eg2tests_module", @@ -217489,7 +217611,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -217506,7 +217628,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_showcase_eg2tests_module", @@ -217531,7 +217653,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -217548,7 +217670,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_showcase_eg2tests_module", @@ -217573,7 +217695,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -217590,7 +217712,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_showcase_eg2tests_module", @@ -217615,7 +217737,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -217632,7 +217754,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_showcase_eg2tests_module", @@ -217657,7 +217779,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -217674,7 +217796,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_web_shell_eg2tests_module", @@ -217699,7 +217821,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -217716,7 +217838,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_web_shell_eg2tests_module", @@ -217741,7 +217863,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -217758,7 +217880,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_web_shell_eg2tests_module", @@ -217783,7 +217905,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -217804,7 +217926,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "absl_hardening_tests", @@ -217829,7 +217951,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -217846,7 +217968,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "base_unittests", @@ -217871,7 +217993,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -217888,7 +218010,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "boringssl_crypto_tests", @@ -217913,7 +218035,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -217930,7 +218052,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "boringssl_ssl_tests", @@ -217955,7 +218077,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -217972,7 +218094,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "components_unittests", @@ -217997,7 +218119,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -218014,7 +218136,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "crypto_unittests", @@ -218039,7 +218161,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -218056,7 +218178,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "gfx_unittests", @@ -218081,7 +218203,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -218098,7 +218220,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "google_apis_unittests", @@ -218123,7 +218245,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -218140,7 +218262,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_chrome_bookmarks_eg2tests_module", @@ -218165,7 +218287,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -218182,7 +218304,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_chrome_integration_eg2tests_module", @@ -218207,7 +218329,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -218225,7 +218347,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_chrome_settings_eg2tests_module", @@ -218250,7 +218372,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -218268,7 +218390,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_chrome_signin_eg2tests_module", @@ -218293,7 +218415,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -218310,7 +218432,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_chrome_smoke_eg2tests_module", @@ -218335,7 +218457,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -218352,7 +218474,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_chrome_ui_eg2tests_module", @@ -218377,7 +218499,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -218395,7 +218517,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "ios_chrome_unittests", @@ -218420,7 +218542,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -218437,7 +218559,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_chrome_web_eg2tests_module", @@ -218462,7 +218584,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -218479,7 +218601,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "ios_components_unittests", @@ -218504,7 +218626,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -218521,7 +218643,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "ios_net_unittests", @@ -218546,7 +218668,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -218563,7 +218685,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "ios_remoting_unittests", @@ -218588,7 +218710,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -218605,7 +218727,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_showcase_eg2tests_module", @@ -218630,7 +218752,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -218647,7 +218769,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "ios_testing_unittests", @@ -218672,7 +218794,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -218689,7 +218811,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "ios_web_inttests", @@ -218714,7 +218836,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -218731,7 +218853,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_web_shell_eg2tests_module", @@ -218756,7 +218878,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -218773,7 +218895,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "ios_web_unittests", @@ -218798,7 +218920,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -218815,7 +218937,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "ios_web_view_inttests", @@ -218840,7 +218962,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -218857,7 +218979,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "ios_web_view_unittests", @@ -218882,7 +219004,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -218899,7 +219021,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "net_unittests", @@ -218924,7 +219046,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -218941,7 +219063,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "services_unittests", @@ -218966,7 +219088,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -218983,7 +219105,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "skia_unittests", @@ -219008,7 +219130,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -219025,7 +219147,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "sql_unittests", @@ -219050,7 +219172,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -219067,7 +219189,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "ui_base_unittests", @@ -219092,7 +219214,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -219109,7 +219231,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "url_unittests", @@ -219134,7 +219256,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -219158,7 +219280,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "absl_hardening_tests", @@ -219183,7 +219305,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -219200,7 +219322,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "base_unittests", @@ -219225,7 +219347,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -219242,7 +219364,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "boringssl_crypto_tests", @@ -219267,7 +219389,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -219284,7 +219406,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "boringssl_ssl_tests", @@ -219309,7 +219431,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -219326,7 +219448,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "components_unittests", @@ -219351,7 +219473,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -219368,7 +219490,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "crypto_unittests", @@ -219393,7 +219515,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -219410,7 +219532,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "gfx_unittests", @@ -219435,7 +219557,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -219452,7 +219574,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "google_apis_unittests", @@ -219477,7 +219599,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -219494,7 +219616,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_chrome_bookmarks_eg2tests_module", @@ -219519,7 +219641,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -219536,7 +219658,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_chrome_bookmarks_eg2tests_module", @@ -219561,7 +219683,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -219578,7 +219700,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_chrome_bookmarks_eg2tests_module", @@ -219603,7 +219725,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -219620,7 +219742,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_chrome_integration_eg2tests_module", @@ -219645,7 +219767,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -219663,7 +219785,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_chrome_integration_eg2tests_module", @@ -219688,7 +219810,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -219706,7 +219828,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_chrome_integration_eg2tests_module", @@ -219731,7 +219853,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -219749,7 +219871,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_chrome_settings_eg2tests_module", @@ -219774,7 +219896,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -219792,7 +219914,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_chrome_settings_eg2tests_module", @@ -219817,7 +219939,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -219835,7 +219957,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_chrome_settings_eg2tests_module", @@ -219860,7 +219982,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -219878,7 +220000,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_chrome_signin_eg2tests_module", @@ -219903,7 +220025,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -219920,7 +220042,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_chrome_signin_eg2tests_module", @@ -219945,7 +220067,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -219962,7 +220084,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_chrome_signin_eg2tests_module", @@ -219987,7 +220109,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -220004,7 +220126,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_chrome_smoke_eg2tests_module", @@ -220029,7 +220151,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -220046,7 +220168,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_chrome_smoke_eg2tests_module", @@ -220071,7 +220193,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -220088,7 +220210,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_chrome_smoke_eg2tests_module", @@ -220113,7 +220235,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -220130,7 +220252,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_chrome_ui_eg2tests_module", @@ -220155,7 +220277,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -220173,7 +220295,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_chrome_ui_eg2tests_module", @@ -220198,7 +220320,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -220216,7 +220338,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_chrome_ui_eg2tests_module", @@ -220241,7 +220363,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -220259,7 +220381,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "ios_chrome_unittests", @@ -220284,7 +220406,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -220301,7 +220423,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_chrome_web_eg2tests_module", @@ -220326,7 +220448,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -220343,7 +220465,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_chrome_web_eg2tests_module", @@ -220368,7 +220490,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -220385,7 +220507,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_chrome_web_eg2tests_module", @@ -220410,7 +220532,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -220427,7 +220549,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "ios_components_unittests", @@ -220452,7 +220574,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -220469,7 +220591,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "ios_net_unittests", @@ -220494,7 +220616,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -220511,7 +220633,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "ios_remoting_unittests", @@ -220536,7 +220658,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -220553,7 +220675,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_showcase_eg2tests_module", @@ -220578,7 +220700,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -220595,7 +220717,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_showcase_eg2tests_module", @@ -220620,7 +220742,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -220637,7 +220759,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_showcase_eg2tests_module", @@ -220662,7 +220784,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -220679,7 +220801,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "ios_testing_unittests", @@ -220704,7 +220826,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -220721,7 +220843,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "ios_web_inttests", @@ -220746,7 +220868,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -220763,7 +220885,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_web_shell_eg2tests_module", @@ -220788,7 +220910,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -220805,7 +220927,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_web_shell_eg2tests_module", @@ -220830,7 +220952,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -220847,7 +220969,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_web_shell_eg2tests_module", @@ -220872,7 +220994,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -220889,7 +221011,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "ios_web_unittests", @@ -220914,7 +221036,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -220931,7 +221053,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "ios_web_view_inttests", @@ -220956,7 +221078,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -220973,7 +221095,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "ios_web_view_unittests", @@ -220998,7 +221120,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -221015,7 +221137,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "net_unittests", @@ -221040,7 +221162,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -221057,7 +221179,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "services_unittests", @@ -221082,7 +221204,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -221099,7 +221221,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "skia_unittests", @@ -221124,7 +221246,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -221141,7 +221263,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "sql_unittests", @@ -221166,7 +221288,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -221183,7 +221305,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "ui_base_unittests", @@ -221208,7 +221330,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -221225,7 +221347,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "url_unittests", @@ -221250,7 +221372,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -224115,7 +224237,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "absl_hardening_tests", @@ -224141,7 +224263,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -224158,7 +224280,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "base_unittests", @@ -224184,7 +224306,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -224201,7 +224323,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "base_unittests", @@ -224227,7 +224349,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -224244,7 +224366,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "base_unittests", @@ -224270,7 +224392,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -224287,7 +224409,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "boringssl_crypto_tests", @@ -224313,7 +224435,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -224330,7 +224452,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "boringssl_ssl_tests", @@ -224356,7 +224478,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -224373,7 +224495,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "components_unittests", @@ -224399,7 +224521,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -224416,7 +224538,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "components_unittests", @@ -224442,7 +224564,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -224459,7 +224581,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "components_unittests", @@ -224485,7 +224607,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -224502,7 +224624,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "crypto_unittests", @@ -224528,7 +224650,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -224545,7 +224667,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "gfx_unittests", @@ -224571,7 +224693,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -224588,7 +224710,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "gfx_unittests", @@ -224614,7 +224736,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -224631,7 +224753,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "gfx_unittests", @@ -224657,7 +224779,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -224674,7 +224796,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "google_apis_unittests", @@ -224700,7 +224822,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -224717,7 +224839,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_chrome_bookmarks_eg2tests_module", @@ -224743,7 +224865,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -224760,7 +224882,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_chrome_bookmarks_eg2tests_module", @@ -224786,7 +224908,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -224803,7 +224925,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_chrome_bookmarks_eg2tests_module", @@ -224829,7 +224951,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -224846,7 +224968,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_chrome_bookmarks_eg2tests_module", @@ -224872,7 +224994,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -224889,7 +225011,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_chrome_integration_eg2tests_module", @@ -224915,7 +225037,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -224933,7 +225055,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_chrome_integration_eg2tests_module", @@ -224959,7 +225081,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -224977,7 +225099,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_chrome_integration_eg2tests_module", @@ -225003,7 +225125,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -225021,7 +225143,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_chrome_integration_eg2tests_module", @@ -225047,7 +225169,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -225065,7 +225187,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_chrome_settings_eg2tests_module", @@ -225091,7 +225213,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -225109,7 +225231,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_chrome_settings_eg2tests_module", @@ -225135,7 +225257,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -225153,7 +225275,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_chrome_settings_eg2tests_module", @@ -225179,7 +225301,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -225197,7 +225319,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_chrome_settings_eg2tests_module", @@ -225223,7 +225345,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -225241,7 +225363,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_chrome_signin_eg2tests_module", @@ -225267,7 +225389,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -225284,7 +225406,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_chrome_signin_eg2tests_module", @@ -225310,7 +225432,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -225327,7 +225449,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_chrome_signin_eg2tests_module", @@ -225353,7 +225475,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -225370,7 +225492,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_chrome_signin_eg2tests_module", @@ -225396,7 +225518,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -225413,7 +225535,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_chrome_smoke_eg2tests_module", @@ -225439,7 +225561,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -225456,7 +225578,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_chrome_smoke_eg2tests_module", @@ -225482,7 +225604,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -225499,7 +225621,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_chrome_smoke_eg2tests_module", @@ -225525,7 +225647,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -225542,7 +225664,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_chrome_smoke_eg2tests_module", @@ -225568,7 +225690,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -225585,7 +225707,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_chrome_ui_eg2tests_module", @@ -225611,7 +225733,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -225629,7 +225751,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_chrome_ui_eg2tests_module", @@ -225655,7 +225777,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -225673,7 +225795,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_chrome_ui_eg2tests_module", @@ -225699,7 +225821,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -225717,7 +225839,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_chrome_ui_eg2tests_module", @@ -225743,7 +225865,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -225761,7 +225883,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "ios_chrome_unittests", @@ -225787,7 +225909,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -225804,7 +225926,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "ios_chrome_unittests", @@ -225830,7 +225952,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -225847,7 +225969,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "ios_chrome_unittests", @@ -225873,7 +225995,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -225890,7 +226012,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_chrome_web_eg2tests_module", @@ -225916,7 +226038,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -225933,7 +226055,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_chrome_web_eg2tests_module", @@ -225959,7 +226081,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -225976,7 +226098,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_chrome_web_eg2tests_module", @@ -226002,7 +226124,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -226019,7 +226141,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_chrome_web_eg2tests_module", @@ -226045,7 +226167,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -226062,7 +226184,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "ios_components_unittests", @@ -226088,7 +226210,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -226105,7 +226227,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "ios_net_unittests", @@ -226131,7 +226253,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -226148,7 +226270,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "ios_remoting_unittests", @@ -226174,7 +226296,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -226191,7 +226313,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_showcase_eg2tests_module", @@ -226217,7 +226339,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -226234,7 +226356,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_showcase_eg2tests_module", @@ -226260,7 +226382,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -226277,7 +226399,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_showcase_eg2tests_module", @@ -226303,7 +226425,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -226320,7 +226442,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_showcase_eg2tests_module", @@ -226346,7 +226468,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -226363,7 +226485,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "ios_testing_unittests", @@ -226389,7 +226511,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -226406,7 +226528,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "ios_web_inttests", @@ -226432,7 +226554,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -226449,7 +226571,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "ios_web_inttests", @@ -226475,7 +226597,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -226492,7 +226614,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "ios_web_inttests", @@ -226518,7 +226640,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -226535,7 +226657,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_web_shell_eg2tests_module", @@ -226561,7 +226683,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -226578,7 +226700,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_web_shell_eg2tests_module", @@ -226604,7 +226726,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -226621,7 +226743,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_web_shell_eg2tests_module", @@ -226647,7 +226769,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -226664,7 +226786,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_web_shell_eg2tests_module", @@ -226690,7 +226812,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -226707,7 +226829,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "ios_web_unittests", @@ -226733,7 +226855,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -226750,7 +226872,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "ios_web_unittests", @@ -226776,7 +226898,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -226793,7 +226915,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "ios_web_unittests", @@ -226819,7 +226941,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -226836,7 +226958,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "ios_web_view_inttests", @@ -226862,7 +226984,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -226879,7 +227001,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "ios_web_view_inttests", @@ -226905,7 +227027,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -226922,7 +227044,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "ios_web_view_inttests", @@ -226948,7 +227070,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -226965,7 +227087,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "ios_web_view_unittests", @@ -226991,7 +227113,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -227008,7 +227130,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "ios_web_view_unittests", @@ -227034,7 +227156,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -227051,7 +227173,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "ios_web_view_unittests", @@ -227077,7 +227199,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -227094,7 +227216,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "net_unittests", @@ -227120,7 +227242,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -227137,7 +227259,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "services_unittests", @@ -227163,7 +227285,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -227180,7 +227302,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "skia_unittests", @@ -227206,7 +227328,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -227223,7 +227345,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "skia_unittests", @@ -227249,7 +227371,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -227266,7 +227388,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "skia_unittests", @@ -227292,7 +227414,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -227309,7 +227431,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "sql_unittests", @@ -227335,7 +227457,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -227352,7 +227474,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "ui_base_unittests", @@ -227378,7 +227500,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -227395,7 +227517,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "ui_base_unittests", @@ -227421,7 +227543,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -227438,7 +227560,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "ui_base_unittests", @@ -227464,7 +227586,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -227481,7 +227603,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "url_unittests", @@ -227507,7 +227629,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -227531,7 +227653,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "absl_hardening_tests", @@ -227557,7 +227679,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -227574,7 +227696,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "base_unittests", @@ -227600,7 +227722,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -227617,7 +227739,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "base_unittests", @@ -227643,7 +227765,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -227660,7 +227782,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "boringssl_crypto_tests", @@ -227686,7 +227808,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -227703,7 +227825,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "boringssl_ssl_tests", @@ -227729,7 +227851,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -227746,7 +227868,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "components_unittests", @@ -227772,7 +227894,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -227789,7 +227911,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "components_unittests", @@ -227815,7 +227937,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -227832,7 +227954,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "crypto_unittests", @@ -227858,7 +227980,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -227875,7 +227997,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "gfx_unittests", @@ -227901,7 +228023,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -227918,7 +228040,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "gfx_unittests", @@ -227944,7 +228066,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -227961,7 +228083,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "google_apis_unittests", @@ -227987,7 +228109,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -228004,7 +228126,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_chrome_bookmarks_eg2tests_module", @@ -228030,7 +228152,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -228047,7 +228169,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_chrome_bookmarks_eg2tests_module", @@ -228073,7 +228195,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -228090,7 +228212,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_chrome_bookmarks_eg2tests_module", @@ -228116,7 +228238,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -228133,7 +228255,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_chrome_integration_eg2tests_module", @@ -228159,7 +228281,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -228177,7 +228299,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_chrome_integration_eg2tests_module", @@ -228203,7 +228325,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -228221,7 +228343,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_chrome_integration_eg2tests_module", @@ -228247,7 +228369,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -228265,7 +228387,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_chrome_settings_eg2tests_module", @@ -228291,7 +228413,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -228309,7 +228431,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_chrome_settings_eg2tests_module", @@ -228335,7 +228457,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -228353,7 +228475,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_chrome_settings_eg2tests_module", @@ -228379,7 +228501,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -228397,7 +228519,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_chrome_signin_eg2tests_module", @@ -228423,7 +228545,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -228440,7 +228562,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_chrome_signin_eg2tests_module", @@ -228466,7 +228588,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -228483,7 +228605,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_chrome_signin_eg2tests_module", @@ -228509,7 +228631,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -228526,7 +228648,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_chrome_smoke_eg2tests_module", @@ -228552,7 +228674,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -228569,7 +228691,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_chrome_smoke_eg2tests_module", @@ -228595,7 +228717,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -228612,7 +228734,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_chrome_smoke_eg2tests_module", @@ -228638,7 +228760,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -228655,7 +228777,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_chrome_ui_eg2tests_module", @@ -228681,7 +228803,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -228699,7 +228821,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_chrome_ui_eg2tests_module", @@ -228725,7 +228847,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -228743,7 +228865,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_chrome_ui_eg2tests_module", @@ -228769,7 +228891,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -228787,7 +228909,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "ios_chrome_unittests", @@ -228813,7 +228935,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -228830,7 +228952,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "ios_chrome_unittests", @@ -228856,7 +228978,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -228873,7 +228995,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_chrome_web_eg2tests_module", @@ -228899,7 +229021,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -228916,7 +229038,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_chrome_web_eg2tests_module", @@ -228942,7 +229064,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -228959,7 +229081,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_chrome_web_eg2tests_module", @@ -228985,7 +229107,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -229002,7 +229124,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "ios_components_unittests", @@ -229028,7 +229150,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -229045,7 +229167,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "ios_net_unittests", @@ -229071,7 +229193,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -229088,7 +229210,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "ios_remoting_unittests", @@ -229114,7 +229236,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -229131,7 +229253,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_showcase_eg2tests_module", @@ -229157,7 +229279,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -229174,7 +229296,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_showcase_eg2tests_module", @@ -229200,7 +229322,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -229217,7 +229339,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_showcase_eg2tests_module", @@ -229243,7 +229365,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -229260,7 +229382,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "ios_testing_unittests", @@ -229286,7 +229408,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -229303,7 +229425,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "ios_web_inttests", @@ -229329,7 +229451,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -229346,7 +229468,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "ios_web_inttests", @@ -229372,7 +229494,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -229389,7 +229511,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_web_shell_eg2tests_module", @@ -229415,7 +229537,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -229432,7 +229554,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_web_shell_eg2tests_module", @@ -229458,7 +229580,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -229475,7 +229597,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_web_shell_eg2tests_module", @@ -229501,7 +229623,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -229518,7 +229640,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "ios_web_unittests", @@ -229544,7 +229666,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -229561,7 +229683,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "ios_web_unittests", @@ -229587,7 +229709,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -229604,7 +229726,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "ios_web_view_inttests", @@ -229630,7 +229752,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -229647,7 +229769,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "ios_web_view_inttests", @@ -229673,7 +229795,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -229690,7 +229812,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "ios_web_view_unittests", @@ -229716,7 +229838,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -229733,7 +229855,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "ios_web_view_unittests", @@ -229759,7 +229881,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -229776,7 +229898,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "net_unittests", @@ -229802,7 +229924,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -229819,7 +229941,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "services_unittests", @@ -229845,7 +229967,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -229862,7 +229984,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "skia_unittests", @@ -229888,7 +230010,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -229905,7 +230027,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "skia_unittests", @@ -229931,7 +230053,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -229948,7 +230070,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "sql_unittests", @@ -229974,7 +230096,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -229991,7 +230113,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "ui_base_unittests", @@ -230017,7 +230139,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -230034,7 +230156,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "ui_base_unittests", @@ -230060,7 +230182,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -230077,7 +230199,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "url_unittests", @@ -230103,7 +230225,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ],
diff --git a/testing/buildbot/chromium.clang.json b/testing/buildbot/chromium.clang.json index c5f6de6..21ec407 100644 --- a/testing/buildbot/chromium.clang.json +++ b/testing/buildbot/chromium.clang.json
@@ -40207,7 +40207,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h" + "12a8189n" ], "isolate_name": "absl_hardening_tests", "merge": { @@ -40231,7 +40231,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -40248,7 +40248,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h" + "12a8189n" ], "isolate_name": "base_unittests", "merge": { @@ -40272,7 +40272,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -40289,7 +40289,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h" + "12a8189n" ], "isolate_name": "boringssl_crypto_tests", "merge": { @@ -40313,7 +40313,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -40330,7 +40330,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h" + "12a8189n" ], "isolate_name": "boringssl_ssl_tests", "merge": { @@ -40354,7 +40354,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -40371,7 +40371,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h" + "12a8189n" ], "isolate_name": "components_unittests", "merge": { @@ -40395,7 +40395,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -40412,7 +40412,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h" + "12a8189n" ], "isolate_name": "crypto_unittests", "merge": { @@ -40436,7 +40436,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -40453,7 +40453,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h" + "12a8189n" ], "isolate_name": "gfx_unittests", "merge": { @@ -40477,7 +40477,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -40494,7 +40494,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h" + "12a8189n" ], "isolate_name": "google_apis_unittests", "merge": { @@ -40518,7 +40518,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -40535,7 +40535,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h" + "12a8189n" ], "isolate_name": "ios_chrome_unittests", "merge": { @@ -40559,7 +40559,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -40576,7 +40576,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h" + "12a8189n" ], "isolate_name": "ios_net_unittests", "merge": { @@ -40600,7 +40600,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -40617,7 +40617,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h" + "12a8189n" ], "isolate_name": "ios_web_inttests", "merge": { @@ -40641,7 +40641,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -40658,7 +40658,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h" + "12a8189n" ], "isolate_name": "ios_web_unittests", "merge": { @@ -40682,7 +40682,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -40699,7 +40699,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h" + "12a8189n" ], "isolate_name": "ios_web_view_inttests", "merge": { @@ -40723,7 +40723,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -40740,7 +40740,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h" + "12a8189n" ], "isolate_name": "net_unittests", "merge": { @@ -40764,7 +40764,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -40781,7 +40781,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h" + "12a8189n" ], "isolate_name": "skia_unittests", "merge": { @@ -40805,7 +40805,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -40822,7 +40822,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h" + "12a8189n" ], "isolate_name": "sql_unittests", "merge": { @@ -40846,7 +40846,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -40863,7 +40863,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h" + "12a8189n" ], "isolate_name": "ui_base_unittests", "merge": { @@ -40887,7 +40887,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -40904,7 +40904,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h" + "12a8189n" ], "isolate_name": "url_unittests", "merge": { @@ -40928,7 +40928,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -40964,7 +40964,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h" + "12a8189n" ], "isolate_name": "absl_hardening_tests", "merge": { @@ -40989,7 +40989,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -41002,7 +41002,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h" + "12a8189n" ], "isolate_name": "base_unittests", "merge": { @@ -41027,7 +41027,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -41040,7 +41040,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h" + "12a8189n" ], "isolate_name": "boringssl_crypto_tests", "merge": { @@ -41065,7 +41065,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -41078,7 +41078,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h" + "12a8189n" ], "isolate_name": "boringssl_ssl_tests", "merge": { @@ -41103,7 +41103,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -41116,7 +41116,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h" + "12a8189n" ], "isolate_name": "components_unittests", "merge": { @@ -41141,7 +41141,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -41154,7 +41154,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h" + "12a8189n" ], "isolate_name": "crypto_unittests", "merge": { @@ -41179,7 +41179,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -41192,7 +41192,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h" + "12a8189n" ], "isolate_name": "gfx_unittests", "merge": { @@ -41217,7 +41217,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -41230,7 +41230,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h" + "12a8189n" ], "isolate_name": "google_apis_unittests", "merge": { @@ -41255,7 +41255,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -41268,7 +41268,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h" + "12a8189n" ], "isolate_name": "ios_chrome_unittests", "merge": { @@ -41293,7 +41293,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -41306,7 +41306,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h" + "12a8189n" ], "isolate_name": "ios_net_unittests", "merge": { @@ -41331,7 +41331,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -41344,7 +41344,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h" + "12a8189n" ], "isolate_name": "ios_web_inttests", "merge": { @@ -41369,7 +41369,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -41382,7 +41382,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h" + "12a8189n" ], "isolate_name": "ios_web_unittests", "merge": { @@ -41407,7 +41407,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -41420,7 +41420,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h" + "12a8189n" ], "isolate_name": "ios_web_view_inttests", "merge": { @@ -41445,7 +41445,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -41458,7 +41458,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h" + "12a8189n" ], "isolate_name": "net_unittests", "merge": { @@ -41483,7 +41483,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -41496,7 +41496,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h" + "12a8189n" ], "isolate_name": "skia_unittests", "merge": { @@ -41521,7 +41521,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -41534,7 +41534,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h" + "12a8189n" ], "isolate_name": "sql_unittests", "merge": { @@ -41559,7 +41559,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -41572,7 +41572,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h" + "12a8189n" ], "isolate_name": "ui_base_unittests", "merge": { @@ -41597,7 +41597,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -41610,7 +41610,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h" + "12a8189n" ], "isolate_name": "url_unittests", "merge": { @@ -41635,7 +41635,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ],
diff --git a/testing/buildbot/chromium.fyi.json b/testing/buildbot/chromium.fyi.json index 964c3dae..8ca3fcf 100644 --- a/testing/buildbot/chromium.fyi.json +++ b/testing/buildbot/chromium.fyi.json
@@ -19280,7 +19280,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "absl_hardening_tests", @@ -19305,7 +19305,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -19322,7 +19322,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "absl_hardening_tests", @@ -19347,7 +19347,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -19364,7 +19364,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "base_unittests", @@ -19389,7 +19389,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -19406,7 +19406,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "base_unittests", @@ -19431,7 +19431,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -19448,7 +19448,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "boringssl_crypto_tests", @@ -19473,7 +19473,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -19490,7 +19490,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "boringssl_crypto_tests", @@ -19515,7 +19515,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -19532,7 +19532,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "boringssl_ssl_tests", @@ -19557,7 +19557,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -19574,7 +19574,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "boringssl_ssl_tests", @@ -19599,7 +19599,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -19616,7 +19616,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "components_unittests", @@ -19641,7 +19641,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -19658,7 +19658,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "components_unittests", @@ -19683,7 +19683,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -19700,7 +19700,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "crypto_unittests", @@ -19725,7 +19725,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -19742,7 +19742,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "crypto_unittests", @@ -19767,7 +19767,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -19784,7 +19784,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "gfx_unittests", @@ -19809,7 +19809,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -19826,7 +19826,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "gfx_unittests", @@ -19851,7 +19851,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -19868,7 +19868,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "google_apis_unittests", @@ -19893,7 +19893,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -19910,7 +19910,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "google_apis_unittests", @@ -19935,7 +19935,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -19952,7 +19952,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "ios_chrome_unittests", @@ -19977,7 +19977,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -19994,7 +19994,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "ios_chrome_unittests", @@ -20019,7 +20019,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -20036,7 +20036,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "ios_components_unittests", @@ -20061,7 +20061,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -20078,7 +20078,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "ios_components_unittests", @@ -20103,7 +20103,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -20120,7 +20120,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "ios_net_unittests", @@ -20145,7 +20145,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -20162,7 +20162,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "ios_net_unittests", @@ -20187,7 +20187,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -20204,7 +20204,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "ios_remoting_unittests", @@ -20229,7 +20229,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -20246,7 +20246,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "ios_remoting_unittests", @@ -20271,7 +20271,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -20288,7 +20288,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "ios_testing_unittests", @@ -20313,7 +20313,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -20330,7 +20330,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "ios_testing_unittests", @@ -20355,7 +20355,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -20372,7 +20372,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "ios_web_inttests", @@ -20397,7 +20397,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -20414,7 +20414,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "ios_web_inttests", @@ -20439,7 +20439,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -20456,7 +20456,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "ios_web_unittests", @@ -20481,7 +20481,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -20498,7 +20498,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "ios_web_unittests", @@ -20523,7 +20523,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -20540,7 +20540,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "ios_web_view_inttests", @@ -20565,7 +20565,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -20582,7 +20582,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "ios_web_view_inttests", @@ -20607,7 +20607,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -20624,7 +20624,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "ios_web_view_unittests", @@ -20649,7 +20649,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -20666,7 +20666,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "ios_web_view_unittests", @@ -20691,7 +20691,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -20708,7 +20708,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "net_unittests", @@ -20733,7 +20733,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -20750,7 +20750,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "net_unittests", @@ -20775,7 +20775,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -20792,7 +20792,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "services_unittests", @@ -20817,7 +20817,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -20834,7 +20834,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "services_unittests", @@ -20859,7 +20859,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -20876,7 +20876,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "skia_unittests", @@ -20901,7 +20901,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -20918,7 +20918,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "skia_unittests", @@ -20943,7 +20943,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -20960,7 +20960,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "sql_unittests", @@ -20985,7 +20985,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -21002,7 +21002,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "sql_unittests", @@ -21027,7 +21027,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -21044,7 +21044,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "ui_base_unittests", @@ -21069,7 +21069,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -21086,7 +21086,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "ui_base_unittests", @@ -21111,7 +21111,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -21128,7 +21128,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "url_unittests", @@ -21153,7 +21153,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -21170,7 +21170,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "url_unittests", @@ -21195,7 +21195,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -21218,7 +21218,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "absl_hardening_tests", @@ -21244,7 +21244,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -21263,7 +21263,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "absl_hardening_tests", @@ -21289,7 +21289,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -21308,7 +21308,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "base_unittests", @@ -21334,7 +21334,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -21353,7 +21353,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "base_unittests", @@ -21379,7 +21379,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -21398,7 +21398,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "base_unittests", @@ -21424,7 +21424,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -21443,7 +21443,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "base_unittests", @@ -21469,7 +21469,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -21488,7 +21488,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "boringssl_crypto_tests", @@ -21514,7 +21514,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -21533,7 +21533,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "boringssl_crypto_tests", @@ -21559,7 +21559,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -21578,7 +21578,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "boringssl_ssl_tests", @@ -21604,7 +21604,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -21623,7 +21623,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "boringssl_ssl_tests", @@ -21649,7 +21649,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -21668,7 +21668,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "components_unittests", @@ -21694,7 +21694,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -21713,7 +21713,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "components_unittests", @@ -21739,7 +21739,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -21758,7 +21758,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "components_unittests", @@ -21784,7 +21784,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -21803,7 +21803,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "components_unittests", @@ -21829,7 +21829,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -21848,7 +21848,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "crypto_unittests", @@ -21874,7 +21874,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -21893,7 +21893,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "crypto_unittests", @@ -21919,7 +21919,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -21938,7 +21938,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "gfx_unittests", @@ -21964,7 +21964,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -21983,7 +21983,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "gfx_unittests", @@ -22009,7 +22009,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -22028,7 +22028,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "gfx_unittests", @@ -22054,7 +22054,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -22073,7 +22073,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "gfx_unittests", @@ -22099,7 +22099,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -22118,7 +22118,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "google_apis_unittests", @@ -22144,7 +22144,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -22163,7 +22163,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "google_apis_unittests", @@ -22189,7 +22189,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -22208,7 +22208,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_chrome_bookmarks_eg2tests_module", @@ -22234,7 +22234,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -22253,7 +22253,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_chrome_bookmarks_eg2tests_module", @@ -22279,7 +22279,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -22298,7 +22298,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_chrome_bookmarks_eg2tests_module", @@ -22324,7 +22324,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -22343,7 +22343,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_chrome_bookmarks_eg2tests_module", @@ -22369,7 +22369,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -22388,7 +22388,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_chrome_bookmarks_eg2tests_module", @@ -22414,7 +22414,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -22433,7 +22433,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_chrome_integration_eg2tests_module", @@ -22459,7 +22459,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -22479,7 +22479,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_chrome_integration_eg2tests_module", @@ -22505,7 +22505,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -22525,7 +22525,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_chrome_integration_eg2tests_module", @@ -22551,7 +22551,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -22571,7 +22571,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_chrome_integration_eg2tests_module", @@ -22597,7 +22597,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -22617,7 +22617,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_chrome_integration_eg2tests_module", @@ -22643,7 +22643,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -22663,7 +22663,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_chrome_settings_eg2tests_module", @@ -22689,7 +22689,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -22709,7 +22709,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_chrome_settings_eg2tests_module", @@ -22735,7 +22735,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -22755,7 +22755,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_chrome_settings_eg2tests_module", @@ -22781,7 +22781,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -22801,7 +22801,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_chrome_settings_eg2tests_module", @@ -22827,7 +22827,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -22847,7 +22847,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_chrome_settings_eg2tests_module", @@ -22873,7 +22873,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -22893,7 +22893,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_chrome_signin_eg2tests_module", @@ -22919,7 +22919,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -22938,7 +22938,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_chrome_signin_eg2tests_module", @@ -22964,7 +22964,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -22983,7 +22983,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_chrome_signin_eg2tests_module", @@ -23009,7 +23009,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -23028,7 +23028,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_chrome_signin_eg2tests_module", @@ -23054,7 +23054,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -23073,7 +23073,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_chrome_signin_eg2tests_module", @@ -23099,7 +23099,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -23118,7 +23118,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_chrome_smoke_eg2tests_module", @@ -23144,7 +23144,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -23163,7 +23163,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_chrome_smoke_eg2tests_module", @@ -23189,7 +23189,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -23208,7 +23208,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_chrome_smoke_eg2tests_module", @@ -23234,7 +23234,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -23253,7 +23253,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_chrome_smoke_eg2tests_module", @@ -23279,7 +23279,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -23298,7 +23298,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_chrome_smoke_eg2tests_module", @@ -23324,7 +23324,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -23343,7 +23343,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_chrome_ui_eg2tests_module", @@ -23369,7 +23369,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -23389,7 +23389,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_chrome_ui_eg2tests_module", @@ -23415,7 +23415,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -23435,7 +23435,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_chrome_ui_eg2tests_module", @@ -23461,7 +23461,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -23481,7 +23481,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_chrome_ui_eg2tests_module", @@ -23507,7 +23507,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -23527,7 +23527,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_chrome_ui_eg2tests_module", @@ -23553,7 +23553,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -23573,7 +23573,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "ios_chrome_unittests", @@ -23599,7 +23599,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -23618,7 +23618,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "ios_chrome_unittests", @@ -23644,7 +23644,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -23663,7 +23663,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "ios_chrome_unittests", @@ -23689,7 +23689,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -23708,7 +23708,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "ios_chrome_unittests", @@ -23734,7 +23734,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -23753,7 +23753,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_chrome_web_eg2tests_module", @@ -23779,7 +23779,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -23798,7 +23798,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_chrome_web_eg2tests_module", @@ -23824,7 +23824,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -23843,7 +23843,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_chrome_web_eg2tests_module", @@ -23869,7 +23869,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -23888,7 +23888,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_chrome_web_eg2tests_module", @@ -23914,7 +23914,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -23933,7 +23933,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_chrome_web_eg2tests_module", @@ -23959,7 +23959,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -23978,7 +23978,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "ios_components_unittests", @@ -24004,7 +24004,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -24023,7 +24023,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "ios_components_unittests", @@ -24049,7 +24049,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -24068,7 +24068,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "ios_net_unittests", @@ -24094,7 +24094,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -24113,7 +24113,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "ios_net_unittests", @@ -24139,7 +24139,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -24158,7 +24158,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "ios_remoting_unittests", @@ -24184,7 +24184,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -24203,7 +24203,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "ios_remoting_unittests", @@ -24229,7 +24229,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -24248,7 +24248,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_showcase_eg2tests_module", @@ -24274,7 +24274,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -24293,7 +24293,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_showcase_eg2tests_module", @@ -24319,7 +24319,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -24338,7 +24338,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_showcase_eg2tests_module", @@ -24364,7 +24364,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -24383,7 +24383,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_showcase_eg2tests_module", @@ -24409,7 +24409,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -24428,7 +24428,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_showcase_eg2tests_module", @@ -24454,7 +24454,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -24473,7 +24473,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "ios_testing_unittests", @@ -24499,7 +24499,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -24518,7 +24518,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "ios_testing_unittests", @@ -24544,7 +24544,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -24563,7 +24563,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "ios_web_inttests", @@ -24589,7 +24589,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -24608,7 +24608,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "ios_web_inttests", @@ -24634,7 +24634,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -24653,7 +24653,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "ios_web_inttests", @@ -24679,7 +24679,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -24698,7 +24698,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "ios_web_inttests", @@ -24724,7 +24724,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -24743,7 +24743,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_web_shell_eg2tests_module", @@ -24769,7 +24769,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -24788,7 +24788,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_web_shell_eg2tests_module", @@ -24814,7 +24814,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -24833,7 +24833,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_web_shell_eg2tests_module", @@ -24859,7 +24859,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -24878,7 +24878,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_web_shell_eg2tests_module", @@ -24904,7 +24904,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -24923,7 +24923,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_web_shell_eg2tests_module", @@ -24949,7 +24949,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -24968,7 +24968,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "ios_web_unittests", @@ -24994,7 +24994,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -25013,7 +25013,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "ios_web_unittests", @@ -25039,7 +25039,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -25058,7 +25058,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "ios_web_unittests", @@ -25084,7 +25084,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -25103,7 +25103,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "ios_web_unittests", @@ -25129,7 +25129,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -25148,7 +25148,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "ios_web_view_inttests", @@ -25174,7 +25174,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -25193,7 +25193,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "ios_web_view_inttests", @@ -25219,7 +25219,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -25238,7 +25238,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "ios_web_view_inttests", @@ -25264,7 +25264,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -25283,7 +25283,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "ios_web_view_inttests", @@ -25309,7 +25309,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -25328,7 +25328,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "ios_web_view_unittests", @@ -25354,7 +25354,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -25373,7 +25373,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "ios_web_view_unittests", @@ -25399,7 +25399,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -25418,7 +25418,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "ios_web_view_unittests", @@ -25444,7 +25444,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -25463,7 +25463,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "ios_web_view_unittests", @@ -25489,7 +25489,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -25508,7 +25508,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "net_unittests", @@ -25534,7 +25534,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -25553,7 +25553,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "net_unittests", @@ -25579,7 +25579,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -25598,7 +25598,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "services_unittests", @@ -25624,7 +25624,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -25643,7 +25643,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "services_unittests", @@ -25669,7 +25669,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -25688,7 +25688,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "skia_unittests", @@ -25714,7 +25714,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -25733,7 +25733,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "skia_unittests", @@ -25759,7 +25759,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -25778,7 +25778,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "skia_unittests", @@ -25804,7 +25804,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -25823,7 +25823,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "skia_unittests", @@ -25849,7 +25849,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -25868,7 +25868,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "sql_unittests", @@ -25894,7 +25894,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -25913,7 +25913,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "sql_unittests", @@ -25939,7 +25939,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -25958,7 +25958,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "ui_base_unittests", @@ -25984,7 +25984,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -26003,7 +26003,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "ui_base_unittests", @@ -26029,7 +26029,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -26048,7 +26048,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "ui_base_unittests", @@ -26074,7 +26074,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -26093,7 +26093,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "ui_base_unittests", @@ -26119,7 +26119,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -26138,7 +26138,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "url_unittests", @@ -26164,7 +26164,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -26183,7 +26183,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "url_unittests", @@ -26209,7 +26209,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -26316,7 +26316,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "absl_hardening_tests", @@ -26341,7 +26341,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -26358,7 +26358,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "base_unittests", @@ -26383,7 +26383,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -26400,7 +26400,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "boringssl_crypto_tests", @@ -26425,7 +26425,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -26442,7 +26442,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "boringssl_ssl_tests", @@ -26467,7 +26467,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -26484,7 +26484,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "components_unittests", @@ -26509,7 +26509,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -26526,7 +26526,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "crypto_unittests", @@ -26551,7 +26551,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -26568,7 +26568,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "gfx_unittests", @@ -26593,7 +26593,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -26610,7 +26610,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "google_apis_unittests", @@ -26635,7 +26635,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -26652,7 +26652,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_chrome_bookmarks_eg2tests_module", @@ -26677,7 +26677,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -26694,7 +26694,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_chrome_integration_eg2tests_module", @@ -26719,7 +26719,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -26737,7 +26737,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_chrome_settings_eg2tests_module", @@ -26762,7 +26762,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -26780,7 +26780,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_chrome_signin_eg2tests_module", @@ -26805,7 +26805,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -26822,7 +26822,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_chrome_smoke_eg2tests_module", @@ -26847,7 +26847,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -26864,7 +26864,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_chrome_ui_eg2tests_module", @@ -26889,7 +26889,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -26907,7 +26907,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "ios_chrome_unittests", @@ -26932,7 +26932,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -26949,7 +26949,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_chrome_web_eg2tests_module", @@ -26974,7 +26974,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -26991,7 +26991,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "ios_components_unittests", @@ -27016,7 +27016,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -27033,7 +27033,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "ios_net_unittests", @@ -27058,7 +27058,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -27075,7 +27075,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "ios_remoting_unittests", @@ -27100,7 +27100,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -27117,7 +27117,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_showcase_eg2tests_module", @@ -27142,7 +27142,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -27159,7 +27159,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "ios_testing_unittests", @@ -27184,7 +27184,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -27201,7 +27201,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "ios_web_inttests", @@ -27226,7 +27226,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -27243,7 +27243,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_web_shell_eg2tests_module", @@ -27268,7 +27268,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -27285,7 +27285,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "ios_web_unittests", @@ -27310,7 +27310,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -27327,7 +27327,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "ios_web_view_inttests", @@ -27352,7 +27352,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -27369,7 +27369,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "ios_web_view_unittests", @@ -27394,7 +27394,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -27411,7 +27411,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "net_unittests", @@ -27436,7 +27436,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -27453,7 +27453,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "services_unittests", @@ -27478,7 +27478,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -27495,7 +27495,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "skia_unittests", @@ -27520,7 +27520,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -27537,7 +27537,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "sql_unittests", @@ -27562,7 +27562,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -27579,7 +27579,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "ui_base_unittests", @@ -27604,7 +27604,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -27621,7 +27621,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "url_unittests", @@ -27646,7 +27646,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -30511,7 +30511,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "absl_hardening_tests", @@ -30537,7 +30537,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -30554,7 +30554,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "base_unittests", @@ -30580,7 +30580,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -30597,7 +30597,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "base_unittests", @@ -30623,7 +30623,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -30640,7 +30640,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "base_unittests", @@ -30666,7 +30666,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -30683,7 +30683,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "boringssl_crypto_tests", @@ -30709,7 +30709,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -30726,7 +30726,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "boringssl_ssl_tests", @@ -30752,7 +30752,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -30769,7 +30769,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "components_unittests", @@ -30795,7 +30795,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -30812,7 +30812,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "components_unittests", @@ -30838,7 +30838,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -30855,7 +30855,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "components_unittests", @@ -30881,7 +30881,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -30898,7 +30898,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "crypto_unittests", @@ -30924,7 +30924,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -30941,7 +30941,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "gfx_unittests", @@ -30967,7 +30967,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -30984,7 +30984,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "gfx_unittests", @@ -31010,7 +31010,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -31027,7 +31027,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "gfx_unittests", @@ -31053,7 +31053,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -31070,7 +31070,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "google_apis_unittests", @@ -31096,7 +31096,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -31113,7 +31113,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_chrome_bookmarks_eg2tests_module", @@ -31139,7 +31139,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -31156,7 +31156,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_chrome_bookmarks_eg2tests_module", @@ -31182,7 +31182,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -31199,7 +31199,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_chrome_bookmarks_eg2tests_module", @@ -31225,7 +31225,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -31242,7 +31242,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_chrome_bookmarks_eg2tests_module", @@ -31268,7 +31268,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -31285,7 +31285,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_chrome_integration_eg2tests_module", @@ -31311,7 +31311,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -31329,7 +31329,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_chrome_integration_eg2tests_module", @@ -31355,7 +31355,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -31373,7 +31373,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_chrome_integration_eg2tests_module", @@ -31399,7 +31399,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -31417,7 +31417,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_chrome_integration_eg2tests_module", @@ -31443,7 +31443,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -31461,7 +31461,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_chrome_settings_eg2tests_module", @@ -31487,7 +31487,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -31505,7 +31505,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_chrome_settings_eg2tests_module", @@ -31531,7 +31531,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -31549,7 +31549,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_chrome_settings_eg2tests_module", @@ -31575,7 +31575,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -31593,7 +31593,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_chrome_settings_eg2tests_module", @@ -31619,7 +31619,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -31637,7 +31637,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_chrome_signin_eg2tests_module", @@ -31663,7 +31663,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -31680,7 +31680,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_chrome_signin_eg2tests_module", @@ -31706,7 +31706,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -31723,7 +31723,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_chrome_signin_eg2tests_module", @@ -31749,7 +31749,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -31766,7 +31766,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_chrome_signin_eg2tests_module", @@ -31792,7 +31792,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -31809,7 +31809,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_chrome_smoke_eg2tests_module", @@ -31835,7 +31835,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -31852,7 +31852,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_chrome_smoke_eg2tests_module", @@ -31878,7 +31878,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -31895,7 +31895,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_chrome_smoke_eg2tests_module", @@ -31921,7 +31921,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -31938,7 +31938,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_chrome_smoke_eg2tests_module", @@ -31964,7 +31964,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -31981,7 +31981,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_chrome_ui_eg2tests_module", @@ -32007,7 +32007,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -32025,7 +32025,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_chrome_ui_eg2tests_module", @@ -32051,7 +32051,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -32069,7 +32069,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_chrome_ui_eg2tests_module", @@ -32095,7 +32095,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -32113,7 +32113,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_chrome_ui_eg2tests_module", @@ -32139,7 +32139,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -32157,7 +32157,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "ios_chrome_unittests", @@ -32183,7 +32183,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -32200,7 +32200,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "ios_chrome_unittests", @@ -32226,7 +32226,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -32243,7 +32243,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "ios_chrome_unittests", @@ -32269,7 +32269,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -32286,7 +32286,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_chrome_web_eg2tests_module", @@ -32312,7 +32312,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -32329,7 +32329,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_chrome_web_eg2tests_module", @@ -32355,7 +32355,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -32372,7 +32372,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_chrome_web_eg2tests_module", @@ -32398,7 +32398,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -32415,7 +32415,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_chrome_web_eg2tests_module", @@ -32441,7 +32441,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -32458,7 +32458,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "ios_components_unittests", @@ -32484,7 +32484,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -32501,7 +32501,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "ios_net_unittests", @@ -32527,7 +32527,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -32544,7 +32544,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "ios_remoting_unittests", @@ -32570,7 +32570,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -32587,7 +32587,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_showcase_eg2tests_module", @@ -32613,7 +32613,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -32630,7 +32630,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_showcase_eg2tests_module", @@ -32656,7 +32656,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -32673,7 +32673,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_showcase_eg2tests_module", @@ -32699,7 +32699,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -32716,7 +32716,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_showcase_eg2tests_module", @@ -32742,7 +32742,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -32759,7 +32759,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "ios_testing_unittests", @@ -32785,7 +32785,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -32802,7 +32802,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "ios_web_inttests", @@ -32828,7 +32828,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -32845,7 +32845,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "ios_web_inttests", @@ -32871,7 +32871,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -32888,7 +32888,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "ios_web_inttests", @@ -32914,7 +32914,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -32931,7 +32931,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_web_shell_eg2tests_module", @@ -32957,7 +32957,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -32974,7 +32974,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_web_shell_eg2tests_module", @@ -33000,7 +33000,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -33017,7 +33017,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_web_shell_eg2tests_module", @@ -33043,7 +33043,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -33060,7 +33060,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_web_shell_eg2tests_module", @@ -33086,7 +33086,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -33103,7 +33103,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "ios_web_unittests", @@ -33129,7 +33129,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -33146,7 +33146,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "ios_web_unittests", @@ -33172,7 +33172,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -33189,7 +33189,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "ios_web_unittests", @@ -33215,7 +33215,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -33232,7 +33232,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "ios_web_view_inttests", @@ -33258,7 +33258,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -33275,7 +33275,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "ios_web_view_inttests", @@ -33301,7 +33301,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -33318,7 +33318,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "ios_web_view_inttests", @@ -33344,7 +33344,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -33361,7 +33361,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "ios_web_view_unittests", @@ -33387,7 +33387,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -33404,7 +33404,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "ios_web_view_unittests", @@ -33430,7 +33430,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -33447,7 +33447,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "ios_web_view_unittests", @@ -33473,7 +33473,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -33490,7 +33490,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "net_unittests", @@ -33516,7 +33516,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -33533,7 +33533,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "services_unittests", @@ -33559,7 +33559,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -33576,7 +33576,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "skia_unittests", @@ -33602,7 +33602,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -33619,7 +33619,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "skia_unittests", @@ -33645,7 +33645,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -33662,7 +33662,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "skia_unittests", @@ -33688,7 +33688,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -33705,7 +33705,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "sql_unittests", @@ -33731,7 +33731,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -33748,7 +33748,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "ui_base_unittests", @@ -33774,7 +33774,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -33791,7 +33791,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "ui_base_unittests", @@ -33817,7 +33817,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -33834,7 +33834,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "ui_base_unittests", @@ -33860,7 +33860,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -33877,7 +33877,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "url_unittests", @@ -33903,7 +33903,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -33927,7 +33927,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "absl_hardening_tests", @@ -33953,7 +33953,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -33970,7 +33970,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "base_unittests", @@ -33996,7 +33996,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -34013,7 +34013,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "base_unittests", @@ -34039,7 +34039,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -34056,7 +34056,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "boringssl_crypto_tests", @@ -34082,7 +34082,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -34099,7 +34099,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "boringssl_ssl_tests", @@ -34125,7 +34125,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -34142,7 +34142,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "components_unittests", @@ -34168,7 +34168,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -34185,7 +34185,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "components_unittests", @@ -34211,7 +34211,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -34228,7 +34228,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "crypto_unittests", @@ -34254,7 +34254,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -34271,7 +34271,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "gfx_unittests", @@ -34297,7 +34297,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -34314,7 +34314,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "gfx_unittests", @@ -34340,7 +34340,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -34357,7 +34357,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "google_apis_unittests", @@ -34383,7 +34383,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -34400,7 +34400,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_chrome_bookmarks_eg2tests_module", @@ -34426,7 +34426,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -34443,7 +34443,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_chrome_bookmarks_eg2tests_module", @@ -34469,7 +34469,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -34486,7 +34486,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_chrome_bookmarks_eg2tests_module", @@ -34512,7 +34512,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -34529,7 +34529,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_chrome_integration_eg2tests_module", @@ -34555,7 +34555,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -34573,7 +34573,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_chrome_integration_eg2tests_module", @@ -34599,7 +34599,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -34617,7 +34617,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_chrome_integration_eg2tests_module", @@ -34643,7 +34643,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -34661,7 +34661,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_chrome_settings_eg2tests_module", @@ -34687,7 +34687,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -34705,7 +34705,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_chrome_settings_eg2tests_module", @@ -34731,7 +34731,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -34749,7 +34749,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_chrome_settings_eg2tests_module", @@ -34775,7 +34775,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -34793,7 +34793,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_chrome_signin_eg2tests_module", @@ -34819,7 +34819,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -34836,7 +34836,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_chrome_signin_eg2tests_module", @@ -34862,7 +34862,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -34879,7 +34879,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_chrome_signin_eg2tests_module", @@ -34905,7 +34905,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -34922,7 +34922,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_chrome_smoke_eg2tests_module", @@ -34948,7 +34948,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -34965,7 +34965,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_chrome_smoke_eg2tests_module", @@ -34991,7 +34991,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -35008,7 +35008,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_chrome_smoke_eg2tests_module", @@ -35034,7 +35034,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -35051,7 +35051,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_chrome_ui_eg2tests_module", @@ -35077,7 +35077,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -35095,7 +35095,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_chrome_ui_eg2tests_module", @@ -35121,7 +35121,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -35139,7 +35139,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_chrome_ui_eg2tests_module", @@ -35165,7 +35165,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -35183,7 +35183,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "ios_chrome_unittests", @@ -35209,7 +35209,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -35226,7 +35226,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "ios_chrome_unittests", @@ -35252,7 +35252,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -35269,7 +35269,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_chrome_web_eg2tests_module", @@ -35295,7 +35295,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -35312,7 +35312,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_chrome_web_eg2tests_module", @@ -35338,7 +35338,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -35355,7 +35355,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_chrome_web_eg2tests_module", @@ -35381,7 +35381,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -35398,7 +35398,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "ios_components_unittests", @@ -35424,7 +35424,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -35441,7 +35441,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "ios_net_unittests", @@ -35467,7 +35467,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -35484,7 +35484,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "ios_remoting_unittests", @@ -35510,7 +35510,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -35527,7 +35527,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_showcase_eg2tests_module", @@ -35553,7 +35553,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -35570,7 +35570,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_showcase_eg2tests_module", @@ -35596,7 +35596,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -35613,7 +35613,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_showcase_eg2tests_module", @@ -35639,7 +35639,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -35656,7 +35656,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "ios_testing_unittests", @@ -35682,7 +35682,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -35699,7 +35699,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "ios_web_inttests", @@ -35725,7 +35725,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -35742,7 +35742,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "ios_web_inttests", @@ -35768,7 +35768,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -35785,7 +35785,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_web_shell_eg2tests_module", @@ -35811,7 +35811,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -35828,7 +35828,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_web_shell_eg2tests_module", @@ -35854,7 +35854,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -35871,7 +35871,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_web_shell_eg2tests_module", @@ -35897,7 +35897,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -35914,7 +35914,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "ios_web_unittests", @@ -35940,7 +35940,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -35957,7 +35957,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "ios_web_unittests", @@ -35983,7 +35983,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -36000,7 +36000,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "ios_web_view_inttests", @@ -36026,7 +36026,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -36043,7 +36043,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "ios_web_view_inttests", @@ -36069,7 +36069,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -36086,7 +36086,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "ios_web_view_unittests", @@ -36112,7 +36112,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -36129,7 +36129,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "ios_web_view_unittests", @@ -36155,7 +36155,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -36172,7 +36172,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "net_unittests", @@ -36198,7 +36198,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -36215,7 +36215,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "services_unittests", @@ -36241,7 +36241,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -36258,7 +36258,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "skia_unittests", @@ -36284,7 +36284,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -36301,7 +36301,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "skia_unittests", @@ -36327,7 +36327,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -36344,7 +36344,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "sql_unittests", @@ -36370,7 +36370,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -36387,7 +36387,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "ui_base_unittests", @@ -36413,7 +36413,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -36430,7 +36430,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "ui_base_unittests", @@ -36456,7 +36456,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -36473,7 +36473,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "url_unittests", @@ -36499,7 +36499,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ],
diff --git a/testing/buildbot/chromium.linux.json b/testing/buildbot/chromium.linux.json index 4de5dbc..51e407d 100644 --- a/testing/buildbot/chromium.linux.json +++ b/testing/buildbot/chromium.linux.json
@@ -4072,6 +4072,35 @@ }, { "args": [ + "context_lost", + "--show-stdout", + "--browser=web-engine-shell", + "--passthrough", + "-v", + "--extra-browser-args=--enable-logging=stderr --js-flags=--expose-gc --use-cmd-decoder=validating" + ], + "isolate_name": "fuchsia_telemetry_gpu_integration_test", + "merge": { + "args": [], + "script": "//testing/merge_scripts/standard_isolated_script_merge.py" + }, + "name": "context_lost_validating_tests", + "should_retry_with_patch": false, + "swarming": { + "can_use_on_swarming_builders": true, + "dimension_sets": [ + { + "kvm": "1", + "os": "Ubuntu-16.04" + } + ], + "idempotent": false, + "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com" + }, + "test_id_prefix": "ninja://content/test:fuchsia_telemetry_gpu_integration_test/" + }, + { + "args": [ "depth_capture", "--show-stdout", "--browser=web-engine-shell", @@ -4189,6 +4218,99 @@ "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com" }, "test_id_prefix": "ninja://content/test:fuchsia_telemetry_gpu_integration_test/" + }, + { + "args": [ + "pixel", + "--show-stdout", + "--browser=web-engine-shell", + "--passthrough", + "-v", + "--extra-browser-args=--enable-logging=stderr --js-flags=--expose-gc", + "--git-revision=${got_revision}" + ], + "isolate_name": "fuchsia_telemetry_gpu_integration_test", + "merge": { + "args": [], + "script": "//testing/merge_scripts/standard_isolated_script_merge.py" + }, + "name": "pixel_tests", + "precommit_args": [ + "--gerrit-issue=${patch_issue}", + "--gerrit-patchset=${patch_set}", + "--buildbucket-id=${buildbucket_build_id}" + ], + "should_retry_with_patch": false, + "swarming": { + "can_use_on_swarming_builders": true, + "dimension_sets": [ + { + "kvm": "1", + "os": "Ubuntu-16.04" + } + ], + "idempotent": false, + "service_account": "chrome-gpu-gold@chops-service-accounts.iam.gserviceaccount.com" + }, + "test_id_prefix": "ninja://content/test:fuchsia_telemetry_gpu_integration_test/" + }, + { + "args": [ + "screenshot_sync", + "--show-stdout", + "--browser=web-engine-shell", + "--passthrough", + "-v", + "--extra-browser-args=--enable-logging=stderr --js-flags=--expose-gc" + ], + "isolate_name": "fuchsia_telemetry_gpu_integration_test", + "merge": { + "args": [], + "script": "//testing/merge_scripts/standard_isolated_script_merge.py" + }, + "name": "screenshot_sync_tests", + "should_retry_with_patch": false, + "swarming": { + "can_use_on_swarming_builders": true, + "dimension_sets": [ + { + "kvm": "1", + "os": "Ubuntu-16.04" + } + ], + "idempotent": false, + "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com" + }, + "test_id_prefix": "ninja://content/test:fuchsia_telemetry_gpu_integration_test/" + }, + { + "args": [ + "trace_test", + "--show-stdout", + "--browser=web-engine-shell", + "--passthrough", + "-v", + "--extra-browser-args=--enable-logging=stderr --js-flags=--expose-gc" + ], + "isolate_name": "fuchsia_telemetry_gpu_integration_test", + "merge": { + "args": [], + "script": "//testing/merge_scripts/standard_isolated_script_merge.py" + }, + "name": "trace_test", + "should_retry_with_patch": false, + "swarming": { + "can_use_on_swarming_builders": true, + "dimension_sets": [ + { + "kvm": "1", + "os": "Ubuntu-16.04" + } + ], + "idempotent": false, + "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com" + }, + "test_id_prefix": "ninja://content/test:fuchsia_telemetry_gpu_integration_test/" } ] },
diff --git a/testing/buildbot/chromium.mac.json b/testing/buildbot/chromium.mac.json index 555036ab..e4c92a8 100644 --- a/testing/buildbot/chromium.mac.json +++ b/testing/buildbot/chromium.mac.json
@@ -13598,7 +13598,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "absl_hardening_tests", @@ -13623,7 +13623,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -13640,7 +13640,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "absl_hardening_tests", @@ -13665,7 +13665,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -13682,7 +13682,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "base_unittests", @@ -13707,7 +13707,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -13724,7 +13724,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "base_unittests", @@ -13749,7 +13749,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -13766,7 +13766,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "base_unittests", @@ -13791,7 +13791,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -13808,7 +13808,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "base_unittests", @@ -13833,7 +13833,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -13850,7 +13850,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "boringssl_crypto_tests", @@ -13875,7 +13875,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -13892,7 +13892,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "boringssl_crypto_tests", @@ -13917,7 +13917,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -13934,7 +13934,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "boringssl_ssl_tests", @@ -13959,7 +13959,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -13976,7 +13976,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "boringssl_ssl_tests", @@ -14001,7 +14001,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -14018,7 +14018,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "components_unittests", @@ -14043,7 +14043,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -14060,7 +14060,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "components_unittests", @@ -14085,7 +14085,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -14102,7 +14102,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "components_unittests", @@ -14127,7 +14127,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -14144,7 +14144,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "components_unittests", @@ -14169,7 +14169,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -14186,7 +14186,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "crypto_unittests", @@ -14211,7 +14211,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -14228,7 +14228,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "crypto_unittests", @@ -14253,7 +14253,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -14270,7 +14270,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "gfx_unittests", @@ -14295,7 +14295,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -14312,7 +14312,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "gfx_unittests", @@ -14337,7 +14337,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -14354,7 +14354,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "gfx_unittests", @@ -14379,7 +14379,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -14396,7 +14396,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "gfx_unittests", @@ -14421,7 +14421,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -14438,7 +14438,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "google_apis_unittests", @@ -14463,7 +14463,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -14480,7 +14480,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "google_apis_unittests", @@ -14505,7 +14505,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -14522,7 +14522,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_chrome_integration_eg2tests_module", @@ -14547,7 +14547,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -14565,7 +14565,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_chrome_integration_eg2tests_module", @@ -14590,7 +14590,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -14608,7 +14608,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_chrome_signin_eg2tests_module", @@ -14633,7 +14633,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -14650,7 +14650,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_chrome_signin_eg2tests_module", @@ -14675,7 +14675,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -14692,7 +14692,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_chrome_ui_eg2tests_module", @@ -14717,7 +14717,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -14735,7 +14735,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_chrome_ui_eg2tests_module", @@ -14760,7 +14760,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -14778,7 +14778,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "ios_chrome_unittests", @@ -14803,7 +14803,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -14820,7 +14820,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "ios_chrome_unittests", @@ -14845,7 +14845,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -14862,7 +14862,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "ios_chrome_unittests", @@ -14887,7 +14887,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -14904,7 +14904,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "ios_chrome_unittests", @@ -14929,7 +14929,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -14946,7 +14946,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "ios_components_unittests", @@ -14971,7 +14971,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -14988,7 +14988,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "ios_components_unittests", @@ -15013,7 +15013,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -15030,7 +15030,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "ios_net_unittests", @@ -15055,7 +15055,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -15072,7 +15072,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "ios_net_unittests", @@ -15097,7 +15097,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -15114,7 +15114,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "ios_remoting_unittests", @@ -15139,7 +15139,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -15156,7 +15156,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "ios_remoting_unittests", @@ -15181,7 +15181,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -15198,7 +15198,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "ios_testing_unittests", @@ -15223,7 +15223,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -15240,7 +15240,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "ios_testing_unittests", @@ -15265,7 +15265,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -15282,7 +15282,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "ios_web_inttests", @@ -15307,7 +15307,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -15324,7 +15324,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "ios_web_inttests", @@ -15349,7 +15349,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -15366,7 +15366,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "ios_web_inttests", @@ -15391,7 +15391,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -15408,7 +15408,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "ios_web_inttests", @@ -15433,7 +15433,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -15450,7 +15450,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_web_shell_eg2tests_module", @@ -15475,7 +15475,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -15492,7 +15492,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_web_shell_eg2tests_module", @@ -15517,7 +15517,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -15534,7 +15534,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "ios_web_unittests", @@ -15559,7 +15559,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -15576,7 +15576,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "ios_web_unittests", @@ -15601,7 +15601,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -15618,7 +15618,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "ios_web_unittests", @@ -15643,7 +15643,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -15660,7 +15660,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "ios_web_unittests", @@ -15685,7 +15685,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -15702,7 +15702,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "ios_web_view_inttests", @@ -15727,7 +15727,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -15744,7 +15744,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "ios_web_view_inttests", @@ -15769,7 +15769,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -15786,7 +15786,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "ios_web_view_inttests", @@ -15811,7 +15811,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -15828,7 +15828,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "ios_web_view_inttests", @@ -15853,7 +15853,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -15870,7 +15870,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "ios_web_view_unittests", @@ -15895,7 +15895,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -15912,7 +15912,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "ios_web_view_unittests", @@ -15937,7 +15937,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -15954,7 +15954,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "ios_web_view_unittests", @@ -15979,7 +15979,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -15996,7 +15996,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "ios_web_view_unittests", @@ -16021,7 +16021,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -16038,7 +16038,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "net_unittests", @@ -16063,7 +16063,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -16080,7 +16080,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "net_unittests", @@ -16105,7 +16105,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -16122,7 +16122,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "services_unittests", @@ -16147,7 +16147,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -16164,7 +16164,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "services_unittests", @@ -16189,7 +16189,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -16206,7 +16206,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "skia_unittests", @@ -16231,7 +16231,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -16248,7 +16248,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "skia_unittests", @@ -16273,7 +16273,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -16290,7 +16290,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "skia_unittests", @@ -16315,7 +16315,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -16332,7 +16332,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "skia_unittests", @@ -16357,7 +16357,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -16374,7 +16374,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "sql_unittests", @@ -16399,7 +16399,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -16416,7 +16416,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "sql_unittests", @@ -16441,7 +16441,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -16458,7 +16458,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "ui_base_unittests", @@ -16483,7 +16483,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -16500,7 +16500,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "ui_base_unittests", @@ -16525,7 +16525,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -16542,7 +16542,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "ui_base_unittests", @@ -16567,7 +16567,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -16584,7 +16584,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "ui_base_unittests", @@ -16609,7 +16609,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -16626,7 +16626,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "url_unittests", @@ -16651,7 +16651,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -16668,7 +16668,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "url_unittests", @@ -16693,7 +16693,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -16717,7 +16717,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_chrome_bookmarks_eg2tests_module", @@ -16742,7 +16742,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -16759,7 +16759,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_chrome_bookmarks_eg2tests_module", @@ -16784,7 +16784,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -16801,7 +16801,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_chrome_bookmarks_eg2tests_module", @@ -16826,7 +16826,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -16843,7 +16843,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_chrome_bookmarks_eg2tests_module", @@ -16868,7 +16868,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -16885,7 +16885,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_chrome_bookmarks_eg2tests_module", @@ -16910,7 +16910,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -16927,7 +16927,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_chrome_integration_eg2tests_module", @@ -16952,7 +16952,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -16970,7 +16970,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_chrome_integration_eg2tests_module", @@ -16995,7 +16995,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -17013,7 +17013,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_chrome_integration_eg2tests_module", @@ -17038,7 +17038,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -17056,7 +17056,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_chrome_settings_eg2tests_module", @@ -17081,7 +17081,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -17099,7 +17099,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_chrome_settings_eg2tests_module", @@ -17124,7 +17124,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -17142,7 +17142,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_chrome_settings_eg2tests_module", @@ -17167,7 +17167,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -17185,7 +17185,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_chrome_settings_eg2tests_module", @@ -17210,7 +17210,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -17228,7 +17228,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_chrome_settings_eg2tests_module", @@ -17253,7 +17253,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -17271,7 +17271,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_chrome_signin_eg2tests_module", @@ -17296,7 +17296,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -17313,7 +17313,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_chrome_signin_eg2tests_module", @@ -17338,7 +17338,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -17355,7 +17355,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_chrome_signin_eg2tests_module", @@ -17380,7 +17380,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -17397,7 +17397,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_chrome_smoke_eg2tests_module", @@ -17422,7 +17422,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -17439,7 +17439,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_chrome_smoke_eg2tests_module", @@ -17464,7 +17464,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -17481,7 +17481,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_chrome_smoke_eg2tests_module", @@ -17506,7 +17506,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -17523,7 +17523,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_chrome_smoke_eg2tests_module", @@ -17548,7 +17548,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -17565,7 +17565,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_chrome_smoke_eg2tests_module", @@ -17590,7 +17590,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -17607,7 +17607,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_chrome_ui_eg2tests_module", @@ -17632,7 +17632,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -17650,7 +17650,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_chrome_ui_eg2tests_module", @@ -17675,7 +17675,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -17693,7 +17693,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_chrome_ui_eg2tests_module", @@ -17718,7 +17718,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -17736,7 +17736,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_chrome_web_eg2tests_module", @@ -17761,7 +17761,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -17778,7 +17778,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_chrome_web_eg2tests_module", @@ -17803,7 +17803,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -17820,7 +17820,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_chrome_web_eg2tests_module", @@ -17845,7 +17845,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -17862,7 +17862,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_chrome_web_eg2tests_module", @@ -17887,7 +17887,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -17904,7 +17904,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_chrome_web_eg2tests_module", @@ -17929,7 +17929,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -17946,7 +17946,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_showcase_eg2tests_module", @@ -17971,7 +17971,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -17988,7 +17988,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_showcase_eg2tests_module", @@ -18013,7 +18013,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -18030,7 +18030,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_showcase_eg2tests_module", @@ -18055,7 +18055,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -18072,7 +18072,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_showcase_eg2tests_module", @@ -18097,7 +18097,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -18114,7 +18114,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_showcase_eg2tests_module", @@ -18139,7 +18139,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -18156,7 +18156,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_web_shell_eg2tests_module", @@ -18181,7 +18181,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -18198,7 +18198,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_web_shell_eg2tests_module", @@ -18223,7 +18223,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -18240,7 +18240,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_web_shell_eg2tests_module", @@ -18265,7 +18265,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -18289,7 +18289,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "absl_hardening_tests", @@ -18314,7 +18314,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -18331,7 +18331,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "base_unittests", @@ -18356,7 +18356,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -18373,7 +18373,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "boringssl_crypto_tests", @@ -18398,7 +18398,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -18415,7 +18415,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "boringssl_ssl_tests", @@ -18440,7 +18440,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -18457,7 +18457,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "components_unittests", @@ -18482,7 +18482,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -18499,7 +18499,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "crypto_unittests", @@ -18524,7 +18524,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -18541,7 +18541,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "gfx_unittests", @@ -18566,7 +18566,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -18583,7 +18583,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "google_apis_unittests", @@ -18608,7 +18608,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -18625,7 +18625,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_chrome_bookmarks_eg2tests_module", @@ -18650,7 +18650,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -18667,7 +18667,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_chrome_bookmarks_eg2tests_module", @@ -18692,7 +18692,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -18709,7 +18709,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_chrome_bookmarks_eg2tests_module", @@ -18734,7 +18734,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -18751,7 +18751,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_chrome_integration_eg2tests_module", @@ -18776,7 +18776,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -18794,7 +18794,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_chrome_integration_eg2tests_module", @@ -18819,7 +18819,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -18837,7 +18837,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_chrome_integration_eg2tests_module", @@ -18862,7 +18862,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -18880,7 +18880,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_chrome_settings_eg2tests_module", @@ -18905,7 +18905,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -18923,7 +18923,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_chrome_settings_eg2tests_module", @@ -18948,7 +18948,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -18966,7 +18966,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_chrome_settings_eg2tests_module", @@ -18991,7 +18991,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -19009,7 +19009,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_chrome_signin_eg2tests_module", @@ -19034,7 +19034,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -19051,7 +19051,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_chrome_signin_eg2tests_module", @@ -19076,7 +19076,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -19093,7 +19093,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_chrome_signin_eg2tests_module", @@ -19118,7 +19118,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -19135,7 +19135,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_chrome_smoke_eg2tests_module", @@ -19160,7 +19160,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -19177,7 +19177,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_chrome_smoke_eg2tests_module", @@ -19202,7 +19202,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -19219,7 +19219,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_chrome_smoke_eg2tests_module", @@ -19244,7 +19244,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -19261,7 +19261,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_chrome_ui_eg2tests_module", @@ -19286,7 +19286,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -19304,7 +19304,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_chrome_ui_eg2tests_module", @@ -19329,7 +19329,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -19347,7 +19347,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_chrome_ui_eg2tests_module", @@ -19372,7 +19372,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -19390,7 +19390,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "ios_chrome_unittests", @@ -19415,7 +19415,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -19432,7 +19432,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_chrome_web_eg2tests_module", @@ -19457,7 +19457,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -19474,7 +19474,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_chrome_web_eg2tests_module", @@ -19499,7 +19499,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -19516,7 +19516,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_chrome_web_eg2tests_module", @@ -19541,7 +19541,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -19558,7 +19558,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "ios_components_unittests", @@ -19583,7 +19583,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -19600,7 +19600,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "ios_net_unittests", @@ -19625,7 +19625,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -19642,7 +19642,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "ios_remoting_unittests", @@ -19667,7 +19667,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -19684,7 +19684,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_showcase_eg2tests_module", @@ -19709,7 +19709,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -19726,7 +19726,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_showcase_eg2tests_module", @@ -19751,7 +19751,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -19768,7 +19768,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_showcase_eg2tests_module", @@ -19793,7 +19793,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -19810,7 +19810,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "ios_testing_unittests", @@ -19835,7 +19835,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -19852,7 +19852,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "ios_web_inttests", @@ -19877,7 +19877,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -19894,7 +19894,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_web_shell_eg2tests_module", @@ -19919,7 +19919,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -19936,7 +19936,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_web_shell_eg2tests_module", @@ -19961,7 +19961,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -19978,7 +19978,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xcode-parallelization" ], "isolate_name": "ios_web_shell_eg2tests_module", @@ -20003,7 +20003,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -20020,7 +20020,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "ios_web_unittests", @@ -20045,7 +20045,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -20062,7 +20062,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "ios_web_view_inttests", @@ -20087,7 +20087,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -20104,7 +20104,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "ios_web_view_unittests", @@ -20129,7 +20129,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -20146,7 +20146,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "net_unittests", @@ -20171,7 +20171,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -20188,7 +20188,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "services_unittests", @@ -20213,7 +20213,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -20230,7 +20230,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "skia_unittests", @@ -20255,7 +20255,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -20272,7 +20272,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "sql_unittests", @@ -20297,7 +20297,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -20314,7 +20314,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "ui_base_unittests", @@ -20339,7 +20339,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ], @@ -20356,7 +20356,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "12a8189h", + "12a8189n", "--xctest" ], "isolate_name": "url_unittests", @@ -20381,7 +20381,7 @@ ], "named_caches": [ { - "name": "xcode_ios_12a8189h", + "name": "xcode_ios_12a8189n", "path": "Xcode.app" } ],
diff --git a/testing/buildbot/filters/gpu.linux.skiarenderer_dawn_cc_unittests.filter b/testing/buildbot/filters/gpu.linux.skiarenderer_dawn_cc_unittests.filter index 912e7b09..b228c5a 100644 --- a/testing/buildbot/filters/gpu.linux.skiarenderer_dawn_cc_unittests.filter +++ b/testing/buildbot/filters/gpu.linux.skiarenderer_dawn_cc_unittests.filter
@@ -1,3 +1,3 @@ # crbug.com/1088479: Partial Raster isn't supported using Skia Dawn Vulkan --All/LayerTreeHostTilesTestPartialInvalidation.PartialRaster/6 --All/LayerTreeHostTilesTestPartialInvalidationMultiThread.PartialRaster/3 +-All/LayerTreeHostTilesTestPartialInvalidation.PartialRaster/SkiaDawn_OOP +-All/LayerTreeHostTilesTestPartialInvalidationMultiThread.PartialRaster/SkiaDawn_OOP
diff --git a/testing/buildbot/mixins.pyl b/testing/buildbot/mixins.pyl index 8ad22b9..9ab9590 100644 --- a/testing/buildbot/mixins.pyl +++ b/testing/buildbot/mixins.pyl
@@ -954,18 +954,18 @@ ], }, }, - # xcode 12 beta 5 - 'xcode_12a8189h': { + # xcode 12 beta 6 + 'xcode_12a8189n': { '$mixin_append': { 'args': [ '--xcode-build-version', - '12a8189h' + '12a8189n' ], }, 'swarming': { 'named_caches': [ { - 'name': 'xcode_ios_12a8189h', + 'name': 'xcode_ios_12a8189n', 'path': 'Xcode.app', }, ],
diff --git a/testing/buildbot/test_suite_exceptions.pyl b/testing/buildbot/test_suite_exceptions.pyl index 1d49287..b6b2c16a 100644 --- a/testing/buildbot/test_suite_exceptions.pyl +++ b/testing/buildbot/test_suite_exceptions.pyl
@@ -1086,7 +1086,6 @@ # exception once there is enough capacity to run these tests. 'remove_from': [ 'Android FYI Release (Pixel 2)', - 'Fuchsia x64' # https://crbug.com/1058255 ], 'modifications': { 'Mac FYI GPU ASAN Release': { @@ -2282,11 +2281,6 @@ }, }, }, - 'pixel_tests': { - 'remove_from': [ - 'Fuchsia x64' # https://crbug.com/1058255 - ], - }, 'rendering_representative_perf_tests': { 'modifications': { 'Win10 FYI x64 Exp Release (Intel HD 630)': { @@ -2353,11 +2347,6 @@ 'android-asan', # https://crbug.com/962650 ], }, - 'screenshot_sync_tests': { - 'remove_from': [ - 'Fuchsia x64' # https://crbug.com/1058255 - ], - }, 'services_unittests': { 'remove_from': [ 'ToTLinuxMSan', # https://crbug.com/831676 @@ -2632,11 +2621,6 @@ 'Optional Linux Release (NVIDIA)', ], }, - 'trace_test': { - 'remove_from': [ - 'Fuchsia x64' # https://crbug.com/1058255 - ], - }, 'unit_tests': { 'remove_from': [ 'android-code-coverage-native', # crbug/1018434
diff --git a/testing/buildbot/variants.pyl b/testing/buildbot/variants.pyl index 37dacae..5956eeb6 100644 --- a/testing/buildbot/variants.pyl +++ b/testing/buildbot/variants.pyl
@@ -9,395 +9,395 @@ # * trailing commas are allowed. { - 'OZONE_HEADLESS': { - 'args': [ - '--no-xvfb', - '--ozone-platform=headless', - '--enable-features=UseOzonePlatform', - ], - 'identifier': 'headless', + 'OZONE_HEADLESS': { + 'args': [ + '--no-xvfb', + '--ozone-platform=headless', + '--enable-features=UseOzonePlatform', + ], + 'identifier': 'headless', + }, + 'OZONE_WAYLAND': { + 'args': [ + '--no-xvfb', + '--use-weston', + '--ozone-platform=wayland', + '--enable-features=UseOzonePlatform', + ], + 'identifier': 'wayland', + }, + 'OZONE_X11': { + 'args': [ + '--ozone-platform=x11', + '--enable-features=UseOzonePlatform', + ], + 'identifier': 'x11', + }, + 'IPHONE_6S_12_3_1': { + 'swarming': { + 'dimension_sets': [ + { + 'os': 'iOS-12.3.1', + 'device': 'iPhone8,1' + } + ] }, - 'OZONE_WAYLAND': { - 'args': [ - '--no-xvfb', - '--use-weston', - '--ozone-platform=wayland', - '--enable-features=UseOzonePlatform', - ], - 'identifier': 'wayland', + 'identifier': 'iPhone 6S 12.3.1' + }, + 'SIM_IPAD_AIR_2_12_4': { + 'args': [ + '--platform', + 'iPad Air 2', + '--version', + '12.4' + ], + 'identifier': 'iPad Air 2 12.4' + }, + 'SIM_IPAD_AIR_2_13_6': { + 'args': [ + '--platform', + 'iPad Air 2', + '--version', + '13.6' + ], + 'identifier': 'iPad Air 2 13.6' + }, + 'SIM_IPAD_AIR_2_13_5': { + 'args': [ + '--platform', + 'iPad Air 2', + '--version', + '13.5' + ], + 'identifier': 'iPad Air 2 13.5' + }, + 'SIM_IPAD_AIR_2_13_6': { + 'args': [ + '--platform', + 'iPad Air 2', + '--version', + '13.6' + ], + 'identifier': 'iPad Air 2 13.6' + }, + 'SIM_IPAD_AIR_2_14_0': { + 'args': [ + '--platform', + 'iPad Air 2', + '--version', + '14.0' + ], + 'identifier': 'iPad Air 2 14.0' + }, + 'SIM_IPAD_AIR_3RD_GEN_14_0': { + 'args': [ + '--platform', + 'iPad Air (3rd generation)', + '--version', + '14.0' + ], + 'identifier': 'iPad Air (3rd generation) 14.0' + }, + # In Xcode 12, "iPad Pro (12.9-inch)" requires a generation suffix in + # "platform" arg. + 'SIM_IPAD_PRO_2ND_GEN_14_0': { + 'args': [ + '--platform', + 'iPad Pro (12.9-inch) (2nd generation)', + '--version', + '14.0', + ], + 'identifier': 'iPad Pro (12.9-inch) (2nd generation) 14.0' + }, + 'SIM_IPAD_6_GEN_14_0': { + 'args': [ + '--platform', + 'iPad (6th generation)', + '--version', + '14.0', + ], + 'identifier': 'iPad (6th generation) 14.0' + }, + 'SIM_IPHONE_6S_12_4': { + 'args': [ + '--platform', + 'iPhone 6s', + '--version', + '12.4', + ], + 'identifier': 'iPhone 6s 12.4' + }, + 'SIM_IPHONE_6S_13_6': { + 'args': [ + '--platform', + 'iPhone 6s', + '--version', + '13.6', + ], + 'identifier': 'iPhone 6s 13.6' + }, + 'SIM_IPHONE_6S_13_6': { + 'args': [ + '--platform', + 'iPhone 6s', + '--version', + '13.6', + ], + 'identifier': 'iPhone 6s 13.6' + }, + 'SIM_IPHONE_6S_14_0': { + 'args': [ + '--platform', + 'iPhone 6s', + '--version', + '14.0', + ], + 'identifier': 'iPhone 6s 14.0' + }, + 'SIM_IPHONE_6S_PLUS_13_6': { + 'args': [ + '--platform', + 'iPhone 6s Plus', + '--version', + '13.6', + ], + 'identifier': 'iPhone 6s Plus 13.6' + }, + 'SIM_IPHONE_6S_PLUS_13_6': { + 'args': [ + '--platform', + 'iPhone 6s Plus', + '--version', + '13.6', + ], + 'identifier': 'iPhone 6s Plus 13.6' + }, + 'SIM_IPHONE_6S_PLUS_14_0': { + 'args': [ + '--platform', + 'iPhone 6s Plus', + '--version', + '14.0', + ], + 'identifier': 'iPhone 6s Plus 14.0' + }, + 'SIM_IPHONE_7_13_6': { + 'args': [ + '--platform', + 'iPhone 7', + '--version', + '13.6', + ], + 'identifier': 'iPhone 7 13.6' + }, + 'SIM_IPHONE_7_13_6': { + 'args': [ + '--platform', + 'iPhone 7', + '--version', + '13.6', + ], + 'identifier': 'iPhone 7 13.6' + }, + 'SIM_IPHONE_7_14_0': { + 'args': [ + '--platform', + 'iPhone 7', + '--version', + '14.0', + ], + 'identifier': 'iPhone 7 14.0' + }, + 'SIM_IPHONE_SE_1ST_GEN_13_6': { + 'args': [ + '--platform', + 'iPhone SE (1st generation)', + '--version', + '13.6', + ], + 'identifier': 'iPhone SE (1st generation) 13.6' + }, + 'SIM_IPHONE_X_12_4': { + 'args': [ + '--platform', + 'iPhone X', + '--version', + '12.4', + ], + 'identifier': 'iPhone X 12.4' + }, + 'SIM_IPHONE_X_13_4': { + 'args': [ + '--platform', + 'iPhone X', + '--version', + '13.4', + ], + 'identifier': 'iPhone X 13.4' + }, + 'SIM_IPHONE_X_13_5': { + 'args': [ + '--platform', + 'iPhone X', + '--version', + '13.5', + ], + 'identifier': 'iPhone X 13.5' + }, + 'SIM_IPHONE_X_13_6': { + 'args': [ + '--platform', + 'iPhone X', + '--version', + '13.6', + ], + 'identifier': 'iPhone X 13.6' + }, + 'SIM_IPHONE_X_14_0': { + 'args': [ + '--platform', + 'iPhone X', + '--version', + '14.0', + ], + 'identifier': 'iPhone X 14.0' + }, + 'WEBLAYER_IMPL_SKEW_TESTS_NTH_MILESTONE': { + 'args': [ + '--test-runner-outdir', + '.', + '--client-outdir', + '.', + '--implementation-outdir', + '../../weblayer_instrumentation_test_M85/out/Release', + '--test-expectations', + '../../weblayer/browser/android/javatests/skew/expectations.txt', + '--impl-version=85', + ], + 'identifier': 'M85_Implementation_Library_Tests', + 'swarming': { + 'cipd_packages': [ + { + 'cipd_package': 'chromium/testing/weblayer-x86', + 'location': 'weblayer_instrumentation_test_M85', + 'revision': 'version:85.0.4183.69', + } + ], }, - 'OZONE_X11': { - 'args': [ - '--ozone-platform=x11', - '--enable-features=UseOzonePlatform', - ], - 'identifier': 'x11', + }, + 'WEBLAYER_IMPL_SKEW_TESTS_NTH_MINUS_ONE_MILESTONE': { + 'args': [ + '--test-runner-outdir', + '.', + '--client-outdir', + '.', + '--implementation-outdir', + '../../weblayer_instrumentation_test_M84/out/Release', + '--test-expectations', + '../../weblayer/browser/android/javatests/skew/expectations.txt', + '--impl-version=84', + ], + 'identifier': 'M84_Implementation_Library_Tests', + 'swarming': { + 'cipd_packages': [ + { + 'cipd_package': 'chromium/testing/weblayer-x86', + 'location': 'weblayer_instrumentation_test_M84', + 'revision': 'version:84.0.4147.89', + } + ], }, - 'IPHONE_6S_12_3_1': { - 'swarming': { - 'dimension_sets': [ - { - 'os': 'iOS-12.3.1', - 'device': 'iPhone8,1' - } - ] - }, - 'identifier': 'iPhone 6S 12.3.1' + }, + 'WEBLAYER_IMPL_SKEW_TESTS_NTH_MINUS_TWO_MILESTONE': { + 'args': [ + '--test-runner-outdir', + '.', + '--client-outdir', + '.', + '--implementation-outdir', + '../../weblayer_instrumentation_test_M83/out/Release', + '--test-expectations', + '../../weblayer/browser/android/javatests/skew/expectations.txt', + '--impl-version=83', + ], + 'identifier': 'M83_Implementation_Library_Tests', + 'swarming': { + 'cipd_packages': [ + { + 'cipd_package': 'chromium/testing/weblayer-x86', + 'location': 'weblayer_instrumentation_test_M83', + 'revision': 'version:83.0.4103.83', + } + ], }, - 'SIM_IPAD_AIR_2_12_4': { - 'args': [ - '--platform', - 'iPad Air 2', - '--version', - '12.4' - ], - 'identifier': 'iPad Air 2 12.4' + }, + 'WEBLAYER_CLIENT_SKEW_TESTS_NTH_MILESTONE': { + 'args': [ + '--test-runner-outdir', + '.', + '--client-outdir', + '../../weblayer_instrumentation_test_M85/out/Release', + '--implementation-outdir', + '.', + '--test-expectations', + '../../weblayer/browser/android/javatests/skew/expectations.txt', + '--client-version=85', + ], + 'identifier': 'M85_Client_Library_Tests', + 'swarming': { + 'cipd_packages': [ + { + 'cipd_package': 'chromium/testing/weblayer-x86', + 'location': 'weblayer_instrumentation_test_M85', + 'revision': 'version:85.0.4183.69', + } + ], }, - 'SIM_IPAD_AIR_2_13_6': { - 'args': [ - '--platform', - 'iPad Air 2', - '--version', - '13.6' - ], - 'identifier': 'iPad Air 2 13.6' + }, + 'WEBLAYER_CLIENT_SKEW_TESTS_NTH_MINUS_ONE_MILESTONE': { + 'args': [ + '--test-runner-outdir', + '.', + '--client-outdir', + '../../weblayer_instrumentation_test_M84/out/Release', + '--implementation-outdir', + '.', + '--test-expectations', + '../../weblayer/browser/android/javatests/skew/expectations.txt', + '--client-version=84', + ], + 'identifier': 'M84_Client_Library_Tests', + 'swarming': { + 'cipd_packages': [ + { + 'cipd_package': 'chromium/testing/weblayer-x86', + 'location': 'weblayer_instrumentation_test_M84', + 'revision': 'version:84.0.4147.89', + } + ], }, - 'SIM_IPAD_AIR_2_13_5': { - 'args': [ - '--platform', - 'iPad Air 2', - '--version', - '13.5' - ], - 'identifier': 'iPad Air 2 13.5' + }, + 'WEBLAYER_CLIENT_SKEW_TESTS_NTH_MINUS_TWO_MILESTONE': { + 'args': [ + '--test-runner-outdir', + '.', + '--client-outdir', + '../../weblayer_instrumentation_test_M83/out/Release', + '--implementation-outdir', + '.', + '--test-expectations', + '../../weblayer/browser/android/javatests/skew/expectations.txt', + '--client-version=83', + ], + 'identifier': 'M83_Client_Library_Tests', + 'swarming': { + 'cipd_packages': [ + { + 'cipd_package': 'chromium/testing/weblayer-x86', + 'location': 'weblayer_instrumentation_test_M83', + 'revision': 'version:83.0.4103.83', + } + ], }, - 'SIM_IPAD_AIR_2_13_6': { - 'args': [ - '--platform', - 'iPad Air 2', - '--version', - '13.6' - ], - 'identifier': 'iPad Air 2 13.6' - }, - 'SIM_IPAD_AIR_2_14_0': { - 'args': [ - '--platform', - 'iPad Air 2', - '--version', - '14.0' - ], - 'identifier': 'iPad Air 2 14.0' - }, - 'SIM_IPAD_AIR_3RD_GEN_14_0': { - 'args': [ - '--platform', - 'iPad Air (3rd generation)', - '--version', - '14.0' - ], - 'identifier': 'iPad Air (3rd generation) 14.0' - }, - # In Xcode 12, "iPad Pro (12.9-inch)" requires a generation suffix in - # "platform" arg. - 'SIM_IPAD_PRO_2ND_GEN_14_0': { - 'args': [ - '--platform', - 'iPad Pro (12.9-inch) (2nd generation)', - '--version', - '14.0', - ], - 'identifier': 'iPad Pro (12.9-inch) (2nd generation) 14.0' - }, - 'SIM_IPAD_6_GEN_14_0': { - 'args': [ - '--platform', - 'iPad (6th generation)', - '--version', - '14.0', - ], - 'identifier': 'iPad (6th generation) 14.0' - }, - 'SIM_IPHONE_6S_12_4': { - 'args': [ - '--platform', - 'iPhone 6s', - '--version', - '12.4', - ], - 'identifier': 'iPhone 6s 12.4' - }, - 'SIM_IPHONE_6S_13_6': { - 'args': [ - '--platform', - 'iPhone 6s', - '--version', - '13.6', - ], - 'identifier': 'iPhone 6s 13.6' - }, - 'SIM_IPHONE_6S_13_6': { - 'args': [ - '--platform', - 'iPhone 6s', - '--version', - '13.6', - ], - 'identifier': 'iPhone 6s 13.6' - }, - 'SIM_IPHONE_6S_14_0': { - 'args': [ - '--platform', - 'iPhone 6s', - '--version', - '14.0', - ], - 'identifier': 'iPhone 6s 14.0' - }, - 'SIM_IPHONE_6S_PLUS_13_6': { - 'args': [ - '--platform', - 'iPhone 6s Plus', - '--version', - '13.6', - ], - 'identifier': 'iPhone 6s Plus 13.6' - }, - 'SIM_IPHONE_6S_PLUS_13_6': { - 'args': [ - '--platform', - 'iPhone 6s Plus', - '--version', - '13.6', - ], - 'identifier': 'iPhone 6s Plus 13.6' - }, - 'SIM_IPHONE_6S_PLUS_14_0': { - 'args': [ - '--platform', - 'iPhone 6s Plus', - '--version', - '14.0', - ], - 'identifier': 'iPhone 6s Plus 14.0' - }, - 'SIM_IPHONE_7_13_6': { - 'args': [ - '--platform', - 'iPhone 7', - '--version', - '13.6', - ], - 'identifier': 'iPhone 7 13.6' - }, - 'SIM_IPHONE_7_13_6': { - 'args': [ - '--platform', - 'iPhone 7', - '--version', - '13.6', - ], - 'identifier': 'iPhone 7 13.6' - }, - 'SIM_IPHONE_7_14_0': { - 'args': [ - '--platform', - 'iPhone 7', - '--version', - '14.0', - ], - 'identifier': 'iPhone 7 14.0' - }, - 'SIM_IPHONE_SE_1ST_GEN_13_6': { - 'args': [ - '--platform', - 'iPhone SE (1st generation)', - '--version', - '13.6', - ], - 'identifier': 'iPhone SE (1st generation) 13.6' - }, - 'SIM_IPHONE_X_12_4': { - 'args': [ - '--platform', - 'iPhone X', - '--version', - '12.4', - ], - 'identifier': 'iPhone X 12.4' - }, - 'SIM_IPHONE_X_13_4': { - 'args': [ - '--platform', - 'iPhone X', - '--version', - '13.4', - ], - 'identifier': 'iPhone X 13.4' - }, - 'SIM_IPHONE_X_13_5': { - 'args': [ - '--platform', - 'iPhone X', - '--version', - '13.5', - ], - 'identifier': 'iPhone X 13.5' - }, - 'SIM_IPHONE_X_13_6': { - 'args': [ - '--platform', - 'iPhone X', - '--version', - '13.6', - ], - 'identifier': 'iPhone X 13.6' - }, - 'SIM_IPHONE_X_14_0': { - 'args': [ - '--platform', - 'iPhone X', - '--version', - '14.0', - ], - 'identifier': 'iPhone X 14.0' - }, - 'WEBLAYER_IMPL_SKEW_TESTS_NTH_MILESTONE': { - 'args': [ - '--test-runner-outdir', - '.', - '--client-outdir', - '.', - '--implementation-outdir', - '../../weblayer_instrumentation_test_M85/out/Release', - '--test-expectations', - '../../weblayer/browser/android/javatests/skew/expectations.txt', - '--impl-version=85', - ], - 'identifier': 'M85_Implementation_Library_Tests', - 'swarming': { - 'cipd_packages': [ - { - 'cipd_package': 'chromium/testing/weblayer-x86', - 'location': 'weblayer_instrumentation_test_M85', - 'revision': 'version:85.0.4183.69', - } - ], - }, - }, - 'WEBLAYER_IMPL_SKEW_TESTS_NTH_MINUS_ONE_MILESTONE': { - 'args': [ - '--test-runner-outdir', - '.', - '--client-outdir', - '.', - '--implementation-outdir', - '../../weblayer_instrumentation_test_M84/out/Release', - '--test-expectations', - '../../weblayer/browser/android/javatests/skew/expectations.txt', - '--impl-version=84', - ], - 'identifier': 'M84_Implementation_Library_Tests', - 'swarming': { - 'cipd_packages': [ - { - 'cipd_package': 'chromium/testing/weblayer-x86', - 'location': 'weblayer_instrumentation_test_M84', - 'revision': 'version:84.0.4147.89', - } - ], - }, - }, - 'WEBLAYER_IMPL_SKEW_TESTS_NTH_MINUS_TWO_MILESTONE': { - 'args': [ - '--test-runner-outdir', - '.', - '--client-outdir', - '.', - '--implementation-outdir', - '../../weblayer_instrumentation_test_M83/out/Release', - '--test-expectations', - '../../weblayer/browser/android/javatests/skew/expectations.txt', - '--impl-version=83', - ], - 'identifier': 'M83_Implementation_Library_Tests', - 'swarming': { - 'cipd_packages': [ - { - 'cipd_package': 'chromium/testing/weblayer-x86', - 'location': 'weblayer_instrumentation_test_M83', - 'revision': 'version:83.0.4103.83', - } - ], - }, - }, - 'WEBLAYER_CLIENT_SKEW_TESTS_NTH_MILESTONE': { - 'args': [ - '--test-runner-outdir', - '.', - '--client-outdir', - '../../weblayer_instrumentation_test_M85/out/Release', - '--implementation-outdir', - '.', - '--test-expectations', - '../../weblayer/browser/android/javatests/skew/expectations.txt', - '--client-version=85', - ], - 'identifier': 'M85_Client_Library_Tests', - 'swarming': { - 'cipd_packages': [ - { - 'cipd_package': 'chromium/testing/weblayer-x86', - 'location': 'weblayer_instrumentation_test_M85', - 'revision': 'version:85.0.4183.69', - } - ], - }, - }, - 'WEBLAYER_CLIENT_SKEW_TESTS_NTH_MINUS_ONE_MILESTONE': { - 'args': [ - '--test-runner-outdir', - '.', - '--client-outdir', - '../../weblayer_instrumentation_test_M84/out/Release', - '--implementation-outdir', - '.', - '--test-expectations', - '../../weblayer/browser/android/javatests/skew/expectations.txt', - '--client-version=84', - ], - 'identifier': 'M84_Client_Library_Tests', - 'swarming': { - 'cipd_packages': [ - { - 'cipd_package': 'chromium/testing/weblayer-x86', - 'location': 'weblayer_instrumentation_test_M84', - 'revision': 'version:84.0.4147.89', - } - ], - }, - }, - 'WEBLAYER_CLIENT_SKEW_TESTS_NTH_MINUS_TWO_MILESTONE': { - 'args': [ - '--test-runner-outdir', - '.', - '--client-outdir', - '../../weblayer_instrumentation_test_M83/out/Release', - '--implementation-outdir', - '.', - '--test-expectations', - '../../weblayer/browser/android/javatests/skew/expectations.txt', - '--client-version=83', - ], - 'identifier': 'M83_Client_Library_Tests', - 'swarming': { - 'cipd_packages': [ - { - 'cipd_package': 'chromium/testing/weblayer-x86', - 'location': 'weblayer_instrumentation_test_M83', - 'revision': 'version:83.0.4103.83', - } - ], - }, - }, -} \ No newline at end of file + }, +}
diff --git a/testing/buildbot/waterfalls.pyl b/testing/buildbot/waterfalls.pyl index bc83643..c2d7f31 100644 --- a/testing/buildbot/waterfalls.pyl +++ b/testing/buildbot/waterfalls.pyl
@@ -1363,7 +1363,7 @@ 'mac_10.15', 'mac_toolchain', 'out_dir_arg', - 'xcode_12a8189h', + 'xcode_12a8189n', ], 'test_suites': { 'isolated_scripts': 'ios_clang_tot_sim_tests' @@ -1393,7 +1393,7 @@ 'mac_10.15', 'mac_toolchain', 'out_dir_arg', - 'xcode_12a8189h', + 'xcode_12a8189n', ], 'test_suites': { 'isolated_scripts': 'ios_clang_tot_device_tests' @@ -2074,7 +2074,7 @@ 'mac_10.15', 'mac_toolchain', 'out_dir_arg', - 'xcode_12a8189h' + 'xcode_12a8189n' ], 'test_suites': { 'isolated_scripts': 'ios_asan_tests', @@ -2087,7 +2087,7 @@ 'mac_10.15', 'mac_toolchain', 'out_dir_arg', - 'xcode_12a8189h' + 'xcode_12a8189n' ], 'test_suites': { 'isolated_scripts': 'ios_code_coverage_tests', @@ -2109,7 +2109,7 @@ 'mac_10.15', 'mac_toolchain', 'out_dir_arg', - 'xcode_12a8189h' + 'xcode_12a8189n' ], 'test_suites': { 'isolated_scripts': 'ios_simulator_multi_window_tests', @@ -2153,7 +2153,7 @@ 'mac_10.15', 'mac_toolchain', 'out_dir_arg', - 'xcode_12a8189h', + 'xcode_12a8189n', ], 'test_suites': { 'isolated_scripts': 'ios14_beta_simulator_tests' @@ -2170,7 +2170,7 @@ 'mac_10.15', 'mac_toolchain', 'out_dir_arg', - 'xcode_12a8189h', + 'xcode_12a8189n', ], 'test_suites': { 'isolated_scripts': 'ios14_sdk_simulator_tests' @@ -4496,7 +4496,7 @@ 'mac_10.15', 'mac_toolchain', 'out_dir_arg', - 'xcode_12a8189h', + 'xcode_12a8189n', ], 'test_suites': { 'isolated_scripts': 'ios_simulator_tests', @@ -4510,7 +4510,7 @@ 'mac_10.15', 'mac_toolchain', 'out_dir_arg', - 'xcode_12a8189h', + 'xcode_12a8189n', ], 'test_suites': { 'isolated_scripts': 'ios_simulator_full_configs_test' @@ -4524,7 +4524,7 @@ 'mac_10.15', 'mac_toolchain', 'out_dir_arg', - 'xcode_12a8189h', + 'xcode_12a8189n', ], 'test_suites': { 'isolated_scripts': 'ios_simulator_noncq_tests'
diff --git a/testing/variations/fieldtrial_testing_config.json b/testing/variations/fieldtrial_testing_config.json index 68d89734..441fd9f 100644 --- a/testing/variations/fieldtrial_testing_config.json +++ b/testing/variations/fieldtrial_testing_config.json
@@ -1309,6 +1309,27 @@ ] } ], + "CompositeCrossOriginIframes": [ + { + "platforms": [ + "android", + "android_weblayer", + "android_webview", + "chromeos", + "linux", + "mac", + "windows" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "CompositeCrossOriginIframes" + ] + } + ] + } + ], "CompositingOptimizations": [ { "platforms": [ @@ -1733,6 +1754,31 @@ ] } ], + "DelayCompetingLowPriorityRequests": [ + { + "platforms": [ + "android", + "android_weblayer", + "android_webview", + "chromeos", + "linux", + "mac", + "windows" + ], + "experiments": [ + { + "name": "Enabled", + "params": { + "priority_threshold": "high", + "until": "first_contentful_paint" + }, + "enable_features": [ + "DelayCompetingLowPriorityRequests" + ] + } + ] + } + ], "DeprecateFtp": [ { "platforms": [
diff --git a/third_party/android_deps/BUILD.gn b/third_party/android_deps/BUILD.gn index 3c7db6a5..23a586c 100644 --- a/third_party/android_deps/BUILD.gn +++ b/third_party/android_deps/BUILD.gn
@@ -1582,7 +1582,7 @@ # This is generated, do not edit. Update BuildConfigGenerator.groovy instead. java_prebuilt("com_google_protobuf_protobuf_javalite_java") { jar_path = - "libs/com_google_protobuf_protobuf_javalite/protobuf-javalite-3.12.2.jar" + "libs/com_google_protobuf_protobuf_javalite/protobuf-javalite-3.13.0.jar" output_name = "com_google_protobuf_protobuf_javalite" supports_android = true
diff --git a/third_party/android_deps/build.gradle b/third_party/android_deps/build.gradle index b3660bd..bd4cab8 100644 --- a/third_party/android_deps/build.gradle +++ b/third_party/android_deps/build.gradle
@@ -165,7 +165,7 @@ compile "com.google.guava:failureaccess:1.0.1" compile "com.google.guava:listenablefuture:1.0" compile "com.google.j2objc:j2objc-annotations:1.1" - compile "com.google.protobuf:protobuf-javalite:3.12.2" + compile "com.google.protobuf:protobuf-javalite:3.13.0" compile "javax.annotation:javax.annotation-api:1.3.2" compile "javax.annotation:jsr250-api:1.0" compile "javax.inject:javax.inject:1"
diff --git a/third_party/android_deps/libs/com_google_protobuf_protobuf_javalite/README.chromium b/third_party/android_deps/libs/com_google_protobuf_protobuf_javalite/README.chromium index fb85598b..864c2c1 100644 --- a/third_party/android_deps/libs/com_google_protobuf_protobuf_javalite/README.chromium +++ b/third_party/android_deps/libs/com_google_protobuf_protobuf_javalite/README.chromium
@@ -1,7 +1,7 @@ Name: Protocol Buffers [Lite] Short Name: protobuf-javalite URL: https://github.com/protocolbuffers/protobuf/blob/master/java/lite.md -Version: 3.12.2 +Version: 3.13.0 License: BSD License File: LICENSE Security Critical: yes
diff --git a/third_party/android_deps/libs/com_google_protobuf_protobuf_javalite/cipd.yaml b/third_party/android_deps/libs/com_google_protobuf_protobuf_javalite/cipd.yaml index decdf73..b5f3345 100644 --- a/third_party/android_deps/libs/com_google_protobuf_protobuf_javalite/cipd.yaml +++ b/third_party/android_deps/libs/com_google_protobuf_protobuf_javalite/cipd.yaml
@@ -3,8 +3,8 @@ # found in the LICENSE file. # To create CIPD package run the following command. -# cipd create --pkg-def cipd.yaml -tag version:3.12.2-cr0 +# cipd create --pkg-def cipd.yaml -tag version:3.13.0-cr0 package: chromium/third_party/android_deps/libs/com_google_protobuf_protobuf_javalite description: "Protocol Buffers [Lite]" data: -- file: protobuf-javalite-3.12.2.jar +- file: protobuf-javalite-3.13.0.jar
diff --git a/third_party/android_protoc/README.chromium b/third_party/android_protoc/README.chromium index 0aed971b8..f6f61a22 100644 --- a/third_party/android_protoc/README.chromium +++ b/third_party/android_protoc/README.chromium
@@ -1,7 +1,7 @@ Name: Protocol Buffers - Google's data interchange format Short Name: protobuf -URL: https://github.com/protocolbuffers/protobuf/releases/download/v3.12.2/protoc-3.12.2-linux-x86_64.zip -Version: 3.12.2 +URL: https://github.com/protocolbuffers/protobuf/releases/download/v3.13.0/protoc-3.13.0-linux-x86_64.zip +Version: 3.13.0 License: BSD License File: NOT_SHIPPED Security Critical: no
diff --git a/third_party/blink/common/feature_policy/document_policy_unittest.cc b/third_party/blink/common/feature_policy/document_policy_unittest.cc index b143c23..d9e779c 100644 --- a/third_party/blink/common/feature_policy/document_policy_unittest.cc +++ b/third_party/blink/common/feature_policy/document_policy_unittest.cc
@@ -16,11 +16,12 @@ // Helper function to convert literal to FeatureState. template <class T> DocumentPolicyFeatureState FeatureState( - std::vector<std::pair<int32_t, T>> literal) { + std::vector<std::pair<int32_t, T>> literal, + mojom::PolicyValueType value_type = mojom::PolicyValueType::kBool) { DocumentPolicyFeatureState result; for (const auto& entry : literal) { result.insert({static_cast<mojom::DocumentPolicyFeature>(entry.first), - PolicyValue(entry.second)}); + PolicyValue(entry.second, value_type)}); } return result; } @@ -39,9 +40,21 @@ {6, true}})); EXPECT_EQ( DocumentPolicy::MergeFeatureState( - FeatureState<double>({{1, 1.0}, {2, 1.0}, {3, 1.0}, {4, 0.5}}), - FeatureState<double>({{2, 0.5}, {3, 1.0}, {4, 1.0}, {5, 1.0}})), - FeatureState<double>({{1, 1.0}, {2, 0.5}, {3, 1.0}, {4, 0.5}, {5, 1.0}})); + FeatureState<double>({{1, 1.0}, {2, 1.0}, {3, 1.0}, {4, 0.5}}, + mojom::PolicyValueType::kDecDouble), + FeatureState<double>({{2, 0.5}, {3, 1.0}, {4, 1.0}, {5, 1.0}}, + mojom::PolicyValueType::kDecDouble)), + FeatureState<double>({{1, 1.0}, {2, 0.5}, {3, 1.0}, {4, 0.5}, {5, 1.0}}, + mojom::PolicyValueType::kDecDouble)); + + EXPECT_EQ( + DocumentPolicy::MergeFeatureState( + /* base_policy */ FeatureState<int32_t>( + {{1, 1}, {2, 1}, {3, 1}, {4, 2}}, mojom::PolicyValueType::kEnum), + /* override_policy */ FeatureState<int32_t>( + {{2, 2}, {3, 1}, {4, 1}, {5, 1}}, mojom::PolicyValueType::kEnum)), + FeatureState<int32_t>({{1, 1}, {2, 2}, {3, 1}, {4, 1}, {5, 1}}, + mojom::PolicyValueType::kEnum)); } // IsPolicyCompatible should use default value for incoming policy when required
diff --git a/third_party/blink/common/feature_policy/policy_value.cc b/third_party/blink/common/feature_policy/policy_value.cc index 1a5182b..86d0cc2 100644 --- a/third_party/blink/common/feature_policy/policy_value.cc +++ b/third_party/blink/common/feature_policy/policy_value.cc
@@ -21,10 +21,19 @@ : type_(mojom::PolicyValueType::kDecDouble), double_value_(double_value) {} PolicyValue::PolicyValue(bool bool_value, mojom::PolicyValueType type) - : type_(type), bool_value_(bool_value) {} + : type_(type), bool_value_(bool_value) { + DCHECK_EQ(type, mojom::PolicyValueType::kBool); +} PolicyValue::PolicyValue(double double_value, mojom::PolicyValueType type) - : type_(type), double_value_(double_value) {} + : type_(type), double_value_(double_value) { + DCHECK_EQ(type, mojom::PolicyValueType::kDecDouble); +} + +PolicyValue::PolicyValue(int32_t int_value, mojom::PolicyValueType type) + : type_(type), int_value_(int_value) { + DCHECK_EQ(type, mojom::PolicyValueType::kEnum); +} PolicyValue PolicyValue::CreateMaxPolicyValue(mojom::PolicyValueType type) { PolicyValue value; @@ -50,6 +59,11 @@ return double_value_; } +int32_t PolicyValue::IntValue() const { + DCHECK_EQ(type_, mojom::PolicyValueType::kEnum); + return int_value_; +} + void PolicyValue::SetBoolValue(bool bool_value) { DCHECK_EQ(mojom::PolicyValueType::kBool, type_); bool_value_ = bool_value; @@ -60,10 +74,9 @@ double_value_ = double_value; } -void PolicyValue::SetDoubleValue(double double_value, - mojom::PolicyValueType type) { - DCHECK_EQ(type, type_); - double_value_ = double_value; +void PolicyValue::SetIntValue(int32_t int_value) { + DCHECK_EQ(mojom::PolicyValueType::kEnum, type_); + int_value_ = int_value; } PolicyValue& PolicyValue::operator=(const PolicyValue& rhs) { @@ -71,6 +84,7 @@ type_ = rhs.type_; bool_value_ = rhs.bool_value_; double_value_ = rhs.double_value_; + int_value_ = rhs.int_value_; } return *this; } @@ -83,6 +97,8 @@ return lhs.BoolValue() == rhs.BoolValue(); case mojom::PolicyValueType::kDecDouble: return lhs.DoubleValue() == rhs.DoubleValue(); + case mojom::PolicyValueType::kEnum: + return lhs.IntValue() == rhs.IntValue(); case mojom::PolicyValueType::kNull: return true; } @@ -101,6 +117,8 @@ return !bool_value_ || required.bool_value_; case mojom::PolicyValueType::kDecDouble: return double_value_ <= required.double_value_; + case mojom::PolicyValueType::kEnum: + return int_value_ == required.int_value_; case mojom::PolicyValueType::kNull: NOTREACHED(); break; @@ -117,7 +135,7 @@ double_value_ = std::numeric_limits<double>::infinity(); break; default: - break; + NOTREACHED(); } return; }
diff --git a/third_party/blink/common/feature_policy/policy_value_mojom_traits.cc b/third_party/blink/common/feature_policy/policy_value_mojom_traits.cc index a1437a3..abc1063 100644 --- a/third_party/blink/common/feature_policy/policy_value_mojom_traits.cc +++ b/third_party/blink/common/feature_policy/policy_value_mojom_traits.cc
@@ -17,6 +17,10 @@ out->SetType(blink::mojom::PolicyValueType::kDecDouble); out->SetDoubleValue(in.dec_double_value()); return true; + case blink::mojom::PolicyValueDataDataView::Tag::ENUM_VALUE: + out->SetType(blink::mojom::PolicyValueType::kEnum); + out->SetIntValue(in.enum_value()); + return true; case blink::mojom::PolicyValueDataDataView::Tag::NULL_VALUE: break; }
diff --git a/third_party/blink/common/feature_policy/policy_value_mojom_traits.h b/third_party/blink/common/feature_policy/policy_value_mojom_traits.h index 2da326b..68abe46 100644 --- a/third_party/blink/common/feature_policy/policy_value_mojom_traits.h +++ b/third_party/blink/common/feature_policy/policy_value_mojom_traits.h
@@ -24,6 +24,8 @@ return blink::mojom::PolicyValueDataDataView::Tag::BOOL_VALUE; case blink::mojom::PolicyValueType::kDecDouble: return blink::mojom::PolicyValueDataDataView::Tag::DEC_DOUBLE_VALUE; + case blink::mojom::PolicyValueType::kEnum: + return blink::mojom::PolicyValueDataDataView::Tag::ENUM_VALUE; } NOTREACHED(); @@ -36,6 +38,9 @@ static double dec_double_value(const blink::PolicyValue& value) { return value.DoubleValue(); } + static int32_t enum_value(const blink::PolicyValue& value) { + return value.IntValue(); + } static bool Read(blink::mojom::PolicyValueDataDataView in, blink::PolicyValue* out); };
diff --git a/third_party/blink/common/feature_policy/policy_value_unittest.cc b/third_party/blink/common/feature_policy/policy_value_unittest.cc index 892213d..f53b90a 100644 --- a/third_party/blink/common/feature_policy/policy_value_unittest.cc +++ b/third_party/blink/common/feature_policy/policy_value_unittest.cc
@@ -105,4 +105,38 @@ EXPECT_TRUE(high_value.IsCompatibleWith(high_value)); } +TEST_F(PolicyValueTest, TestCanCreateEnumValues) { + PolicyValue enum_value_a(1, blink::mojom::PolicyValueType::kEnum); + PolicyValue enum_value_b(2, blink::mojom::PolicyValueType::kEnum); + EXPECT_EQ(enum_value_a.IntValue(), 1); + EXPECT_EQ(enum_value_b.IntValue(), 2); +} + +TEST_F(PolicyValueTest, TestCanModifyEnumValues) { + PolicyValue enum_value_a(1, blink::mojom::PolicyValueType::kEnum); + enum_value_a.SetIntValue(2); + EXPECT_EQ(enum_value_a.IntValue(), 2); +} + +TEST_F(PolicyValueTest, TestCanCompareEnumValues) { + PolicyValue enum_value_a(1, blink::mojom::PolicyValueType::kEnum); + PolicyValue enum_value_b(2, blink::mojom::PolicyValueType::kEnum); + + EXPECT_TRUE(enum_value_a == enum_value_a); + EXPECT_FALSE(enum_value_a != enum_value_a); + EXPECT_TRUE(enum_value_a.IsCompatibleWith(enum_value_a)); + + EXPECT_FALSE(enum_value_b == enum_value_a); + EXPECT_TRUE(enum_value_b != enum_value_a); + EXPECT_FALSE(enum_value_b.IsCompatibleWith(enum_value_a)); + + EXPECT_FALSE(enum_value_a == enum_value_b); + EXPECT_TRUE(enum_value_a != enum_value_b); + EXPECT_FALSE(enum_value_a.IsCompatibleWith(enum_value_b)); + + EXPECT_TRUE(enum_value_b == enum_value_b); + EXPECT_FALSE(enum_value_b != enum_value_b); + EXPECT_TRUE(enum_value_b.IsCompatibleWith(enum_value_b)); +} + } // namespace blink
diff --git a/third_party/blink/common/features.cc b/third_party/blink/common/features.cc index 35268351..80fb5c6 100644 --- a/third_party/blink/common/features.cc +++ b/third_party/blink/common/features.cc
@@ -578,6 +578,39 @@ DelayAsyncScriptDelayType::kFinishedParsing, &delay_async_script_execution_delay_types}; +// Feature and parameters for delaying low priority requests behind "important" +// (either high or medium priority requests). There are two parameters +// highlighted below. +const base::Feature kDelayCompetingLowPriorityRequests{ + "DelayCompetingLowPriorityRequests", base::FEATURE_DISABLED_BY_DEFAULT}; +// The delay type: We don't want to delay low priority requests behind +// "important" requests forever. Rather, it makes sense to have this behavior up +// *until* some relevant loading milestone, which this parameter specifies. +const base::FeatureParam<DelayCompetingLowPriorityRequestsDelayType>::Option + delay_competing_low_priority_requests_delay_types[] = { + {DelayCompetingLowPriorityRequestsDelayType::kFirstPaint, + "first_paint"}, + {DelayCompetingLowPriorityRequestsDelayType::kFirstContentfulPaint, + "first_contentful_paint"}, + {DelayCompetingLowPriorityRequestsDelayType::kAlways, "always"}}; +const base::FeatureParam<DelayCompetingLowPriorityRequestsDelayType> + kDelayCompetingLowPriorityRequestsDelayParam{ + &kDelayCompetingLowPriorityRequests, "until", + DelayCompetingLowPriorityRequestsDelayType::kFirstContentfulPaint, + &delay_competing_low_priority_requests_delay_types}; +// The priority threshold: indicates which ResourceLoadPriority should be +// considered "important", such that low priority requests are delayed behind +// in-flight "important" requests. +const base::FeatureParam<DelayCompetingLowPriorityRequestsThreshold>::Option + delay_competing_low_priority_requests_thresholds[] = { + {DelayCompetingLowPriorityRequestsThreshold::kMedium, "medium"}, + {DelayCompetingLowPriorityRequestsThreshold::kHigh, "high"}}; +const base::FeatureParam<DelayCompetingLowPriorityRequestsThreshold> + kDelayCompetingLowPriorityRequestsThresholdParam{ + &kDelayCompetingLowPriorityRequests, "priority_threshold", + DelayCompetingLowPriorityRequestsThreshold::kHigh, + &delay_competing_low_priority_requests_thresholds}; + // The AppCache feature is a kill-switch for the entire AppCache feature, // both backend and API. If disabled, then it will turn off the backend and // api, regardless of the presence of valid origin trial tokens. Disabling @@ -617,11 +650,13 @@ &align_font_display_auto_timeout_with_lcp_goal_modes}; // Enable throttling of fetch() requests from service workers in the -// installing state. +// installing state. The limit of 3 was chosen to match the limit +// in background main frames. In addition, trials showed that this +// did not cause excessive install delays or timeouts. const base::Feature kThrottleInstallingServiceWorker{ - "ThrottleInstallingServiceWorker", base::FEATURE_DISABLED_BY_DEFAULT}; + "ThrottleInstallingServiceWorker", base::FEATURE_ENABLED_BY_DEFAULT}; const base::FeatureParam<int> kInstallingServiceWorkerOutstandingThrottledLimit{ - &kThrottleInstallingServiceWorker, "limit", 5}; + &kThrottleInstallingServiceWorker, "limit", 3}; const base::Feature kInputPredictorTypeChoice{ "InputPredictorTypeChoice", base::FEATURE_DISABLED_BY_DEFAULT};
diff --git a/third_party/blink/common/frame/frame_policy_mojom_traits.cc b/third_party/blink/common/frame/frame_policy_mojom_traits.cc index ab32cf4c..097dddb 100644 --- a/third_party/blink/common/frame/frame_policy_mojom_traits.cc +++ b/third_party/blink/common/frame/frame_policy_mojom_traits.cc
@@ -12,6 +12,8 @@ out->allowed_to_download = in.allowed_to_download(); out->disallow_document_access = in.disallow_document_access(); + // TODO(chenleihu): Add sanity check on enum values in + // required_document_policy. return in.ReadSandboxFlags(&out->sandbox_flags) && in.ReadContainerPolicy(&out->container_policy) && in.ReadRequiredDocumentPolicy(&out->required_document_policy);
diff --git a/third_party/blink/public/common/feature_policy/policy_value.h b/third_party/blink/public/common/feature_policy/policy_value.h index 3b9b619..4ad6639 100644 --- a/third_party/blink/public/common/feature_policy/policy_value.h +++ b/third_party/blink/public/common/feature_policy/policy_value.h
@@ -16,7 +16,8 @@ // PolicyValue is a union of types (int / double / set<int> / bool ) that can be // used to specify the parameter of a policy. -// TODO(loonybear): Add the following types: enum, inc/dec int, inc double, set. +// TODO(crbug.com/1119481): Add the following types: enum, inc/dec int, inc +// double, set. class BLINK_COMMON_EXPORT PolicyValue { public: PolicyValue(); @@ -26,6 +27,7 @@ explicit PolicyValue(bool bool_value); explicit PolicyValue(double double_value); PolicyValue(bool bool_value, mojom::PolicyValueType type); + PolicyValue(int32_t int_value, mojom::PolicyValueType type); PolicyValue(double double_value, mojom::PolicyValueType type); // A 'max' PolicyValue is the most permissive value for the policy. @@ -40,12 +42,13 @@ // Note the getters also DCHECKs that the type is correct. bool BoolValue() const; double DoubleValue() const; + int32_t IntValue() const; // PolicyValue setters. // Note the getters also DCHECKs that the type is correct. void SetBoolValue(bool bool_value); void SetDoubleValue(double double_value); - void SetDoubleValue(double double_value, mojom::PolicyValueType type); + void SetIntValue(int32_t int_value); // Operater overrides PolicyValue& operator=(const PolicyValue& rhs); @@ -63,6 +66,7 @@ mojom::PolicyValueType type_; bool bool_value_ = false; double double_value_ = 0.0; + int32_t int_value_ = -1; }; bool BLINK_COMMON_EXPORT operator==(const PolicyValue& lhs,
diff --git a/third_party/blink/public/common/features.h b/third_party/blink/public/common/features.h index edba1c2..8438c81 100644 --- a/third_party/blink/public/common/features.h +++ b/third_party/blink/public/common/features.h
@@ -182,6 +182,7 @@ BLINK_COMMON_EXPORT extern const base::Feature kFlexNG; BLINK_COMMON_EXPORT extern const base::Feature kKeepScriptResourceAlive; + BLINK_COMMON_EXPORT extern const base::Feature kDelayAsyncScriptExecution; enum class DelayAsyncScriptDelayType { kFinishedParsing, @@ -191,6 +192,24 @@ BLINK_COMMON_EXPORT extern const base::FeatureParam<DelayAsyncScriptDelayType> kDelayAsyncScriptExecutionDelayParam; +BLINK_COMMON_EXPORT extern const base::Feature + kDelayCompetingLowPriorityRequests; +enum class DelayCompetingLowPriorityRequestsDelayType { + kFirstPaint, + kFirstContentfulPaint, + kAlways, +}; +BLINK_COMMON_EXPORT extern const base::FeatureParam< + DelayCompetingLowPriorityRequestsDelayType> + kDelayCompetingLowPriorityRequestsDelayParam; +enum class DelayCompetingLowPriorityRequestsThreshold { + kMedium, + kHigh, +}; +BLINK_COMMON_EXPORT extern const base::FeatureParam< + DelayCompetingLowPriorityRequestsThreshold> + kDelayCompetingLowPriorityRequestsThresholdParam; + BLINK_COMMON_EXPORT extern const base::Feature kAppCache; BLINK_COMMON_EXPORT extern const base::Feature kAppCacheRequireOriginTrial;
diff --git a/third_party/blink/public/mojom/BUILD.gn b/third_party/blink/public/mojom/BUILD.gn index 5ef67263..09815a6 100644 --- a/third_party/blink/public/mojom/BUILD.gn +++ b/third_party/blink/public/mojom/BUILD.gn
@@ -118,6 +118,7 @@ "page/record_content_to_visible_time_request.mojom", "page/widget.mojom", "payments/payment_app.mojom", + "payments/payment_credential.mojom", "peerconnection/peer_connection_tracker.mojom", "performance_manager/v8_per_frame_memory.mojom", "permissions/permission.mojom",
diff --git a/third_party/blink/public/mojom/feature_policy/policy_value.mojom b/third_party/blink/public/mojom/feature_policy/policy_value.mojom index 7a8cca0..5b2b9a2 100644 --- a/third_party/blink/public/mojom/feature_policy/policy_value.mojom +++ b/third_party/blink/public/mojom/feature_policy/policy_value.mojom
@@ -5,20 +5,26 @@ module blink.mojom; // This enum defines the types of parameters used to specify a feature policy. -// TODO(loonybear): Add the following types: inc/dec int, inc double, enum, set. +// TODO(crbug.com/1119481): Add the following types: inc/dec int, inc double, set. enum PolicyValueType { kNull, kBool, kDecDouble, + // Valid enum value range depends on specific feature definition in + // /third_party/blink/renderer/core/feature_policy/document_policy_features.json5. + // The range check is performed upon parsing of document policy in + // /third_party/blink/renderer/core/feature_policy/document_policy_parser.cc. + kEnum, }; // This union includes all the types that can be used to specify a policy's // parameter. -// TODO(loonybear): Add the following types: inc/dec int, inc double, enum, set. +// TODO(crbug.com/1119481): Add the following types: inc/dec int, inc double, set. union PolicyValueData { bool null_value; bool bool_value; double dec_double_value; + int32 enum_value; }; // Defined as a structure so that it can be typemapped with StructTraits.
diff --git a/third_party/blink/public/mojom/payments/payment_credential.mojom b/third_party/blink/public/mojom/payments/payment_credential.mojom new file mode 100644 index 0000000..f4e3fc5a --- /dev/null +++ b/third_party/blink/public/mojom/payments/payment_credential.mojom
@@ -0,0 +1,37 @@ +// Copyright 2020 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +module payments.mojom; + +import "url/mojom/url.mojom"; + +enum PaymentCredentialCreationStatus { + SUCCESS, + FAILED_TO_DOWNLOAD_ICON, + FAILED_TO_STORE_INSTRUMENT, +}; + +struct PaymentCredentialInstrument { + // Friendly name for displaying this instrument to the user. + string display_name; + + // URL for an icon to display alongside the display_name. + url.mojom.Url icon; +}; + +// An interface for storing PaymentCredentials in browser local storage. +// It is implemented in the browser process and called by the renderer +// following creation of a PaymentCredential through the Credential +// Management API. +interface PaymentCredential { + + // Store a new PaymentCredential which can be later used for + // PaymentRequests. This associates a payment instrument with a public + // key credential on an authenticator. |credential_id| and |rp_id| are + // associated with the public key credential. + StorePaymentCredential(PaymentCredentialInstrument instrument, + array<uint8> credential_id, + string rp_id) + => (PaymentCredentialCreationStatus status); +};
diff --git a/third_party/blink/public/mojom/web_feature/web_feature.mojom b/third_party/blink/public/mojom/web_feature/web_feature.mojom index 4052d143..c4137a2 100644 --- a/third_party/blink/public/mojom/web_feature/web_feature.mojom +++ b/third_party/blink/public/mojom/web_feature/web_feature.mojom
@@ -2781,6 +2781,11 @@ kRTCPeerConnectionCreateOffer = 3453, kRTCPeerConnectionCreateAnswer = 3454, kV8AuthenticatorAttestationResponse_GetTransports_Method = 3455, + kWebCodecsAudioDecoder = 3456, + kWebCodecsVideoDecoder = 3457, + kWebCodecsVideoEncoder = 3458, + kWebCodecsVideoTrackReader= 3459, + kWebCodecsImageDecoder = 3460, // Add new features immediately above this line. Don't change assigned // numbers of any item, and don't reuse removed slots.
diff --git a/third_party/blink/public/web/DEPS b/third_party/blink/public/web/DEPS index 8f75c80..03b81a91 100644 --- a/third_party/blink/public/web/DEPS +++ b/third_party/blink/public/web/DEPS
@@ -53,6 +53,7 @@ "+third_party/blink/public/web", "+ui/accessibility/ax_enums.mojom-shared.h", "+ui/accessibility/ax_event.h", + "+ui/accessibility/ax_mode.h", "+ui/accessibility/ax_tree_id.h", "+ui/base/ime/mojom/ime_types.mojom-shared.h", "+ui/base/ime/mojom/virtual_keyboard_types.mojom-shared.h",
diff --git a/third_party/blink/public/web/web_ax_object.h b/third_party/blink/public/web/web_ax_object.h index e857de89..198e403 100644 --- a/third_party/blink/public/web/web_ax_object.h +++ b/third_party/blink/public/web/web_ax_object.h
@@ -38,6 +38,7 @@ #include "third_party/blink/public/platform/web_vector.h" #include "third_party/blink/public/web/web_ax_enums.h" #include "ui/accessibility/ax_enums.mojom-shared.h" +#include "ui/accessibility/ax_mode.h" class SkMatrix44; @@ -135,7 +136,8 @@ // TODO(crbug.com/1068668): AX onion soup - finish migrating // BlinkAXTreeSource::SerializeNode into AXObject::Serialize and removing // the unneeded WebAXObject interfaces below. - BLINK_EXPORT void Serialize(ui::AXNodeData* node_data) const; + BLINK_EXPORT void Serialize(ui::AXNodeData* node_data, + ui::AXMode accessibility_mode) const; BLINK_EXPORT bool IsAnchor() const; BLINK_EXPORT ax::mojom::CheckedState CheckedState() const; @@ -271,7 +273,6 @@ BLINK_EXPORT WebString ContainerLiveRegionStatus() const; BLINK_EXPORT bool SupportsRangeValue() const; - BLINK_EXPORT WebString ValueDescription() const; BLINK_EXPORT bool ValueForRange(float* out_value) const; BLINK_EXPORT bool MaxValueForRange(float* out_value) const; BLINK_EXPORT bool MinValueForRange(float* out_value) const; @@ -396,9 +397,6 @@ BLINK_EXPORT void GetAllObjectsWithChangedBounds( WebVector<WebAXObject>& out_changed_bounds_objects) const; - // Blink-internal DOM Node ID. Currently used for PDF exporting. - BLINK_EXPORT int GetDOMNodeId() const; - // Exchanges a WebAXObject with another. BLINK_EXPORT void Swap(WebAXObject& other);
diff --git a/third_party/blink/public/web/web_external_widget_client.h b/third_party/blink/public/web/web_external_widget_client.h index 073fb9b..c1c0c13 100644 --- a/third_party/blink/public/web/web_external_widget_client.h +++ b/third_party/blink/public/web/web_external_widget_client.h
@@ -77,10 +77,6 @@ // Apply the visual properties to the widget. virtual void UpdateVisualProperties( const VisualProperties& visual_properties) {} - - // Apply the updated screen rects. - virtual void UpdateScreenRects(const gfx::Rect& widget_screen_rect, - const gfx::Rect& window_screen_rect) {} }; } // namespace blink
diff --git a/third_party/blink/public/web/web_frame.h b/third_party/blink/public/web/web_frame.h index 521f5f6..ec599602 100644 --- a/third_party/blink/public/web/web_frame.h +++ b/third_party/blink/public/web/web_frame.h
@@ -44,7 +44,6 @@ namespace blink { class Frame; -class Visitor; class WebLocalFrame; class WebRemoteFrame; class WebSecurityOrigin; @@ -128,9 +127,15 @@ // Returns the first child frame. WebFrame* FirstChild() const; + // Returns the last child frame. + WebFrame* LastChild() const; + // Returns the next sibling frame. WebFrame* NextSibling() const; + // Returns the previous sibling frame. + WebFrame* PreviousSibling() const; + // Returns the next frame in "frame traversal order". WebFrame* TraverseNext() const; @@ -167,11 +172,6 @@ static Frame* ToCoreFrame(const WebFrame&); bool InShadowTree() const { return scope_ == mojom::TreeScopeType::kShadow; } - - static void TraceFrames(Visitor*, const WebFrame*); - - // Detaches a frame from its parent frame if it has one. - void DetachFromParent(); #endif protected: @@ -179,29 +179,7 @@ const base::UnguessableToken& frame_token); virtual ~WebFrame() = default; - // Sets the parent WITHOUT fulling adding it to the frame tree. - // Used to lie to a local frame that is replacing a remote frame, - // so it can properly start a navigation but wait to swap until - // commit-time. - void SetParent(WebFrame*); - - // Inserts the given frame as a child of this frame, so that it is the next - // child after |previousSibling|, or first child if |previousSibling| is null. - void InsertAfter(WebFrame* child, WebFrame* previous_sibling); - - // Adds the given frame as a child of this frame. - void AppendChild(WebFrame*); - private: -#if INSIDE_BLINK - friend class WebFrameTest; - - static void TraceFrame(Visitor*, const WebFrame*); -#endif - - // Removes the given child from this frame. - void RemoveChild(WebFrame*); - const mojom::TreeScopeType scope_; // See blink::Frame::frame_token_ for comments. @@ -209,14 +187,6 @@ // because a WebRemote's core frame is created inside the bowels of the Swap // call. const base::UnguessableToken frame_token_; - - WebFrame* parent_; - WebFrame* previous_sibling_; - WebFrame* next_sibling_; - WebFrame* first_child_; - WebFrame* last_child_; - - WebFrame* opener_; }; } // namespace blink
diff --git a/third_party/blink/public/web/web_frame_widget.h b/third_party/blink/public/web/web_frame_widget.h index b9d4b628..2ba6550 100644 --- a/third_party/blink/public/web/web_frame_widget.h +++ b/third_party/blink/public/web/web_frame_widget.h
@@ -206,6 +206,10 @@ // Override the device scale factor for testing. virtual void SetDeviceScaleFactorForTesting(float factor) = 0; + // Get the window segments for this widget. + // See https://github.com/webscreens/window-segments/blob/master/EXPLAINER.md + virtual const WebVector<gfx::Rect>& WindowSegments() const = 0; + private: // This private constructor and the class/friend declaration ensures that // WebFrameWidgetBase is the only concrete subclass that implements
diff --git a/third_party/blink/public/web/web_page_popup.h b/third_party/blink/public/web/web_page_popup.h index 760bbb6..28cbc9a 100644 --- a/third_party/blink/public/web/web_page_popup.h +++ b/third_party/blink/public/web/web_page_popup.h
@@ -41,6 +41,7 @@ class WebWidgetClient; class WebDocument; +class WebView; class WebPagePopupClient : public WebWidgetClient { public: @@ -59,13 +60,16 @@ CrossVariantMojoAssociatedRemote<mojom::WidgetHostInterfaceBase> widget_host, CrossVariantMojoAssociatedReceiver<mojom::WidgetInterfaceBase> widget); - virtual gfx::Point PositionRelativeToOwner() = 0; // The popup's accessibility tree is connected to the main document's // accessibility tree. Access to the popup document is needed to ensure the // popup's layout is clean before serializing the combined tree. virtual WebDocument GetDocument() = 0; + // Initialization is typically done after creation inside blink, but some + // content tests call Create directly so we expose an initialization. + virtual void InitializeForTesting(WebView* view) = 0; + // Web tests require access to the client for a WebPagePopup in order // to synchronously composite. virtual WebPagePopupClient* GetClientForTesting() const = 0;
diff --git a/third_party/blink/public/web/web_remote_frame_client.h b/third_party/blink/public/web/web_remote_frame_client.h index d647379b22..23c5555 100644 --- a/third_party/blink/public/web/web_remote_frame_client.h +++ b/third_party/blink/public/web/web_remote_frame_client.h
@@ -73,8 +73,17 @@ virtual void PageScaleFactorChanged(float page_scale_factor, bool is_pinch_gesture_active) {} + // Called when the local root's screen info changes. virtual void DidChangeScreenInfo(const ScreenInfo& original_screen_info) {} + // Called when the local root's window segments change. + virtual void DidChangeRootWindowSegments( + const std::vector<gfx::Rect>& root_widget_window_segments) {} + + // Called when the local root's visible viewport changes size. + virtual void DidChangeVisibleViewportSize( + const gfx::Size& visible_viewport_size) {} + protected: virtual ~WebRemoteFrameClient() = default; };
diff --git a/third_party/blink/public/web/web_widget.h b/third_party/blink/public/web/web_widget.h index 529eb6a2..5fbf8c8 100644 --- a/third_party/blink/public/web/web_widget.h +++ b/third_party/blink/public/web/web_widget.h
@@ -167,9 +167,6 @@ // Returns the state of focus for the WebWidget. virtual bool HasFocus() { return false; } - // Sets the root widget's window segments. - virtual void SetWindowSegments(WebVector<WebRect> window_segments) {} - // Returns the anchor and focus bounds of the current selection. // If the selection range is empty, it returns the caret bounds. virtual bool SelectionBounds(WebRect& anchor, WebRect& focus) const { @@ -287,6 +284,39 @@ // displayed. virtual const ScreenInfo& GetScreenInfo() = 0; + // Returns original (non-emulated) information about the screen where this + // view's widgets are being displayed. + virtual const ScreenInfo& GetOriginalScreenInfo() = 0; + + // Called to get the position of the widget's window in screen + // coordinates. Note, the window includes any decorations such as borders, + // scrollbars, URL bar, tab strip, etc. if they exist. + virtual gfx::Rect WindowRect() = 0; + + // Called to get the view rect in screen coordinates. This is the actual + // content view area, i.e. doesn't include any window decorations. + virtual gfx::Rect ViewRect() = 0; + + // Sets the screen rects (in screen coordinates). + virtual void SetScreenRects(const gfx::Rect& widget_screen_rect, + const gfx::Rect& window_screen_rect) = 0; + + // Sets the visible viewport size (in screen coorindates). + virtual void SetVisibleViewportSize( + const gfx::Size& visible_viewport_size) = 0; + + // Returns the visible viewport size (in screen coorindates). + virtual const gfx::Size& VisibleViewportSize() = 0; + + // Returns the emulator scale. + virtual float GetEmulatorScale() { return 1.0f; } + + // Sets the pending window rects (in screen coordinates). This is used because + // the window rect is delivered asynchronously to the browser. Pass in nullptr + // to clear the pending window rect once the browser has acknowledged the + // request. + virtual void SetPendingWindowRect(const gfx::Rect* window_screen_rect) = 0; + #if defined(OS_ANDROID) // Return the synchronous compositor registry. virtual SynchronousCompositorRegistry* GetSynchronousCompositorRegistry() = 0;
diff --git a/third_party/blink/public/web/web_widget_client.h b/third_party/blink/public/web/web_widget_client.h index aaa9df1..66066c9e 100644 --- a/third_party/blink/public/web/web_widget_client.h +++ b/third_party/blink/public/web/web_widget_client.h
@@ -113,19 +113,10 @@ // Called to show the widget according to the given policy. virtual void Show(WebNavigationPolicy) {} - // Returns original (non-emulated) information about the screen where this - // view's widgets are being displayed. - virtual ScreenInfo GetOriginalScreenInfo() { return {}; } - - // Called to get/set the position of the widget's window in screen + // Called to set the position of the widget's window in screen // coordinates. Note, the window includes any decorations such as borders, // scrollbars, URL bar, tab strip, etc. if they exist. - virtual WebRect WindowRect() { return WebRect(); } - virtual void SetWindowRect(const WebRect&) {} - - // Called to get the view rect in screen coordinates. This is the actual - // content view area, i.e. doesn't include any window decorations. - virtual WebRect ViewRect() { return WebRect(); } + virtual void SetWindowRect(const gfx::Rect&) {} // Set the size of the widget. virtual void SetSize(const gfx::Size&) {} @@ -239,9 +230,6 @@ // from background inactive to active. virtual void RecordTimeToFirstActivePaint(base::TimeDelta duration) {} - // Returns a scale of the device emulator from the widget. - virtual float GetEmulatorScale() const { return 1.0f; } - // Returns whether we handled a GestureScrollEvent. virtual void DidHandleGestureScrollEvent( const WebGestureEvent& gesture_event, @@ -305,15 +293,12 @@ // Apply the visual properties to the widget. virtual void UpdateVisualProperties( + bool emulator_enabled, const VisualProperties& visual_properties) {} - // Apply the updated screen rects. - virtual void UpdateScreenRects(const gfx::Rect& widget_screen_rect, - const gfx::Rect& window_screen_rect) {} - - // Device emulation control. - virtual void EnableDeviceEmulation(const DeviceEmulationParams& parameters) {} - virtual void DisableDeviceEmulation() {} + // After screen info has been updated the compositing to LCD text preference + // may need to be recalculated. + virtual void UpdateCompositingToLCDTextPreference() {} }; } // namespace blink
diff --git a/third_party/blink/renderer/bindings/generated_in_modules.gni b/third_party/blink/renderer/bindings/generated_in_modules.gni index ff90454..8fd82a0 100644 --- a/third_party/blink/renderer/bindings/generated_in_modules.gni +++ b/third_party/blink/renderer/bindings/generated_in_modules.gni
@@ -463,6 +463,10 @@ "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_password_credential_data.h", "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_payer_errors.cc", "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_payer_errors.h", + "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_payment_credential_creation_options.cc", + "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_payment_credential_creation_options.h", + "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_payment_credential_instrument.cc", + "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_payment_credential_instrument.h", "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_payment_currency_amount.cc", "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_payment_currency_amount.h", "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_payment_details_base.cc", @@ -1689,6 +1693,8 @@ "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_path_2d.h", "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_payment_address.cc", "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_payment_address.h", + "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_payment_credential.cc", + "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_payment_credential.h", "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_payment_instruments.cc", "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_payment_instruments.h", "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_payment_manager.cc",
diff --git a/third_party/blink/renderer/bindings/idl_in_modules.gni b/third_party/blink/renderer/bindings/idl_in_modules.gni index d3d26144..6e84308 100644 --- a/third_party/blink/renderer/bindings/idl_in_modules.gni +++ b/third_party/blink/renderer/bindings/idl_in_modules.gni
@@ -134,6 +134,9 @@ "//third_party/blink/renderer/modules/credentialmanager/otp_credential_request_options.idl", "//third_party/blink/renderer/modules/credentialmanager/password_credential.idl", "//third_party/blink/renderer/modules/credentialmanager/password_credential_data.idl", + "//third_party/blink/renderer/modules/credentialmanager/payment_credential.idl", + "//third_party/blink/renderer/modules/credentialmanager/payment_credential_creation_options.idl", + "//third_party/blink/renderer/modules/credentialmanager/payment_credential_instrument.idl", "//third_party/blink/renderer/modules/credentialmanager/public_key_credential.idl", "//third_party/blink/renderer/modules/credentialmanager/public_key_credential_creation_options.idl", "//third_party/blink/renderer/modules/credentialmanager/public_key_credential_descriptor.idl",
diff --git a/third_party/blink/renderer/core/DEPS b/third_party/blink/renderer/core/DEPS index 7cd45ee0..aa784f8 100644 --- a/third_party/blink/renderer/core/DEPS +++ b/third_party/blink/renderer/core/DEPS
@@ -159,6 +159,9 @@ "element_test.cc": [ "+third_party/blink/renderer/core/exported/web_plugin_container_impl.h" ], + "frame.cc": [ + "+third_party/blink/renderer/core/exported/web_remote_frame_impl.h" + ], "html_canvas_painter_test.cc": [ "+components/viz/test/test_context_provider.h", ],
diff --git a/third_party/blink/renderer/core/css/resolver/style_builder_converter.cc b/third_party/blink/renderer/core/css/resolver/style_builder_converter.cc index 140d08a..47be63f 100644 --- a/third_party/blink/renderer/core/css/resolver/style_builder_converter.cc +++ b/third_party/blink/renderer/core/css/resolver/style_builder_converter.cc
@@ -1549,8 +1549,11 @@ return StyleColor::CurrentColor(); if (StyleColor::IsSystemColor(value_id)) { CountSystemColorComputeToSelfUsage(state); - if (RuntimeEnabledFeatures::CSSSystemColorComputeToSelfEnabled()) - return StyleColor(value_id); + return StyleColor( + state.GetDocument().GetTextLinkColors().ColorFromCSSValue( + value, Color(), state.Style()->UsedColorScheme(), + for_visited_link), + value_id); } } return StyleColor(state.GetDocument().GetTextLinkColors().ColorFromCSSValue(
diff --git a/third_party/blink/renderer/core/css/style_color.cc b/third_party/blink/renderer/core/css/style_color.cc index 8f627d3..4137eb9 100644 --- a/third_party/blink/renderer/core/css/style_color.cc +++ b/third_party/blink/renderer/core/css/style_color.cc
@@ -5,6 +5,7 @@ #include "third_party/blink/renderer/core/css/style_color.h" #include "third_party/blink/renderer/core/layout/layout_theme.h" +#include "third_party/blink/renderer/platform/runtime_enabled_features.h" namespace blink { @@ -12,7 +13,7 @@ WebColorScheme color_scheme) const { if (IsCurrentColor()) return current_color; - if (color_keyword_ != CSSValueID::kInvalid) + if (EffectiveColorKeyword() != CSSValueID::kInvalid) return ColorFromKeyword(color_keyword_, color_scheme); return color_; } @@ -60,4 +61,12 @@ id == CSSValueID::kMenu; } +CSSValueID StyleColor::EffectiveColorKeyword() const { + if (!RuntimeEnabledFeatures::CSSSystemColorComputeToSelfEnabled()) { + return IsSystemColor(color_keyword_) ? CSSValueID::kInvalid + : color_keyword_; + } + return color_keyword_; +} + } // namespace blink
diff --git a/third_party/blink/renderer/core/css/style_color.h b/third_party/blink/renderer/core/css/style_color.h index 0f4b973..2b6917db 100644 --- a/third_party/blink/renderer/core/css/style_color.h +++ b/third_party/blink/renderer/core/css/style_color.h
@@ -32,22 +32,30 @@ #define THIRD_PARTY_BLINK_RENDERER_CORE_CSS_STYLE_COLOR_H_ #include "third_party/blink/public/platform/web_color_scheme.h" +#include "third_party/blink/renderer/core/core_export.h" #include "third_party/blink/renderer/core/css_value_keywords.h" #include "third_party/blink/renderer/platform/graphics/color.h" #include "third_party/blink/renderer/platform/wtf/allocator/allocator.h" namespace blink { -class StyleColor { +class CORE_EXPORT StyleColor { DISALLOW_NEW(); public: - StyleColor() : color_keyword_(CSSValueID::kCurrentcolor) {} + StyleColor() = default; explicit StyleColor(Color color) : color_(color), color_keyword_(CSSValueID::kInvalid) {} explicit StyleColor(RGBA32 color) : color_(color), color_keyword_(CSSValueID::kInvalid) {} explicit StyleColor(CSSValueID keyword) : color_keyword_(keyword) {} + // TODO(1081945): We need to store the color and keyword for system colors + // to allow forced colors mode to access system color keywords while the + // CSSSystemColorComputeToSelf feature is under development. Once + // CSSSystemColorComputeToSelf is enabled, we can remove this ctr and + // EffectiveColorKeyword() and use color_keyword_ directly, instead. + StyleColor(Color color, CSSValueID keyword) + : color_(color), color_keyword_(keyword) {} static StyleColor CurrentColor() { return StyleColor(); } bool IsCurrentColor() const { @@ -80,11 +88,15 @@ inline bool IsValid() const { // At least one of color_keyword_ and color_ should retain its default // value. - return color_keyword_ == CSSValueID::kInvalid || color_ == Color(); + return EffectiveColorKeyword() == CSSValueID::kInvalid || + color_ == Color() || IsSystemColor(EffectiveColorKeyword()); } Color color_; - CSSValueID color_keyword_; + CSSValueID color_keyword_ = CSSValueID::kCurrentcolor; + + private: + CSSValueID EffectiveColorKeyword() const; }; } // namespace blink
diff --git a/third_party/blink/renderer/core/dom/document.cc b/third_party/blink/renderer/core/dom/document.cc index a92fb85..2654a31b 100644 --- a/third_party/blink/renderer/core/dom/document.cc +++ b/third_party/blink/renderer/core/dom/document.cc
@@ -3108,8 +3108,7 @@ GetViewportData().Shutdown(); View()->Dispose(); - // TODO(crbug.com/729196): Trace why LocalFrameView::DetachFromLayout crashes. - CHECK(!View()->IsAttached()); + DCHECK(!View()->IsAttached()); // If the EmbeddedContentView of the document's frame owner doesn't match // view() then LocalFrameView::Dispose() didn't clear the owner's @@ -3170,8 +3169,7 @@ layout_view_ = nullptr; DetachLayoutTree(); - // TODO(crbug.com/729196): Trace why LocalFrameView::DetachFromLayout crashes. - CHECK(!View()->IsAttached()); + DCHECK(!View()->IsAttached()); if (this != &AXObjectCacheOwner()) { if (AXObjectCache* cache = ExistingAXObjectCache()) { @@ -3211,8 +3209,7 @@ media_query_matcher_->DocumentDetached(); lifecycle_.AdvanceTo(DocumentLifecycle::kStopped); - // TODO(crbug.com/729196): Trace why LocalFrameView::DetachFromLayout crashes. - CHECK(!View()->IsAttached()); + DCHECK(!View()->IsAttached()); needs_to_record_ukm_outlive_time_ = IsInMainFrame(); if (needs_to_record_ukm_outlive_time_) {
diff --git a/third_party/blink/renderer/core/editing/serializers/serialization.cc b/third_party/blink/renderer/core/editing/serializers/serialization.cc index d308055..b263dd818 100644 --- a/third_party/blink/renderer/core/editing/serializers/serialization.cc +++ b/third_party/blink/renderer/core/editing/serializers/serialization.cc
@@ -786,7 +786,9 @@ LocalFrame* frame = MakeGarbageCollected<LocalFrame>( MakeGarbageCollected<EmptyLocalFrameClient>(), *page, nullptr, // FrameOwner* - base::UnguessableToken::Create(), + nullptr, // Frame* parent + nullptr, // Frame* previous_sibling + FrameInsertType::kInsertInConstructor, base::UnguessableToken::Create(), nullptr, // WindowAgentFactory* nullptr // InterfaceRegistry* );
diff --git a/third_party/blink/renderer/core/exported/local_frame_client_impl.cc b/third_party/blink/renderer/core/exported/local_frame_client_impl.cc index b849df6..b997848 100644 --- a/third_party/blink/renderer/core/exported/local_frame_client_impl.cc +++ b/third_party/blink/renderer/core/exported/local_frame_client_impl.cc
@@ -431,26 +431,6 @@ return web_frame_->InShadowTree(); } -Frame* LocalFrameClientImpl::Opener() const { - return ToCoreFrame(web_frame_->Opener()); -} - -Frame* LocalFrameClientImpl::Parent() const { - return ToCoreFrame(web_frame_->Parent()); -} - -Frame* LocalFrameClientImpl::Top() const { - return ToCoreFrame(web_frame_->Top()); -} - -Frame* LocalFrameClientImpl::NextSibling() const { - return ToCoreFrame(web_frame_->NextSibling()); -} - -Frame* LocalFrameClientImpl::FirstChild() const { - return ToCoreFrame(web_frame_->FirstChild()); -} - void LocalFrameClientImpl::WillBeDetached() { web_frame_->WillBeDetached(); } @@ -478,7 +458,7 @@ client->FrameDetached(); if (type == FrameDetachType::kRemove) - web_frame_->DetachFromParent(); + ToCoreFrame(web_frame_)->DetachFromParent(); // Clear our reference to LocalFrame at the very end, in case the client // refers to it. @@ -658,7 +638,7 @@ LocalFrame* frame = origin_window ? origin_window->GetFrame() : nullptr; if (frame) { navigation_info->is_opener_navigation = - frame->Client()->Opener() == ToCoreFrame(web_frame_); + frame->Opener() == ToCoreFrame(web_frame_); navigation_info->initiator_frame_has_download_sandbox_flag = origin_window->IsSandboxed( network::mojom::blink::WebSandboxFlags::kDownloads);
diff --git a/third_party/blink/renderer/core/exported/local_frame_client_impl.h b/third_party/blink/renderer/core/exported/local_frame_client_impl.h index dd60568..1a9e59e 100644 --- a/third_party/blink/renderer/core/exported/local_frame_client_impl.h +++ b/third_party/blink/renderer/core/exported/local_frame_client_impl.h
@@ -85,11 +85,6 @@ bool HasWebView() const override; bool InShadowTree() const override; - Frame* Opener() const override; - Frame* Parent() const override; - Frame* Top() const override; - Frame* NextSibling() const override; - Frame* FirstChild() const override; void WillBeDetached() override; void Detached(FrameDetachType) override; void DispatchWillSendRequest(ResourceRequest&) override;
diff --git a/third_party/blink/renderer/core/exported/web_external_widget_impl.cc b/third_party/blink/renderer/core/exported/web_external_widget_impl.cc index c633871..753122b3 100644 --- a/third_party/blink/renderer/core/exported/web_external_widget_impl.cc +++ b/third_party/blink/renderer/core/exported/web_external_widget_impl.cc
@@ -202,6 +202,34 @@ return widget_base_->GetScreenInfo(); } +gfx::Rect WebExternalWidgetImpl::WindowRect() { + return widget_base_->WindowRect(); +} + +gfx::Rect WebExternalWidgetImpl::ViewRect() { + return widget_base_->ViewRect(); +} + +void WebExternalWidgetImpl::SetScreenRects( + const gfx::Rect& widget_screen_rect, + const gfx::Rect& window_screen_rect) { + widget_base_->SetScreenRects(widget_screen_rect, window_screen_rect); +} + +void WebExternalWidgetImpl::SetVisibleViewportSize( + const gfx::Size& visible_viewport_size) { + widget_base_->SetVisibleViewportSize(visible_viewport_size); +} + +const gfx::Size& WebExternalWidgetImpl::VisibleViewportSize() { + return widget_base_->VisibleViewportSize(); +} + +void WebExternalWidgetImpl::SetPendingWindowRect( + const gfx::Rect* window_screen_rect) { + widget_base_->SetPendingWindowRect(window_screen_rect); +} + void WebExternalWidgetImpl::DidOverscrollForTesting( const gfx::Vector2dF& overscroll_delta, const gfx::Vector2dF& accumulated_overscroll, @@ -263,13 +291,7 @@ client_->UpdateVisualProperties(visual_properties); } -void WebExternalWidgetImpl::UpdateScreenRects( - const gfx::Rect& widget_screen_rect, - const gfx::Rect& window_screen_rect) { - client_->UpdateScreenRects(widget_screen_rect, window_screen_rect); -} - -ScreenInfo WebExternalWidgetImpl::GetOriginalScreenInfo() { +const ScreenInfo& WebExternalWidgetImpl::GetOriginalScreenInfo() { return widget_base_->GetScreenInfo(); }
diff --git a/third_party/blink/renderer/core/exported/web_external_widget_impl.h b/third_party/blink/renderer/core/exported/web_external_widget_impl.h index e74e438a..5862e88 100644 --- a/third_party/blink/renderer/core/exported/web_external_widget_impl.h +++ b/third_party/blink/renderer/core/exported/web_external_widget_impl.h
@@ -90,6 +90,13 @@ void UpdateCompositorViewportRect( const gfx::Rect& compositor_viewport_pixel_rect) override; const ScreenInfo& GetScreenInfo() override; + gfx::Rect WindowRect() override; + gfx::Rect ViewRect() override; + void SetScreenRects(const gfx::Rect& widget_screen_rect, + const gfx::Rect& window_screen_rect) override; + void SetVisibleViewportSize(const gfx::Size& visible_viewport_size) override; + const gfx::Size& VisibleViewportSize() override; + void SetPendingWindowRect(const gfx::Rect* window_screen_rect) override; // WebExternalWidget overrides: void SetRootLayer(scoped_refptr<cc::Layer>) override; @@ -115,9 +122,7 @@ void CancelCompositionForPepper() override; void UpdateVisualProperties( const VisualProperties& visual_properties) override; - void UpdateScreenRects(const gfx::Rect& widget_screen_rect, - const gfx::Rect& window_screen_rect) override; - ScreenInfo GetOriginalScreenInfo() override; + const ScreenInfo& GetOriginalScreenInfo() override; gfx::Rect ViewportVisibleRect() override; private:
diff --git a/third_party/blink/renderer/core/exported/web_frame.cc b/third_party/blink/renderer/core/exported/web_frame.cc index b9ff4fe..a3a15dd1 100644 --- a/third_party/blink/renderer/core/exported/web_frame.cc +++ b/third_party/blink/renderer/core/exported/web_frame.cc
@@ -30,129 +30,7 @@ namespace blink { bool WebFrame::Swap(WebFrame* frame) { - using std::swap; - Frame* old_frame = ToCoreFrame(*this); - if (!old_frame->IsAttached()) - return false; - FrameOwner* owner = old_frame->Owner(); - FrameSwapScope frame_swap_scope(owner); - - // Unload the current Document in this frame: this calls unload handlers, - // detaches child frames, etc. Since this runs script, make sure this frame - // wasn't detached before continuing with the swap. - // FIXME: There is no unit test for this condition, so one needs to be - // written. - if (!old_frame->DetachDocument()) { - // If the Swap() fails, it should be because the frame has been detached - // already. Otherwise the caller will not detach the frame when we return - // false, and the browser and renderer will disagree about the destruction - // of |old_frame|. - CHECK(!old_frame->IsAttached()); - return false; - } - - // If there is a local parent, it might incorrectly declare itself complete - // during the detach phase of this swap. Suppress its completion until swap is - // over, at which point its completion will be correctly dependent on its - // newly swapped-in child. - auto* parent_web_local_frame = DynamicTo<WebLocalFrameImpl>(parent_); - std::unique_ptr<IncrementLoadEventDelayCount> delay_parent_load = - parent_web_local_frame - ? std::make_unique<IncrementLoadEventDelayCount>( - *parent_web_local_frame->GetFrame()->GetDocument()) - : nullptr; - - if (parent_) { - if (parent_->first_child_ == this) - parent_->first_child_ = frame; - if (parent_->last_child_ == this) - parent_->last_child_ = frame; - // FIXME: This is due to the fact that the |frame| may be a provisional - // local frame, because we don't know if the navigation will result in - // an actual page or something else, like a download. The PlzNavigate - // project will remove the need for provisional local frames. - frame->parent_ = parent_; - } - - if (previous_sibling_) { - previous_sibling_->next_sibling_ = frame; - swap(previous_sibling_, frame->previous_sibling_); - } - if (next_sibling_) { - next_sibling_->previous_sibling_ = frame; - swap(next_sibling_, frame->next_sibling_); - } - - Page* page = old_frame->GetPage(); - AtomicString name = old_frame->Tree().GetName(); - - Frame* old_frame_opener = old_frame->Opener(); - // Opener needs to be cleared here so Detach() would not call - // DidChangeOpener(). - if (old_frame_opener) { - old_frame->SetOpenerDoNotNotify(nullptr); - } - - v8::HandleScope handle_scope(v8::Isolate::GetCurrent()); - WindowProxyManager::GlobalProxyVector global_proxies; - old_frame->GetWindowProxyManager()->ClearForSwap(); - old_frame->GetWindowProxyManager()->ReleaseGlobalProxies(global_proxies); - - // Although the Document in this frame is now unloaded, many resources - // associated with the frame itself have not yet been freed yet. - old_frame->Detach(FrameDetachType::kSwap); - - // Clone the state of the current Frame into the one being swapped in. - // FIXME: This is a bit clunky; this results in pointless decrements and - // increments of connected subframes. - if (auto* web_local_frame = DynamicTo<WebLocalFrameImpl>(frame)) { - // TODO(dcheng): in an ideal world, both branches would just use - // WebFrame's initializeCoreFrame() helper. However, Blink - // currently requires a 'provisional' local frame to serve as a - // placeholder for loading state when swapping to a local frame. - // In this case, the core LocalFrame is already initialized, so just - // update a bit of state. - LocalFrame& local_frame = *web_local_frame->GetFrame(); - DCHECK_EQ(owner, local_frame.Owner()); - if (owner) { - owner->SetContentFrame(local_frame); - - if (auto* frame_owner_element = DynamicTo<HTMLFrameOwnerElement>(owner)) { - frame_owner_element->SetEmbeddedContentView(local_frame.View()); - } - } else { - Page* other_page = local_frame.GetPage(); - other_page->SetMainFrame(&local_frame); - // This trace event is needed to detect the main frame of the - // renderer in telemetry metrics. See crbug.com/692112#c11. - TRACE_EVENT_INSTANT1("loading", "markAsMainFrame", - TRACE_EVENT_SCOPE_THREAD, "frame", - ToTraceValue(&local_frame)); - } - } else { - To<WebRemoteFrameImpl>(frame)->InitializeCoreFrame( - *page, owner, name, &old_frame->window_agent_factory()); - } - - Frame* new_frame = ToCoreFrame(*frame); - - if (old_frame_opener) - new_frame->SetOpenerDoNotNotify(old_frame_opener); - old_frame->GetOpenedFrameTracker().TransferTo(new_frame); - - new_frame->GetWindowProxyManager()->SetGlobalProxies(global_proxies); - - parent_ = nullptr; - - if (auto* frame_owner_element = DynamicTo<HTMLFrameOwnerElement>(owner)) { - if (auto* new_local_frame = DynamicTo<LocalFrame>(new_frame)) { - probe::FrameOwnerContentUpdated(new_local_frame, frame_owner_element); - } else if (auto* old_local_frame = DynamicTo<LocalFrame>(old_frame)) { - probe::FrameOwnerContentUpdated(old_local_frame, frame_owner_element); - } - } - - return true; + return ToCoreFrame(*this)->Swap(frame); } void WebFrame::Detach() { @@ -175,87 +53,47 @@ } WebFrame* WebFrame::Opener() const { - CHECK(ToCoreFrame(*this)); return FromFrame(ToCoreFrame(*this)->Opener()); } void WebFrame::ClearOpener() { - CHECK(ToCoreFrame(*this)); ToCoreFrame(*this)->SetOpenerDoNotNotify(nullptr); } -void WebFrame::InsertAfter(WebFrame* new_child, WebFrame* previous_sibling) { - new_child->parent_ = this; - - WebFrame* next; - if (!previous_sibling) { - // Insert at the beginning if no previous sibling is specified. - next = first_child_; - first_child_ = new_child; - } else { - DCHECK_EQ(previous_sibling->parent_, this); - next = previous_sibling->next_sibling_; - previous_sibling->next_sibling_ = new_child; - new_child->previous_sibling_ = previous_sibling; - } - - if (next) { - new_child->next_sibling_ = next; - next->previous_sibling_ = new_child; - } else { - last_child_ = new_child; - } - - ToCoreFrame(*this)->Tree().InvalidateScopedChildCount(); - ToCoreFrame(*this)->GetPage()->IncrementSubframeCount(); -} - -void WebFrame::AppendChild(WebFrame* child) { - // TODO(dcheng): Original code asserts that the frames have the same Page. - // We should add an equivalent check... figure out what. - InsertAfter(child, last_child_); -} - -void WebFrame::RemoveChild(WebFrame* child) { - child->parent_ = nullptr; - - if (first_child_ == child) - first_child_ = child->next_sibling_; - else - child->previous_sibling_->next_sibling_ = child->next_sibling_; - - if (last_child_ == child) - last_child_ = child->previous_sibling_; - else - child->next_sibling_->previous_sibling_ = child->previous_sibling_; - - child->previous_sibling_ = child->next_sibling_ = nullptr; - - ToCoreFrame(*this)->Tree().InvalidateScopedChildCount(); - ToCoreFrame(*this)->GetPage()->DecrementSubframeCount(); -} - -void WebFrame::SetParent(WebFrame* parent) { - parent_ = parent; -} - WebFrame* WebFrame::Parent() const { - return parent_; + Frame* core_frame = ToCoreFrame(*this); + CHECK(core_frame); + return FromFrame(core_frame->Parent()); } WebFrame* WebFrame::Top() const { - WebFrame* frame = const_cast<WebFrame*>(this); - for (WebFrame* parent = frame; parent; parent = parent->parent_) - frame = parent; - return frame; + Frame* core_frame = ToCoreFrame(*this); + CHECK(core_frame); + return FromFrame(core_frame->Top()); } WebFrame* WebFrame::FirstChild() const { - return first_child_; + Frame* core_frame = ToCoreFrame(*this); + CHECK(core_frame); + return FromFrame(core_frame->FirstChild()); +} + +WebFrame* WebFrame::LastChild() const { + Frame* core_frame = ToCoreFrame(*this); + CHECK(core_frame); + return FromFrame(core_frame->LastChild()); } WebFrame* WebFrame::NextSibling() const { - return next_sibling_; + Frame* core_frame = ToCoreFrame(*this); + CHECK(core_frame); + return FromFrame(core_frame->NextSibling()); +} + +WebFrame* WebFrame::PreviousSibling() const { + Frame* core_frame = ToCoreFrame(*this); + CHECK(core_frame); + return FromFrame(core_frame->PreviousSibling()); } WebFrame* WebFrame::TraverseNext() const { @@ -289,52 +127,13 @@ WebFrame::WebFrame(mojom::blink::TreeScopeType scope, const base::UnguessableToken& frame_token) - : scope_(scope), - frame_token_(frame_token), - parent_(nullptr), - previous_sibling_(nullptr), - next_sibling_(nullptr), - first_child_(nullptr), - last_child_(nullptr), - opener_(nullptr) { + : scope_(scope), frame_token_(frame_token) { DCHECK(frame_token_); } -void WebFrame::TraceFrame(Visitor* visitor, const WebFrame* frame) { - if (!frame) - return; - - if (frame->IsWebLocalFrame()) { - visitor->Trace(To<WebLocalFrameImpl>(frame)); - } else { - visitor->Trace(To<WebRemoteFrameImpl>(frame)); - } -} - -void WebFrame::TraceFrames(Visitor* visitor, const WebFrame* frame) { - DCHECK(frame); - TraceFrame(visitor, frame->parent_); - for (const WebFrame* child = frame->FirstChild(); child; - child = child->NextSibling()) - TraceFrame(visitor, child); -} - void WebFrame::Close() { } -void WebFrame::DetachFromParent() { - if (!Parent()) - return; - - // TODO(dcheng): This should really just check if there's a parent, and call - // RemoveChild() if so. Once provisional frames are removed, this check can be - // simplified to just check Parent(). See https://crbug.com/578349. - if (IsWebLocalFrame() && ToWebLocalFrame()->IsProvisional()) - return; - - Parent()->RemoveChild(this); -} - Frame* WebFrame::ToCoreFrame(const WebFrame& frame) { if (auto* web_local_frame = DynamicTo<WebLocalFrameImpl>(&frame)) return web_local_frame->GetFrame();
diff --git a/third_party/blink/renderer/core/exported/web_frame_test.cc b/third_party/blink/renderer/core/exported/web_frame_test.cc index 80c4d147..2352e586 100644 --- a/third_party/blink/renderer/core/exported/web_frame_test.cc +++ b/third_party/blink/renderer/core/exported/web_frame_test.cc
@@ -389,10 +389,6 @@ DocumentUpdateReason::kTest); } - WebFrame* LastChild(WebFrame* frame) { return frame->last_child_; } - WebFrame* PreviousSibling(WebFrame* frame) { - return frame->previous_sibling_; - } void SwapAndVerifyFirstChildConsistency(const char* const message, WebFrame* parent, WebFrame* new_child); @@ -9035,8 +9031,8 @@ EXPECT_EQ(new_child, parent->FirstChild()); EXPECT_EQ(new_child->Parent(), parent); EXPECT_EQ(new_child, - parent->last_child_->previous_sibling_->previous_sibling_); - EXPECT_EQ(new_child->NextSibling(), parent->last_child_->previous_sibling_); + parent->LastChild()->PreviousSibling()->PreviousSibling()); + EXPECT_EQ(new_child->NextSibling(), parent->LastChild()->PreviousSibling()); } TEST_F(WebFrameSwapTest, SwapFirstChild) { @@ -9085,13 +9081,16 @@ SCOPED_TRACE(message); parent->FirstChild()->NextSibling()->Swap(new_child); - EXPECT_EQ(new_child, parent->FirstChild()->NextSibling()); - EXPECT_EQ(new_child, parent->last_child_->previous_sibling_); - EXPECT_EQ(new_child->Parent(), parent); - EXPECT_EQ(new_child, parent->FirstChild()->NextSibling()); - EXPECT_EQ(new_child->previous_sibling_, parent->FirstChild()); - EXPECT_EQ(new_child, parent->last_child_->previous_sibling_); - EXPECT_EQ(new_child->NextSibling(), parent->last_child_); + Frame* parent_frame = WebFrame::ToCoreFrame(*parent); + Frame* new_child_frame = WebFrame::ToCoreFrame(*new_child); + + EXPECT_EQ(new_child_frame, parent_frame->FirstChild()->NextSibling()); + EXPECT_EQ(new_child_frame, parent_frame->LastChild()->PreviousSibling()); + EXPECT_EQ(new_child_frame->Parent(), parent_frame); + EXPECT_EQ(new_child_frame, parent_frame->FirstChild()->NextSibling()); + EXPECT_EQ(new_child_frame->PreviousSibling(), parent_frame->FirstChild()); + EXPECT_EQ(new_child_frame, parent_frame->LastChild()->PreviousSibling()); + EXPECT_EQ(new_child_frame->NextSibling(), parent_frame->LastChild()); } TEST_F(WebFrameSwapTest, SwapMiddleChild) { @@ -9118,12 +9117,13 @@ WebFrame* parent, WebFrame* new_child) { SCOPED_TRACE(message); - LastChild(parent)->Swap(new_child); + parent->LastChild()->Swap(new_child); - EXPECT_EQ(new_child, LastChild(parent)); + EXPECT_EQ(new_child, parent->LastChild()); EXPECT_EQ(new_child->Parent(), parent); + EXPECT_EQ(new_child, parent->LastChild()->PreviousSibling()->NextSibling()); EXPECT_EQ(new_child, parent->FirstChild()->NextSibling()->NextSibling()); - EXPECT_EQ(new_child->previous_sibling_, parent->FirstChild()->NextSibling()); + EXPECT_EQ(new_child->PreviousSibling(), parent->FirstChild()->NextSibling()); } TEST_F(WebFrameSwapTest, SwapLastChild) { @@ -9178,7 +9178,7 @@ old_frame->Swap(new_frame); EXPECT_FALSE(new_frame->FirstChild()); - EXPECT_FALSE(new_frame->last_child_); + EXPECT_FALSE(new_frame->LastChild()); } TEST_F(WebFrameSwapTest, EventsOnDisconnectedSubDocumentSkipped) { @@ -9339,7 +9339,7 @@ ASSERT_TRUE(last_child->IsObject()); WebRemoteFrame* remote_frame = frame_test_helpers::CreateRemote(); - WebFrameTest::LastChild(MainFrame())->Swap(remote_frame); + MainFrame()->LastChild()->Swap(remote_frame); v8::Local<v8::Value> remote_window_top = MainFrame()->ExecuteScriptAndReturnValue(WebScriptSource("saved.top")); EXPECT_TRUE(remote_window_top->IsObject()); @@ -9358,7 +9358,7 @@ v8::HandleScope scope(v8::Isolate::GetCurrent()); WebRemoteFrame* remote_frame = frame_test_helpers::CreateRemote(); - LastChild(MainFrame())->Swap(remote_frame); + MainFrame()->LastChild()->Swap(remote_frame); v8::Local<v8::Value> remote_window = MainFrame()->ExecuteScriptAndReturnValue(WebScriptSource("window[2]")); EXPECT_TRUE(remote_window->IsObject()); @@ -9372,7 +9372,7 @@ v8::HandleScope scope(v8::Isolate::GetCurrent()); WebRemoteFrame* remote_frame = frame_test_helpers::CreateRemote(); - LastChild(MainFrame())->Swap(remote_frame); + MainFrame()->LastChild()->Swap(remote_frame); v8::Local<v8::Value> remote_window_length = MainFrame()->ExecuteScriptAndReturnValue( WebScriptSource("window[2].length")); @@ -9387,7 +9387,7 @@ // named window access on a remote window works. For now, just test that // accessing a named property doesn't crash. WebRemoteFrame* remote_frame = frame_test_helpers::CreateRemote(); - LastChild(MainFrame())->Swap(remote_frame); + MainFrame()->LastChild()->Swap(remote_frame); remote_frame->SetReplicatedOrigin( WebSecurityOrigin(SecurityOrigin::CreateUniqueOpaque()), false); v8::Local<v8::Value> remote_window_property = @@ -9401,7 +9401,7 @@ v8::HandleScope scope(isolate); WebRemoteFrame* remote_frame = frame_test_helpers::CreateRemote(); - LastChild(MainFrame())->Swap(remote_frame); + MainFrame()->LastChild()->Swap(remote_frame); v8::Local<v8::Value> to_string_result = MainFrame()->ExecuteScriptAndReturnValue( WebScriptSource("Object.prototype.toString.call(window[2])")); @@ -9964,18 +9964,18 @@ frame_test_helpers::CreateLocalChild(*parent, "name1")); EXPECT_EQ(first_frame, parent->FirstChild()); - EXPECT_EQ(nullptr, PreviousSibling(first_frame)); + EXPECT_EQ(nullptr, first_frame->PreviousSibling()); EXPECT_EQ(second_frame, first_frame->NextSibling()); - EXPECT_EQ(first_frame, PreviousSibling(second_frame)); + EXPECT_EQ(first_frame, second_frame->PreviousSibling()); EXPECT_EQ(third_frame, second_frame->NextSibling()); - EXPECT_EQ(second_frame, PreviousSibling(third_frame)); + EXPECT_EQ(second_frame, third_frame->PreviousSibling()); EXPECT_EQ(fourth_frame, third_frame->NextSibling()); - EXPECT_EQ(third_frame, PreviousSibling(fourth_frame)); + EXPECT_EQ(third_frame, fourth_frame->PreviousSibling()); EXPECT_EQ(nullptr, fourth_frame->NextSibling()); - EXPECT_EQ(fourth_frame, LastChild(parent)); + EXPECT_EQ(fourth_frame, parent->LastChild()); EXPECT_EQ(parent, first_frame->Parent()); EXPECT_EQ(parent, second_frame->Parent()); @@ -10825,7 +10825,7 @@ } void SwapLocalFrameToRemoteFrame() { - LastChild(MainFrame())->Swap(RemoteFrame()); + MainFrame()->LastChild()->Swap(RemoteFrame()); } WebLocalFrame* MainFrame() { return frame_; } @@ -12003,6 +12003,8 @@ // Ensures scrolling a focused editable text into view that's located in the // root scroller works by scrolling the root scroller. TEST_F(WebFrameSimTest, TestScrollFocusedEditableInRootScroller) { + ScopedImplicitRootScrollerForTest implicit_root_scroller(true); + WebView().MainFrameWidget()->Resize(WebSize(500, 300)); WebView().SetDefaultPageScaleLimits(1.f, 4); WebView().EnableFakePageScaleAnimationForTesting(true); @@ -13385,6 +13387,50 @@ frame->PrintEnd(); } +class RemoteFrameIntersectionClient + : public frame_test_helpers::TestWebRemoteFrameClient { + public: + RemoteFrameIntersectionClient() = default; + ~RemoteFrameIntersectionClient() override = default; + + void UpdateRemoteViewportIntersection( + const ViewportIntersectionState& intersection_state) override { + intersection_state_ = intersection_state; + frame_test_helpers::TestWebRemoteFrameClient:: + UpdateRemoteViewportIntersection(intersection_state); + } + + const ViewportIntersectionState& GetIntersectionState() const { + return intersection_state_; + } + + private: + ViewportIntersectionState intersection_state_; +}; + +TEST_F(WebFrameSimTest, MainFrameTransformOffsetPixelSnapped) { + SimRequest request("https://example.com/test.html", "text/html"); + LoadURL("https://example.com/test.html"); + request.Complete(R"HTML( + <!DOCTYPE html> + <iframe id="iframe" style="position:absolute;top:7px;left:13.5px;border:none"></iframe> + )HTML"); + RemoteFrameIntersectionClient client; + WebRemoteFrame* remote_frame = frame_test_helpers::CreateRemote(&client); + MainFrame().FirstChild()->Swap(remote_frame); + Compositor().BeginFrame(); + RunPendingTasks(); + EXPECT_TRUE(client.GetIntersectionState() + .main_frame_transform.IsIdentityOrIntegerTranslation()); + EXPECT_EQ( + client.GetIntersectionState().main_frame_transform.matrix().get(0, 3), + 14.f); + EXPECT_EQ( + client.GetIntersectionState().main_frame_transform.matrix().get(1, 3), + 7.f); + MainFrame().FirstChild()->Detach(); +} + TEST_F(WebFrameTest, MediaQueriesInLocalFrameInsideRemote) { frame_test_helpers::WebViewHelper helper; helper.InitializeRemote();
diff --git a/third_party/blink/renderer/core/exported/web_page_popup_impl.cc b/third_party/blink/renderer/core/exported/web_page_popup_impl.cc index 6ad2d78..2de170ac 100644 --- a/third_party/blink/renderer/core/exported/web_page_popup_impl.cc +++ b/third_party/blink/renderer/core/exported/web_page_popup_impl.cc
@@ -52,6 +52,7 @@ #include "third_party/blink/renderer/core/frame/local_frame_client.h" #include "third_party/blink/renderer/core/frame/local_frame_ukm_aggregator.h" #include "third_party/blink/renderer/core/frame/local_frame_view.h" +#include "third_party/blink/renderer/core/frame/screen_metrics_emulator.h" #include "third_party/blink/renderer/core/frame/settings.h" #include "third_party/blink/renderer/core/frame/visual_viewport.h" #include "third_party/blink/renderer/core/frame/web_frame_widget_base.h" @@ -100,16 +101,16 @@ IntRect RootWindowRect(LocalFrame&) override { // There is only one frame/widget in a WebPagePopup, so we can ignore the // param. - return popup_->WindowRectInScreen(); + return IntRect(popup_->WindowRectInScreen()); } IntRect ViewportToScreen(const IntRect& rect, const LocalFrameView*) const override { WebRect rect_in_screen(rect); - WebRect window_rect = popup_->WindowRectInScreen(); + gfx::Rect window_rect = popup_->WindowRectInScreen(); popup_->WidgetClient()->ConvertViewportToWindow(&rect_in_screen); - rect_in_screen.x += window_rect.x; - rect_in_screen.y += window_rect.y; + rect_in_screen.x += window_rect.x(); + rect_in_screen.y += window_rect.y(); return rect_in_screen; } @@ -266,12 +267,29 @@ DCHECK(!page_); } +void WebPagePopupImpl::InitializeForTesting(WebView* web_view) { + SetWebView(static_cast<WebViewImpl*>(web_view)); +} + +void WebPagePopupImpl::SetWebView(WebViewImpl* web_view) { + DCHECK(web_view); + DCHECK(!web_view_); + web_view_ = web_view; + if (auto* widget = web_view->MainFrameWidgetBase()) { + if (auto* device_emulator = widget->DeviceEmulator()) { + opener_widget_screen_origin_ = device_emulator->ViewRectOrigin(); + opener_original_widget_screen_origin_ = + device_emulator->original_view_rect().origin(); + opener_emulator_scale_ = device_emulator->scale(); + } + } +} + void WebPagePopupImpl::Initialize(WebViewImpl* web_view, PagePopupClient* popup_client) { - DCHECK(web_view); DCHECK(popup_client); - web_view_ = web_view; popup_client_ = popup_client; + SetWebView(web_view); Page::PageClients page_clients; FillWithEmptyClients(page_clients); @@ -327,7 +345,9 @@ auto* frame = MakeGarbageCollected<LocalFrame>( empty_local_frame_client, *page_, - /* FrameOwner* */ nullptr, base::UnguessableToken::Create(), + /* FrameOwner* */ nullptr, /* Frame* parent */ nullptr, + /* Frame* previous_sibling */ nullptr, + FrameInsertType::kInsertInConstructor, base::UnguessableToken::Create(), window_agent_factory, /* InterfaceRegistry* */ nullptr); frame->SetPagePopupOwner(popup_client_->OwnerElement()); @@ -493,6 +513,33 @@ return widget_base_->GetScreenInfo(); } +gfx::Rect WebPagePopupImpl::WindowRect() { + return widget_base_->WindowRect(); +} + +gfx::Rect WebPagePopupImpl::ViewRect() { + return widget_base_->ViewRect(); +} + +void WebPagePopupImpl::SetScreenRects(const gfx::Rect& widget_screen_rect, + const gfx::Rect& window_screen_rect) { + widget_base_->SetScreenRects(widget_screen_rect, window_screen_rect); +} + +void WebPagePopupImpl::SetVisibleViewportSize( + const gfx::Size& visible_viewport_size) { + widget_base_->SetVisibleViewportSize(visible_viewport_size); +} + +const gfx::Size& WebPagePopupImpl::VisibleViewportSize() { + return widget_base_->VisibleViewportSize(); +} + +void WebPagePopupImpl::SetPendingWindowRect( + const gfx::Rect* window_screen_rect) { + widget_base_->SetPendingWindowRect(window_screen_rect); +} + void WebPagePopupImpl::SetCompositorVisible(bool visible) { widget_base_->SetCompositorVisible(visible); } @@ -515,7 +562,7 @@ popup_client_->Update(forced_update); if (forced_update) - SetWindowRect(WindowRectInScreen()); + SetWindowRect(IntRect(WindowRectInScreen())); } void WebPagePopupImpl::DestroyPage() { @@ -553,7 +600,15 @@ } } - WidgetClient()->SetWindowRect(rect_in_screen); + gfx::Rect window_rect = rect_in_screen; + + // Popups aren't emulated, but the WidgetScreenRect and WindowScreenRect + // given to them are. When they set the WindowScreenRect it is based on those + // emulated values, so we reverse the emulation. + if (opener_emulator_scale_) + EmulatedToScreenRect(window_rect); + + WidgetClient()->SetWindowRect(window_rect); } void WebPagePopupImpl::SetRootLayer(scoped_refptr<cc::Layer> layer) { @@ -593,13 +648,13 @@ new_size_in_viewport.height); WidgetClient()->ConvertViewportToWindow(&new_size); - WebRect window_rect = WindowRectInScreen(); + gfx::Rect window_rect = WindowRectInScreen(); // TODO(bokan): We should only call into this if the bounds actually changed // but this reveals a bug in Aura. crbug.com/633140. - window_rect.width = new_size.width; - window_rect.height = new_size.height; - SetWindowRect(window_rect); + window_rect.set_width(new_size.width); + window_rect.set_height(new_size.height); + SetWindowRect(IntRect(window_rect)); if (page_) { MainFrame().View()->Resize(new_size_in_viewport); @@ -729,8 +784,8 @@ bool WebPagePopupImpl::IsViewportPointInWindow(int x, int y) { WebRect point_in_window(x, y, 0, 0); WidgetClient()->ConvertViewportToWindow(&point_in_window); - WebRect window_rect = WindowRectInScreen(); - return IntRect(0, 0, window_rect.width, window_rect.height) + gfx::Rect window_rect = WindowRectInScreen(); + return IntRect(0, 0, window_rect.width(), window_rect.height()) .Contains(IntPoint(point_in_window.x, point_in_window.y)); } @@ -780,16 +835,12 @@ void WebPagePopupImpl::UpdateVisualProperties( const VisualProperties& visual_properties) { - WidgetClient()->UpdateVisualProperties(visual_properties); + WidgetClient()->UpdateVisualProperties(/*emulator_enabled=*/false, + visual_properties); } -void WebPagePopupImpl::UpdateScreenRects(const gfx::Rect& widget_screen_rect, - const gfx::Rect& window_screen_rect) { - WidgetClient()->UpdateScreenRects(widget_screen_rect, window_screen_rect); -} - -ScreenInfo WebPagePopupImpl::GetOriginalScreenInfo() { - return WidgetClient()->GetOriginalScreenInfo(); +const ScreenInfo& WebPagePopupImpl::GetOriginalScreenInfo() { + return widget_base_->GetScreenInfo(); } gfx::Rect WebPagePopupImpl::ViewportVisibleRect() { @@ -881,13 +932,6 @@ return MainFrame().DomWindow(); } -gfx::Point WebPagePopupImpl::PositionRelativeToOwner() { - WebRect root_window_rect = WindowRectInScreen(); - WebRect window_rect = WindowRectInScreen(); - return gfx::Point(window_rect.x - root_window_rect.x, - window_rect.y - root_window_rect.y); -} - WebDocument WebPagePopupImpl::GetDocument() { return WebDocument(MainFrame().GetDocument()); } @@ -901,8 +945,8 @@ popup_client_->CancelPopup(); } -WebRect WebPagePopupImpl::WindowRectInScreen() const { - return WidgetClient()->WindowRect(); +gfx::Rect WebPagePopupImpl::WindowRectInScreen() const { + return widget_base_->WindowRect(); } void WebPagePopupImpl::InjectGestureScrollEvent( @@ -915,6 +959,30 @@ device, delta, granularity, scrollable_area_element_id, injected_type); } +void WebPagePopupImpl::ScreenRectToEmulated(gfx::Rect& screen_rect) { + if (!opener_emulator_scale_) + return; + screen_rect.set_x( + opener_widget_screen_origin_.x() + + (screen_rect.x() - opener_original_widget_screen_origin_.x()) / + opener_emulator_scale_); + screen_rect.set_y( + opener_widget_screen_origin_.y() + + (screen_rect.y() - opener_original_widget_screen_origin_.y()) / + opener_emulator_scale_); +} + +void WebPagePopupImpl::EmulatedToScreenRect(gfx::Rect& screen_rect) { + if (!opener_emulator_scale_) + return; + screen_rect.set_x(opener_original_widget_screen_origin_.x() + + (screen_rect.x() - opener_widget_screen_origin_.x()) * + opener_emulator_scale_); + screen_rect.set_y(opener_original_widget_screen_origin_.y() + + (screen_rect.y() - opener_widget_screen_origin_.y()) * + opener_emulator_scale_); +} + // WebPagePopup ---------------------------------------------------------------- WebPagePopup* WebPagePopup::Create(
diff --git a/third_party/blink/renderer/core/exported/web_page_popup_impl.h b/third_party/blink/renderer/core/exported/web_page_popup_impl.h index 2a6fdbf7..7ca8c63 100644 --- a/third_party/blink/renderer/core/exported/web_page_popup_impl.h +++ b/third_party/blink/renderer/core/exported/web_page_popup_impl.h
@@ -104,9 +104,9 @@ LocalDOMWindow* Window(); // WebPagePopup implementation. - gfx::Point PositionRelativeToOwner() override; WebDocument GetDocument() override; WebPagePopupClient* GetClientForTesting() const override; + void InitializeForTesting(WebView* view) override; // PagePopup implementation. void PostMessageToPopup(const String& message) override; @@ -135,10 +135,10 @@ void ScheduleAnimation() override; void UpdateVisualProperties( const VisualProperties& visual_properties) override; - void UpdateScreenRects(const gfx::Rect& widget_screen_rect, - const gfx::Rect& window_screen_rect) override; - ScreenInfo GetOriginalScreenInfo() override; + const ScreenInfo& GetOriginalScreenInfo() override; gfx::Rect ViewportVisibleRect() override; + void ScreenRectToEmulated(gfx::Rect& screen_rect) override; + void EmulatedToScreenRect(gfx::Rect& screen_rect) override; // WebWidget implementation. // NOTE: The WebWidget may still be used after requesting the popup to be @@ -208,6 +208,13 @@ void UpdateCompositorViewportRect( const gfx::Rect& compositor_viewport_pixel_rect) override; const ScreenInfo& GetScreenInfo() override; + gfx::Rect WindowRect() override; + gfx::Rect ViewRect() override; + void SetScreenRects(const gfx::Rect& widget_screen_rect, + const gfx::Rect& window_screen_rect) override; + void SetVisibleViewportSize(const gfx::Size& visible_viewport_size) override; + const gfx::Size& VisibleViewportSize() override; + void SetPendingWindowRect(const gfx::Rect* window_screen_rect) override; // This may only be called if page_ is non-null. LocalFrame& MainFrame() const; @@ -231,8 +238,9 @@ widget); void DestroyPage(); void SetRootLayer(scoped_refptr<cc::Layer>); + void SetWebView(WebViewImpl* web_view); - WebRect WindowRectInScreen() const; + gfx::Rect WindowRectInScreen() const; void InjectGestureScrollEvent(WebGestureDevice device, const gfx::Vector2dF& delta, @@ -241,7 +249,7 @@ WebInputEvent::Type injected_type); WebPagePopupClient* web_page_popup_client_; - WebViewImpl* web_view_; + WebViewImpl* web_view_ = nullptr; // WebPagePopupImpl wraps its own Page that renders the content in the popup. // This member is non-null between the call to Initialize() and the call to // ClosePopup(). If page_ is non-null, it is guaranteed to have an attached @@ -258,6 +266,14 @@ bool suppress_next_keypress_event_ = false; Persistent<DOMRect> popup_owner_client_rect_; + // When emulation is enabled, and a popup widget is opened, the popup widget + // needs these values to move between the popup's (non-emulated) coordinates + // and the opener widget's (emulated) coordinates. They are only valid when + // the |opener_emulator_scale_| is non-zero. + gfx::Point opener_widget_screen_origin_; + gfx::Point opener_original_widget_screen_origin_; + float opener_emulator_scale_ = 0; + // Base functionality all widgets have. This is a member as to avoid // complicated inheritance structures. std::unique_ptr<WidgetBase> widget_base_;
diff --git a/third_party/blink/renderer/core/exported/web_remote_frame_impl.cc b/third_party/blink/renderer/core/exported/web_remote_frame_impl.cc index 38a292b..05e8761 100644 --- a/third_party/blink/renderer/core/exported/web_remote_frame_impl.cc +++ b/third_party/blink/renderer/core/exported/web_remote_frame_impl.cc
@@ -99,7 +99,8 @@ // TODO(dcheng): Remove the need for this and strongly enforce this condition // with a DCHECK. frame->InitializeCoreFrame( - page, nullptr, g_null_atom, + page, nullptr, nullptr, nullptr, FrameInsertType::kInsertInConstructor, + g_null_atom, opener ? &ToCoreFrame(*opener)->window_agent_factory() : nullptr); Frame* opener_frame = opener ? ToCoreFrame(*opener) : nullptr; ToCoreFrame(*frame)->SetOpenerDoNotNotify(opener_frame); @@ -123,7 +124,8 @@ RuntimeEnabledFeatures::PortalsEnabled(element->GetExecutionContext())); HTMLPortalElement* portal = static_cast<HTMLPortalElement*>(element); LocalFrame* host_frame = portal->GetDocument().GetFrame(); - frame->InitializeCoreFrame(*host_frame->GetPage(), portal, g_null_atom, + frame->InitializeCoreFrame(*host_frame->GetPage(), portal, nullptr, nullptr, + FrameInsertType::kInsertInConstructor, g_null_atom, &host_frame->window_agent_factory()); return frame; @@ -134,7 +136,6 @@ void WebRemoteFrameImpl::Trace(Visitor* visitor) const { visitor->Trace(frame_client_); visitor->Trace(frame_); - WebFrame::TraceFrames(visitor, this); } bool WebRemoteFrameImpl::IsWebLocalFrame() const { @@ -182,7 +183,6 @@ auto* child = MakeGarbageCollected<WebLocalFrameImpl>( util::PassKey<WebRemoteFrameImpl>(), scope, client, interface_registry, frame_token); - InsertAfter(child, previous_sibling); auto* owner = MakeGarbageCollected<RemoteFrameOwner>( frame_policy, frame_owner_properties, frame_owner_element_type); @@ -193,7 +193,9 @@ window_agent_factory = &GetFrame()->window_agent_factory(); } - child->InitializeCoreFrame(*GetFrame()->GetPage(), owner, name, + child->InitializeCoreFrame(*GetFrame()->GetPage(), owner, this, + previous_sibling, + FrameInsertType::kInsertInConstructor, name, window_agent_factory, opener); DCHECK(child->GetFrame()); return child; @@ -202,11 +204,18 @@ void WebRemoteFrameImpl::InitializeCoreFrame( Page& page, FrameOwner* owner, + WebFrame* parent, + WebFrame* previous_sibling, + FrameInsertType insert_type, const AtomicString& name, WindowAgentFactory* window_agent_factory) { + Frame* parent_frame = parent ? ToCoreFrame(*parent) : nullptr; + Frame* previous_sibling_frame = + previous_sibling ? ToCoreFrame(*previous_sibling) : nullptr; SetCoreFrame(MakeGarbageCollected<RemoteFrame>( - frame_client_.Get(), page, owner, GetFrameToken(), window_agent_factory, - interface_registry_, associated_interface_provider_)); + frame_client_.Get(), page, owner, parent_frame, previous_sibling_frame, + insert_type, GetFrameToken(), window_agent_factory, interface_registry_, + associated_interface_provider_)); GetFrame()->CreateView(); frame_->Tree().SetName(name); } @@ -224,7 +233,6 @@ auto* child = MakeGarbageCollected<WebRemoteFrameImpl>( scope, client, interface_registry, associated_interface_provider, frame_token); - AppendChild(child); auto* owner = MakeGarbageCollected<RemoteFrameOwner>( frame_policy, WebFrameOwnerProperties(), frame_owner_element_type); WindowAgentFactory* window_agent_factory = nullptr; @@ -234,7 +242,8 @@ window_agent_factory = &GetFrame()->window_agent_factory(); } - child->InitializeCoreFrame(*GetFrame()->GetPage(), owner, name, + child->InitializeCoreFrame(*GetFrame()->GetPage(), owner, this, LastChild(), + FrameInsertType::kInsertInConstructor, name, window_agent_factory); Frame* opener_frame = opener ? ToCoreFrame(*opener) : nullptr; ToCoreFrame(*child)->SetOpenerDoNotNotify(opener_frame);
diff --git a/third_party/blink/renderer/core/exported/web_remote_frame_impl.h b/third_party/blink/renderer/core/exported/web_remote_frame_impl.h index 284e359..6440a4d0 100644 --- a/third_party/blink/renderer/core/exported/web_remote_frame_impl.h +++ b/third_party/blink/renderer/core/exported/web_remote_frame_impl.h
@@ -111,9 +111,11 @@ v8::Local<v8::Object> GlobalProxy() const override; WebRect GetCompositingRect() override; WebString UniqueName() const override; - void InitializeCoreFrame(Page&, FrameOwner*, + WebFrame* parent, + WebFrame* previous_sibling, + FrameInsertType, const AtomicString& name, WindowAgentFactory*); RemoteFrame* GetFrame() const { return frame_.Get(); }
diff --git a/third_party/blink/renderer/core/exported/web_view_impl.cc b/third_party/blink/renderer/core/exported/web_view_impl.cc index 9cc2358c..51969bc6 100644 --- a/third_party/blink/renderer/core/exported/web_view_impl.cc +++ b/third_party/blink/renderer/core/exported/web_view_impl.cc
@@ -2543,6 +2543,8 @@ if (!frame->IsLocalFrame()) continue; auto* local_frame = DynamicTo<LocalFrame>(frame); + if (!local_frame->GetFrameScheduler()) + continue; local_frame->GetFrameScheduler()->ReportActiveSchedulerTrackedFeatures(); } } @@ -3034,12 +3036,21 @@ } void WebViewImpl::EnableDeviceEmulation(const DeviceEmulationParams& params) { + web_widget_->EnableDeviceEmulation(params); +} + +void WebViewImpl::ActivateDevToolsTransform( + const DeviceEmulationParams& params) { TransformationMatrix device_emulation_transform = dev_tools_emulator_->EnableDeviceEmulation(params); SetDeviceEmulationTransform(device_emulation_transform); } void WebViewImpl::DisableDeviceEmulation() { + web_widget_->DisableDeviceEmulation(); +} + +void WebViewImpl::DeactivateDevToolsTransform() { dev_tools_emulator_->DisableDeviceEmulation(); SetDeviceEmulationTransform(TransformationMatrix()); }
diff --git a/third_party/blink/renderer/core/exported/web_view_impl.h b/third_party/blink/renderer/core/exported/web_view_impl.h index 7fd37bd5..03f200d 100644 --- a/third_party/blink/renderer/core/exported/web_view_impl.h +++ b/third_party/blink/renderer/core/exported/web_view_impl.h
@@ -254,6 +254,8 @@ void EnableAutoResizeMode(const gfx::Size& min_viewport_size, const gfx::Size& max_viewport_size); void DisableAutoResizeMode(); + void ActivateDevToolsTransform(const DeviceEmulationParams&); + void DeactivateDevToolsTransform(); SkColor BackgroundColor() const; Color BaseBackgroundColor() const;
diff --git a/third_party/blink/renderer/core/feature_policy/document_policy_parser.cc b/third_party/blink/renderer/core/feature_policy/document_policy_parser.cc index 059ed7e..6d60b7a 100644 --- a/third_party/blink/renderer/core/feature_policy/document_policy_parser.cc +++ b/third_party/blink/renderer/core/feature_policy/document_policy_parser.cc
@@ -40,6 +40,8 @@ return "Boolean"; case mojom::blink::PolicyValueType::kDecDouble: return "Double"; + case mojom::blink::PolicyValueType::kEnum: + return "Enum"; } }
diff --git a/third_party/blink/renderer/core/frame/BUILD.gn b/third_party/blink/renderer/core/frame/BUILD.gn index d620770..a48e695 100644 --- a/third_party/blink/renderer/core/frame/BUILD.gn +++ b/third_party/blink/renderer/core/frame/BUILD.gn
@@ -184,6 +184,8 @@ "scheduling.h", "screen.cc", "screen.h", + "screen_metrics_emulator.cc", + "screen_metrics_emulator.h", "settings.cc", "settings.h", "settings_delegate.cc",
diff --git a/third_party/blink/renderer/core/frame/dom_window.cc b/third_party/blink/renderer/core/frame/dom_window.cc index f8ed1d86..aa86e6d 100644 --- a/third_party/blink/renderer/core/frame/dom_window.cc +++ b/third_party/blink/renderer/core/frame/dom_window.cc
@@ -117,7 +117,7 @@ if (!GetFrame() || !GetFrame()->Client()) return nullptr; - Frame* opener = GetFrame()->Client()->Opener(); + Frame* opener = GetFrame()->Opener(); return opener ? opener->DomWindow() : nullptr; }
diff --git a/third_party/blink/renderer/core/frame/frame.cc b/third_party/blink/renderer/core/frame/frame.cc index 89a56f8..55ba92e 100644 --- a/third_party/blink/renderer/core/frame/frame.cc +++ b/third_party/blink/renderer/core/frame/frame.cc
@@ -39,8 +39,10 @@ #include "third_party/blink/renderer/core/accessibility/ax_object_cache.h" #include "third_party/blink/renderer/core/dom/document_type.h" #include "third_party/blink/renderer/core/dom/events/event.h" +#include "third_party/blink/renderer/core/dom/increment_load_event_delay_count.h" #include "third_party/blink/renderer/core/dom/node_computed_style.h" #include "third_party/blink/renderer/core/execution_context/window_agent_factory.h" +#include "third_party/blink/renderer/core/exported/web_remote_frame_impl.h" #include "third_party/blink/renderer/core/frame/local_dom_window.h" #include "third_party/blink/renderer/core/frame/remote_frame_owner.h" #include "third_party/blink/renderer/core/frame/settings.h" @@ -99,10 +101,15 @@ visitor->Trace(window_proxy_manager_); visitor->Trace(dom_window_); visitor->Trace(client_); + visitor->Trace(opener_); + visitor->Trace(parent_); + visitor->Trace(previous_sibling_); + visitor->Trace(next_sibling_); + visitor->Trace(first_child_); + visitor->Trace(last_child_); visitor->Trace(navigation_rate_limiter_); visitor->Trace(window_agent_factory_); visitor->Trace(opened_frame_tracker_); - visitor->Trace(opener_); } void Frame::Detach(FrameDetachType type) { @@ -354,6 +361,9 @@ Frame::Frame(FrameClient* client, Page& page, FrameOwner* owner, + Frame* parent, + Frame* previous_sibling, + FrameInsertType insert_type, const base::UnguessableToken& frame_token, WindowProxyManager* window_proxy_manager, WindowAgentFactory* inheriting_agent_factory) @@ -363,6 +373,7 @@ ad_frame_type_(mojom::blink::AdFrameType::kNonAd), client_(client), window_proxy_manager_(window_proxy_manager), + parent_(parent), navigation_rate_limiter_(*this), window_agent_factory_(inheriting_agent_factory ? inheriting_agent_factory @@ -371,6 +382,11 @@ devtools_frame_token_(client->GetDevToolsFrameToken()), frame_token_(frame_token) { InstanceCounters::IncrementCounter(InstanceCounters::kFrameCounter); + if (parent_ && insert_type == FrameInsertType::kInsertInConstructor) { + parent_->InsertAfter(this, previous_sibling); + } else { + CHECK(!previous_sibling); + } } void Frame::Initialize() { @@ -410,6 +426,33 @@ owner->SetRequiredCsp(properties->required_csp); } +void Frame::InsertAfter(Frame* new_child, Frame* previous_sibling) { + // Parent must match the one set in the constructor + CHECK_EQ(new_child->parent_, this); + + Frame* next; + if (!previous_sibling) { + // Insert at the beginning if no previous sibling is specified. + next = first_child_; + first_child_ = new_child; + } else { + DCHECK_EQ(previous_sibling->parent_, this); + next = previous_sibling->next_sibling_; + previous_sibling->next_sibling_ = new_child; + new_child->previous_sibling_ = previous_sibling; + } + + if (next) { + new_child->next_sibling_ = next; + next->previous_sibling_ = new_child; + } else { + last_child_ = new_child; + } + + Tree().InvalidateScopedChildCount(); + GetPage()->IncrementSubframeCount(); +} + void Frame::ScheduleFormSubmission(FrameScheduler* scheduler, FormSubmission* form_submission) { form_submit_navigation_task_ = PostCancellableTask( @@ -450,6 +493,208 @@ opener_ = opener; } +Frame* Frame::Top() { + Frame* parent; + for (parent = this; parent->Parent(); parent = parent->Parent()) { + } + return parent; +} + +bool Frame::Swap(WebFrame* frame) { + using std::swap; + Frame* old_frame = this; + if (!old_frame->IsAttached()) + return false; + FrameOwner* owner = old_frame->Owner(); + FrameSwapScope frame_swap_scope(owner); + Frame* new_frame_parent = WebFrame::ToCoreFrame(*frame) && frame->Parent() + ? WebFrame::ToCoreFrame(*frame->Parent()) + : nullptr; + + Page* page = old_frame->GetPage(); + AtomicString name = old_frame->Tree().GetName(); + Frame* old_frame_opener = old_frame->Opener(); + Frame* old_frame_parent = old_frame->parent_; + Frame* old_frame_previous_sibling = old_frame->previous_sibling_; + Frame* old_frame_next_sibling = old_frame->next_sibling_; + + // Unload the current Document in this frame: this calls unload handlers, + // detaches child frames, etc. Since this runs script, make sure this frame + // wasn't detached before continuing with the swap. + // FIXME: There is no unit test for this condition, so one needs to be + // written. + if (!old_frame->DetachDocument()) { + // If the Swap() fails, it should be because the frame has been detached + // already. Otherwise the caller will not detach the frame when we return + // false, and the browser and renderer will disagree about the destruction + // of |old_frame|. + CHECK(!old_frame->IsAttached()); + return false; + } + + // If there is a local parent, it might incorrectly declare itself complete + // during the detach phase of this swap. Suppress its completion until swap is + // over, at which point its completion will be correctly dependent on its + // newly swapped-in child. + auto* parent_local_frame = DynamicTo<LocalFrame>(parent_.Get()); + std::unique_ptr<IncrementLoadEventDelayCount> delay_parent_load = + parent_local_frame ? std::make_unique<IncrementLoadEventDelayCount>( + *parent_local_frame->GetDocument()) + : nullptr; + + v8::HandleScope handle_scope(v8::Isolate::GetCurrent()); + WindowProxyManager::GlobalProxyVector global_proxies; + old_frame->GetWindowProxyManager()->ClearForSwap(); + old_frame->GetWindowProxyManager()->ReleaseGlobalProxies(global_proxies); + + // This must be before Detach so DidChangeOpener is not called. + if (old_frame_opener) + old_frame->SetOpenerDoNotNotify(nullptr); + + // Although the Document in this frame is now unloaded, many resources + // associated with the frame itself have not yet been freed yet. + old_frame->Detach(FrameDetachType::kSwap); + if (frame->IsWebRemoteFrame()) { + CHECK(!WebFrame::ToCoreFrame(*frame)); + To<WebRemoteFrameImpl>(frame)->InitializeCoreFrame( + *page, owner, WebFrame::FromFrame(old_frame_parent), nullptr, + FrameInsertType::kInsertLater, name, + &old_frame->window_agent_factory()); + } + + Frame* new_frame = WebFrame::ToCoreFrame(*frame); + CHECK(new_frame); + + // Swaps the |new_frame| and |old_frame| in their frame trees. + // For the |old_frame|, we use the frame tree position prior to the Detach() + // call. + Frame* new_frame_previous_sibling = new_frame->previous_sibling_; + Frame* new_frame_next_sibling = new_frame->next_sibling_; + + new_frame->parent_ = old_frame_parent; + new_frame->previous_sibling_ = old_frame_previous_sibling; + new_frame->next_sibling_ = old_frame_next_sibling; + if (new_frame_previous_sibling) { + new_frame_previous_sibling->next_sibling_ = old_frame; + } + if (new_frame_next_sibling) { + new_frame_next_sibling->previous_sibling_ = old_frame; + } + if (new_frame_parent) { + if (new_frame_parent->first_child_ == new_frame) { + new_frame_parent->first_child_ = old_frame; + } + if (new_frame_parent->last_child_ == new_frame) { + new_frame_parent->last_child_ = old_frame; + } + } + old_frame->parent_ = new_frame_parent; + old_frame->previous_sibling_ = new_frame_previous_sibling; + old_frame->next_sibling_ = new_frame_next_sibling; + if (old_frame_previous_sibling) { + old_frame_previous_sibling->next_sibling_ = new_frame; + } + if (old_frame_next_sibling) { + old_frame_next_sibling->previous_sibling_ = new_frame; + } + if (old_frame_parent) { + if (old_frame_parent->first_child_ == old_frame) { + old_frame_parent->first_child_ = new_frame; + } + if (old_frame_parent->last_child_ == old_frame) { + old_frame_parent->last_child_ = new_frame; + } + } + + if (old_frame_opener) { + new_frame->SetOpenerDoNotNotify(old_frame_opener); + } + opened_frame_tracker_.TransferTo(new_frame); + + // Clone the state of the current Frame into the one being swapped in. + // FIXME: This is a bit clunky; this results in pointless decrements and + // increments of connected subframes. + if (auto* new_local_frame = DynamicTo<LocalFrame>(new_frame)) { + // TODO(dcheng): in an ideal world, both branches would just use + // WebFrame's initializeCoreFrame() helper. However, Blink + // currently requires a 'provisional' local frame to serve as a + // placeholder for loading state when swapping to a local frame. + // In this case, the core LocalFrame is already initialized, so just + // update a bit of state. + DCHECK_EQ(owner, new_local_frame->Owner()); + if (owner) { + owner->SetContentFrame(*new_local_frame); + + if (auto* frame_owner_element = DynamicTo<HTMLFrameOwnerElement>(owner)) { + frame_owner_element->SetEmbeddedContentView(new_local_frame->View()); + } + } else { + Page* other_page = new_local_frame->GetPage(); + other_page->SetMainFrame(new_local_frame); + // This trace event is needed to detect the main frame of the + // renderer in telemetry metrics. See crbug.com/692112#c11. + TRACE_EVENT_INSTANT1("loading", "markAsMainFrame", + TRACE_EVENT_SCOPE_THREAD, "frame", + ::blink::ToTraceValue(new_local_frame)); + } + } + + new_frame->GetWindowProxyManager()->SetGlobalProxies(global_proxies); + + parent_ = nullptr; + + if (auto* frame_owner_element = DynamicTo<HTMLFrameOwnerElement>(owner)) { + if (auto* new_local_frame = DynamicTo<LocalFrame>(new_frame)) { + probe::FrameOwnerContentUpdated(new_local_frame, frame_owner_element); + } else if (auto* old_local_frame = DynamicTo<LocalFrame>(old_frame)) { + probe::FrameOwnerContentUpdated(old_local_frame, frame_owner_element); + } + } + + return true; +} + +void Frame::RemoveChild(Frame* child) { + CHECK_EQ(child->parent_, this); + child->parent_ = nullptr; + + if (first_child_ == child) { + first_child_ = child->next_sibling_; + } else { + CHECK(child->previous_sibling_) + << " child " << child << " child->previous_sibling_ " + << child->previous_sibling_; + child->previous_sibling_->next_sibling_ = child->next_sibling_; + } + + if (last_child_ == child) { + last_child_ = child->previous_sibling_; + } else { + CHECK(child->next_sibling_); + child->next_sibling_->previous_sibling_ = child->previous_sibling_; + } + + child->previous_sibling_ = child->next_sibling_ = nullptr; + + Tree().InvalidateScopedChildCount(); + GetPage()->DecrementSubframeCount(); +} + +void Frame::DetachFromParent() { + if (!Parent()) + return; + + // TODO(dcheng): This should really just check if there's a parent, and call + // RemoveChild() if so. Once provisional frames are removed, this check can be + // simplified to just check Parent(). See https://crbug.com/578349. + if (auto* local_frame = DynamicTo<LocalFrame>(this)) { + if (local_frame->IsProvisional()) { + return; + } + } + Parent()->RemoveChild(this); +} + STATIC_ASSERT_ENUM(FrameDetachType::kRemove, WebRemoteFrameClient::DetachType::kRemove); STATIC_ASSERT_ENUM(FrameDetachType::kSwap,
diff --git a/third_party/blink/renderer/core/frame/frame.h b/third_party/blink/renderer/core/frame/frame.h index 7c0f953..8ecf406 100644 --- a/third_party/blink/renderer/core/frame/frame.h +++ b/third_party/blink/renderer/core/frame/frame.h
@@ -78,9 +78,14 @@ class WindowProxyManager; struct FrameLoadRequest; class WindowAgentFactory; +class WebFrame; enum class FrameDetachType { kRemove, kSwap }; +// kInsertLater will create a provisional frame, i.e. it will have a parent +// frame but not be inserted into the frame tree. +enum class FrameInsertType { kInsertInConstructor, kInsertLater }; + // Frame is the base class of LocalFrame and RemoteFrame and should only contain // functionality shared between both. In particular, any method related to // input, layout, or painting probably belongs on LocalFrame. @@ -318,11 +323,34 @@ void SetOpenerDoNotNotify(Frame* opener); + // Returns the frame that opened this frame or null if there is none. Frame* Opener() const { return opener_; } - const OpenedFrameTracker& GetOpenedFrameTracker() const { - return opened_frame_tracker_; - } + // Returns the parent frame or null if this is the top-most frame. + Frame* Parent() const { return parent_; } + + // Returns the top-most frame in the hierarchy containing this frame. + Frame* Top(); + + // Returns the first child frame. + Frame* FirstChild() const { return first_child_; } + + // Returns the previous sibling frame. + Frame* PreviousSibling() const { return previous_sibling_; } + + // Returns the next sibling frame. + Frame* NextSibling() const { return next_sibling_; } + + // Returns the last child frame. + Frame* LastChild() const { return last_child_; } + + // Detaches a frame from its parent frame if it has one. + void DetachFromParent(); + + bool Swap(WebFrame*); + + // Removes the given child from this frame. + void RemoveChild(Frame* child); protected: // |inheriting_agent_factory| should basically be set to the parent frame or @@ -333,6 +361,9 @@ Frame(FrameClient*, Page&, FrameOwner*, + Frame* parent, + Frame* previous_sibling, + FrameInsertType insert_type, const base::UnguessableToken& frame_token, WindowProxyManager*, WindowAgentFactory* inheriting_agent_factory); @@ -386,10 +417,22 @@ mojom::blink::AdFrameType ad_frame_type_; private: + // Inserts the given frame as a child of this frame, so that it is the next + // child after |previous_sibling|, or first child if |previous_sibling| is + // null. The child frame's parent must be set in the constructor. + void InsertAfter(Frame* new_child, Frame* previous_sibling); + Member<FrameClient> client_; const Member<WindowProxyManager> window_proxy_manager_; FrameLifecycle lifecycle_; + Member<Frame> opener_; + Member<Frame> parent_; + Member<Frame> previous_sibling_; + Member<Frame> next_sibling_; + Member<Frame> first_child_; + Member<Frame> last_child_; + NavigationRateLimiter navigation_rate_limiter_; // Feature policy state inherited from an opener. It is always empty for child @@ -444,8 +487,6 @@ TaskHandle form_submit_navigation_task_; OpenedFrameTracker opened_frame_tracker_; - - Member<Frame> opener_; }; inline FrameClient* Frame::Client() const {
diff --git a/third_party/blink/renderer/core/frame/frame_client.h b/third_party/blink/renderer/core/frame/frame_client.h index a491590c..9f531dc 100644 --- a/third_party/blink/renderer/core/frame/frame_client.h +++ b/third_party/blink/renderer/core/frame/frame_client.h
@@ -13,7 +13,6 @@ namespace blink { -class Frame; class LocalFrame; enum class FrameDetachType; @@ -23,14 +22,6 @@ virtual void Detached(FrameDetachType) = 0; - // TODO(https://crbug.com/1051144): Move this getter to the Frame class. - virtual Frame* Opener() const = 0; - - virtual Frame* Parent() const = 0; - virtual Frame* Top() const = 0; - virtual Frame* NextSibling() const = 0; - virtual Frame* FirstChild() const = 0; - virtual unsigned BackForwardLength() = 0; virtual void OnMainFrameIntersectionChanged(
diff --git a/third_party/blink/renderer/core/frame/frame_view.cc b/third_party/blink/renderer/core/frame/frame_view.cc index e744f609..b62c5a27 100644 --- a/third_party/blink/renderer/core/frame/frame_view.cc +++ b/third_party/blink/renderer/core/frame/frame_view.cc
@@ -163,11 +163,15 @@ occlusion_state = FrameOcclusionState::kUnknown; } + // An iframe's content is always pixel-snapped, even if the iframe element has + // non-pixel-aligned location. + gfx::Transform main_frame_gfx_transform = + TransformationMatrix::ToTransform(main_frame_transform_matrix); + main_frame_gfx_transform.RoundTranslationComponents(); SetViewportIntersection( {viewport_intersection, mainframe_intersection, WebRect(), occlusion_state, frame.GetMainFrameViewportSize(), - frame.GetMainFrameScrollOffset(), - TransformationMatrix::ToTransform(main_frame_transform_matrix)}); + frame.GetMainFrameScrollOffset(), main_frame_gfx_transform}); UpdateFrameVisibility(!viewport_intersection.IsEmpty());
diff --git a/third_party/blink/renderer/core/frame/local_frame.cc b/third_party/blink/renderer/core/frame/local_frame.cc index f340c803..c870560 100644 --- a/third_party/blink/renderer/core/frame/local_frame.cc +++ b/third_party/blink/renderer/core/frame/local_frame.cc
@@ -563,15 +563,13 @@ content_capture_manager_ = nullptr; } - // TODO(crbug.com/729196): Trace why LocalFrameView::DetachFromLayout crashes. - // It seems to crash because Frame is detached before LocalFrameView. // Verify here that any LocalFrameView has been detached by now. if (view_ && view_->IsAttached()) { - CHECK(DeprecatedLocalOwner()); - CHECK(DeprecatedLocalOwner()->OwnedEmbeddedContentView()); - CHECK_EQ(view_, DeprecatedLocalOwner()->OwnedEmbeddedContentView()); + DCHECK(DeprecatedLocalOwner()); + DCHECK(DeprecatedLocalOwner()->OwnedEmbeddedContentView()); + DCHECK_EQ(view_, DeprecatedLocalOwner()->OwnedEmbeddedContentView()); } - CHECK(!view_ || !view_->IsAttached()); + DCHECK(!view_ || !view_->IsAttached()); // This is the earliest that scripting can be disabled: // - FrameLoader::Detach() can fire XHR abort events @@ -588,15 +586,13 @@ // !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! DCHECK(!IsDetached()); - // TODO(crbug.com/729196): Trace why LocalFrameView::DetachFromLayout crashes. - CHECK(!view_->IsAttached()); + DCHECK(!view_->IsAttached()); Client()->WillBeDetached(); // Notify ScriptController that the frame is closing, since its cleanup ends // up calling back to LocalFrameClient via WindowProxy. GetScriptController().ClearForClose(); - // TODO(crbug.com/729196): Trace why LocalFrameView::DetachFromLayout crashes. - CHECK(!view_->IsAttached()); + DCHECK(!view_->IsAttached()); SetView(nullptr); GetEventHandlerRegistry().DidRemoveAllEventHandlers(*DomWindow()); @@ -1289,6 +1285,9 @@ LocalFrame::LocalFrame(LocalFrameClient* client, Page& page, FrameOwner* owner, + Frame* parent, + Frame* previous_sibling, + FrameInsertType insert_type, const base::UnguessableToken& frame_token, WindowAgentFactory* inheriting_agent_factory, InterfaceRegistry* interface_registry, @@ -1296,6 +1295,9 @@ : Frame(client, page, owner, + parent, + previous_sibling, + insert_type, frame_token, MakeGarbageCollected<LocalWindowProxyManager>(*this), inheriting_agent_factory), @@ -1425,7 +1427,7 @@ // Navigating window.opener cross origin, without user activation. See // https://crbug.com/813643. - if (Client()->Opener() == target_frame && !HasTransientUserActivation(this) && + if (Opener() == target_frame && !HasTransientUserActivation(this) && !target_frame.GetSecurityContext()->GetSecurityOrigin()->CanAccess( SecurityOrigin::Create(destination_url).get())) { UseCounter::Count(GetDocument(), @@ -1462,7 +1464,7 @@ kPropagatesToAuxiliaryBrowsingContexts) && (GetSecurityContext()->IsSandboxed( network::mojom::blink::WebSandboxFlags::kPopups) || - target_frame.Client()->Opener() != this)) { + target_frame.Opener() != this)) { PrintNavigationErrorMessage( target_frame, "The frame attempting navigation is sandboxed and is trying " @@ -1535,9 +1537,9 @@ // and/or "parent" relation). Requiring some sort of relation prevents a // document from navigating arbitrary, unrelated top-level frames. if (!target_frame.Tree().Parent()) { - if (target_frame == Client()->Opener()) + if (target_frame == Opener()) return true; - if (CanAccessAncestor(origin, target_frame.Client()->Opener())) + if (CanAccessAncestor(origin, target_frame.Opener())) return true; }
diff --git a/third_party/blink/renderer/core/frame/local_frame.h b/third_party/blink/renderer/core/frame/local_frame.h index f7acdea..e912f534 100644 --- a/third_party/blink/renderer/core/frame/local_frame.h +++ b/third_party/blink/renderer/core/frame/local_frame.h
@@ -159,6 +159,9 @@ LocalFrameClient*, Page&, FrameOwner*, + Frame* parent, + Frame* previous_sibling, + FrameInsertType insert_type, const base::UnguessableToken& frame_token, WindowAgentFactory* inheriting_agent_factory, InterfaceRegistry*,
diff --git a/third_party/blink/renderer/core/frame/remote_frame.cc b/third_party/blink/renderer/core/frame/remote_frame.cc index a2b3ae9..e8e417d 100644 --- a/third_party/blink/renderer/core/frame/remote_frame.cc +++ b/third_party/blink/renderer/core/frame/remote_frame.cc
@@ -92,6 +92,9 @@ RemoteFrameClient* client, Page& page, FrameOwner* owner, + Frame* parent, + Frame* previous_sibling, + FrameInsertType insert_type, const base::UnguessableToken& frame_token, WindowAgentFactory* inheriting_agent_factory, InterfaceRegistry* interface_registry, @@ -99,6 +102,9 @@ : Frame(client, page, owner, + parent, + previous_sibling, + insert_type, frame_token, MakeGarbageCollected<RemoteWindowProxyManager>(*this), inheriting_agent_factory), @@ -194,7 +200,7 @@ bool initiator_frame_is_ad = false; if (window) { - is_opener_navigation = window->GetFrame()->Client()->Opener() == this; + is_opener_navigation = window->GetFrame()->Opener() == this; initiator_frame_has_download_sandbox_flag = window->IsSandboxed(network::mojom::blink::WebSandboxFlags::kDownloads); initiator_frame_is_ad = window->GetFrame()->IsAdSubframe(); @@ -524,7 +530,7 @@ void RemoteFrame::BubbleLogicalScroll(mojom::blink::ScrollDirection direction, ui::ScrollGranularity granularity) { - Frame* parent_frame = Client()->Parent(); + Frame* parent_frame = Parent(); DCHECK(parent_frame); DCHECK(parent_frame->IsLocalFrame()); @@ -801,7 +807,7 @@ void RemoteFrame::ApplyReplicatedFeaturePolicyHeader() { const FeaturePolicy* parent_feature_policy = nullptr; - if (Frame* parent_frame = Client()->Parent()) { + if (Frame* parent_frame = Parent()) { parent_feature_policy = parent_frame->GetSecurityContext()->GetFeaturePolicy(); }
diff --git a/third_party/blink/renderer/core/frame/remote_frame.h b/third_party/blink/renderer/core/frame/remote_frame.h index 4f3e965d..ce345fa3 100644 --- a/third_party/blink/renderer/core/frame/remote_frame.h +++ b/third_party/blink/renderer/core/frame/remote_frame.h
@@ -47,6 +47,9 @@ RemoteFrame(RemoteFrameClient*, Page&, FrameOwner*, + Frame* parent, + Frame* previous_sibling, + FrameInsertType insert_type, const base::UnguessableToken& frame_token, WindowAgentFactory* inheriting_agent_factory, InterfaceRegistry*,
diff --git a/third_party/blink/renderer/core/frame/remote_frame_client.h b/third_party/blink/renderer/core/frame/remote_frame_client.h index d204711..acf457d 100644 --- a/third_party/blink/renderer/core/frame/remote_frame_client.h +++ b/third_party/blink/renderer/core/frame/remote_frame_client.h
@@ -52,6 +52,12 @@ virtual void DidChangeScreenInfo(const ScreenInfo& original_screen_info) = 0; + virtual void DidChangeRootWindowSegments( + const std::vector<gfx::Rect>& root_widget_window_segments) = 0; + + virtual void DidChangeVisibleViewportSize( + const gfx::Size& visible_viewport_size) = 0; + virtual void UpdateRemoteViewportIntersection( const ViewportIntersectionState& intersection_state) = 0;
diff --git a/third_party/blink/renderer/core/frame/remote_frame_client_impl.cc b/third_party/blink/renderer/core/frame/remote_frame_client_impl.cc index e22ebe7..724d334 100644 --- a/third_party/blink/renderer/core/frame/remote_frame_client_impl.cc +++ b/third_party/blink/renderer/core/frame/remote_frame_client_impl.cc
@@ -25,20 +25,6 @@ namespace blink { -namespace { - -// Convenience helper for frame tree helpers in FrameClient to reduce the amount -// of null-checking boilerplate code. Since the frame tree is maintained in the -// web/ layer, the frame tree helpers often have to deal with null WebFrames: -// for example, a frame with no parent will return null for WebFrame::parent(). -// TODO(dcheng): Remove duplication between LocalFrameClientImpl and -// RemoteFrameClientImpl somehow... -Frame* ToCoreFrame(WebFrame* frame) { - return frame ? WebFrame::ToCoreFrame(*frame) : nullptr; -} - -} // namespace - RemoteFrameClientImpl::RemoteFrameClientImpl(WebRemoteFrameImpl* web_frame) : web_frame_(web_frame) {} @@ -66,7 +52,7 @@ if (web_frame_->Parent()) { if (type == FrameDetachType::kRemove) - web_frame_->DetachFromParent(); + WebFrame::ToCoreFrame(*web_frame_)->DetachFromParent(); } else if (web_frame_->View()) { // If the RemoteFrame being detached is also the main frame in the renderer // process, we need to notify the webview to allow it to clean things up. @@ -78,26 +64,6 @@ web_frame_->SetCoreFrame(nullptr); } -Frame* RemoteFrameClientImpl::Opener() const { - return ToCoreFrame(web_frame_->Opener()); -} - -Frame* RemoteFrameClientImpl::Parent() const { - return ToCoreFrame(web_frame_->Parent()); -} - -Frame* RemoteFrameClientImpl::Top() const { - return ToCoreFrame(web_frame_->Top()); -} - -Frame* RemoteFrameClientImpl::NextSibling() const { - return ToCoreFrame(web_frame_->NextSibling()); -} - -Frame* RemoteFrameClientImpl::FirstChild() const { - return ToCoreFrame(web_frame_->FirstChild()); -} - base::UnguessableToken RemoteFrameClientImpl::GetDevToolsFrameToken() const { if (web_frame_->Client()) { return web_frame_->Client()->GetDevToolsFrameToken(); @@ -161,6 +127,17 @@ web_frame_->Client()->DidChangeScreenInfo(original_screen_info); } +void RemoteFrameClientImpl::DidChangeRootWindowSegments( + const std::vector<gfx::Rect>& root_widget_window_segments) { + web_frame_->Client()->DidChangeRootWindowSegments( + root_widget_window_segments); +} + +void RemoteFrameClientImpl::DidChangeVisibleViewportSize( + const gfx::Size& visible_viewport_size) { + web_frame_->Client()->DidChangeVisibleViewportSize(visible_viewport_size); +} + void RemoteFrameClientImpl::UpdateRemoteViewportIntersection( const ViewportIntersectionState& intersection_state) { web_frame_->Client()->UpdateRemoteViewportIntersection(intersection_state);
diff --git a/third_party/blink/renderer/core/frame/remote_frame_client_impl.h b/third_party/blink/renderer/core/frame/remote_frame_client_impl.h index 972cf172..f6ce586d 100644 --- a/third_party/blink/renderer/core/frame/remote_frame_client_impl.h +++ b/third_party/blink/renderer/core/frame/remote_frame_client_impl.h
@@ -20,11 +20,6 @@ // FrameClient overrides: bool InShadowTree() const override; void Detached(FrameDetachType) override; - Frame* Opener() const override; - Frame* Parent() const override; - Frame* Top() const override; - Frame* NextSibling() const override; - Frame* FirstChild() const override; base::UnguessableToken GetDevToolsFrameToken() const override; // RemoteFrameClient overrides: @@ -44,6 +39,10 @@ void PageScaleFactorChanged(float page_scale_factor, bool is_pinch_gesture_active) override; void DidChangeScreenInfo(const ScreenInfo& original_screen_info) override; + void DidChangeRootWindowSegments( + const std::vector<gfx::Rect>& root_widget_window_segments) override; + void DidChangeVisibleViewportSize( + const gfx::Size& visible_viewport_size) override; void UpdateRemoteViewportIntersection( const ViewportIntersectionState& intersection_state) override; AssociatedInterfaceProvider* GetRemoteAssociatedInterfaces() override;
diff --git a/content/renderer/render_widget_screen_metrics_emulator.cc b/third_party/blink/renderer/core/frame/screen_metrics_emulator.cc similarity index 68% rename from content/renderer/render_widget_screen_metrics_emulator.cc rename to third_party/blink/renderer/core/frame/screen_metrics_emulator.cc index 6f0fbdd..a95c752 100644 --- a/content/renderer/render_widget_screen_metrics_emulator.cc +++ b/third_party/blink/renderer/core/frame/screen_metrics_emulator.cc
@@ -2,17 +2,17 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#include "content/renderer/render_widget_screen_metrics_emulator.h" +#include "third_party/blink/renderer/core/frame/screen_metrics_emulator.h" #include "base/numerics/safe_conversions.h" -#include "content/public/common/untrustworthy_context_menu_params.h" -#include "content/renderer/render_widget_screen_metrics_emulator_delegate.h" +#include "third_party/blink/public/common/widget/visual_properties.h" +#include "third_party/blink/renderer/core/frame/web_view_frame_widget.h" -namespace content { +namespace blink { -RenderWidgetScreenMetricsEmulator::RenderWidgetScreenMetricsEmulator( - RenderWidgetScreenMetricsEmulatorDelegate* delegate, - const blink::ScreenInfo& screen_info, +ScreenMetricsEmulator::ScreenMetricsEmulator( + WebViewFrameWidget* delegate, + const ScreenInfo& screen_info, const gfx::Size& widget_size, const gfx::Size& visible_viewport_size, const gfx::Rect& view_screen_rect, @@ -24,34 +24,35 @@ original_view_screen_rect_(view_screen_rect), original_window_screen_rect_(window_screen_rect) {} -RenderWidgetScreenMetricsEmulator::~RenderWidgetScreenMetricsEmulator() = - default; +void ScreenMetricsEmulator::Trace(Visitor* vistor) const { + vistor->Trace(delegate_); +} -void RenderWidgetScreenMetricsEmulator::DisableAndApply() { +void ScreenMetricsEmulator::DisableAndApply() { delegate_->SetScreenMetricsEmulationParameters(false, emulation_params_); delegate_->SetScreenRects(original_view_screen_rect_, original_window_screen_rect_); - delegate_->SetRootWindowSegments(original_root_window_segments_); + delegate_->SetWindowSegments(original_root_window_segments_); delegate_->SetScreenInfoAndSize(original_screen_info_, original_widget_size_, original_visible_viewport_size_); } -void RenderWidgetScreenMetricsEmulator::ChangeEmulationParams( - const blink::DeviceEmulationParams& params) { +void ScreenMetricsEmulator::ChangeEmulationParams( + const DeviceEmulationParams& params) { emulation_params_ = params; Apply(); } -gfx::Point RenderWidgetScreenMetricsEmulator::ViewRectOrigin() { +gfx::Point ScreenMetricsEmulator::ViewRectOrigin() { gfx::Point widget_pos = original_view_rect().origin(); if (emulation_params_.view_position) - widget_pos = *emulation_params_.view_position; + widget_pos = emulation_params_.view_position.value(); else if (!emulating_desktop()) widget_pos = gfx::Point(); return widget_pos; } -void RenderWidgetScreenMetricsEmulator::Apply() { +void ScreenMetricsEmulator::Apply() { // The WidgetScreenRect gets derived from the widget size of the main frame // widget, not from the original WidgetScreenRect. gfx::Size widget_size = original_widget_size_; @@ -84,7 +85,7 @@ if (emulation_params_.view_position) { // The emulated widget position overrides the widget and window positions. - widget_pos = *emulation_params_.view_position; + widget_pos = emulation_params_.view_position.value(); window_pos = widget_pos; } else if (!emulating_desktop()) { // For mobile emulation, the widget and window are moved to 0,0 if not @@ -98,7 +99,7 @@ if (!emulation_params_.screen_size.IsEmpty()) { // The emulated screen size overrides the real one, and moves the screen's // origin to 0,0. - screen_rect = gfx::Rect(emulation_params_.screen_size); + screen_rect = gfx::Rect(gfx::Size(emulation_params_.screen_size)); } else if (!emulating_desktop()) { // For mobile emulation, the screen is adjusted to match the position and // size of the widget rect, if not explicitly specified. @@ -110,11 +111,11 @@ if (emulation_params_.device_scale_factor) device_scale_factor = emulation_params_.device_scale_factor; - blink::mojom::ScreenOrientation orientation_type = + mojom::blink::ScreenOrientation orientation_type = original_screen_info().orientation_type; uint16_t orientation_angle = original_screen_info().orientation_angle; if (emulation_params_.screen_orientation_type != - blink::mojom::ScreenOrientation::kUndefined) { + mojom::blink::ScreenOrientation::kUndefined) { orientation_type = emulation_params_.screen_orientation_type; orientation_angle = emulation_params_.screen_orientation_angle; } @@ -122,11 +123,11 @@ // Pass three emulation parameters to the blink side: // - we keep the real device scale factor in compositor to produce sharp image // even when emulating different scale factor; - blink::DeviceEmulationParams modified_emulation_params = emulation_params_; + DeviceEmulationParams modified_emulation_params = emulation_params_; modified_emulation_params.device_scale_factor = original_screen_info().device_scale_factor; - delegate_->SetScreenMetricsEmulationParameters(true, - modified_emulation_params); + delegate_->SetScreenMetricsEmulationParameters( + true, std::move(modified_emulation_params)); delegate_->SetScreenRects(gfx::Rect(widget_pos, widget_size), gfx::Rect(window_pos, window_size)); @@ -136,14 +137,14 @@ // have a single segment that matches the widget size. bool has_emulated_segments = emulation_params_.window_segments.size(); if (has_emulated_segments) { - delegate_->SetRootWindowSegments(emulation_params_.window_segments); + delegate_->SetWindowSegments(emulation_params_.window_segments); } else { std::vector<gfx::Rect> emulated_segments{ {0, 0, widget_size.width(), widget_size.height()}}; - delegate_->SetRootWindowSegments(emulated_segments); + delegate_->SetWindowSegments(emulated_segments); } - blink::ScreenInfo screen_info = original_screen_info(); + ScreenInfo screen_info = original_screen_info(); screen_info.device_scale_factor = device_scale_factor; screen_info.rect = screen_rect; screen_info.available_rect = screen_rect; @@ -153,19 +154,30 @@ /*visible_viewport_size=*/widget_size); } -void RenderWidgetScreenMetricsEmulator::OnSynchronizeVisualProperties( - const blink::ScreenInfo& screen_info, - const gfx::Size& widget_size, - const gfx::Size& visible_viewport_size, - const std::vector<gfx::Rect>& root_window_segments) { - original_screen_info_ = screen_info; - original_widget_size_ = widget_size; - original_visible_viewport_size_ = visible_viewport_size; - original_root_window_segments_ = root_window_segments; +void ScreenMetricsEmulator::UpdateVisualProperties( + const VisualProperties& visual_properties) { + // Device emulation isn't supported for widgets that have auto resize mode + // enabled. + DCHECK(!delegate_->AutoResizeMode()); + + original_screen_info_ = visual_properties.screen_info; + original_widget_size_ = visual_properties.new_size; + original_visible_viewport_size_ = visual_properties.visible_viewport_size; + original_root_window_segments_ = + visual_properties.root_widget_window_segments; Apply(); + + // Appy the compositor viewport rect and surface id allocation. The screen + // info is kept the same as the current ScreenInfo state. The screen info + // already was updated in |Apply| via |SetScreenInfoAndSize|. + delegate_->UpdateSurfaceAndScreenInfo( + visual_properties.local_surface_id_allocation.value_or( + viz::LocalSurfaceIdAllocation()), + visual_properties.compositor_viewport_pixel_rect, + delegate_->GetScreenInfo()); } -void RenderWidgetScreenMetricsEmulator::OnUpdateScreenRects( +void ScreenMetricsEmulator::OnUpdateScreenRects( const gfx::Rect& view_screen_rect, const gfx::Rect& window_screen_rect) { original_view_screen_rect_ = view_screen_rect; @@ -175,4 +187,4 @@ } } -} // namespace content +} // namespace blink
diff --git a/third_party/blink/renderer/core/frame/screen_metrics_emulator.h b/third_party/blink/renderer/core/frame/screen_metrics_emulator.h new file mode 100644 index 0000000..9e4d3ca --- /dev/null +++ b/third_party/blink/renderer/core/frame/screen_metrics_emulator.h
@@ -0,0 +1,98 @@ +// Copyright 2016 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef THIRD_PARTY_BLINK_RENDERER_CORE_FRAME_SCREEN_METRICS_EMULATOR_H_ +#define THIRD_PARTY_BLINK_RENDERER_CORE_FRAME_SCREEN_METRICS_EMULATOR_H_ + +#include <memory> + +#include "third_party/blink/public/common/widget/device_emulation_params.h" +#include "third_party/blink/public/common/widget/screen_info.h" +#include "third_party/blink/public/mojom/widget/device_emulation_params.mojom-blink.h" +#include "third_party/blink/renderer/platform/heap/member.h" +#include "ui/gfx/geometry/rect.h" +#include "ui/gfx/geometry/size.h" + +namespace blink { + +struct VisualProperties; +class WebViewFrameWidget; + +// ScreenMetricsEmulator class manages screen emulation inside a +// WebViewFrameWidget. This includes resizing, placing view on the screen at +// desired position, changing device scale factor, and scaling down the whole +// widget if required to fit into the browser window. +class ScreenMetricsEmulator : public GarbageCollected<ScreenMetricsEmulator> { + public: + ScreenMetricsEmulator(WebViewFrameWidget* delegate, + const ScreenInfo& screen_info, + const gfx::Size& widget_size, + const gfx::Size& visible_viewport_size, + const gfx::Rect& view_screen_rect, + const gfx::Rect& window_screen_rect); + virtual ~ScreenMetricsEmulator() = default; + + const ScreenInfo& original_screen_info() const { + return original_screen_info_; + } + // This rect is the WidgetScreenRect or ViewRect, which is the main frame + // widget's bounding box, not including OS window decor, in logical DIP screen + // coordinates. + const gfx::Rect& original_view_rect() const { + return original_view_screen_rect_; + } + // This rect is the WindowScreenRect or WindowRect, which is the bounding box + // of the main frame's top level window, including OS window decor, in logical + // DIP screen coordinates. + const gfx::Rect& original_window_rect() const { + return original_window_screen_rect_; + } + + float scale() const { return emulation_params_.scale; } + + // Emulated position of the main frame widget (aka view) rect. + gfx::Point ViewRectOrigin(); + + // Disables emulation and applies non-emulated values to the + // WebViewFrameWidget. Call this before destroying the ScreenMetricsEmulator. + void DisableAndApply(); + + // Sets new parameters and applies them to the WebViewFrameWidget. + void ChangeEmulationParams(const DeviceEmulationParams& params); + + void UpdateVisualProperties(const VisualProperties& visual_properties); + + void OnUpdateScreenRects(const gfx::Rect& view_screen_rect, + const gfx::Rect& window_screen_rect); + + virtual void Trace(Visitor*) const; + + private: + bool emulating_desktop() const { + return emulation_params_.screen_type == + mojom::blink::EmulatedScreenType::kDesktop; + } + + // Applies emulated values to the WidgetBase. + void Apply(); + + Member<WebViewFrameWidget> const delegate_; + + // Parameters as passed by WebViewFrameWidget::EnableDeviceEmulation. + DeviceEmulationParams emulation_params_; + + // Original values to restore back after emulation ends. + ScreenInfo original_screen_info_; + gfx::Size original_widget_size_; + gfx::Size original_visible_viewport_size_; + gfx::Rect original_view_screen_rect_; + gfx::Rect original_window_screen_rect_; + std::vector<gfx::Rect> original_root_window_segments_; + + DISALLOW_COPY_AND_ASSIGN(ScreenMetricsEmulator); +}; + +} // namespace blink + +#endif // THIRD_PARTY_BLINK_RENDERER_CORE_FRAME_SCREEN_METRICS_EMULATOR_H_
diff --git a/third_party/blink/renderer/core/frame/web_frame_widget_base.cc b/third_party/blink/renderer/core/frame/web_frame_widget_base.cc index 99c8d6b..bded8ee 100644 --- a/third_party/blink/renderer/core/frame/web_frame_widget_base.cc +++ b/third_party/blink/renderer/core/frame/web_frame_widget_base.cc
@@ -30,6 +30,7 @@ #include "third_party/blink/renderer/core/frame/local_frame_ukm_aggregator.h" #include "third_party/blink/renderer/core/frame/local_frame_view.h" #include "third_party/blink/renderer/core/frame/remote_frame_client.h" +#include "third_party/blink/renderer/core/frame/screen_metrics_emulator.h" #include "third_party/blink/renderer/core/frame/settings.h" #include "third_party/blink/renderer/core/frame/visual_viewport.h" #include "third_party/blink/renderer/core/frame/web_local_frame_impl.h" @@ -79,6 +80,19 @@ namespace { +void ForEachWebLocalFrameControlledByWidget( + WebLocalFrame* frame, + const base::RepeatingCallback<void(WebLocalFrame*)>& callback) { + callback.Run(frame); + for (WebFrame* child = frame->FirstChild(); child; + child = child->NextSibling()) { + if (child->IsWebLocalFrame()) { + ForEachWebLocalFrameControlledByWidget(child->ToWebLocalFrame(), + callback); + } + } +} + // Iterate the remote children that will be controlled by the widget. Skip over // any RemoteFrames have have another LocalFrame as their parent. void ForEachRemoteFrameChildrenControlledByWidget( @@ -635,7 +649,32 @@ } } - Client()->UpdateVisualProperties(visual_properties); + gfx::Size old_visible_viewport_size = widget_base_->VisibleViewportSize(); + auto* emulator = DeviceEmulator(); + if (emulator) { + emulator->UpdateVisualProperties(visual_properties); + } else { + SetWindowSegments(visual_properties.root_widget_window_segments); + } + + Client()->UpdateVisualProperties(/*emulator_enabled=*/!!emulator, + visual_properties); + + if (old_visible_viewport_size != widget_base_->VisibleViewportSize()) { + ForEachWebLocalFrameControlledByWidget( + local_root_, WTF::BindRepeating([](WebLocalFrame* local_frame) { + local_frame->Client()->ResetHasScrolledFocusedEditableIntoView(); + })); + + // Propagate changes down to child local root RenderWidgets and + // BrowserPlugins in other frame trees/processes. + ForEachRemoteFrameControlledByWidget(WTF::BindRepeating( + [](const gfx::Size& visible_viewport_size, RemoteFrame* remote_frame) { + remote_frame->Client()->DidChangeVisibleViewportSize( + visible_viewport_size); + }, + widget_base_->VisibleViewportSize())); + } // All non-top-level Widgets (child local-root frames, Portals, GuestViews, // etc.) propagate and consume the page scale factor as "external", meaning @@ -660,12 +699,13 @@ 1.f, /*is_pinch_gesture_active=*/false); } -} -void WebFrameWidgetBase::UpdateScreenRects( - const gfx::Rect& widget_screen_rect, - const gfx::Rect& window_screen_rect) { - Client()->UpdateScreenRects(widget_screen_rect, window_screen_rect); + // TODO(crbug.com/939118): ScrollFocusedNodeIntoViewForWidget does not work + // when the focused node is inside an OOPIF. This code path where + // scroll_focused_node_into_view is set is used only for WebView, crbug + // 939118 tracks fixing webviews to not use scroll_focused_node_into_view. + if (visual_properties.scroll_focused_node_into_view) + ScrollFocusedEditableElementIntoView(); } void WebFrameWidgetBase::ScheduleAnimationForWebTests() { @@ -724,7 +764,7 @@ return display_mode_; } -const WebVector<WebRect>& WebFrameWidgetBase::WindowSegments() const { +const WebVector<gfx::Rect>& WebFrameWidgetBase::WindowSegments() const { return window_segments_; } @@ -962,11 +1002,20 @@ } } -void WebFrameWidgetBase::SetWindowSegments(WebVector<WebRect> window_segments) { +void WebFrameWidgetBase::SetWindowSegments( + const std::vector<gfx::Rect>& window_segments_param) { + WebVector<gfx::Rect> window_segments(window_segments_param); if (!window_segments_.Equals(window_segments)) { - window_segments_ = std::move(window_segments); + window_segments_ = window_segments; LocalFrame* frame = LocalRootImpl()->GetFrame(); frame->WindowSegmentsChanged(window_segments_); + + ForEachRemoteFrameControlledByWidget(WTF::BindRepeating( + [](const std::vector<gfx::Rect>& window_segments, + RemoteFrame* remote_frame) { + remote_frame->Client()->DidChangeRootWindowSegments(window_segments); + }, + window_segments_param)); } } @@ -1075,6 +1124,33 @@ return widget_base_->GetScreenInfo(); } +gfx::Rect WebFrameWidgetBase::WindowRect() { + return widget_base_->WindowRect(); +} + +gfx::Rect WebFrameWidgetBase::ViewRect() { + return widget_base_->ViewRect(); +} + +void WebFrameWidgetBase::SetScreenRects(const gfx::Rect& widget_screen_rect, + const gfx::Rect& window_screen_rect) { + widget_base_->SetScreenRects(widget_screen_rect, window_screen_rect); +} + +void WebFrameWidgetBase::SetVisibleViewportSize( + const gfx::Size& visible_viewport_size) { + widget_base_->SetVisibleViewportSize(visible_viewport_size); +} + +const gfx::Size& WebFrameWidgetBase::VisibleViewportSize() { + return widget_base_->VisibleViewportSize(); +} + +void WebFrameWidgetBase::SetPendingWindowRect( + const gfx::Rect* window_screen_rect) { + widget_base_->SetPendingWindowRect(window_screen_rect); +} + void WebFrameWidgetBase::AutoscrollStart(const gfx::PointF& position) { GetAssociatedFrameWidgetHost()->AutoscrollStart(std::move(position)); } @@ -1604,13 +1680,13 @@ #if defined(OS_ANDROID) || defined(USE_AURA) if (event.GetType() == WebInputEvent::Type::kGestureTap) { - widget_base_->input_handler().ShowVirtualKeyboard(); + widget_base_->ShowVirtualKeyboard(); } else if (event.GetType() == WebInputEvent::Type::kGestureLongPress) { WebInputMethodController* controller = GetActiveWebInputMethodController(); if (!controller || controller->TextInputInfo().value.IsEmpty()) - widget_base_->input_handler().UpdateTextInputState(); + widget_base_->UpdateTextInputState(); else - widget_base_->input_handler().ShowVirtualKeyboard(); + widget_base_->ShowVirtualKeyboard(); } #endif } @@ -2021,7 +2097,7 @@ LocalRoot()->SendOrientationChangeEvent(); } -void WebFrameWidgetBase::UpdatedSurfaceAndScreen( +void WebFrameWidgetBase::DidUpdateSurfaceAndScreen( const ScreenInfo& previous_original_screen_info) { ScreenInfo screen_info = widget_base_->GetScreenInfo(); if (Platform::Current()->IsUseZoomForDSFEnabled()) { @@ -2050,8 +2126,8 @@ } } -ScreenInfo WebFrameWidgetBase::GetOriginalScreenInfo() { - return Client()->GetOriginalScreenInfo(); +const ScreenInfo& WebFrameWidgetBase::GetOriginalScreenInfo() { + return widget_base_->GetScreenInfo(); } base::Optional<blink::mojom::ScreenOrientation>
diff --git a/third_party/blink/renderer/core/frame/web_frame_widget_base.h b/third_party/blink/renderer/core/frame/web_frame_widget_base.h index 6c7468df..fac24ce 100644 --- a/third_party/blink/renderer/core/frame/web_frame_widget_base.h +++ b/third_party/blink/renderer/core/frame/web_frame_widget_base.h
@@ -50,6 +50,7 @@ class WebLocalFrameImpl; class WebViewImpl; class WidgetBase; +class ScreenMetricsEmulator; class CORE_EXPORT WebFrameWidgetBase : public GarbageCollected<WebFrameWidgetBase>, @@ -128,7 +129,7 @@ cc::EventListenerProperties EventListenerProperties( cc::EventListenerClass) const final; mojom::blink::DisplayMode DisplayMode() const override; - const WebVector<WebRect>& WindowSegments() const override; + const WebVector<gfx::Rect>& WindowSegments() const override; void SetDelegatedInkMetadata( std::unique_ptr<viz::DelegatedInkMetadata> metadata) final; void DidOverscroll(const gfx::Vector2dF& overscroll_delta, @@ -274,7 +275,6 @@ void DidNotAcquirePointerLock() override; void DidLosePointerLock() override; void SetCompositorVisible(bool visible) override; - void SetWindowSegments(WebVector<WebRect> window_segments) override; void SetCursor(const ui::Cursor& cursor) override; bool HandlingInputEvent() override; void SetHandlingInputEvent(bool handling) override; @@ -314,6 +314,13 @@ void UpdateCompositorViewportRect( const gfx::Rect& compositor_viewport_pixel_rect) override; const ScreenInfo& GetScreenInfo() override; + gfx::Rect WindowRect() override; + gfx::Rect ViewRect() override; + void SetScreenRects(const gfx::Rect& widget_screen_rect, + const gfx::Rect& window_screen_rect) override; + void SetVisibleViewportSize(const gfx::Size& visible_viewport_size) override; + const gfx::Size& VisibleViewportSize() override; + void SetPendingWindowRect(const gfx::Rect* window_screen_rect) override; // WidgetBaseClient methods. void RecordDispatchRafAlignedInputTime( @@ -349,13 +356,11 @@ bool ShouldAckSyntheticInputImmediately() override; void UpdateVisualProperties( const VisualProperties& visual_properties) override; - void UpdateScreenRects(const gfx::Rect& widget_screen_rect, - const gfx::Rect& window_screen_rect) override; void ScheduleAnimationForWebTests() override; void OrientationChanged() override; - void UpdatedSurfaceAndScreen( + void DidUpdateSurfaceAndScreen( const ScreenInfo& previous_original_screen_info) override; - ScreenInfo GetOriginalScreenInfo() override; + const ScreenInfo& GetOriginalScreenInfo() override; base::Optional<blink::mojom::ScreenOrientation> ScreenOrientationOverride() override; @@ -529,6 +534,10 @@ const viz::LocalSurfaceIdAllocation& LocalSurfaceIdAllocationFromParent(); cc::LayerTreeHost* LayerTreeHost(); + virtual ScreenMetricsEmulator* DeviceEmulator() { return nullptr; } + + void SetWindowSegments(const std::vector<gfx::Rect>& window_segments); + protected: enum DragAction { kDragEnter, kDragOver }; @@ -608,7 +617,7 @@ mojom::blink::DisplayMode display_mode_; - WebVector<WebRect> window_segments_; + WebVector<gfx::Rect> window_segments_; // This is owned by the LayerTreeHostImpl, and should only be used on the // compositor thread, so we keep the TaskRunner where you post tasks to
diff --git a/third_party/blink/renderer/core/frame/web_local_frame_impl.cc b/third_party/blink/renderer/core/frame/web_local_frame_impl.cc index 8bf14b4..3c96377 100644 --- a/third_party/blink/renderer/core/frame/web_local_frame_impl.cc +++ b/third_party/blink/renderer/core/frame/web_local_frame_impl.cc
@@ -1781,9 +1781,9 @@ Page& page = *static_cast<WebViewImpl*>(web_view)->GetPage(); DCHECK(!page.MainFrame()); frame->InitializeCoreFrame( - page, nullptr, name, - opener ? &ToCoreFrame(*opener)->window_agent_factory() : nullptr, opener, - sandbox_flags, opener_feature_state); + page, nullptr, nullptr, nullptr, FrameInsertType::kInsertInConstructor, + name, opener ? &ToCoreFrame(*opener)->window_agent_factory() : nullptr, + opener, sandbox_flags, opener_feature_state); return frame; } @@ -1803,7 +1803,6 @@ ? mojom::blink::TreeScopeType::kShadow : mojom::blink::TreeScopeType::kDocument, client, interface_registry, frame_token); - web_frame->SetParent(previous_web_frame->Parent()); network::mojom::blink::WebSandboxFlags sandbox_flags = network::mojom::blink::WebSandboxFlags::kNone; FeaturePolicyFeatureState feature_state; @@ -1828,7 +1827,9 @@ // observable, it will have the real FrameOwner, and any subsequent real // documents will correctly inherit sandbox flags from the owner. web_frame->InitializeCoreFrame( - *previous_frame->GetPage(), MakeGarbageCollected<DummyFrameOwner>(), name, + *previous_frame->GetPage(), MakeGarbageCollected<DummyFrameOwner>(), + previous_web_frame->Parent(), nullptr, FrameInsertType::kInsertLater, + name, frame_policy.disallow_document_access ? nullptr : &ToCoreFrame(*previous_web_frame)->window_agent_factory(), @@ -1852,7 +1853,6 @@ auto* frame = MakeGarbageCollected<WebLocalFrameImpl>( util::PassKey<WebLocalFrameImpl>(), scope, client, interface_registry, frame_token); - AppendChild(frame); return frame; } @@ -1903,7 +1903,6 @@ visitor->Trace(frame_widget_); visitor->Trace(print_context_); visitor->Trace(input_method_controller_); - WebFrame::TraceFrames(visitor, this); } void WebLocalFrameImpl::SetCoreFrame(LocalFrame* frame) { @@ -1913,13 +1912,20 @@ void WebLocalFrameImpl::InitializeCoreFrame( Page& page, FrameOwner* owner, + WebFrame* parent, + WebFrame* previous_sibling, + FrameInsertType insert_type, const AtomicString& name, WindowAgentFactory* window_agent_factory, WebFrame* opener, network::mojom::blink::WebSandboxFlags sandbox_flags, const FeaturePolicyFeatureState& opener_feature_state) { + Frame* parent_frame = parent ? ToCoreFrame(*parent) : nullptr; + Frame* previous_sibling_frame = + previous_sibling ? ToCoreFrame(*previous_sibling) : nullptr; SetCoreFrame(MakeGarbageCollected<LocalFrame>( - local_frame_client_.Get(), page, owner, GetFrameToken(), + local_frame_client_.Get(), page, owner, parent_frame, + previous_sibling_frame, insert_type, GetFrameToken(), window_agent_factory, interface_registry_)); frame_->Tree().SetName(name); if (RuntimeEnabledFeatures::FeaturePolicyForSandboxEnabled()) @@ -1974,7 +1980,8 @@ return nullptr; webframe_child->InitializeCoreFrame( - *GetFrame()->GetPage(), owner_element, name, + *GetFrame()->GetPage(), owner_element, this, LastChild(), + FrameInsertType::kInsertInConstructor, name, owner_element->GetFramePolicy().disallow_document_access ? nullptr : &GetFrame()->window_agent_factory(),
diff --git a/third_party/blink/renderer/core/frame/web_local_frame_impl.h b/third_party/blink/renderer/core/frame/web_local_frame_impl.h index f0a9408..2fb039f 100644 --- a/third_party/blink/renderer/core/frame/web_local_frame_impl.h +++ b/third_party/blink/renderer/core/frame/web_local_frame_impl.h
@@ -336,6 +336,9 @@ void InitializeCoreFrame( Page&, FrameOwner*, + WebFrame* parent, + WebFrame* previous_sibling, + FrameInsertType, const AtomicString& name, WindowAgentFactory*, WebFrame* opener,
diff --git a/third_party/blink/renderer/core/frame/web_view_frame_widget.cc b/third_party/blink/renderer/core/frame/web_view_frame_widget.cc index aab6c530..611cd0b 100644 --- a/third_party/blink/renderer/core/frame/web_view_frame_widget.cc +++ b/third_party/blink/renderer/core/frame/web_view_frame_widget.cc
@@ -7,6 +7,7 @@ #include "third_party/blink/public/platform/platform.h" #include "third_party/blink/renderer/core/exported/web_view_impl.h" #include "third_party/blink/renderer/core/frame/local_frame_ukm_aggregator.h" +#include "third_party/blink/renderer/core/frame/screen_metrics_emulator.h" #include "third_party/blink/renderer/core/frame/web_local_frame_impl.h" #include "third_party/blink/renderer/platform/scheduler/public/thread.h" #include "third_party/blink/renderer/platform/widget/widget_base.h" @@ -181,6 +182,12 @@ return HasFocus(); } +float WebViewFrameWidget::GetEmulatorScale() { + if (device_emulator_) + return device_emulator_->scale(); + return 1.0f; +} + bool WebViewFrameWidget::SelectionBounds(WebRect& anchor, WebRect& focus) const { return web_view_->SelectionBounds(anchor, focus); @@ -196,11 +203,25 @@ void WebViewFrameWidget::EnableDeviceEmulation( const DeviceEmulationParams& parameters) { - Client()->EnableDeviceEmulation(parameters); + if (!device_emulator_) { + WebSize web_view_size = web_view_->GetSize(); + WebRect size_in_window(0, 0, web_view_size.width, web_view_size.height); + Client()->ConvertViewportToWindow(&size_in_window); + + device_emulator_ = MakeGarbageCollected<ScreenMetricsEmulator>( + this, widget_base_->GetScreenInfo(), + gfx::Size(size_in_window.width, size_in_window.height), + widget_base_->VisibleViewportSize(), widget_base_->WidgetScreenRect(), + widget_base_->WindowScreenRect()); + } + device_emulator_->ChangeEmulationParams(parameters); } void WebViewFrameWidget::DisableDeviceEmulation() { - Client()->DisableDeviceEmulation(); + if (!device_emulator_) + return; + device_emulator_->DisableAndApply(); + device_emulator_ = nullptr; } void WebViewFrameWidget::DidDetachLocalFrameTree() { @@ -242,6 +263,7 @@ void WebViewFrameWidget::Trace(Visitor* visitor) const { WebFrameWidgetBase::Trace(visitor); + visitor->Trace(device_emulator_); } PageWidgetEventHandler* WebViewFrameWidget::GetPageWidgetEventHandler() { @@ -354,4 +376,50 @@ widget_base_->UpdateScreenInfo(info); } +bool WebViewFrameWidget::AutoResizeMode() { + return web_view_->AutoResizeMode(); +} + +bool WebViewFrameWidget::UpdateScreenRects( + const gfx::Rect& widget_screen_rect, + const gfx::Rect& window_screen_rect) { + if (!device_emulator_) + return false; + device_emulator_->OnUpdateScreenRects(widget_screen_rect, window_screen_rect); + return true; +} + +const ScreenInfo& WebViewFrameWidget::GetOriginalScreenInfo() { + if (device_emulator_) + return device_emulator_->original_screen_info(); + return GetScreenInfo(); +} + +ScreenMetricsEmulator* WebViewFrameWidget::DeviceEmulator() { + return device_emulator_; +} + +void WebViewFrameWidget::SetScreenMetricsEmulationParameters( + bool enabled, + const DeviceEmulationParams& params) { + if (enabled) + View()->ActivateDevToolsTransform(params); + else + View()->DeactivateDevToolsTransform(); +} + +void WebViewFrameWidget::SetScreenInfoAndSize( + const ScreenInfo& screen_info, + const gfx::Size& widget_size, + const gfx::Size& visible_viewport_size) { + // Emulation happens on regular main frames which don't use auto-resize mode. + DCHECK(!web_view_->AutoResizeMode()); + + UpdateScreenInfo(screen_info); + + Client()->UpdateCompositingToLCDTextPreference(); + widget_base_->SetVisibleViewportSize(visible_viewport_size); + Client()->SetSize(widget_size); +} + } // namespace blink
diff --git a/third_party/blink/renderer/core/frame/web_view_frame_widget.h b/third_party/blink/renderer/core/frame/web_view_frame_widget.h index 807d0361d..35a9576 100644 --- a/third_party/blink/renderer/core/frame/web_view_frame_widget.h +++ b/third_party/blink/renderer/core/frame/web_view_frame_widget.h
@@ -97,10 +97,13 @@ bool is_pinch_gesture_active, float minimum, float maximum) override; + ScreenMetricsEmulator* DeviceEmulator() override; + const ScreenInfo& GetOriginalScreenInfo() override; // FrameWidget overrides: void SetRootLayer(scoped_refptr<cc::Layer>) override; bool ShouldHandleImeEvents() override; + float GetEmulatorScale() override; // WidgetBaseClient overrides: void BeginMainFrame(base::TimeTicks last_frame_time) override; @@ -126,12 +129,23 @@ void FocusChanged(bool enabled) override; float GetDeviceScaleFactorForTesting() override; gfx::Rect ViewportVisibleRect() override; + bool UpdateScreenRects(const gfx::Rect& widget_screen_rect, + const gfx::Rect& window_screen_rect) override; + + // RenderWidgetScreenMetricsEmulatorDelegate + void SetScreenMetricsEmulationParameters( + bool enabled, + const blink::DeviceEmulationParams& params); + void SetScreenInfoAndSize(const blink::ScreenInfo& screen_info, + const gfx::Size& widget_size, + const gfx::Size& visible_viewport_size); void Trace(Visitor*) const override; void SetIsNestedMainFrameWidget(bool is_nested); void DidAutoResize(const gfx::Size& size); void SetDeviceColorSpaceForTesting(const gfx::ColorSpace& color_space); + bool AutoResizeMode(); private: PageWidgetEventHandler* GetPageWidgetEventHandler() override; @@ -155,6 +169,11 @@ // top level widget. bool is_for_nested_main_frame_ = false; + // Present when emulation is enabled, only in a main frame WidgetBase. Used + // to override values given from the browser such as ScreenInfo, + // WidgetScreenRect, WindowScreenRect, and the widget's size. + Member<ScreenMetricsEmulator> device_emulator_; + SelfKeepAlive<WebViewFrameWidget> self_keep_alive_; DISALLOW_COPY_AND_ASSIGN(WebViewFrameWidget);
diff --git a/third_party/blink/renderer/core/html/forms/external_popup_menu.cc b/third_party/blink/renderer/core/html/forms/external_popup_menu.cc index d132dd31..081895c 100644 --- a/third_party/blink/renderer/core/html/forms/external_popup_menu.cc +++ b/third_party/blink/renderer/core/html/forms/external_popup_menu.cc
@@ -104,7 +104,6 @@ IntRect rect_in_viewport = local_frame_->View()->FrameToViewport(rect); float scale_for_emulation = WebLocalFrameImpl::FromFrame(local_frame_) ->LocalRootFrameWidget() - ->Client() ->GetEmulatorScale(); gfx::Rect bounds =
diff --git a/third_party/blink/renderer/core/html/html_frame_owner_element.cc b/third_party/blink/renderer/core/html/html_frame_owner_element.cc index a2945d9..878c5ee 100644 --- a/third_party/blink/renderer/core/html/html_frame_owner_element.cc +++ b/third_party/blink/renderer/core/html/html_frame_owner_element.cc
@@ -470,11 +470,8 @@ layout_embedded_content->UpdateOnEmbeddedContentViewChange(); if (embedded_content_view_) { - // TODO(crbug.com/729196): Trace why LocalFrameView::DetachFromLayout - // crashes. Perhaps view is getting reattached while document is shutting - // down. if (doc) { - CHECK_NE(doc->Lifecycle().GetState(), DocumentLifecycle::kStopping); + DCHECK_NE(doc->Lifecycle().GetState(), DocumentLifecycle::kStopping); } DCHECK_EQ(GetDocument().View(), layout_embedded_content->GetFrameView());
diff --git a/third_party/blink/renderer/core/inspector/inspector_layer_tree_agent.cc b/third_party/blink/renderer/core/inspector/inspector_layer_tree_agent.cc index 85ef5c7..fdd94ea5 100644 --- a/third_party/blink/renderer/core/inspector/inspector_layer_tree_agent.cc +++ b/third_party/blink/renderer/core/inspector/inspector_layer_tree_agent.cc
@@ -348,6 +348,8 @@ } static const cc::Layer* FindLayerById(const cc::Layer* root, int layer_id) { + if (!root) + return nullptr; if (root->id() == layer_id) return root; for (auto child : root->children()) {
diff --git a/third_party/blink/renderer/core/inspector/inspector_overlay_agent.cc b/third_party/blink/renderer/core/inspector/inspector_overlay_agent.cc index b48d919..24e51fa 100644 --- a/third_party/blink/renderer/core/inspector/inspector_overlay_agent.cc +++ b/third_party/blink/renderer/core/inspector/inspector_overlay_agent.cc
@@ -1100,8 +1100,9 @@ DEFINE_STATIC_LOCAL(Persistent<LocalFrameClient>, dummy_local_frame_client, (MakeGarbageCollected<EmptyLocalFrameClient>())); auto* frame = MakeGarbageCollected<LocalFrame>( - dummy_local_frame_client, *overlay_page_, nullptr, - base::UnguessableToken::Create(), nullptr, nullptr); + dummy_local_frame_client, *overlay_page_, nullptr, nullptr, nullptr, + FrameInsertType::kInsertInConstructor, base::UnguessableToken::Create(), + nullptr, nullptr); frame->SetView(MakeGarbageCollected<LocalFrameView>(*frame)); frame->Init(nullptr); frame->View()->SetCanHaveScrollbars(false);
diff --git a/third_party/blink/renderer/core/layout/layout_deprecated_flexible_box.cc b/third_party/blink/renderer/core/layout/layout_deprecated_flexible_box.cc index d3df0fd0..80a2f0e 100644 --- a/third_party/blink/renderer/core/layout/layout_deprecated_flexible_box.cc +++ b/third_party/blink/renderer/core/layout/layout_deprecated_flexible_box.cc
@@ -39,109 +39,6 @@ namespace blink { -class FlexBoxIterator { - STACK_ALLOCATED(); - - public: - FlexBoxIterator(LayoutDeprecatedFlexibleBox* parent) - : box_(parent), largest_ordinal_(1) { - forward_ = box_->StyleRef().BoxDirection() == EBoxDirection::kNormal; - if (!forward_) { - // No choice, since we're going backwards, we have to find out the highest - // ordinal up front. - LayoutBox* child = box_->FirstChildBox(); - while (child) { - if (child->StyleRef().BoxOrdinalGroup() > largest_ordinal_) - largest_ordinal_ = child->StyleRef().BoxOrdinalGroup(); - child = child->NextSiblingBox(); - } - } - - Reset(); - } - - void Reset() { - current_child_ = nullptr; - natural_current_child_ = nullptr; - ordinal_iteration_ = -1; - } - - LayoutBox* First() { - Reset(); - return Next(); - } - - LayoutBox* Next() { - do { - if (!current_child_) { - ++ordinal_iteration_; - - if (!ordinal_iteration_) { - current_ordinal_ = forward_ ? 1 : largest_ordinal_; - } else { - if (static_cast<size_t>(ordinal_iteration_) >= - ordinal_values_.size() + 1) - return nullptr; - - // Only copy+sort the values once per layout even if the iterator is - // reset. - if (ordinal_values_.size() != sorted_ordinal_values_.size()) { - CopyToVector(ordinal_values_, sorted_ordinal_values_); - std::sort(sorted_ordinal_values_.begin(), - sorted_ordinal_values_.end()); - } - current_ordinal_ = - forward_ ? sorted_ordinal_values_[ordinal_iteration_ - 1] - : sorted_ordinal_values_[sorted_ordinal_values_.size() - - ordinal_iteration_]; - } - - current_child_ = - forward_ ? box_->FirstChildBox() : box_->LastChildBox(); - } else { - current_child_ = forward_ ? current_child_->NextSiblingBox() - : current_child_->PreviousSiblingBox(); - } - - if (current_child_ && NotFirstOrdinalValue()) - ordinal_values_.insert(current_child_->StyleRef().BoxOrdinalGroup()); - } while (!current_child_ || (!current_child_->IsAnonymous() && - current_child_->StyleRef().BoxOrdinalGroup() != - current_ordinal_)); - - // This peice of code just exists for detecting if this iterator actually - // does something other than returning the default order. - if (!natural_current_child_) - natural_current_child_ = box_->FirstChildBox(); - else - natural_current_child_ = natural_current_child_->NextSiblingBox(); - - if (natural_current_child_ != current_child_) { - UseCounter::Count(box_->GetDocument(), - WebFeature::kWebkitBoxNotDefaultOrder); - } - - return current_child_; - } - - private: - bool NotFirstOrdinalValue() { - unsigned first_ordinal_value = forward_ ? 1 : largest_ordinal_; - return current_ordinal_ == first_ordinal_value && - current_child_->StyleRef().BoxOrdinalGroup() != first_ordinal_value; - } - - LayoutDeprecatedFlexibleBox* box_; - LayoutBox* current_child_; - LayoutBox* natural_current_child_; - bool forward_; - unsigned current_ordinal_; - unsigned largest_ordinal_; - HashSet<unsigned> ordinal_values_; - Vector<unsigned> sorted_ordinal_values_; - int ordinal_iteration_; -}; - // Helper methods for obtaining the last line, computing line counts and heights // for line counts // (crawling into blocks). @@ -348,16 +245,10 @@ UseCounter::Count(GetDocument(), WebFeature::kWebkitBoxLayout); - if (StyleRef().BoxAlign() != ComputedStyleInitialValues::InitialBoxAlign()) - UseCounter::Count(GetDocument(), WebFeature::kWebkitBoxAlignNotInitial); - if (StyleRef().BoxDirection() != ComputedStyleInitialValues::InitialBoxDirection()) UseCounter::Count(GetDocument(), WebFeature::kWebkitBoxDirectionNotInitial); - if (StyleRef().BoxPack() != ComputedStyleInitialValues::InitialBoxPack()) - UseCounter::Count(GetDocument(), WebFeature::kWebkitBoxPackNotInitial); - if (!FirstChildBox()) { UseCounter::Count(GetDocument(), WebFeature::kWebkitBoxNoChildren); } else if (!FirstChildBox()->NextSiblingBox()) { @@ -411,21 +302,16 @@ } // The first walk over our kids is to find out if we have any flexible children. -static void GatherFlexChildrenInfo(FlexBoxIterator& iterator, +static void GatherFlexChildrenInfo(LayoutBox* first_child_box, Document& document, bool relayout_children, bool& have_flex) { - for (LayoutBox* child = iterator.First(); child; child = iterator.Next()) { + for (LayoutBox* child = first_child_box; child; + child = child->NextSiblingBox()) { if (child->StyleRef().BoxFlex() != ComputedStyleInitialValues::InitialBoxFlex()) UseCounter::Count(document, WebFeature::kWebkitBoxChildFlexNotInitial); - if (child->StyleRef().BoxOrdinalGroup() != - ComputedStyleInitialValues::InitialBoxOrdinalGroup()) { - UseCounter::Count(document, - WebFeature::kWebkitBoxChildOrdinalGroupNotInitial); - } - // Check to see if this child flexes. if (!child->IsOutOfFlowPositioned() && child->StyleRef().BoxFlex() > 0.0f) { // We always have to lay out flexible objects again, since the flex @@ -449,15 +335,15 @@ LayoutUnit remaining_space; - FlexBoxIterator iterator(this); bool have_flex = false, flexing_children = false; - GatherFlexChildrenInfo(iterator, GetDocument(), relayout_children, have_flex); + GatherFlexChildrenInfo(FirstChildBox(), GetDocument(), relayout_children, + have_flex); // We confine the line clamp ugliness to vertical flexible boxes (thus keeping // it out of // mainstream block layout); this is not really part of the XUL box model. if (StyleRef().HasLineClamp()) - ApplyLineClamp(iterator, relayout_children); + ApplyLineClamp(relayout_children); PaintLayerScrollableArea::DelayScrollOffsetClampScope delay_clamp_scope; @@ -469,7 +355,8 @@ SetHeight(BorderTop() + PaddingTop()); LayoutUnit min_height = Size().Height() + to_add; - for (LayoutBox* child = iterator.First(); child; child = iterator.Next()) { + for (LayoutBox* child = FirstChildBox(); child; + child = child->NextSiblingBox()) { if (child->IsOutOfFlowPositioned()) { child->ContainingBlock()->InsertPositionedObject(child); PaintLayer* child_layer = child->Layer(); @@ -503,37 +390,14 @@ // Now do a layout. child->LayoutIfNeeded(); - // We can place the child now, using our value of box-align. - LayoutUnit child_x = BorderLeft() + PaddingLeft(); - switch (StyleRef().BoxAlign()) { - case EBoxAlignment::kCenter: - case EBoxAlignment::kBaseline: // Baseline just maps to center for - // vertical boxes - child_x += child->MarginLeft() + - ((ContentWidth() - - (child->Size().Width() + child->MarginWidth())) / - 2) - .ClampNegativeToZero(); - break; - case EBoxAlignment::kEnd: - if (!StyleRef().IsLeftToRightDirection()) { - child_x += child->MarginLeft(); - } else { - child_x += - ContentWidth() - child->MarginRight() - child->Size().Width(); - } - break; - default: // BSTART/BSTRETCH - if (StyleRef().IsLeftToRightDirection()) { - child_x += child->MarginLeft(); - } else { - child_x += - ContentWidth() - child->MarginRight() - child->Size().Width(); - } - break; - } - // Place the child. + LayoutUnit child_x = BorderLeft() + PaddingLeft(); + if (StyleRef().IsLeftToRightDirection()) { + child_x += child->MarginLeft(); + } else { + child_x += + ContentWidth() - child->MarginRight() - child->Size().Width(); + } PlaceChild(child, LayoutPoint(child_x, Size().Height())); SetHeight(Size().Height() + child->Size().Height() + child->MarginBottom()); @@ -544,7 +408,7 @@ y_pos = Size().Height(); - if (!iterator.First() && HasLineIfEmpty()) { + if (!FirstChildBox() && HasLineIfEmpty()) { SetHeight(Size().Height() + LineHeight(true, StyleRef().IsHorizontalWritingMode() @@ -590,14 +454,14 @@ // totalFlex recomputation). LayoutUnit remaining_space_at_beginning = remaining_space; float total_flex = 0.0f; - for (LayoutBox* child = iterator.First(); child; - child = iterator.Next()) { + for (LayoutBox* child = FirstChildBox(); child; + child = child->NextSiblingBox()) { if (AllowedChildFlex(child, expanding)) total_flex += child->StyleRef().BoxFlex(); } LayoutUnit space_available_this_pass = remaining_space; - for (LayoutBox* child = iterator.First(); child; - child = iterator.Next()) { + for (LayoutBox* child = FirstChildBox(); child; + child = child->NextSiblingBox()) { LayoutUnit allowed_flex = AllowedChildFlex(child, expanding); if (allowed_flex) { LayoutUnit projected_flex = @@ -617,9 +481,9 @@ break; // Now distribute the space to objects. - for (LayoutBox* child = iterator.First(); + for (LayoutBox* child = FirstChildBox(); child && space_available_this_pass && total_flex; - child = iterator.Next()) { + child = child->NextSiblingBox()) { if (AllowedChildFlex(child, expanding)) { LayoutUnit space_add = static_cast<LayoutUnit>( space_available_this_pass * @@ -641,8 +505,8 @@ // This is not advancing, avoid getting stuck by distributing the // remaining pixels. LayoutUnit space_add = LayoutUnit(remaining_space > 0 ? 1 : -1); - for (LayoutBox* child = iterator.First(); child && remaining_space; - child = iterator.Next()) { + for (LayoutBox* child = FirstChildBox(); child && remaining_space; + child = child->NextSiblingBox()) { if (AllowedChildFlex(child, expanding)) { child->SetOverrideLogicalHeight(HeightForChild(child) + space_add); @@ -660,63 +524,6 @@ } } while (have_flex); - if (StyleRef().BoxPack() != EBoxPack::kStart && remaining_space > 0) { - // Children must be repositioned. - LayoutUnit offset; - if (StyleRef().BoxPack() == EBoxPack::kJustify) { - UseCounter::Count(GetDocument(), - WebFeature::kWebkitBoxPackJustifyDoesSomething); - // Determine the total number of children. - int total_children = 0; - for (LayoutBox* child = iterator.First(); child; - child = iterator.Next()) { - if (child->IsOutOfFlowPositioned()) - continue; - - ++total_children; - } - - // Iterate over the children and space them out according to the - // justification level. - if (total_children > 1) { - --total_children; - bool first_child = true; - for (LayoutBox* child = iterator.First(); child; - child = iterator.Next()) { - if (child->IsOutOfFlowPositioned()) - continue; - - if (first_child) { - first_child = false; - continue; - } - - offset += remaining_space / total_children; - remaining_space -= (remaining_space / total_children); - --total_children; - PlaceChild(child, - child->Location() + LayoutSize(LayoutUnit(), offset)); - } - } - } else { - if (StyleRef().BoxPack() == EBoxPack::kCenter) { - UseCounter::Count(GetDocument(), - WebFeature::kWebkitBoxPackCenterDoesSomething); - offset += remaining_space / 2; - } else { // END - UseCounter::Count(GetDocument(), - WebFeature::kWebkitBoxPackEndDoesSomething); - offset += remaining_space; - } - for (LayoutBox* child = iterator.First(); child; - child = iterator.Next()) { - if (child->IsOutOfFlowPositioned()) - continue; - PlaceChild(child, child->Location() + LayoutSize(LayoutUnit(), offset)); - } - } - } - // So that the computeLogicalHeight in layoutBlock() knows to relayout // positioned objects because of a height change, we revert our height back // to the intrinsic height before returning. @@ -724,8 +531,7 @@ SetHeight(old_height); } -void LayoutDeprecatedFlexibleBox::ApplyLineClamp(FlexBoxIterator& iterator, - bool relayout_children) { +void LayoutDeprecatedFlexibleBox::ApplyLineClamp(bool relayout_children) { UseCounter::Count(GetDocument(), WebFeature::kLineClamp); UseCounter::Count(GetDocument(), WebFeature::kWebkitBoxLineClamp); @@ -747,7 +553,8 @@ } int max_line_count = 0; - for (LayoutBox* child = iterator.First(); child; child = iterator.Next()) { + for (LayoutBox* child = FirstChildBox(); child; + child = child->NextSiblingBox()) { if (child->IsOutOfFlowPositioned()) continue; @@ -782,7 +589,8 @@ if (num_visible_lines >= max_line_count) return; - for (LayoutBox* child = iterator.First(); child; child = iterator.Next()) { + for (LayoutBox* child = FirstChildBox(); child; + child = child->NextSiblingBox()) { auto* block_child = DynamicTo<LayoutBlockFlow>(child); if (child->IsOutOfFlowPositioned() || !child->StyleRef().Height().IsAuto() || !block_child) @@ -861,8 +669,8 @@ } void LayoutDeprecatedFlexibleBox::ClearLineClamp() { - FlexBoxIterator iterator(this); - for (LayoutBox* child = iterator.First(); child; child = iterator.Next()) { + for (LayoutBox* child = FirstChildBox(); child; + child = child->NextSiblingBox()) { if (child->IsOutOfFlowPositioned()) continue;
diff --git a/third_party/blink/renderer/core/layout/layout_deprecated_flexible_box.h b/third_party/blink/renderer/core/layout/layout_deprecated_flexible_box.h index 4ee630f9..6499c59 100644 --- a/third_party/blink/renderer/core/layout/layout_deprecated_flexible_box.h +++ b/third_party/blink/renderer/core/layout/layout_deprecated_flexible_box.h
@@ -27,8 +27,6 @@ namespace blink { -class FlexBoxIterator; - // Handles layout for 'webkit-box' and 'webkit-inline-box'. This class will // eventually be replaced by LayoutFlexibleBox. class LayoutDeprecatedFlexibleBox final : public LayoutBlock { @@ -54,7 +52,7 @@ LayoutUnit AllowedChildFlex(LayoutBox* child, bool expanding); - void ApplyLineClamp(FlexBoxIterator&, bool relayout_children); + void ApplyLineClamp(bool relayout_children); void ClearLineClamp(); };
diff --git a/third_party/blink/renderer/core/loader/empty_clients.h b/third_party/blink/renderer/core/loader/empty_clients.h index c233b9b..8080a1b3 100644 --- a/third_party/blink/renderer/core/loader/empty_clients.h +++ b/third_party/blink/renderer/core/loader/empty_clients.h
@@ -228,12 +228,6 @@ bool InShadowTree() const override { return false; } - Frame* Opener() const override { return nullptr; } - - Frame* Parent() const override { return nullptr; } - Frame* Top() const override { return nullptr; } - Frame* NextSibling() const override { return nullptr; } - Frame* FirstChild() const override { return nullptr; } void WillBeDetached() override {} void Detached(FrameDetachType) override {} @@ -420,11 +414,6 @@ // FrameClient implementation. bool InShadowTree() const override { return false; } void Detached(FrameDetachType) override {} - Frame* Opener() const override { return nullptr; } - Frame* Parent() const override { return nullptr; } - Frame* Top() const override { return nullptr; } - Frame* NextSibling() const override { return nullptr; } - Frame* FirstChild() const override { return nullptr; } base::UnguessableToken GetDevToolsFrameToken() const override { return base::UnguessableToken::Create(); }
diff --git a/third_party/blink/renderer/core/loader/frame_loader.cc b/third_party/blink/renderer/core/loader/frame_loader.cc index 3cb54cd..3858e26 100644 --- a/third_party/blink/renderer/core/loader/frame_loader.cc +++ b/third_party/blink/renderer/core/loader/frame_loader.cc
@@ -429,7 +429,7 @@ } Frame* FrameLoader::Opener() { - return Client() ? Client()->Opener() : nullptr; + return frame_->Opener(); } void FrameLoader::SetOpener(LocalFrame* opener) { @@ -1704,8 +1704,7 @@ ContentSecurityPolicy* FrameLoader::CreateCSPForInitialEmptyDocument() const { ContentSecurityPolicy* csp = MakeGarbageCollected<ContentSecurityPolicy>(); - Frame* owner_frame = frame_->Tree().Parent() ? frame_->Tree().Parent() - : frame_->Client()->Opener(); + Frame* owner_frame = frame_->Parent() ? frame_->Parent() : frame_->Opener(); if (owner_frame) { ContentSecurityPolicy* owner_csp = owner_frame->GetSecurityContext()->GetContentSecurityPolicy(); @@ -1770,8 +1769,7 @@ DocumentInit::Type document_type = DocumentInit::ComputeDocumentType(frame_, url, response.MimeType()); if (document_type == DocumentInit::Type::kPlugin) { - Frame* owner_frame = frame_->Tree().Parent() ? frame_->Tree().Parent() - : frame_->Client()->Opener(); + Frame* owner_frame = frame_->Parent() ? frame_->Parent() : frame_->Opener(); ContentSecurityPolicy* owner_csp = owner_frame ? owner_frame->GetSecurityContext()->GetContentSecurityPolicy()
diff --git a/third_party/blink/renderer/core/page/chrome_client_impl.cc b/third_party/blink/renderer/core/page/chrome_client_impl.cc index 5b2ace3..10e7f3c 100644 --- a/third_party/blink/renderer/core/page/chrome_client_impl.cc +++ b/third_party/blink/renderer/core/page/chrome_client_impl.cc
@@ -196,8 +196,7 @@ // The WindowRect() for each WebWidgetClient will be the same rect of the top // level window. Since there is not always a WebWidgetClient attached to the // WebView, we ask the WebWidget associated with the |frame|'s local root. - WebWidgetClient* client = frame.GetWidgetForLocalRoot()->Client(); - return IntRect(client->WindowRect()); + return IntRect(frame.GetWidgetForLocalRoot()->WindowRect()); } void ChromeClientImpl::FocusPage() { @@ -443,13 +442,13 @@ // TODO(dcheng): Is this null check needed? if (client) { client->ConvertViewportToWindow(&screen_rect); - WebRect view_rect = client->ViewRect(); + gfx::Rect view_rect = frame.GetWidgetForLocalRoot()->ViewRect(); base::CheckedNumeric<int> screen_rect_x = screen_rect.x; base::CheckedNumeric<int> screen_rect_y = screen_rect.y; - screen_rect_x += view_rect.x; - screen_rect_y += view_rect.y; + screen_rect_x += view_rect.x(); + screen_rect_y += view_rect.y(); screen_rect.x = screen_rect_x.ValueOrDefault(std::numeric_limits<int>::max()); @@ -491,9 +490,8 @@ LocalFrame& frame, IntRect* visible_rect) const { DCHECK(frame.IsMainFrame()); - WebWidgetClient* client = frame.GetWidgetForLocalRoot()->Client(); return web_view_->GetDevToolsEmulator()->OverrideVisibleRect( - IntRect(client->ViewRect()).Size(), visible_rect); + IntRect(frame.GetWidgetForLocalRoot()->ViewRect()).Size(), visible_rect); } float ChromeClientImpl::InputEventsScaleForEmulation() const {
diff --git a/third_party/blink/renderer/core/page/frame_tree.cc b/third_party/blink/renderer/core/page/frame_tree.cc index 83d234d..051bd6aa 100644 --- a/third_party/blink/renderer/core/page/frame_tree.cc +++ b/third_party/blink/renderer/core/page/frame_tree.cc
@@ -119,31 +119,19 @@ DISABLE_CFI_PERF Frame* FrameTree::Parent() const { - if (!this_frame_->Client()) - return nullptr; - return this_frame_->Client()->Parent(); + return this_frame_->Parent(); } Frame& FrameTree::Top() const { - // FIXME: top() should never return null, so here are some hacks to deal - // with EmptyLocalFrameClient and cases where the frame is detached - // already... - if (!this_frame_->Client()) - return *this_frame_; - Frame* candidate = this_frame_->Client()->Top(); - return candidate ? *candidate : *this_frame_; + return *this_frame_->Top(); } Frame* FrameTree::NextSibling() const { - if (!this_frame_->Client()) - return nullptr; - return this_frame_->Client()->NextSibling(); + return this_frame_->NextSibling(); } Frame* FrameTree::FirstChild() const { - if (!this_frame_->Client()) - return nullptr; - return this_frame_->Client()->FirstChild(); + return this_frame_->FirstChild(); } Frame* FrameTree::ScopedChild(unsigned index) const {
diff --git a/third_party/blink/renderer/core/page/scrolling/scroll_into_view_test.cc b/third_party/blink/renderer/core/page/scrolling/scroll_into_view_test.cc index 253e54e6..d8eb996 100644 --- a/third_party/blink/renderer/core/page/scrolling/scroll_into_view_test.cc +++ b/third_party/blink/renderer/core/page/scrolling/scroll_into_view_test.cc
@@ -535,6 +535,8 @@ // This test ensures the stop-at-layout viewport option works correctly when a // non-default root scroller is set as the layout viewport. TEST_F(ScrollIntoViewTest, StopAtLayoutViewportOption) { + ScopedImplicitRootScrollerForTest implicit_root_scroller(true); + v8::HandleScope HandleScope(v8::Isolate::GetCurrent()); WebView().MainFrameWidget()->Resize(WebSize(800, 600)); SimRequest request("https://example.com/test.html", "text/html");
diff --git a/third_party/blink/renderer/core/page/validation_message_overlay_delegate.cc b/third_party/blink/renderer/core/page/validation_message_overlay_delegate.cc index 9a0f092..c91fe76d 100644 --- a/third_party/blink/renderer/core/page/validation_message_overlay_delegate.cc +++ b/third_party/blink/renderer/core/page/validation_message_overlay_delegate.cc
@@ -159,7 +159,8 @@ main_settings.GetMinimumLogicalFontSize()); auto* frame = MakeGarbageCollected<LocalFrame>( - MakeGarbageCollected<EmptyLocalFrameClient>(), *page_, nullptr, + MakeGarbageCollected<EmptyLocalFrameClient>(), *page_, nullptr, nullptr, + nullptr, FrameInsertType::kInsertInConstructor, base::UnguessableToken::Create(), nullptr, nullptr); frame->SetView(MakeGarbageCollected<LocalFrameView>(*frame, view_size)); frame->Init(nullptr);
diff --git a/third_party/blink/renderer/core/paint/paint_layer.cc b/third_party/blink/renderer/core/paint/paint_layer.cc index 2a323e53..7287461 100644 --- a/third_party/blink/renderer/core/paint/paint_layer.cc +++ b/third_party/blink/renderer/core/paint/paint_layer.cc
@@ -3461,17 +3461,14 @@ LocalFrameView* frame_view = GetLayoutObject().GetDocument().View(); if (frame_view) { - // If you need repaint, then you might issue raster invalidations, and in - // Composite after Paint mode, we do these in PAC::Update(). - if (RuntimeEnabledFeatures::CompositeAfterPaintEnabled()) { + // If you need repaint, then you might do layerization and isue raster + // invalidations. In CompositeAfterPaint mode, and in CompositeSVG mode for + // SVG roots, we do these in PAC::Update(). TODO(paint-team): distinguish + // requirements for layerization and non-geometry raster invalidations. + if (RuntimeEnabledFeatures::CompositeAfterPaintEnabled() || + (RuntimeEnabledFeatures::CompositeSVGEnabled() && + GetLayoutObject().IsSVGRoot())) frame_view->SetPaintArtifactCompositorNeedsUpdate(); - } else if (RuntimeEnabledFeatures::CompositeSVGEnabled()) { - // With GraphicsLayer layerization after paint, we also need to call - // PaintArtifactCompositor::Update for raster invalidations. - // TODO(pdr): Can we do a lighter-weight update that only does raster - // invalidation and skips the overlap test? - frame_view->SetPaintArtifactCompositorNeedsUpdate(); - } } // Do this unconditionally to ensure container chain is marked when
diff --git a/third_party/blink/renderer/core/paint/paint_timing.cc b/third_party/blink/renderer/core/paint/paint_timing.cc index 9c5e52f..a7be23a 100644 --- a/third_party/blink/renderer/core/paint/paint_timing.cc +++ b/third_party/blink/renderer/core/paint/paint_timing.cc
@@ -23,6 +23,7 @@ #include "third_party/blink/renderer/platform/instrumentation/histogram.h" #include "third_party/blink/renderer/platform/instrumentation/resource_coordinator/document_resource_coordinator.h" #include "third_party/blink/renderer/platform/instrumentation/tracing/trace_event.h" +#include "third_party/blink/renderer/platform/loader/fetch/resource_fetcher.h" #include "third_party/blink/renderer/platform/scheduler/public/frame_scheduler.h" #include "third_party/blink/renderer/platform/wtf/cross_thread_functional.h" #include "third_party/blink/renderer/platform/wtf/wtf.h" @@ -182,6 +183,8 @@ if (frame && frame->GetDocument()) { Document* document = frame->GetDocument(); document->MarkFirstPaint(); + if (frame->IsMainFrame()) + document->Fetcher()->MarkFirstPaint(); } first_paint_ = stamp; @@ -201,6 +204,9 @@ return; frame->View()->OnFirstContentfulPaint(); + if (frame->GetDocument() && frame->GetDocument()->Fetcher()) + frame->GetDocument()->Fetcher()->MarkFirstContentfulPaint(); + if (frame->GetFrameScheduler()) frame->GetFrameScheduler()->OnFirstContentfulPaint(); }
diff --git a/third_party/blink/renderer/core/svg/graphics/svg_image.cc b/third_party/blink/renderer/core/svg/graphics/svg_image.cc index 11441c8..36cd8cc 100644 --- a/third_party/blink/renderer/core/svg/graphics/svg_image.cc +++ b/third_party/blink/renderer/core/svg/graphics/svg_image.cc
@@ -852,9 +852,10 @@ TRACE_EVENT0("blink", "SVGImage::dataChanged::createFrame"); DCHECK(!frame_client_); frame_client_ = MakeGarbageCollected<SVGImageLocalFrameClient>(this); - frame = MakeGarbageCollected<LocalFrame>(frame_client_, *page, nullptr, - base::UnguessableToken::Create(), - nullptr, nullptr); + frame = MakeGarbageCollected<LocalFrame>( + frame_client_, *page, nullptr, nullptr, nullptr, + FrameInsertType::kInsertInConstructor, base::UnguessableToken::Create(), + nullptr, nullptr); frame->SetView(MakeGarbageCollected<LocalFrameView>(*frame)); frame->Init(nullptr); }
diff --git a/third_party/blink/renderer/core/testing/core_unit_test_helper.cc b/third_party/blink/renderer/core/testing/core_unit_test_helper.cc index 99544a7..948dd62a 100644 --- a/third_party/blink/renderer/core/testing/core_unit_test_helper.cc +++ b/third_party/blink/renderer/core/testing/core_unit_test_helper.cc
@@ -19,24 +19,23 @@ LocalFrame* SingleChildLocalFrameClient::CreateFrame( const AtomicString& name, HTMLFrameOwnerElement* owner_element) { - DCHECK(!child_) << "This test helper only supports one child frame."; LocalFrame* parent_frame = owner_element->GetDocument().GetFrame(); auto* child_client = MakeGarbageCollected<LocalFrameClientWithParent>(parent_frame); - child_ = MakeGarbageCollected<LocalFrame>( - child_client, *parent_frame->GetPage(), owner_element, + LocalFrame* child = MakeGarbageCollected<LocalFrame>( + child_client, *parent_frame->GetPage(), owner_element, parent_frame, + nullptr, FrameInsertType::kInsertInConstructor, base::UnguessableToken::Create(), &parent_frame->window_agent_factory(), nullptr); - child_->CreateView(IntSize(500, 500), Color::kTransparent); - child_->Init(nullptr); + child->CreateView(IntSize(500, 500), Color::kTransparent); + child->Init(nullptr); - return child_.Get(); + return child; } void LocalFrameClientWithParent::Detached(FrameDetachType) { - static_cast<SingleChildLocalFrameClient*>(Parent()->Client()) - ->DidDetachChild(); + parent_->RemoveChild(parent_->FirstChild()); } void RenderingTestChromeClient::InjectGestureScrollEvent(
diff --git a/third_party/blink/renderer/core/testing/core_unit_test_helper.h b/third_party/blink/renderer/core/testing/core_unit_test_helper.h index 09aa1dc..4df2e2a 100644 --- a/third_party/blink/renderer/core/testing/core_unit_test_helper.h +++ b/third_party/blink/renderer/core/testing/core_unit_test_helper.h
@@ -33,19 +33,12 @@ explicit SingleChildLocalFrameClient() = default; void Trace(Visitor* visitor) const override { - visitor->Trace(child_); EmptyLocalFrameClient::Trace(visitor); } // LocalFrameClient overrides: - LocalFrame* FirstChild() const override { return child_.Get(); } LocalFrame* CreateFrame(const AtomicString& name, HTMLFrameOwnerElement*) override; - - void DidDetachChild() { child_ = nullptr; } - - private: - Member<LocalFrame> child_; }; class LocalFrameClientWithParent final : public EmptyLocalFrameClient { @@ -59,8 +52,6 @@ // FrameClient overrides: void Detached(FrameDetachType) override; - LocalFrame* Parent() const override { return parent_.Get(); } - LocalFrame* Top() const override { return parent_.Get(); } private: Member<LocalFrame> parent_;
diff --git a/third_party/blink/renderer/core/testing/dummy_page_holder.cc b/third_party/blink/renderer/core/testing/dummy_page_holder.cc index 68b1e5c..bc96cc7 100644 --- a/third_party/blink/renderer/core/testing/dummy_page_holder.cc +++ b/third_party/blink/renderer/core/testing/dummy_page_holder.cc
@@ -86,7 +86,9 @@ // Create new WindowAgentFactory as this page will be isolated from others. frame_ = MakeGarbageCollected<LocalFrame>( local_frame_client_.Get(), *page_, - /* FrameOwner* */ nullptr, base::UnguessableToken::Create(), + /* FrameOwner* */ nullptr, /* Frame* parent */ nullptr, + /* Frame* previous_sibling */ nullptr, + FrameInsertType::kInsertInConstructor, base::UnguessableToken::Create(), /* WindowAgentFactory* */ nullptr, /* InterfaceRegistry* */ nullptr, clock); frame_->SetView(
diff --git a/third_party/blink/renderer/modules/accessibility/DEPS b/third_party/blink/renderer/modules/accessibility/DEPS index 01bddf1..2bfd7d06 100644 --- a/third_party/blink/renderer/modules/accessibility/DEPS +++ b/third_party/blink/renderer/modules/accessibility/DEPS
@@ -1,5 +1,6 @@ include_rules = [ "-third_party/blink/renderer/modules", + "+base/strings/string_util.h", "+third_party/blink/renderer/modules/accessibility", "+third_party/blink/renderer/modules/media_controls", "+third_party/blink/renderer/modules/modules_export.h", @@ -7,6 +8,7 @@ "+ui/accessibility/ax_enums.mojom-blink.h", "+ui/accessibility/ax_enums.mojom-blink-forward.h", "+ui/accessibility/ax_event.h", + "+ui/accessibility/ax_mode.h", "+ui/accessibility/ax_node_data.h", "+ui/accessibility/ax_role_properties.h", ]
diff --git a/third_party/blink/renderer/modules/accessibility/ax_object.cc b/third_party/blink/renderer/modules/accessibility/ax_object.cc index d609e7ca..148b2fe37 100644 --- a/third_party/blink/renderer/modules/accessibility/ax_object.cc +++ b/third_party/blink/renderer/modules/accessibility/ax_object.cc
@@ -29,7 +29,7 @@ #include "third_party/blink/renderer/modules/accessibility/ax_object.h" #include <algorithm> - +#include "base/strings/string_util.h" #include "third_party/blink/public/common/features.h" #include "third_party/blink/public/mojom/input/focus_type.mojom-blink.h" #include "third_party/blink/renderer/core/aom/accessible_node.h" @@ -727,7 +727,8 @@ } } -void AXObject::Serialize(ui::AXNodeData* node_data) { +void AXObject::Serialize(ui::AXNodeData* node_data, + ui::AXMode accessibility_mode) { AccessibilityExpanded expanded = IsExpanded(); if (expanded) { if (expanded == kExpandedCollapsed) @@ -830,6 +831,44 @@ } } } + + if (accessibility_mode.has_mode(ui::AXMode::kPDF)) { + // The DOMNodeID from Blink. Currently only populated when using + // the accessibility tree for PDF exporting. Warning, this is totally + // unrelated to the accessibility node ID, or the ID attribute for an + // HTML element - it's an ID used to uniquely identify nodes in Blink. + int dom_node_id = GetDOMNodeId(); + if (dom_node_id) { + node_data->AddIntAttribute(ax::mojom::blink::IntAttribute::kDOMNodeId, + dom_node_id); + } + // None of the following attributes are needed for PDF accessibility. + return; + } + + if (ValueDescription().length()) { + TruncateAndAddStringAttribute(node_data, + ax::mojom::blink::StringAttribute::kValue, + ValueDescription().Utf8()); + } else { + TruncateAndAddStringAttribute(node_data, + ax::mojom::blink::StringAttribute::kValue, + StringValue().Utf8()); + } +} + +void AXObject::TruncateAndAddStringAttribute( + ui::AXNodeData* dst, + ax::mojom::blink::StringAttribute attribute, + const std::string& value, + uint32_t max_len) const { + if (value.size() > max_len) { + std::string truncated; + base::TruncateUTF8ToByteSize(value, max_len, &truncated); + dst->AddStringAttribute(attribute, truncated); + } else { + dst->AddStringAttribute(attribute, value); + } } bool AXObject::IsAXNodeObject() const {
diff --git a/third_party/blink/renderer/modules/accessibility/ax_object.h b/third_party/blink/renderer/modules/accessibility/ax_object.h index 9899426..fdc90a1 100644 --- a/third_party/blink/renderer/modules/accessibility/ax_object.h +++ b/third_party/blink/renderer/modules/accessibility/ax_object.h
@@ -52,6 +52,7 @@ #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h" #include "third_party/blink/renderer/platform/wtf/vector.h" #include "ui/accessibility/ax_enums.mojom-blink.h" +#include "ui/accessibility/ax_mode.h" class SkMatrix44; @@ -404,7 +405,7 @@ // // TODO(crbug.com/1068668): AX onion soup - finish migrating // BlinkAXTreeSource::SerializeNode into AXObject::Serialize. - void Serialize(ui::AXNodeData* node_data); + void Serialize(ui::AXNodeData* node_data, ui::AXMode accessibility_mode); // Determine subclass type. virtual bool IsImageMapLink() const; @@ -1305,6 +1306,14 @@ // not possible. LayoutObject* GetLayoutObjectForNativeScrollAction() const; + // Max length for attributes such as aria-label. + static const uint32_t kMaxStringAttributeLength = 10000; + void TruncateAndAddStringAttribute( + ui::AXNodeData* dst, + ax::mojom::blink::StringAttribute attribute, + const std::string& value, + uint32_t max_len = kMaxStringAttributeLength) const; + static unsigned number_of_live_ax_objects_; DISALLOW_COPY_AND_ASSIGN(AXObject);
diff --git a/third_party/blink/renderer/modules/canvas/canvas2d/base_rendering_context_2d.cc b/third_party/blink/renderer/modules/canvas/canvas2d/base_rendering_context_2d.cc index 45a4034a..8517ad3d 100644 --- a/third_party/blink/renderer/modules/canvas/canvas2d/base_rendering_context_2d.cc +++ b/third_party/blink/renderer/modules/canvas/canvas2d/base_rendering_context_2d.cc
@@ -1578,26 +1578,6 @@ exception_state); } -ImageData* BaseRenderingContext2D::createImageData( - ImageDataArray& data_array, - unsigned width, - unsigned height, - ExceptionState& exception_state) const { - return ImageData::CreateImageData(data_array, width, height, - ImageDataColorSettings::Create(), - exception_state); -} - -ImageData* BaseRenderingContext2D::createImageData( - ImageDataArray& data_array, - unsigned width, - unsigned height, - ImageDataColorSettings* color_settings, - ExceptionState& exception_state) const { - return ImageData::CreateImageData(data_array, width, height, color_settings, - exception_state); -} - ImageData* BaseRenderingContext2D::getImageData( int sx, int sy,
diff --git a/third_party/blink/renderer/modules/canvas/canvas2d/base_rendering_context_2d.h b/third_party/blink/renderer/modules/canvas/canvas2d/base_rendering_context_2d.h index a0ce8e49..8cfe814 100644 --- a/third_party/blink/renderer/modules/canvas/canvas2d/base_rendering_context_2d.h +++ b/third_party/blink/renderer/modules/canvas/canvas2d/base_rendering_context_2d.h
@@ -188,15 +188,6 @@ unsigned, ImageDataColorSettings*, ExceptionState&) const; - ImageData* createImageData(ImageDataArray&, - unsigned, - unsigned, - ExceptionState&) const; - ImageData* createImageData(ImageDataArray&, - unsigned, - unsigned, - ImageDataColorSettings*, - ExceptionState&) const; // For deferred canvases this will have the side effect of drawing recorded // commands in order to finalize the frame
diff --git a/third_party/blink/renderer/modules/canvas/canvas2d/canvas_rendering_context_2d.idl b/third_party/blink/renderer/modules/canvas/canvas2d/canvas_rendering_context_2d.idl index 9d47e14..dc3d6e8 100644 --- a/third_party/blink/renderer/modules/canvas/canvas2d/canvas_rendering_context_2d.idl +++ b/third_party/blink/renderer/modules/canvas/canvas2d/canvas_rendering_context_2d.idl
@@ -133,7 +133,6 @@ // https://github.com/WICG/canvas-color-space/blob/master/CanvasColorSpaceProposal.md [RuntimeEnabled=CanvasColorManagement, RaisesException] ImageData createImageData(unsigned long sw, unsigned long sh, ImageDataColorSettings imageDataColorSettings); - [RuntimeEnabled=CanvasColorManagement, RaisesException] ImageData createImageData(ImageDataArray data, unsigned long sw, unsigned long sh, optional ImageDataColorSettings imageDataColorSettings = {}); // Context state // Should be merged with WebGL counterpart in CanvasRenderingContext, once no-longer experimental
diff --git a/third_party/blink/renderer/modules/canvas/offscreencanvas2d/offscreen_canvas_rendering_context_2d.idl b/third_party/blink/renderer/modules/canvas/offscreencanvas2d/offscreen_canvas_rendering_context_2d.idl index a58003a..5ff46e9 100644 --- a/third_party/blink/renderer/modules/canvas/offscreencanvas2d/offscreen_canvas_rendering_context_2d.idl +++ b/third_party/blink/renderer/modules/canvas/offscreencanvas2d/offscreen_canvas_rendering_context_2d.idl
@@ -88,8 +88,6 @@ // If OffscreenCanva ships before color managed canvas, this method must remain behind flag. // https://github.com/WICG/canvas-color-space/blob/master/CanvasColorSpaceProposal.md [RuntimeEnabled=CanvasColorManagement, RaisesException] ImageData createImageData(unsigned long sw, unsigned long sh, ImageDataColorSettings imageDataColorSettings); - [RuntimeEnabled=CanvasColorManagement, RaisesException] ImageData createImageData(ImageDataArray data, unsigned long sw, unsigned long sh, ImageDataColorSettings imageDataColorSettings); - // Line caps/joins attribute unrestricted double lineWidth; // (default 1)
diff --git a/third_party/blink/renderer/modules/credentialmanager/BUILD.gn b/third_party/blink/renderer/modules/credentialmanager/BUILD.gn index 8a3f99f8..9f9d84c 100644 --- a/third_party/blink/renderer/modules/credentialmanager/BUILD.gn +++ b/third_party/blink/renderer/modules/credentialmanager/BUILD.gn
@@ -30,6 +30,8 @@ "otp_credential.h", "password_credential.cc", "password_credential.h", + "payment_credential.cc", + "payment_credential.h", "public_key_credential.cc", "public_key_credential.h", "scoped_promise_resolver.cc",
diff --git a/third_party/blink/renderer/modules/credentialmanager/credential.h b/third_party/blink/renderer/modules/credentialmanager/credential.h index 740be80..5ce3f885 100644 --- a/third_party/blink/renderer/modules/credentialmanager/credential.h +++ b/third_party/blink/renderer/modules/credentialmanager/credential.h
@@ -26,6 +26,7 @@ virtual bool IsFederatedCredential() const { return false; } virtual bool IsPublicKeyCredential() const { return false; } virtual bool IsOTPCredential() const { return false; } + virtual bool IsPaymentCredential() const { return false; } // Credential.idl const String& id() const { return id_; }
diff --git a/third_party/blink/renderer/modules/credentialmanager/credential_creation_options.idl b/third_party/blink/renderer/modules/credentialmanager/credential_creation_options.idl index ecac691..e221fd0 100644 --- a/third_party/blink/renderer/modules/credentialmanager/credential_creation_options.idl +++ b/third_party/blink/renderer/modules/credentialmanager/credential_creation_options.idl
@@ -12,5 +12,6 @@ PasswordCredentialInit password; FederatedCredentialInit federated; PublicKeyCredentialCreationOptions publicKey; + PaymentCredentialCreationOptions payment; AbortSignal signal; };
diff --git a/third_party/blink/renderer/modules/credentialmanager/credential_manager_proxy.cc b/third_party/blink/renderer/modules/credentialmanager/credential_manager_proxy.cc index 8e720be..a273084a 100644 --- a/third_party/blink/renderer/modules/credentialmanager/credential_manager_proxy.cc +++ b/third_party/blink/renderer/modules/credentialmanager/credential_manager_proxy.cc
@@ -15,7 +15,8 @@ : Supplement<LocalDOMWindow>(window), authenticator_(window.GetExecutionContext()), credential_manager_(window.GetExecutionContext()), - sms_receiver_(window.GetExecutionContext()) { + sms_receiver_(window.GetExecutionContext()), + payment_credential_(window.GetExecutionContext()) { LocalFrame* frame = window.GetFrame(); DCHECK(frame); frame->GetBrowserInterfaceBroker().GetInterface( @@ -39,6 +40,18 @@ return sms_receiver_.get(); } +payments::mojom::blink::PaymentCredential* +CredentialManagerProxy::PaymentCredential() { + if (!payment_credential_.is_bound()) { + LocalFrame* frame = GetSupplementable()->GetFrame(); + DCHECK(frame); + frame->GetBrowserInterfaceBroker().GetInterface( + payment_credential_.BindNewPipeAndPassReceiver( + frame->GetTaskRunner(TaskType::kMiscPlatformAPI))); + } + return payment_credential_.get(); +} + // static CredentialManagerProxy* CredentialManagerProxy::From( ScriptState* script_state) { @@ -57,6 +70,7 @@ visitor->Trace(authenticator_); visitor->Trace(credential_manager_); visitor->Trace(sms_receiver_); + visitor->Trace(payment_credential_); Supplement<LocalDOMWindow>::Trace(visitor); }
diff --git a/third_party/blink/renderer/modules/credentialmanager/credential_manager_proxy.h b/third_party/blink/renderer/modules/credentialmanager/credential_manager_proxy.h index 56594bb..45fc07b 100644 --- a/third_party/blink/renderer/modules/credentialmanager/credential_manager_proxy.h +++ b/third_party/blink/renderer/modules/credentialmanager/credential_manager_proxy.h
@@ -6,6 +6,7 @@ #define THIRD_PARTY_BLINK_RENDERER_MODULES_CREDENTIALMANAGER_CREDENTIAL_MANAGER_PROXY_H_ #include "third_party/blink/public/mojom/credentialmanager/credential_manager.mojom-blink.h" +#include "third_party/blink/public/mojom/payments/payment_credential.mojom-blink.h" #include "third_party/blink/public/mojom/sms/sms_receiver.mojom-blink.h" #include "third_party/blink/public/mojom/webauthn/authenticator.mojom-blink.h" #include "third_party/blink/renderer/core/frame/local_dom_window.h" @@ -47,6 +48,8 @@ mojom::blink::SmsReceiver* SmsReceiver(); + payments::mojom::blink::PaymentCredential* PaymentCredential(); + void FlushCredentialManagerConnectionForTesting() { credential_manager_.FlushForTesting(); } @@ -67,6 +70,9 @@ HeapMojoRemote<mojom::blink::SmsReceiver, HeapMojoWrapperMode::kForceWithoutContextObserver> sms_receiver_; + HeapMojoRemote<payments::mojom::blink::PaymentCredential, + HeapMojoWrapperMode::kForceWithoutContextObserver> + payment_credential_; }; } // namespace blink
diff --git a/third_party/blink/renderer/modules/credentialmanager/credentials_container.cc b/third_party/blink/renderer/modules/credentialmanager/credentials_container.cc index 426f352..ca76dc0 100644 --- a/third_party/blink/renderer/modules/credentialmanager/credentials_container.cc +++ b/third_party/blink/renderer/modules/credentialmanager/credentials_container.cc
@@ -12,6 +12,7 @@ #include "third_party/blink/public/common/sms/sms_receiver_outcome.h" #include "third_party/blink/public/mojom/credentialmanager/credential_manager.mojom-blink.h" #include "third_party/blink/public/mojom/feature_policy/feature_policy.mojom-blink.h" +#include "third_party/blink/public/mojom/payments/payment_credential.mojom-blink.h" #include "third_party/blink/public/mojom/sms/sms_receiver.mojom-blink.h" #include "third_party/blink/renderer/bindings/core/v8/script_promise.h" #include "third_party/blink/renderer/bindings/core/v8/script_promise_resolver.h" @@ -21,8 +22,11 @@ #include "third_party/blink/renderer/bindings/modules/v8/v8_credential_request_options.h" #include "third_party/blink/renderer/bindings/modules/v8/v8_federated_credential_request_options.h" #include "third_party/blink/renderer/bindings/modules/v8/v8_otp_credential_request_options.h" +#include "third_party/blink/renderer/bindings/modules/v8/v8_payment_credential_creation_options.h" +#include "third_party/blink/renderer/bindings/modules/v8/v8_payment_credential_instrument.h" #include "third_party/blink/renderer/bindings/modules/v8/v8_public_key_credential_creation_options.h" #include "third_party/blink/renderer/bindings/modules/v8/v8_public_key_credential_request_options.h" +#include "third_party/blink/renderer/bindings/modules/v8/v8_public_key_credential_rp_entity.h" #include "third_party/blink/renderer/core/dom/abort_signal.h" #include "third_party/blink/renderer/core/dom/document.h" #include "third_party/blink/renderer/core/dom/dom_exception.h" @@ -43,6 +47,7 @@ #include "third_party/blink/renderer/modules/credentialmanager/federated_credential.h" #include "third_party/blink/renderer/modules/credentialmanager/otp_credential.h" #include "third_party/blink/renderer/modules/credentialmanager/password_credential.h" +#include "third_party/blink/renderer/modules/credentialmanager/payment_credential.h" #include "third_party/blink/renderer/modules/credentialmanager/public_key_credential.h" #include "third_party/blink/renderer/modules/credentialmanager/scoped_promise_resolver.h" #include "third_party/blink/renderer/platform/bindings/exception_state.h" @@ -71,10 +76,15 @@ using MojoPublicKeyCredentialRequestOptions = mojom::blink::PublicKeyCredentialRequestOptions; using mojom::blink::GetAssertionAuthenticatorResponsePtr; +using payments::mojom::blink::PaymentCredentialCreationStatus; +using payments::mojom::blink::PaymentCredentialInstrument; constexpr char kCryptotokenOrigin[] = "chrome-extension://kmendfapggjehodndflmmgagdbamhnfd"; +static constexpr int kCoseEs256 = -7; +static constexpr int kCoseRs256 = -257; + // RequiredOriginType enumerates the requirements on the environment to perform // an operation. enum class RequiredOriginType { @@ -520,6 +530,209 @@ resolver->Resolve(MakeGarbageCollected<OTPCredential>(otp)); } +void OnPaymentCredentialCreationComplete( + std::unique_ptr<ScopedPromiseResolver> scoped_resolver, + MakeCredentialAuthenticatorResponsePtr credential, + PaymentCredentialCreationStatus status) { + auto* resolver = scoped_resolver->Release(); + + if (status == PaymentCredentialCreationStatus::FAILED_TO_DOWNLOAD_ICON) { + resolver->Reject(MakeGarbageCollected<DOMException>( + DOMExceptionCode::kNetworkError, + "Unable to download payment instrument icon.")); + return; + } else if (status == + PaymentCredentialCreationStatus::FAILED_TO_STORE_INSTRUMENT) { + resolver->Reject(MakeGarbageCollected<DOMException>( + DOMExceptionCode::kUnknownError, + "Failed to store payment instrument.")); + return; + } else { + DCHECK(status == PaymentCredentialCreationStatus::SUCCESS); + } + + DOMArrayBuffer* client_data_buffer = + VectorToDOMArrayBuffer(std::move(credential->info->client_data_json)); + DOMArrayBuffer* raw_id = + VectorToDOMArrayBuffer(std::move(credential->info->raw_id)); + DOMArrayBuffer* attestation_buffer = + VectorToDOMArrayBuffer(std::move(credential->attestation_object)); + DOMArrayBuffer* authenticator_data = + VectorToDOMArrayBuffer(std::move(credential->info->authenticator_data)); + DOMArrayBuffer* public_key_der = nullptr; + if (credential->public_key_der) { + public_key_der = + VectorToDOMArrayBuffer(std::move(credential->public_key_der.value())); + } + auto* authenticator_response = + MakeGarbageCollected<AuthenticatorAttestationResponse>( + client_data_buffer, attestation_buffer, credential->transports, + authenticator_data, public_key_der, credential->public_key_algo); + + resolver->Resolve(MakeGarbageCollected<PaymentCredential>( + credential->info->id, raw_id, authenticator_response, + AuthenticationExtensionsClientOutputs::Create())); +} + +void OnMakePublicKeyCredentialForPaymentComplete( + std::unique_ptr<ScopedPromiseResolver> scoped_resolver, + const PaymentCredentialCreationOptions* options, + AuthenticatorStatus status, + MakeCredentialAuthenticatorResponsePtr credential) { + auto* resolver = scoped_resolver->Release(); + const auto required_origin_type = RequiredOriginType::kSecure; + + AssertSecurityRequirementsBeforeResponse(resolver, required_origin_type); + if (status == AuthenticatorStatus::SUCCESS) { + DCHECK(credential); + DCHECK(!credential->info->client_data_json.IsEmpty()); + DCHECK(!credential->attestation_object.IsEmpty()); + + auto payment_instrument = PaymentCredentialInstrument::New(); + payment_instrument->display_name = options->instrument()->displayName(); + payment_instrument->icon = KURL(options->instrument()->icon()); + + auto* payment_credential_remote = + CredentialManagerProxy::From(resolver->GetScriptState()) + ->PaymentCredential(); + payment_credential_remote->StorePaymentCredential( + std::move(payment_instrument), credential->info->raw_id, + options->rp()->id(), + WTF::Bind( + &OnPaymentCredentialCreationComplete, + WTF::Passed(std::make_unique<ScopedPromiseResolver>(resolver)), + std::move(credential))); + } else { + DCHECK(!credential); + resolver->Reject(CredentialManagerErrorToDOMException( + mojo::ConvertTo<CredentialManagerError>(status))); + } +} + +void CreatePublicKeyCredentialForPaymentCredential( + const PaymentCredentialCreationOptions* options, + ScriptPromiseResolver* resolver) { + // TODO(kenrb): Much of this could eventually be deduplicated with the + // PublicKeyCredential handling code in CredentialsContainer::create(), but + // it is preferable to keep these separate during the experimentation stage + // for SecurePaymentConfirmation because this is subject to a lot of change + // and possibly removal. + + if (!options->rp() || !options->instrument() || + !options->instrument()->displayName() || !options->instrument()->icon()) { + resolver->Reject(MakeGarbageCollected<DOMException>( + DOMExceptionCode::kNotSupportedError, + "Required parameters missing in `options.payment`.")); + return; + } + + auto mojo_options = mojom::blink::PublicKeyCredentialCreationOptions::New(); + mojo_options->relying_party = + mojom::blink::PublicKeyCredentialRpEntity::From(*options->rp()); + mojo_options->challenge = + mojo::ConvertTo<Vector<uint8_t>>(options->challenge()); + + // PaymentCredentials is only supported with user-verifying authenticators. + auto selection_criteria = mojom::blink::AuthenticatorSelectionCriteria::New(); + selection_criteria->authenticator_attachment = + mojom::blink::AuthenticatorAttachment::PLATFORM; + selection_criteria->require_resident_key = false; + selection_criteria->user_verification = + mojom::blink::UserVerificationRequirement::REQUIRED; + mojo_options->authenticator_selection = std::move(selection_criteria); + + Vector<mojom::blink::PublicKeyCredentialParametersPtr> parameters; + if (options->pubKeyCredParams().size() == 0) { + auto es256 = mojom::blink::PublicKeyCredentialParameters::New(); + es256->type = mojom::blink::PublicKeyCredentialType::PUBLIC_KEY; + es256->algorithm_identifier = kCoseEs256; + auto rs256 = mojom::blink::PublicKeyCredentialParameters::New(); + rs256->type = mojom::blink::PublicKeyCredentialType::PUBLIC_KEY; + rs256->algorithm_identifier = kCoseRs256; + parameters.push_back(std::move(es256)); + parameters.push_back(std::move(rs256)); + } else { + for (auto& parameter : options->pubKeyCredParams()) { + mojom::blink::PublicKeyCredentialParametersPtr normalized_parameter = + mojom::blink::PublicKeyCredentialParameters::From(*parameter); + if (normalized_parameter) { + parameters.push_back(std::move(normalized_parameter)); + } + } + if (parameters.IsEmpty()) { + resolver->Reject(MakeGarbageCollected<DOMException>( + DOMExceptionCode::kNotSupportedError, + "Required parameters missing in `options.pubKeyCredParams`.")); + return; + } + } + mojo_options->public_key_parameters = std::move(parameters); + + if (options->hasTimeout()) { + mojo_options->timeout = + base::TimeDelta::FromMilliseconds(options->timeout()); + } + + mojo_options->user = mojom::blink::PublicKeyCredentialUserEntity::New(); + mojo_options->user->name = options->instrument()->displayName(); + + // There isn't explicity a WebAuthn 'user ID', so just convert the + // instrument display name into a byte array and use that. + const uint8_t* display_name_bytes = + static_cast<const uint8_t*>(options->instrument()->displayName().Bytes()); + mojo_options->user->id = Vector<uint8_t>(); + mojo_options->user->id.AppendRange( + display_name_bytes, + display_name_bytes + + options->instrument()->displayName().CharactersSizeInBytes()); + mojo_options->user->display_name = options->instrument()->displayName(); + mojo_options->user->icon = KURL(options->instrument()->icon()); + + if (!mojo_options->relying_party) { + resolver->Reject(MakeGarbageCollected<DOMException>( + DOMExceptionCode::kNotSupportedError, + "Required parameters missing in `options.payment`.")); + return; + } + if (mojo_options->user->id.size() > 64) { + // https://www.w3.org/TR/webauthn/#user-handle + v8::Isolate* isolate = resolver->GetScriptState()->GetIsolate(); + resolver->Reject(V8ThrowException::CreateTypeError( + isolate, "User handle exceeds 64 bytes.")); + return; + } + if (!mojo_options->relying_party->id) { + mojo_options->relying_party->id = resolver->GetFrame() + ->GetSecurityContext() + ->GetSecurityOrigin() + ->Domain(); + } + + if (mojo_options->relying_party->icon && + !IsIconURLNullOrSecure(mojo_options->relying_party->icon.value())) { + resolver->Reject(MakeGarbageCollected<DOMException>( + DOMExceptionCode::kSecurityError, + "'rp.user.icon' should be a secure URL")); + return; + } + + if (mojo_options->user->icon && + !IsIconURLNullOrSecure(mojo_options->user->icon.value())) { + resolver->Reject(MakeGarbageCollected<DOMException>( + DOMExceptionCode::kSecurityError, + "'instrument.icon' should be a secure URL")); + return; + } + + auto* authenticator = + CredentialManagerProxy::From(resolver->GetScriptState())->Authenticator(); + authenticator->MakeCredential( + std::move(mojo_options), + WTF::Bind(&OnMakePublicKeyCredentialForPaymentComplete, + WTF::Passed(std::make_unique<ScopedPromiseResolver>(resolver)), + WrapPersistent(options))); +} + } // namespace CredentialsContainer::CredentialsContainer() = default; @@ -751,7 +964,7 @@ } if ((options->hasPassword() + options->hasFederated() + - options->hasPublicKey()) != 1) { + options->hasPublicKey() + options->hasPayment()) != 1) { resolver->Reject(MakeGarbageCollected<DOMException>( DOMExceptionCode::kNotSupportedError, "Only exactly one of 'password', 'federated', and 'publicKey' " @@ -770,6 +983,17 @@ } else if (options->hasFederated()) { resolver->Resolve( FederatedCredential::Create(options->federated(), exception_state)); + } else if (options->hasPayment()) { + if (RuntimeEnabledFeatures::SecurePaymentConfirmationEnabled( + resolver->GetExecutionContext())) { + CreatePublicKeyCredentialForPaymentCredential(options->payment(), + resolver); + } else { + resolver->Reject(MakeGarbageCollected<DOMException>( + DOMExceptionCode::kNotSupportedError, + "PaymentCredentialCreationOptions are not enabled.")); + } + return promise; } else { DCHECK(options->hasPublicKey()); auto cryptotoken_origin = SecurityOrigin::Create(KURL(kCryptotokenOrigin));
diff --git a/third_party/blink/renderer/modules/credentialmanager/idls.gni b/third_party/blink/renderer/modules/credentialmanager/idls.gni index 336d2f2..875e786 100644 --- a/third_party/blink/renderer/modules/credentialmanager/idls.gni +++ b/third_party/blink/renderer/modules/credentialmanager/idls.gni
@@ -11,6 +11,7 @@ "federated_credential.idl", "otp_credential.idl", "password_credential.idl", + "payment_credential.idl", "public_key_credential.idl", ] @@ -28,6 +29,8 @@ "federated_credential_request_options.idl", "otp_credential_request_options.idl", "password_credential_data.idl", + "payment_credential_creation_options.idl", + "payment_credential_instrument.idl", "public_key_credential_creation_options.idl", "public_key_credential_descriptor.idl", "public_key_credential_entity.idl",
diff --git a/third_party/blink/renderer/modules/credentialmanager/payment_credential.cc b/third_party/blink/renderer/modules/credentialmanager/payment_credential.cc new file mode 100644 index 0000000..fe91f40 --- /dev/null +++ b/third_party/blink/renderer/modules/credentialmanager/payment_credential.cc
@@ -0,0 +1,28 @@ +// Copyright 2020 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "third_party/blink/renderer/modules/credentialmanager/payment_credential.h" + +namespace blink { + +namespace { +constexpr char kPaymentCredentialType[] = "payment"; +} + +PaymentCredential::PaymentCredential( + const String& id, + DOMArrayBuffer* raw_id, + AuthenticatorResponse* response, + const AuthenticationExtensionsClientOutputs* extension_outputs) + : PublicKeyCredential(id, + raw_id, + response, + extension_outputs, + kPaymentCredentialType) {} + +bool PaymentCredential::IsPaymentCredential() const { + return true; +} + +} // namespace blink
diff --git a/third_party/blink/renderer/modules/credentialmanager/payment_credential.h b/third_party/blink/renderer/modules/credentialmanager/payment_credential.h new file mode 100644 index 0000000..0d3ff4ec --- /dev/null +++ b/third_party/blink/renderer/modules/credentialmanager/payment_credential.h
@@ -0,0 +1,35 @@ +// Copyright 2020 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef THIRD_PARTY_BLINK_RENDERER_MODULES_CREDENTIALMANAGER_PAYMENT_CREDENTIAL_H_ +#define THIRD_PARTY_BLINK_RENDERER_MODULES_CREDENTIALMANAGER_PAYMENT_CREDENTIAL_H_ + +#include "third_party/blink/renderer/core/typed_arrays/dom_array_buffer.h" +#include "third_party/blink/renderer/modules/credentialmanager/authenticator_response.h" +#include "third_party/blink/renderer/modules/credentialmanager/public_key_credential.h" +#include "third_party/blink/renderer/modules/modules_export.h" +#include "third_party/blink/renderer/platform/bindings/script_wrappable.h" + +namespace blink { + +// PaymentCredential is a special type of PublicKeyCredential that is tied +// to a payment instrument. The credential is used to authenticate a user when +// making a payment with SecurePaymentConfirmation. +class MODULES_EXPORT PaymentCredential final : public PublicKeyCredential { + DEFINE_WRAPPERTYPEINFO(); + + public: + explicit PaymentCredential( + const String& id, + DOMArrayBuffer* raw_id, + AuthenticatorResponse*, + const AuthenticationExtensionsClientOutputs* extension_outputs); + + // Credential: + bool IsPaymentCredential() const override; +}; + +} // namespace blink + +#endif // THIRD_PARTY_BLINK_RENDERER_MODULES_CREDENTIALMANAGER_PAYMENT_CREDENTIAL_H_
diff --git a/third_party/blink/renderer/modules/credentialmanager/payment_credential.idl b/third_party/blink/renderer/modules/credentialmanager/payment_credential.idl new file mode 100644 index 0000000..0d789f8c --- /dev/null +++ b/third_party/blink/renderer/modules/credentialmanager/payment_credential.idl
@@ -0,0 +1,12 @@ +// Copyright 2020 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +// https://github.com/rsolomakhin/secure-payment-confirmation + +[ + RuntimeEnabled=SecurePaymentConfirmation, + SecureContext, + Exposed=Window +] interface PaymentCredential : PublicKeyCredential { +};
diff --git a/third_party/blink/renderer/modules/credentialmanager/payment_credential_creation_options.idl b/third_party/blink/renderer/modules/credentialmanager/payment_credential_creation_options.idl new file mode 100644 index 0000000..33da16fe --- /dev/null +++ b/third_party/blink/renderer/modules/credentialmanager/payment_credential_creation_options.idl
@@ -0,0 +1,14 @@ +// Copyright 2020 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +// https://github.com/rsolomakhin/secure-payment-confirmation + +dictionary PaymentCredentialCreationOptions { + required PublicKeyCredentialRpEntity rp; + required PaymentCredentialInstrument instrument; + required BufferSource challenge; + required sequence<PublicKeyCredentialParameters> pubKeyCredParams; + unsigned long timeout; +}; +
diff --git a/third_party/blink/renderer/modules/credentialmanager/payment_credential_instrument.idl b/third_party/blink/renderer/modules/credentialmanager/payment_credential_instrument.idl new file mode 100644 index 0000000..68a171c --- /dev/null +++ b/third_party/blink/renderer/modules/credentialmanager/payment_credential_instrument.idl
@@ -0,0 +1,10 @@ +// Copyright 2020 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +// https://github.com/rsolomakhin/secure-payment-confirmation + +dictionary PaymentCredentialInstrument { + required DOMString displayName; + required USVString icon; +};
diff --git a/third_party/blink/renderer/modules/credentialmanager/public_key_credential.cc b/third_party/blink/renderer/modules/credentialmanager/public_key_credential.cc index d80cfd6..470a32d 100644 --- a/third_party/blink/renderer/modules/credentialmanager/public_key_credential.cc +++ b/third_party/blink/renderer/modules/credentialmanager/public_key_credential.cc
@@ -31,8 +31,9 @@ const String& id, DOMArrayBuffer* raw_id, AuthenticatorResponse* response, - const AuthenticationExtensionsClientOutputs* extension_outputs) - : Credential(id, kPublicKeyCredentialType), + const AuthenticationExtensionsClientOutputs* extension_outputs, + const String& type) + : Credential(id, type.IsEmpty() ? kPublicKeyCredentialType : type), raw_id_(raw_id), response_(response), extension_outputs_(extension_outputs) {}
diff --git a/third_party/blink/renderer/modules/credentialmanager/public_key_credential.h b/third_party/blink/renderer/modules/credentialmanager/public_key_credential.h index 81c64a6..09fe670 100644 --- a/third_party/blink/renderer/modules/credentialmanager/public_key_credential.h +++ b/third_party/blink/renderer/modules/credentialmanager/public_key_credential.h
@@ -18,7 +18,7 @@ class ScriptPromise; class ScriptState; -class MODULES_EXPORT PublicKeyCredential final : public Credential { +class MODULES_EXPORT PublicKeyCredential : public Credential { DEFINE_WRAPPERTYPEINFO(); public: @@ -26,7 +26,8 @@ const String& id, DOMArrayBuffer* raw_id, AuthenticatorResponse*, - const AuthenticationExtensionsClientOutputs* extension_outputs); + const AuthenticationExtensionsClientOutputs* extension_outputs, + const String& type = ""); DOMArrayBuffer* rawId() const { return raw_id_.Get(); } AuthenticatorResponse* response() const { return response_.Get(); }
diff --git a/third_party/blink/renderer/modules/exported/web_ax_object.cc b/third_party/blink/renderer/modules/exported/web_ax_object.cc index 265e54c..628aafed 100644 --- a/third_party/blink/renderer/modules/exported/web_ax_object.cc +++ b/third_party/blink/renderer/modules/exported/web_ax_object.cc
@@ -260,11 +260,12 @@ private_->GetSparseAXAttributes(adapter); } -void WebAXObject::Serialize(ui::AXNodeData* node_data) const { +void WebAXObject::Serialize(ui::AXNodeData* node_data, + ui::AXMode accessibility_mode) const { if (IsDetached()) return; - private_->Serialize(node_data); + private_->Serialize(node_data, accessibility_mode); } bool WebAXObject::IsAnchor() const { @@ -1081,13 +1082,6 @@ return private_->IsRangeValueSupported(); } -WebString WebAXObject::ValueDescription() const { - if (IsDetached()) - return WebString(); - - return private_->ValueDescription(); -} - bool WebAXObject::ValueForRange(float* out_value) const { if (IsDetached()) return false; @@ -1582,13 +1576,6 @@ private_->HandleAutofillStateChanged(state); } -int WebAXObject::GetDOMNodeId() const { - if (IsDetached()) - return 0; - - return private_->GetDOMNodeId(); -} - WebString WebAXObject::ToString(bool verbose) const { if (IsDetached()) return WebString();
diff --git a/third_party/blink/renderer/modules/media/audio/mojo_audio_output_ipc.cc b/third_party/blink/renderer/modules/media/audio/mojo_audio_output_ipc.cc index ac3302b..e4b4cf2 100644 --- a/third_party/blink/renderer/modules/media/audio/mojo_audio_output_ipc.cc +++ b/third_party/blink/renderer/modules/media/audio/mojo_audio_output_ipc.cc
@@ -6,12 +6,12 @@ #include <utility> -#include "base/bind.h" #include "base/metrics/histogram_macros.h" #include "media/audio/audio_device_description.h" #include "media/mojo/mojom/audio_output_stream.mojom-blink.h" #include "mojo/public/cpp/bindings/callback_helpers.h" #include "mojo/public/cpp/system/platform_handle.h" +#include "third_party/blink/renderer/platform/wtf/functional.h" namespace blink { @@ -55,8 +55,8 @@ DoRequestDeviceAuthorization( session_id, device_id, mojo::WrapCallbackWithDefaultInvokeIfNotRun( - base::BindOnce(&MojoAudioOutputIPC::ReceivedDeviceAuthorization, - weak_factory_.GetWeakPtr(), base::TimeTicks::Now()), + WTF::Bind(&MojoAudioOutputIPC::ReceivedDeviceAuthorization, + weak_factory_.GetWeakPtr(), base::TimeTicks::Now()), static_cast<media::mojom::blink::OutputDeviceStatus>( media::OutputDeviceStatus::OUTPUT_DEVICE_STATUS_ERROR_INTERNAL), media::AudioParameters::UnavailableDeviceParams(), String())); @@ -78,7 +78,7 @@ DoRequestDeviceAuthorization( /*session_id=*/base::UnguessableToken(), media::AudioDeviceDescription::kDefaultDeviceId, - base::BindOnce(&TrivialAuthorizedCallback)); + WTF::Bind(&TrivialAuthorizedCallback)); } DCHECK_EQ(delegate_, delegate); @@ -89,8 +89,8 @@ receiver_.Bind(client_remote.InitWithNewPipeAndPassReceiver()); // Unretained is safe because |this| owns |receiver_|. receiver_.set_disconnect_with_reason_handler( - base::BindOnce(&MojoAudioOutputIPC::ProviderClientBindingDisconnected, - base::Unretained(this))); + WTF::Bind(&MojoAudioOutputIPC::ProviderClientBindingDisconnected, + WTF::Unretained(this))); stream_provider_->Acquire(params, std::move(client_remote)); } @@ -193,8 +193,7 @@ // OnDeviceAuthorized with ERROR_INTERNAL in the normal case. // The AudioOutputIPCDelegate will call CloseStream as necessary. io_task_runner_->PostTask( - FROM_HERE, - base::BindOnce([](AuthorizationCB cb) {}, std::move(callback))); + FROM_HERE, WTF::Bind([](AuthorizationCB cb) {}, std::move(callback))); return; }
diff --git a/third_party/blink/renderer/modules/media/audio/mojo_audio_output_ipc_test.cc b/third_party/blink/renderer/modules/media/audio/mojo_audio_output_ipc_test.cc index 26d1810..653aff4 100644 --- a/third_party/blink/renderer/modules/media/audio/mojo_audio_output_ipc_test.cc +++ b/third_party/blink/renderer/modules/media/audio/mojo_audio_output_ipc_test.cc
@@ -9,7 +9,6 @@ #include <string> #include <utility> -#include "base/bind.h" #include "base/optional.h" #include "base/run_loop.h" #include "base/test/gtest_util.h" @@ -24,6 +23,7 @@ #include "testing/gtest/include/gtest/gtest.h" #include "third_party/blink/public/platform/scheduler/test/renderer_scheduler_test_support.h" #include "third_party/blink/renderer/platform/testing/io_task_runner_testing_platform_support.h" +#include "third_party/blink/renderer/platform/wtf/functional.h" using testing::_; using testing::AtLeast; @@ -45,7 +45,7 @@ } MojoAudioOutputIPC::FactoryAccessorCB NullAccessor() { - return base::BindRepeating( + return WTF::BindRepeating( []() -> blink::mojom::blink::RendererAudioOutputStreamFactory* { return nullptr; }); @@ -172,7 +172,7 @@ } MojoAudioOutputIPC::FactoryAccessorCB GetAccessor() { - return base::BindRepeating(&TestRemoteFactory::get, base::Unretained(this)); + return WTF::BindRepeating(&TestRemoteFactory::get, WTF::Unretained(this)); } private:
diff --git a/third_party/blink/renderer/modules/peerconnection/mock_rtc_peer_connection_handler_client.h b/third_party/blink/renderer/modules/peerconnection/mock_rtc_peer_connection_handler_client.h index 1104343..7bced30a 100644 --- a/third_party/blink/renderer/modules/peerconnection/mock_rtc_peer_connection_handler_client.h +++ b/third_party/blink/renderer/modules/peerconnection/mock_rtc_peer_connection_handler_client.h
@@ -35,11 +35,6 @@ const String& url, int error_code, const String& error_text)); - MOCK_METHOD4(DidChangeSessionDescriptions, - void(RTCSessionDescriptionPlatform*, - RTCSessionDescriptionPlatform*, - RTCSessionDescriptionPlatform*, - RTCSessionDescriptionPlatform*)); MOCK_METHOD1(DidChangeSignalingState, void(webrtc::PeerConnectionInterface::SignalingState state)); MOCK_METHOD1(DidChangeIceGatheringState,
diff --git a/third_party/blink/renderer/modules/peerconnection/mock_rtc_peer_connection_handler_platform.cc b/third_party/blink/renderer/modules/peerconnection/mock_rtc_peer_connection_handler_platform.cc index da6d4bb..5437abb2 100644 --- a/third_party/blink/renderer/modules/peerconnection/mock_rtc_peer_connection_handler_platform.cc +++ b/third_party/blink/renderer/modules/peerconnection/mock_rtc_peer_connection_handler_platform.cc
@@ -286,6 +286,36 @@ RTCVoidRequest*, RTCSessionDescriptionPlatform*) {} +RTCSessionDescriptionPlatform* +MockRTCPeerConnectionHandlerPlatform::LocalDescription() { + return nullptr; +} + +RTCSessionDescriptionPlatform* +MockRTCPeerConnectionHandlerPlatform::RemoteDescription() { + return nullptr; +} + +RTCSessionDescriptionPlatform* +MockRTCPeerConnectionHandlerPlatform::CurrentLocalDescription() { + return nullptr; +} + +RTCSessionDescriptionPlatform* +MockRTCPeerConnectionHandlerPlatform::CurrentRemoteDescription() { + return nullptr; +} + +RTCSessionDescriptionPlatform* +MockRTCPeerConnectionHandlerPlatform::PendingLocalDescription() { + return nullptr; +} + +RTCSessionDescriptionPlatform* +MockRTCPeerConnectionHandlerPlatform::PendingRemoteDescription() { + return nullptr; +} + const webrtc::PeerConnectionInterface::RTCConfiguration& MockRTCPeerConnectionHandlerPlatform::GetConfiguration() const { static const webrtc::PeerConnectionInterface::RTCConfiguration configuration;
diff --git a/third_party/blink/renderer/modules/peerconnection/mock_rtc_peer_connection_handler_platform.h b/third_party/blink/renderer/modules/peerconnection/mock_rtc_peer_connection_handler_platform.h index 1a9cb0f..71fadfd1 100644 --- a/third_party/blink/renderer/modules/peerconnection/mock_rtc_peer_connection_handler_platform.h +++ b/third_party/blink/renderer/modules/peerconnection/mock_rtc_peer_connection_handler_platform.h
@@ -48,6 +48,12 @@ RTCSessionDescriptionPlatform*) override; void SetRemoteDescription(RTCVoidRequest*, RTCSessionDescriptionPlatform*) override; + RTCSessionDescriptionPlatform* LocalDescription() override; + RTCSessionDescriptionPlatform* RemoteDescription() override; + RTCSessionDescriptionPlatform* CurrentLocalDescription() override; + RTCSessionDescriptionPlatform* CurrentRemoteDescription() override; + RTCSessionDescriptionPlatform* PendingLocalDescription() override; + RTCSessionDescriptionPlatform* PendingRemoteDescription() override; const webrtc::PeerConnectionInterface::RTCConfiguration& GetConfiguration() const override; webrtc::RTCErrorType SetConfiguration(
diff --git a/third_party/blink/renderer/modules/peerconnection/rtc_peer_connection.cc b/third_party/blink/renderer/modules/peerconnection/rtc_peer_connection.cc index aa15ab5..cd98310 100644 --- a/third_party/blink/renderer/modules/peerconnection/rtc_peer_connection.cc +++ b/third_party/blink/renderer/modules/peerconnection/rtc_peer_connection.cc
@@ -746,10 +746,6 @@ MediaConstraints constraints, ExceptionState& exception_state) : ExecutionContextLifecycleObserver(context), - pending_local_description_(nullptr), - current_local_description_(nullptr), - pending_remote_description_(nullptr), - current_remote_description_(nullptr), signaling_state_( webrtc::PeerConnectionInterface::SignalingState::kStable), ice_gathering_state_(webrtc::PeerConnectionInterface::kIceGatheringNew), @@ -1463,17 +1459,28 @@ return ScriptPromise::CastUndefined(script_state); } -RTCSessionDescription* RTCPeerConnection::localDescription() const { - return pending_local_description_ ? pending_local_description_ - : current_local_description_; +RTCSessionDescription* RTCPeerConnection::localDescription() { + auto* platform_session_description = peer_handler_->LocalDescription(); + if (!platform_session_description) + return nullptr; + + return RTCSessionDescription::Create(platform_session_description); } -RTCSessionDescription* RTCPeerConnection::currentLocalDescription() const { - return current_local_description_; +RTCSessionDescription* RTCPeerConnection::currentLocalDescription() { + auto* platform_session_description = peer_handler_->CurrentLocalDescription(); + if (!platform_session_description) + return nullptr; + + return RTCSessionDescription::Create(platform_session_description); } -RTCSessionDescription* RTCPeerConnection::pendingLocalDescription() const { - return pending_local_description_; +RTCSessionDescription* RTCPeerConnection::pendingLocalDescription() { + auto* platform_session_description = peer_handler_->PendingLocalDescription(); + if (!platform_session_description) + return nullptr; + + return RTCSessionDescription::Create(platform_session_description); } ScriptPromise RTCPeerConnection::setRemoteDescription( @@ -1580,17 +1587,30 @@ return ScriptPromise::CastUndefined(script_state); } -RTCSessionDescription* RTCPeerConnection::remoteDescription() const { - return pending_remote_description_ ? pending_remote_description_ - : current_remote_description_; +RTCSessionDescription* RTCPeerConnection::remoteDescription() { + auto* platform_session_description = peer_handler_->RemoteDescription(); + if (!platform_session_description) + return nullptr; + + return RTCSessionDescription::Create(platform_session_description); } -RTCSessionDescription* RTCPeerConnection::currentRemoteDescription() const { - return current_remote_description_; +RTCSessionDescription* RTCPeerConnection::currentRemoteDescription() { + auto* platform_session_description = + peer_handler_->CurrentRemoteDescription(); + if (!platform_session_description) + return nullptr; + + return RTCSessionDescription::Create(platform_session_description); } -RTCSessionDescription* RTCPeerConnection::pendingRemoteDescription() const { - return pending_remote_description_; +RTCSessionDescription* RTCPeerConnection::pendingRemoteDescription() { + auto* platform_session_description = + peer_handler_->PendingRemoteDescription(); + if (!platform_session_description) + return nullptr; + + return RTCSessionDescription::Create(platform_session_description); } RTCConfiguration* RTCPeerConnection::getConfiguration( @@ -2014,7 +2034,7 @@ } base::Optional<bool> RTCPeerConnection::canTrickleIceCandidates() const { - if (closed_ || !remoteDescription()) { + if (closed_ || !peer_handler_->RemoteDescription()) { return base::nullopt; } webrtc::PeerConnectionInterface* native_connection = @@ -2874,31 +2894,6 @@ address, port, host_candidate, url, error_code, error_text)); } -void RTCPeerConnection::DidChangeSessionDescriptions( - RTCSessionDescriptionPlatform* pending_local_description, - RTCSessionDescriptionPlatform* current_local_description, - RTCSessionDescriptionPlatform* pending_remote_description, - RTCSessionDescriptionPlatform* current_remote_description) { - DCHECK(!closed_); - DCHECK(GetExecutionContext()->IsContextThread()); - pending_local_description_ = - pending_local_description - ? RTCSessionDescription::Create(pending_local_description) - : nullptr; - current_local_description_ = - current_local_description - ? RTCSessionDescription::Create(current_local_description) - : nullptr; - pending_remote_description_ = - pending_remote_description - ? RTCSessionDescription::Create(pending_remote_description) - : nullptr; - current_remote_description_ = - current_remote_description - ? RTCSessionDescription::Create(current_remote_description) - : nullptr; -} - void RTCPeerConnection::DidChangeSignalingState( webrtc::PeerConnectionInterface::SignalingState new_state) { DCHECK(!closed_); @@ -3550,10 +3545,6 @@ } void RTCPeerConnection::Trace(Visitor* visitor) const { - visitor->Trace(pending_local_description_); - visitor->Trace(current_local_description_); - visitor->Trace(pending_remote_description_); - visitor->Trace(current_remote_description_); visitor->Trace(tracks_); visitor->Trace(rtp_senders_); visitor->Trace(rtp_receivers_);
diff --git a/third_party/blink/renderer/modules/peerconnection/rtc_peer_connection.h b/third_party/blink/renderer/modules/peerconnection/rtc_peer_connection.h index 7a57fc97..72ead12 100644 --- a/third_party/blink/renderer/modules/peerconnection/rtc_peer_connection.h +++ b/third_party/blink/renderer/modules/peerconnection/rtc_peer_connection.h
@@ -183,9 +183,9 @@ const RTCSessionDescriptionInit*, V8VoidFunction*, V8RTCPeerConnectionErrorCallback* = nullptr); - RTCSessionDescription* localDescription() const; - RTCSessionDescription* currentLocalDescription() const; - RTCSessionDescription* pendingLocalDescription() const; + RTCSessionDescription* localDescription(); + RTCSessionDescription* currentLocalDescription(); + RTCSessionDescription* pendingLocalDescription(); ScriptPromise setRemoteDescription(ScriptState*, const RTCSessionDescriptionInit*, @@ -195,9 +195,9 @@ const RTCSessionDescriptionInit*, V8VoidFunction*, V8RTCPeerConnectionErrorCallback* = nullptr); - RTCSessionDescription* remoteDescription() const; - RTCSessionDescription* currentRemoteDescription() const; - RTCSessionDescription* pendingRemoteDescription() const; + RTCSessionDescription* remoteDescription(); + RTCSessionDescription* currentRemoteDescription(); + RTCSessionDescription* pendingRemoteDescription(); String signalingState() const; @@ -337,11 +337,6 @@ const String& url, int error_code, const String& error_text) override; - void DidChangeSessionDescriptions( - RTCSessionDescriptionPlatform* pending_local_description, - RTCSessionDescriptionPlatform* current_local_description, - RTCSessionDescriptionPlatform* pending_remote_description, - RTCSessionDescriptionPlatform* current_remote_description) override; void DidChangeSignalingState( webrtc::PeerConnectionInterface::SignalingState) override; void DidChangeIceGatheringState( @@ -576,10 +571,6 @@ HeapHashSet<Member<RTCIceTransport>> ActiveIceTransports() const; - Member<RTCSessionDescription> pending_local_description_; - Member<RTCSessionDescription> current_local_description_; - Member<RTCSessionDescription> pending_remote_description_; - Member<RTCSessionDescription> current_remote_description_; webrtc::PeerConnectionInterface::SignalingState signaling_state_; webrtc::PeerConnectionInterface::IceGatheringState ice_gathering_state_; webrtc::PeerConnectionInterface::IceConnectionState ice_connection_state_;
diff --git a/third_party/blink/renderer/modules/peerconnection/rtc_peer_connection_handler.cc b/third_party/blink/renderer/modules/peerconnection/rtc_peer_connection_handler.cc index 6e19f59..373be00 100644 --- a/third_party/blink/renderer/modules/peerconnection/rtc_peer_connection_handler.cc +++ b/third_party/blink/renderer/modules/peerconnection/rtc_peer_connection_handler.cc
@@ -154,6 +154,29 @@ event->Signal(); } +// Initializes |description| if |description_callback| returns non-null, +// otherwise does nothing. +void GetRTCSessionDescriptionPlatformFromSessionDescriptionCallback( + CrossThreadOnceFunction<const webrtc::SessionDescriptionInterface*()> + description_callback, + std::string* out_type, + std::string* out_sdp, + bool* success) { + DCHECK(out_type); + DCHECK(out_sdp); + DCHECK(success); + + const webrtc::SessionDescriptionInterface* description = + std::move(description_callback).Run(); + if (description) { + std::string sdp; + description->ToString(&sdp); + *out_type = description->type(); + *out_sdp = sdp; + *success = true; + } +} + // Converter functions from Blink types to WebRTC types. absl::optional<bool> ConstraintToOptional( @@ -679,14 +702,19 @@ pending_local_description(states.pending_local_description.release()); std::unique_ptr<webrtc::SessionDescriptionInterface> current_local_description(states.current_local_description.release()); - std::unique_ptr<webrtc::SessionDescriptionInterface> - pending_remote_description( - states.pending_remote_description.release()); - std::unique_ptr<webrtc::SessionDescriptionInterface> - current_remote_description( - states.current_remote_description.release()); - // Track result in chrome://webrtc-internals/. + // Process the rest of the state changes differently depending on SDP + // semantics. + if (sdp_semantics_ == webrtc::SdpSemantics::kPlanB) { + ProcessStateChangesPlanB(std::move(states)); + } else { + DCHECK_EQ(sdp_semantics_, webrtc::SdpSemantics::kUnifiedPlan); + ProcessStateChangesUnifiedPlan(std::move(states)); + } + + // |handler_| can become null after this call. + handler_->OnSignalingChange(signaling_state); + if (tracker_ && handler_) { StringBuilder value; if (action_ == @@ -726,24 +754,6 @@ tracker_->TrackSessionDescriptionCallback( handler_.get(), action_, "OnSuccess", value.ToString()); } - - handler_->OnSessionDescriptionsUpdated( - std::move(pending_local_description), - std::move(current_local_description), - std::move(pending_remote_description), - std::move(current_remote_description)); - - // Process the rest of the state changes differently depending on SDP - // semantics. - if (sdp_semantics_ == webrtc::SdpSemantics::kPlanB) { - ProcessStateChangesPlanB(std::move(states)); - } else { - DCHECK_EQ(sdp_semantics_, webrtc::SdpSemantics::kUnifiedPlan); - ProcessStateChangesUnifiedPlan(std::move(states)); - } - - // |handler_| can become null after this call. - handler_->OnSignalingChange(signaling_state); } if (action_ == PeerConnectionTracker::ACTION_SET_REMOTE_DESCRIPTION) { // Resolve the promise in a post to ensure any events scheduled for @@ -1485,6 +1495,81 @@ CrossThreadUnretained("SetRemoteDescription"))); } +RTCSessionDescriptionPlatform* RTCPeerConnectionHandler::LocalDescription() { + DCHECK(task_runner_->RunsTasksInCurrentSequence()); + TRACE_EVENT0("webrtc", "RTCPeerConnectionHandler::localDescription"); + + CrossThreadOnceFunction<const webrtc::SessionDescriptionInterface*()> + description_cb = CrossThreadBindOnce( + &webrtc::PeerConnectionInterface::local_description, + native_peer_connection_); + return GetRTCSessionDescriptionPlatformOnSignalingThread( + std::move(description_cb), "localDescription"); +} + +RTCSessionDescriptionPlatform* RTCPeerConnectionHandler::RemoteDescription() { + DCHECK(task_runner_->RunsTasksInCurrentSequence()); + TRACE_EVENT0("webrtc", "RTCPeerConnectionHandler::remoteDescription"); + + CrossThreadOnceFunction<const webrtc::SessionDescriptionInterface*()> + description_cb = CrossThreadBindOnce( + &webrtc::PeerConnectionInterface::remote_description, + native_peer_connection_); + return GetRTCSessionDescriptionPlatformOnSignalingThread( + std::move(description_cb), "remoteDescription"); +} + +RTCSessionDescriptionPlatform* +RTCPeerConnectionHandler::CurrentLocalDescription() { + DCHECK(task_runner_->RunsTasksInCurrentSequence()); + TRACE_EVENT0("webrtc", "RTCPeerConnectionHandler::currentLocalDescription"); + + CrossThreadOnceFunction<const webrtc::SessionDescriptionInterface*()> + description_cb = CrossThreadBindOnce( + &webrtc::PeerConnectionInterface::current_local_description, + native_peer_connection_); + return GetRTCSessionDescriptionPlatformOnSignalingThread( + std::move(description_cb), "currentLocalDescription"); +} + +RTCSessionDescriptionPlatform* +RTCPeerConnectionHandler::CurrentRemoteDescription() { + DCHECK(task_runner_->RunsTasksInCurrentSequence()); + TRACE_EVENT0("webrtc", "RTCPeerConnectionHandler::currentRemoteDescription"); + + CrossThreadOnceFunction<const webrtc::SessionDescriptionInterface*()> + description_cb = CrossThreadBindOnce( + &webrtc::PeerConnectionInterface::current_remote_description, + native_peer_connection_); + return GetRTCSessionDescriptionPlatformOnSignalingThread( + std::move(description_cb), "currentRemoteDescription"); +} + +RTCSessionDescriptionPlatform* +RTCPeerConnectionHandler::PendingLocalDescription() { + DCHECK(task_runner_->RunsTasksInCurrentSequence()); + TRACE_EVENT0("webrtc", "RTCPeerConnectionHandler::pendingLocalDescription"); + + CrossThreadOnceFunction<const webrtc::SessionDescriptionInterface*()> + description_cb = CrossThreadBindOnce( + &webrtc::PeerConnectionInterface::pending_local_description, + native_peer_connection_); + return GetRTCSessionDescriptionPlatformOnSignalingThread( + std::move(description_cb), "pendingLocalDescription"); +} + +RTCSessionDescriptionPlatform* +RTCPeerConnectionHandler::PendingRemoteDescription() { + DCHECK(task_runner_->RunsTasksInCurrentSequence()); + TRACE_EVENT0("webrtc", "RTCPeerConnectionHandler::pendingRemoteDescription"); + CrossThreadOnceFunction<const webrtc::SessionDescriptionInterface*()> + description_cb = CrossThreadBindOnce( + &webrtc::PeerConnectionInterface::pending_remote_description, + native_peer_connection_); + return GetRTCSessionDescriptionPlatformOnSignalingThread( + std::move(description_cb), "pendingRemoteDescription"); +} + const webrtc::PeerConnectionInterface::RTCConfiguration& RTCPeerConnectionHandler::GetConfiguration() const { return configuration_; @@ -1535,14 +1620,6 @@ auto callback_on_task_runner = [](base::WeakPtr<RTCPeerConnectionHandler> handler_weak_ptr, base::WeakPtr<PeerConnectionTracker> tracker_weak_ptr, - std::unique_ptr<webrtc::SessionDescriptionInterface> - pending_local_description, - std::unique_ptr<webrtc::SessionDescriptionInterface> - current_local_description, - std::unique_ptr<webrtc::SessionDescriptionInterface> - pending_remote_description, - std::unique_ptr<webrtc::SessionDescriptionInterface> - current_remote_description, RTCIceCandidatePlatform* candidate, webrtc::RTCError result, RTCVoidRequest* request) { // Inform tracker (chrome://webrtc-internals). @@ -1551,14 +1628,6 @@ handler_weak_ptr.get(), candidate, PeerConnectionTracker::SOURCE_REMOTE, result.ok()); } - // Update session descriptions. - if (handler_weak_ptr) { - handler_weak_ptr->OnSessionDescriptionsUpdated( - std::move(pending_local_description), - std::move(current_local_description), - std::move(pending_remote_description), - std::move(current_remote_description)); - } // Resolve promise. if (result.ok()) request->RequestSucceeded(); @@ -1568,26 +1637,12 @@ native_peer_connection_->AddIceCandidate( std::move(native_candidate), - [pc = native_peer_connection_, task_runner = task_runner_, + [task_runner = task_runner_, handler_weak_ptr = weak_factory_.GetWeakPtr(), tracker_weak_ptr = peer_connection_tracker_, candidate, persistent_request = WrapCrossThreadPersistent(request), callback_on_task_runner = std::move(callback_on_task_runner)](webrtc::RTCError result) { - // Grab a snapshot of all the session descriptions. AddIceCandidate may - // have modified the remote description. - std::unique_ptr<webrtc::SessionDescriptionInterface> - pending_local_description = - CopySessionDescription(pc->pending_local_description()); - std::unique_ptr<webrtc::SessionDescriptionInterface> - current_local_description = - CopySessionDescription(pc->current_local_description()); - std::unique_ptr<webrtc::SessionDescriptionInterface> - pending_remote_description = - CopySessionDescription(pc->pending_remote_description()); - std::unique_ptr<webrtc::SessionDescriptionInterface> - current_remote_description = - CopySessionDescription(pc->current_remote_description()); // This callback is invoked on the webrtc signaling thread (this is true // in production, not in rtc_peer_connection_handler_test.cc which uses // a fake |native_peer_connection_|). Jump back to the renderer thread. @@ -1595,12 +1650,8 @@ *task_runner, FROM_HERE, WTF::CrossThreadBindOnce( std::move(callback_on_task_runner), handler_weak_ptr, - tracker_weak_ptr, std::move(pending_local_description), - std::move(current_local_description), - std::move(pending_remote_description), - std::move(current_remote_description), - WrapCrossThreadPersistent(candidate), std::move(result), - std::move(persistent_request))); + tracker_weak_ptr, WrapCrossThreadPersistent(candidate), + std::move(result), std::move(persistent_request))); }); } @@ -2173,32 +2224,6 @@ } } -void RTCPeerConnectionHandler::OnSessionDescriptionsUpdated( - std::unique_ptr<webrtc::SessionDescriptionInterface> - pending_local_description, - std::unique_ptr<webrtc::SessionDescriptionInterface> - current_local_description, - std::unique_ptr<webrtc::SessionDescriptionInterface> - pending_remote_description, - std::unique_ptr<webrtc::SessionDescriptionInterface> - current_remote_description) { - if (!client_ || is_closed_) - return; - client_->DidChangeSessionDescriptions( - pending_local_description - ? CreateWebKitSessionDescription(pending_local_description.get()) - : nullptr, - current_local_description - ? CreateWebKitSessionDescription(current_local_description.get()) - : nullptr, - pending_remote_description - ? CreateWebKitSessionDescription(pending_remote_description.get()) - : nullptr, - current_remote_description - ? CreateWebKitSessionDescription(current_remote_description.get()) - : nullptr); -} - void RTCPeerConnectionHandler::OnSignalingChange( webrtc::PeerConnectionInterface::SignalingState new_state) { DCHECK(task_runner_->RunsTasksInCurrentSequence()); @@ -2682,6 +2707,35 @@ return dependency_factory_->GetWebRtcSignalingTaskRunner(); } +RTCSessionDescriptionPlatform* +RTCPeerConnectionHandler::GetRTCSessionDescriptionPlatformOnSignalingThread( + CrossThreadOnceFunction<const webrtc::SessionDescriptionInterface*()> + description_cb, + const char* log_text) { + // Since the webrtc::PeerConnectionInterface::*_description() functions + // return a pointer to a non-reference-counted object that lives on the + // signaling thread, we cannot fetch a pointer to it and use it directly + // here. + // Instead, we access the object completely on the signaling thread. + // Initializing |description| on the signaling thread is safe because we + // own it and wait for it to be initialized here. + + std::string type, sdp; + bool success = false; + RunSynchronousOnceClosureOnSignalingThread( + CrossThreadBindOnce( + &GetRTCSessionDescriptionPlatformFromSessionDescriptionCallback, + std::move(description_cb), CrossThreadUnretained(&type), + CrossThreadUnretained(&sdp), CrossThreadUnretained(&success)), + log_text); + + if (!success) + return nullptr; + + return MakeGarbageCollected<RTCSessionDescriptionPlatform>( + String::FromUTF8(type), String::FromUTF8(sdp)); +} + void RTCPeerConnectionHandler::ReportICEState( webrtc::PeerConnectionInterface::IceConnectionState new_state) { DCHECK(task_runner_->RunsTasksInCurrentSequence());
diff --git a/third_party/blink/renderer/modules/peerconnection/rtc_peer_connection_handler.h b/third_party/blink/renderer/modules/peerconnection/rtc_peer_connection_handler.h index 17ca1e4..f2fe772 100644 --- a/third_party/blink/renderer/modules/peerconnection/rtc_peer_connection_handler.h +++ b/third_party/blink/renderer/modules/peerconnection/rtc_peer_connection_handler.h
@@ -154,6 +154,13 @@ virtual void SetRemoteDescription(blink::RTCVoidRequest* request, RTCSessionDescriptionPlatform* description); + virtual RTCSessionDescriptionPlatform* LocalDescription(); + virtual RTCSessionDescriptionPlatform* RemoteDescription(); + virtual RTCSessionDescriptionPlatform* CurrentLocalDescription(); + virtual RTCSessionDescriptionPlatform* CurrentRemoteDescription(); + virtual RTCSessionDescriptionPlatform* PendingLocalDescription(); + virtual RTCSessionDescriptionPlatform* PendingRemoteDescription(); + virtual const webrtc::PeerConnectionInterface::RTCConfiguration& GetConfiguration() const; virtual webrtc::RTCErrorType SetConfiguration( @@ -252,15 +259,6 @@ class SetLocalDescriptionRequest; friend class SetLocalDescriptionRequest; - void OnSessionDescriptionsUpdated( - std::unique_ptr<webrtc::SessionDescriptionInterface> - pending_local_description, - std::unique_ptr<webrtc::SessionDescriptionInterface> - current_local_description, - std::unique_ptr<webrtc::SessionDescriptionInterface> - pending_remote_description, - std::unique_ptr<webrtc::SessionDescriptionInterface> - current_remote_description); void OnSignalingChange( webrtc::PeerConnectionInterface::SignalingState new_state); void OnIceConnectionChange(
diff --git a/third_party/blink/renderer/modules/peerconnection/rtc_peer_connection_handler_test.cc b/third_party/blink/renderer/modules/peerconnection/rtc_peer_connection_handler_test.cc index bab93c40..62b37513 100644 --- a/third_party/blink/renderer/modules/peerconnection/rtc_peer_connection_handler_test.cc +++ b/third_party/blink/renderer/modules/peerconnection/rtc_peer_connection_handler_test.cc
@@ -676,6 +676,8 @@ pc_handler_->SetLocalDescription(nullptr /*RTCVoidRequest*/, description); RunMessageLoopsUntilIdle(); + EXPECT_EQ(description->GetType(), pc_handler_->LocalDescription()->GetType()); + EXPECT_EQ(description->Sdp(), pc_handler_->LocalDescription()->Sdp()); std::string sdp_string; ASSERT_TRUE(mock_peer_connection_->local_description()); @@ -709,6 +711,8 @@ mock_dependency_factory_->SetFailToCreateSessionDescription(true); pc_handler_->SetLocalDescription(nullptr /*RTCVoidRequest*/, description); RunMessageLoopsUntilIdle(); + // A description that failed to be applied shouldn't be stored. + EXPECT_TRUE(!pc_handler_->LocalDescription()); } TEST_F(RTCPeerConnectionHandlerTest, setRemoteDescription) { @@ -726,6 +730,9 @@ pc_handler_->SetRemoteDescription(nullptr /*RTCVoidRequest*/, description); RunMessageLoopsUntilIdle(); + EXPECT_EQ(description->GetType(), + pc_handler_->RemoteDescription()->GetType()); + EXPECT_EQ(description->Sdp(), pc_handler_->RemoteDescription()->Sdp()); std::string sdp_string; ASSERT_TRUE(mock_peer_connection_->remote_description()); @@ -759,6 +766,8 @@ mock_dependency_factory_->SetFailToCreateSessionDescription(true); pc_handler_->SetRemoteDescription(nullptr /*RTCVoidRequest*/, description); RunMessageLoopsUntilIdle(); + // A description that failed to be applied shouldn't be stored. + EXPECT_TRUE(!pc_handler_->RemoteDescription()); } TEST_F(RTCPeerConnectionHandlerTest, setConfiguration) {
diff --git a/third_party/blink/renderer/modules/peerconnection/webrtc_set_description_observer.cc b/third_party/blink/renderer/modules/peerconnection/webrtc_set_description_observer.cc index 77f65fb..f4f9a15d 100644 --- a/third_party/blink/renderer/modules/peerconnection/webrtc_set_description_observer.cc +++ b/third_party/blink/renderer/modules/peerconnection/webrtc_set_description_observer.cc
@@ -6,19 +6,10 @@ #include "base/bind.h" #include "base/check.h" +#include "third_party/webrtc/pc/sdp_utils.h" namespace blink { -std::unique_ptr<webrtc::SessionDescriptionInterface> CopySessionDescription( - const webrtc::SessionDescriptionInterface* description) { - if (!description) - return nullptr; - std::string sdp; - description->ToString(&sdp); - return std::unique_ptr<webrtc::SessionDescriptionInterface>( - webrtc::CreateSessionDescription(description->type(), sdp, nullptr)); -} - WebRtcSetDescriptionObserver::States::States() : signaling_state( webrtc::PeerConnectionInterface::SignalingState::kClosed) {} @@ -28,9 +19,7 @@ sctp_transport_state(std::move(other.sctp_transport_state)), transceiver_states(std::move(other.transceiver_states)), pending_local_description(std::move(other.pending_local_description)), - current_local_description(std::move(other.current_local_description)), - pending_remote_description(std::move(other.pending_remote_description)), - current_remote_description(std::move(other.current_remote_description)) {} + current_local_description(std::move(other.current_local_description)) {} WebRtcSetDescriptionObserver::States::~States() = default; @@ -41,8 +30,6 @@ transceiver_states = std::move(other.transceiver_states); pending_local_description = std::move(other.pending_local_description); current_local_description = std::move(other.current_local_description); - pending_remote_description = std::move(other.pending_remote_description); - current_remote_description = std::move(other.current_remote_description); return *this; } @@ -94,26 +81,22 @@ transceiver_state_surfacer.Initialize(pc_, track_adapter_map_, std::move(transceivers)); std::unique_ptr<webrtc::SessionDescriptionInterface> - pending_local_description = - CopySessionDescription(pc_->pending_local_description()); + pending_local_description = pc_->pending_local_description() + ? webrtc::CloneSessionDescription( + pc_->pending_local_description()) + : nullptr; std::unique_ptr<webrtc::SessionDescriptionInterface> - current_local_description = - CopySessionDescription(pc_->current_local_description()); - std::unique_ptr<webrtc::SessionDescriptionInterface> - pending_remote_description = - CopySessionDescription(pc_->pending_remote_description()); - std::unique_ptr<webrtc::SessionDescriptionInterface> - current_remote_description = - CopySessionDescription(pc_->current_remote_description()); + current_local_description = pc_->current_local_description() + ? webrtc::CloneSessionDescription( + pc_->current_local_description()) + : nullptr; main_task_runner_->PostTask( FROM_HERE, base::BindOnce(&WebRtcSetDescriptionObserverHandlerImpl:: OnSetDescriptionCompleteOnMainThread, this, std::move(error), pc_->signaling_state(), std::move(transceiver_state_surfacer), std::move(pending_local_description), - std::move(current_local_description), - std::move(pending_remote_description), - std::move(current_remote_description))); + std::move(current_local_description))); } void WebRtcSetDescriptionObserverHandlerImpl:: @@ -124,11 +107,7 @@ std::unique_ptr<webrtc::SessionDescriptionInterface> pending_local_description, std::unique_ptr<webrtc::SessionDescriptionInterface> - current_local_description, - std::unique_ptr<webrtc::SessionDescriptionInterface> - pending_remote_description, - std::unique_ptr<webrtc::SessionDescriptionInterface> - current_remote_description) { + current_local_description) { CHECK(main_task_runner_->BelongsToCurrentThread()); WebRtcSetDescriptionObserver::States states; states.signaling_state = signaling_state; @@ -137,8 +116,6 @@ states.transceiver_states = transceiver_state_surfacer.ObtainStates(); states.pending_local_description = std::move(pending_local_description); states.current_local_description = std::move(current_local_description); - states.pending_remote_description = std::move(pending_remote_description); - states.current_remote_description = std::move(current_remote_description); observer_->OnSetDescriptionComplete(std::move(error), std::move(states)); }
diff --git a/third_party/blink/renderer/modules/peerconnection/webrtc_set_description_observer.h b/third_party/blink/renderer/modules/peerconnection/webrtc_set_description_observer.h index 196348e2..a8914d2 100644 --- a/third_party/blink/renderer/modules/peerconnection/webrtc_set_description_observer.h +++ b/third_party/blink/renderer/modules/peerconnection/webrtc_set_description_observer.h
@@ -30,14 +30,6 @@ namespace blink { -// Copies the session description. -// Note: At the time of writing, third_party/webrtc/pc/sdp_utils.h's -// webrtc::CloneSessionDescription() creates a copy that does not include -// candidates added with AddIceCandidate. This is why we need our own copy -// function, which copies everything. -std::unique_ptr<webrtc::SessionDescriptionInterface> CopySessionDescription( - const webrtc::SessionDescriptionInterface* description); - // The blink layer correspondent of the setLocalDescription() observer // (webrtc::SetSessionDescriptionObserver) and setRemoteDescription() observer // (webrtc::SetRemoteDescriptionObserverInterface). The implementation should @@ -59,14 +51,15 @@ webrtc::PeerConnectionInterface::SignalingState signaling_state; blink::WebRTCSctpTransportSnapshot sctp_transport_state; std::vector<blink::RtpTransceiverState> transceiver_states; + // For now, the session descriptions are only surfaced for the sake of + // showing up in chrome://webrtc-internals/ when implicit + // setLocalDescription() resolves. + // TODO(https://crbug.com/788558): Surface all states to blink at the same, + // time, including [current/pending][Local/Remote]Description. std::unique_ptr<webrtc::SessionDescriptionInterface> pending_local_description; std::unique_ptr<webrtc::SessionDescriptionInterface> current_local_description; - std::unique_ptr<webrtc::SessionDescriptionInterface> - pending_remote_description; - std::unique_ptr<webrtc::SessionDescriptionInterface> - current_remote_description; DISALLOW_COPY_AND_ASSIGN(States); }; @@ -124,11 +117,7 @@ std::unique_ptr<webrtc::SessionDescriptionInterface> pending_local_description, std::unique_ptr<webrtc::SessionDescriptionInterface> - current_local_description, - std::unique_ptr<webrtc::SessionDescriptionInterface> - pending_remote_description, - std::unique_ptr<webrtc::SessionDescriptionInterface> - current_remote_description); + current_local_description); scoped_refptr<base::SingleThreadTaskRunner> main_task_runner_; scoped_refptr<base::SingleThreadTaskRunner> signaling_task_runner_;
diff --git a/third_party/blink/renderer/modules/webaudio/audio_context_autoplay_test.cc b/third_party/blink/renderer/modules/webaudio/audio_context_autoplay_test.cc index 960b3fa5..1ff612a4 100644 --- a/third_party/blink/renderer/modules/webaudio/audio_context_autoplay_test.cc +++ b/third_party/blink/renderer/modules/webaudio/audio_context_autoplay_test.cc
@@ -33,22 +33,6 @@ const char* const kAutoplayMetric = "WebAudio.Autoplay"; const char* const kAutoplayCrossOriginMetric = "WebAudio.Autoplay.CrossOrigin"; -class MockCrossOriginLocalFrameClient final : public EmptyLocalFrameClient { - public: - explicit MockCrossOriginLocalFrameClient(Frame* parent) : parent_(parent) {} - - void Trace(Visitor* visitor) const override { - visitor->Trace(parent_); - EmptyLocalFrameClient::Trace(visitor); - } - - Frame* Parent() const override { return parent_.Get(); } - Frame* Top() const override { return parent_.Get(); } - - private: - Member<Frame> parent_; -}; - class MockWebAudioDeviceForAutoplayTest : public WebAudioDevice { public: explicit MockWebAudioDeviceForAutoplayTest(double sample_rate,
diff --git a/third_party/blink/renderer/modules/webcodecs/audio_decoder.idl b/third_party/blink/renderer/modules/webcodecs/audio_decoder.idl index f985f84..ae90c96 100644 --- a/third_party/blink/renderer/modules/webcodecs/audio_decoder.idl +++ b/third_party/blink/renderer/modules/webcodecs/audio_decoder.idl
@@ -13,7 +13,7 @@ // construct a new decoder to recover. // // TODO(sandersd): Consider adding a state or last error attribute. - [CallWith=ScriptState, RaisesException] constructor(AudioDecoderInit init); + [CallWith=ScriptState, RaisesException, MeasureAs=WebCodecsAudioDecoder] constructor(AudioDecoderInit init); // The number of pending decode requests. This does not include requests that // have been sent to the underlying codec.
diff --git a/third_party/blink/renderer/modules/webcodecs/image_decoder.idl b/third_party/blink/renderer/modules/webcodecs/image_decoder.idl index 9fa1f22..e61c5ab 100644 --- a/third_party/blink/renderer/modules/webcodecs/image_decoder.idl +++ b/third_party/blink/renderer/modules/webcodecs/image_decoder.idl
@@ -10,7 +10,7 @@ RuntimeEnabled=WebCodecs, ImplementedAs=ImageDecoderExternal ] interface ImageDecoder { - [CallWith=ScriptState, RaisesException] constructor(ImageDecoderInit init); + [CallWith=ScriptState, RaisesException, MeasureAs=WebCodecsImageDecoder] constructor(ImageDecoderInit init); // Returns true if ImageDecoder supports decoding of the given mime type. static boolean canDecodeType(USVString type);
diff --git a/third_party/blink/renderer/modules/webcodecs/video_decoder.idl b/third_party/blink/renderer/modules/webcodecs/video_decoder.idl index 181e46cd..cb50995fb 100644 --- a/third_party/blink/renderer/modules/webcodecs/video_decoder.idl +++ b/third_party/blink/renderer/modules/webcodecs/video_decoder.idl
@@ -21,7 +21,7 @@ // When in an closed state, all methods will fail. // // TODO(sandersd): Consider adding a state or last error attribute. - [CallWith=ScriptState, RaisesException] constructor(VideoDecoderInit init); + [CallWith=ScriptState, RaisesException, MeasureAs=WebCodecsVideoDecoder] constructor(VideoDecoderInit init); // The number of pending decode requests. This does not include requests that // have been sent to the underlying codec.
diff --git a/third_party/blink/renderer/modules/webcodecs/video_encoder.idl b/third_party/blink/renderer/modules/webcodecs/video_encoder.idl index 41860e1..48362da 100644 --- a/third_party/blink/renderer/modules/webcodecs/video_encoder.idl +++ b/third_party/blink/renderer/modules/webcodecs/video_encoder.idl
@@ -8,7 +8,7 @@ Exposed=Window, RuntimeEnabled=WebCodecs ] interface VideoEncoder { - [CallWith=ScriptState, RaisesException] + [CallWith=ScriptState, RaisesException, MeasureAs=WebCodecsVideoEncoder] constructor(VideoEncoderInit init); // The number of pending decode requests. This does not include requests that
diff --git a/third_party/blink/renderer/modules/webcodecs/video_frame.cc b/third_party/blink/renderer/modules/webcodecs/video_frame.cc index e7ce257..d5316c0 100644 --- a/third_party/blink/renderer/modules/webcodecs/video_frame.cc +++ b/third_party/blink/renderer/modules/webcodecs/video_frame.cc
@@ -13,7 +13,7 @@ #include "media/base/video_frame.h" #include "media/base/video_frame_metadata.h" #include "media/renderers/paint_canvas_video_renderer.h" -#include "media/renderers/yuv_util.h" +#include "media/renderers/video_frame_yuv_converter.h" #include "third_party/blink/public/platform/platform.h" #include "third_party/blink/renderer/bindings/modules/v8/v8_video_frame_init.h" #include "third_party/blink/renderer/core/html/canvas/image_data.h" @@ -393,8 +393,8 @@ dest_holder.sync_token = shared_image_interface->GenUnverifiedSyncToken(); dest_holder.texture_target = GL_TEXTURE_2D; - media::ConvertFromVideoFrameYUV(local_frame.get(), - raster_context_provider, dest_holder); + media::VideoFrameYUVConverter::ConvertYUVVideoFrameNoCaching( + local_frame.get(), raster_context_provider, dest_holder); gpu::SyncToken sync_token; raster_context_provider->RasterInterface() ->GenUnverifiedSyncTokenCHROMIUM(sync_token.GetData());
diff --git a/third_party/blink/renderer/modules/webcodecs/video_track_reader.idl b/third_party/blink/renderer/modules/webcodecs/video_track_reader.idl index 6c47c37..b1d83ed 100644 --- a/third_party/blink/renderer/modules/webcodecs/video_track_reader.idl +++ b/third_party/blink/renderer/modules/webcodecs/video_track_reader.idl
@@ -8,7 +8,7 @@ Exposed=Window, RuntimeEnabled=WebCodecs ] interface VideoTrackReader { - [CallWith=ScriptState, RaisesException] + [CallWith=ScriptState, RaisesException, MeasureAs=WebCodecsVideoTrackReader] constructor(MediaStreamTrack track); [RaisesException]
diff --git a/third_party/blink/renderer/platform/heap/heap_page.cc b/third_party/blink/renderer/platform/heap/heap_page.cc index b2929c1c..7d239ef4 100644 --- a/third_party/blink/renderer/platform/heap/heap_page.cc +++ b/third_party/blink/renderer/platform/heap/heap_page.cc
@@ -88,6 +88,7 @@ namespace blink { void HeapObjectHeader::Finalize(Address object, size_t object_size) { + DCHECK(!IsInConstruction<HeapObjectHeader::AccessMode::kAtomic>()); HeapAllocHooks::FreeHookIfEnabled(object); const GCInfo& gc_info = GCInfo::From(GcInfoIndex()); if (gc_info.finalize)
diff --git a/third_party/blink/renderer/platform/loader/fetch/resource_fetcher.cc b/third_party/blink/renderer/platform/loader/fetch/resource_fetcher.cc index 3d45eb90..859dd5468 100644 --- a/third_party/blink/renderer/platform/loader/fetch/resource_fetcher.cc +++ b/third_party/blink/renderer/platform/loader/fetch/resource_fetcher.cc
@@ -1208,6 +1208,14 @@ return resource; } +void ResourceFetcher::MarkFirstPaint() { + scheduler_->MarkFirstPaint(); +} + +void ResourceFetcher::MarkFirstContentfulPaint() { + scheduler_->MarkFirstContentfulPaint(); +} + void ResourceFetcher::ResourceTimingReportTimerFired(TimerBase* timer) { DCHECK_EQ(timer, &resource_timing_report_timer_); Vector<scoped_refptr<ResourceTimingInfo>> timing_reports;
diff --git a/third_party/blink/renderer/platform/loader/fetch/resource_fetcher.h b/third_party/blink/renderer/platform/loader/fetch/resource_fetcher.h index f1668565..0e6ce2dc 100644 --- a/third_party/blink/renderer/platform/loader/fetch/resource_fetcher.h +++ b/third_party/blink/renderer/platform/loader/fetch/resource_fetcher.h
@@ -141,6 +141,14 @@ const ResourceFactory&, ResourceClient*); + // TODO(crbug/1112515): Instead of having one-off notifications of these + // loading milestones, we should introduce an abstract interface that + // interested parties can hook into, to be notified of relevant loading + // milestones. + // These are only called for main frames. + void MarkFirstPaint(); + void MarkFirstContentfulPaint(); + // Returns the task runner used by this fetcher, and loading operations // this fetcher initiates. The returned task runner will keep working even // after ClearContext is called.
diff --git a/third_party/blink/renderer/platform/loader/fetch/resource_load_scheduler.cc b/third_party/blink/renderer/platform/loader/fetch/resource_load_scheduler.cc index 3c71224..e399a45 100644 --- a/third_party/blink/renderer/platform/loader/fetch/resource_load_scheduler.cc +++ b/third_party/blink/renderer/platform/loader/fetch/resource_load_scheduler.cc
@@ -13,6 +13,7 @@ #include "base/numerics/safe_conversions.h" #include "base/strings/string_number_conversions.h" #include "base/time/default_clock.h" +#include "third_party/blink/public/common/features.h" #include "third_party/blink/public/mojom/devtools/console_message.mojom-blink.h" #include "third_party/blink/public/platform/platform.h" #include "third_party/blink/renderer/platform/instrumentation/histogram.h" @@ -69,6 +70,21 @@ return param; } +// We're experimenting with delaying low priority requests when "important" +// requests are already in-flight. An "important" request is either +// ResourceLoadPriority::kHigh or ResourceLoadPriority::kMedium, depending on +// the experimental parameter. +ResourceLoadPriority PriorityImportanceThreshold() { + if (features::kDelayCompetingLowPriorityRequestsThresholdParam.Get() == + features::DelayCompetingLowPriorityRequestsThreshold::kHigh) { + return ResourceLoadPriority::kHigh; + } + + DCHECK_EQ(features::kDelayCompetingLowPriorityRequestsThresholdParam.Get(), + features::DelayCompetingLowPriorityRequestsThreshold::kMedium); + return ResourceLoadPriority::kMedium; +} + } // namespace constexpr ResourceLoadScheduler::ClientId @@ -149,7 +165,7 @@ // Check if the request can be throttled. ClientIdWithPriority request_info(*id, priority, intra_priority); if (!IsClientDelayable(option)) { - Run(*id, client, false); + Run(*id, client, /*throttleable=*/false, priority); return; } @@ -197,7 +213,13 @@ if (id == kInvalidClientId) return false; - if (running_requests_.Contains(id)) { + auto running_request = running_requests_.find(id); + if (running_request != running_requests_.end()) { + if (running_request->value >= PriorityImportanceThreshold()) { + in_flight_important_requests_--; + DCHECK_GE(in_flight_important_requests_, 0); + } + running_requests_.erase(id); running_throttleable_requests_.erase(id); @@ -205,9 +227,13 @@ MaybeRun(); return true; } - auto found = pending_request_map_.find(id); - if (found != pending_request_map_.end()) { - pending_request_map_.erase(found); + + // The client may not appear in the |pending_request_map_|. For example, + // non-delayable requests are immediately granted and skip being placed into + // this map. + auto pending_request = pending_request_map_.find(id); + if (pending_request != pending_request_map_.end()) { + pending_request_map_.erase(pending_request); // Intentionally does not remove it from |pending_requests_|. // Didn't release any running requests, but the outstanding limit might be @@ -306,11 +332,16 @@ // corresponding |pending_queue_update_times_|. if (use_stoppable) { *id = stoppable_it->client_id; + if (ShouldDelay(pending_request_map_.find(*id))) + return false; stoppable_queue.erase(stoppable_it); pending_queue_update_times_[ThrottleOption::kStoppable] = clock_->Now(); return true; } + *id = throttleable_it->client_id; + if (ShouldDelay(pending_request_map_.find(*id))) + return false; throttleable_queue.erase(throttleable_it); pending_queue_update_times_[ThrottleOption::kThrottleable] = clock_->Now(); return true; @@ -327,17 +358,54 @@ auto found = pending_request_map_.find(id); if (found == pending_request_map_.end()) continue; // Already released. + + auto priority = found->value->priority; ResourceLoadSchedulerClient* client = found->value->client; ThrottleOption option = found->value->option; pending_request_map_.erase(found); - Run(id, client, option == ThrottleOption::kThrottleable); + Run(id, client, option == ThrottleOption::kThrottleable, priority); + } +} + +void ResourceLoadScheduler::MarkFirstPaint() { + if (delay_milestone_reached_) { + return; + } + + if (base::FeatureList::IsEnabled( + features::kDelayCompetingLowPriorityRequests) && + features::kDelayCompetingLowPriorityRequestsDelayParam.Get() == + features::DelayCompetingLowPriorityRequestsDelayType::kFirstPaint) { + DCHECK(!delay_milestone_reached_); + delay_milestone_reached_ = true; + MaybeRun(); + } +} + +void ResourceLoadScheduler::MarkFirstContentfulPaint() { + if (delay_milestone_reached_) { + return; + } + + if (base::FeatureList::IsEnabled( + features::kDelayCompetingLowPriorityRequests) && + features::kDelayCompetingLowPriorityRequestsDelayParam.Get() == + features::DelayCompetingLowPriorityRequestsDelayType:: + kFirstContentfulPaint) { + DCHECK(!delay_milestone_reached_); + delay_milestone_reached_ = true; + MaybeRun(); } } void ResourceLoadScheduler::Run(ResourceLoadScheduler::ClientId id, ResourceLoadSchedulerClient* client, - bool throttleable) { - running_requests_.insert(id); + bool throttleable, + ResourceLoadPriority priority) { + if (priority >= PriorityImportanceThreshold()) { + in_flight_important_requests_++; + } + running_requests_.insert(id, priority); if (throttleable) running_throttleable_requests_.insert(id); client->Run(); @@ -403,4 +471,13 @@ clock_ = clock; } +bool ResourceLoadScheduler::ShouldDelay( + PendingRequestMap::iterator found) const { + return base::FeatureList::IsEnabled( + features::kDelayCompetingLowPriorityRequests) && + !delay_milestone_reached_ && in_flight_important_requests_ > 0 && + found != pending_request_map_.end() && + found->value->priority <= ResourceLoadPriority::kLow; +} + } // namespace blink
diff --git a/third_party/blink/renderer/platform/loader/fetch/resource_load_scheduler.h b/third_party/blink/renderer/platform/loader/fetch/resource_load_scheduler.h index df37d76..a60d71d 100644 --- a/third_party/blink/renderer/platform/loader/fetch/resource_load_scheduler.h +++ b/third_party/blink/renderer/platform/loader/fetch/resource_load_scheduler.h
@@ -81,6 +81,11 @@ // and sub frames. When the frame has been background for more than five // minutes, all throttleable resource loading requests are throttled // indefinitely (i.e., threshold is zero in such a circumstance). +// - (As of M86): Low-priority requests are delayed behind "important" +// requests before some general loading milestone has been reached. +// "Important", for the experiment means either kHigh or kMedium priority, +// and the milestones being experimented with are first paint and first +// contentful paint so far. class PLATFORM_EXPORT ResourceLoadScheduler final : public GarbageCollected<ResourceLoadScheduler>, public FrameOrWorkerScheduler::Observer { @@ -225,6 +230,10 @@ throttle_option_override_ = throttle_option_override; } + // Indicates that some loading milestones have been reached. + void MarkFirstPaint(); + void MarkFirstContentfulPaint(); + private: class ClientIdWithPriority { public: @@ -247,7 +256,7 @@ intra_priority(intra_priority) {} const ClientId client_id; - const WebURLRequest::Priority priority; + const ResourceLoadPriority priority; const int intra_priority; }; @@ -269,6 +278,8 @@ int intra_priority; }; + using PendingRequestMap = HeapHashMap<ClientId, Member<ClientInfo>>; + // Checks if |pending_requests_| for the specified option is effectively // empty, that means it does not contain any request that is still alive in // |pending_request_map_|. @@ -277,6 +288,9 @@ // Gets the highest priority pending request that is allowed to be run. bool GetNextPendingRequest(ClientId* id); + // Determines whether or not a low-priority request should be delayed. + bool ShouldDelay(PendingRequestMap::iterator found) const; + // Returns whether we can throttle a request with the given option based // on life cycle state. bool IsClientDelayable(ThrottleOption option) const; @@ -288,7 +302,10 @@ void MaybeRun(); // Grants a client to run, - void Run(ClientId, ResourceLoadSchedulerClient*, bool throttleable); + void Run(ClientId, + ResourceLoadSchedulerClient*, + bool throttleable, + ResourceLoadPriority priority); size_t GetOutstandingLimit(ResourceLoadPriority priority) const; @@ -319,7 +336,7 @@ ClientId current_id_ = kInvalidClientId; // Holds clients that were granted and are running. - HashSet<ClientId> running_requests_; + HashMap<ClientId, ResourceLoadPriority> running_requests_; HashSet<ClientId> running_throttleable_requests_; @@ -330,7 +347,7 @@ scheduler::SchedulingLifecycleState::kNotThrottled; // Holds clients that haven't been granted, and are waiting for a grant. - HeapHashMap<ClientId, Member<ClientInfo>> pending_request_map_; + PendingRequestMap pending_request_map_; // We use std::set here because WTF doesn't have its counterpart. // This tracks two sets of requests, throttleable and stoppable. @@ -350,6 +367,11 @@ const base::Clock* clock_; + int in_flight_important_requests_ = 0; + // When this is true, the scheduler no longer needs to delay low-priority + // resources. |ShouldDelay()| will always return false after this point. + bool delay_milestone_reached_ = false; + ThrottleOptionOverride throttle_option_override_; DISALLOW_COPY_AND_ASSIGN(ResourceLoadScheduler);
diff --git a/third_party/blink/renderer/platform/loader/fetch/resource_load_scheduler_test.cc b/third_party/blink/renderer/platform/loader/fetch/resource_load_scheduler_test.cc index 7059857685..44cd950d 100644 --- a/third_party/blink/renderer/platform/loader/fetch/resource_load_scheduler_test.cc +++ b/third_party/blink/renderer/platform/loader/fetch/resource_load_scheduler_test.cc
@@ -5,8 +5,10 @@ #include "third_party/blink/renderer/platform/loader/fetch/resource_load_scheduler.h" #include <memory> +#include "base/test/scoped_feature_list.h" #include "base/test/test_mock_time_task_runner.h" #include "testing/gtest/include/gtest/gtest.h" +#include "third_party/blink/public/common/features.h" #include "third_party/blink/renderer/platform/heap/persistent.h" #include "third_party/blink/renderer/platform/loader/fetch/console_logger.h" #include "third_party/blink/renderer/platform/loader/testing/test_resource_fetcher_properties.h" @@ -66,7 +68,7 @@ bool was_run_ = false; }; -class ResourceLoadSchedulerTest : public testing::Test { +class ResourceLoadSchedulerTestBase : public testing::Test { public: class MockConsoleLogger final : public GarbageCollected<MockConsoleLogger>, public ConsoleLogger { @@ -112,12 +114,48 @@ ResourceLoadScheduler::TrafficReportHints::InvalidInstance()); } - private: + protected: + base::test::ScopedFeatureList feature_list_; Persistent<MockConsoleLogger> console_logger_; Persistent<ResourceLoadScheduler> scheduler_; }; -TEST_F(ResourceLoadSchedulerTest, StopStoppableRequest) { +class ResourceLoadSchedulerTest + : public ResourceLoadSchedulerTestBase, + public testing::WithParamInterface< + std::tuple<base::test::ScopedFeatureList::FeatureAndParams, bool>> { + public: + void SetUp() override { + std::vector<base::test::ScopedFeatureList::FeatureAndParams> + features_with_params; + std::vector<base::Feature> disabled_features; + + bool enabled = std::get<1>(GetParam()); + if (enabled) { + features_with_params.push_back(std::get<0>(GetParam())); + } else { + disabled_features.push_back(std::get<0>(GetParam()).feature); + } + + feature_list_.InitWithFeaturesAndParameters(features_with_params, + disabled_features); + ResourceLoadSchedulerTestBase::SetUp(); + } +}; + +INSTANTIATE_TEST_SUITE_P( + All, + ResourceLoadSchedulerTest, + testing::Combine( + // A list of FeatureAndParams structs representing a single feature and + // an arbitrary number of parameters. + testing::Values(base::test::ScopedFeatureList::FeatureAndParams( + features::kDelayCompetingLowPriorityRequests, + {{"delay_type", "always"}})), + // A boolean indicating whether or not the feature is enabled. + testing::Bool())); + +TEST_P(ResourceLoadSchedulerTest, StopStoppableRequest) { Scheduler()->OnLifecycleStateChanged( scheduler::SchedulingLifecycleState::kStopped); // A request that disallows throttling should be queued. @@ -163,7 +201,7 @@ EXPECT_FALSE(Release(static_cast<ResourceLoadScheduler::ClientId>(774))); } -TEST_F(ResourceLoadSchedulerTest, ThrottleThrottleableRequest) { +TEST_P(ResourceLoadSchedulerTest, ThrottleThrottleableRequest) { Scheduler()->OnLifecycleStateChanged( scheduler::SchedulingLifecycleState::kThrottled); @@ -211,7 +249,7 @@ EXPECT_FALSE(Release(static_cast<ResourceLoadScheduler::ClientId>(774))); } -TEST_F(ResourceLoadSchedulerTest, Throttled) { +TEST_P(ResourceLoadSchedulerTest, Throttled) { // The first request should be ran synchronously. MockClient* client1 = MakeGarbageCollected<MockClient>(); ResourceLoadScheduler::ClientId id1 = ResourceLoadScheduler::kInvalidClientId; @@ -263,7 +301,7 @@ EXPECT_TRUE(client4->WasRun()); } -TEST_F(ResourceLoadSchedulerTest, Unthrottle) { +TEST_P(ResourceLoadSchedulerTest, Unthrottle) { // Push three requests. MockClient* client1 = MakeGarbageCollected<MockClient>(); ResourceLoadScheduler::ClientId id1 = ResourceLoadScheduler::kInvalidClientId; @@ -300,7 +338,7 @@ EXPECT_TRUE(Release(id1)); } -TEST_F(ResourceLoadSchedulerTest, Stopped) { +TEST_P(ResourceLoadSchedulerTest, Stopped) { // Push three requests. MockClient* client1 = MakeGarbageCollected<MockClient>(); ResourceLoadScheduler::ClientId id1 = ResourceLoadScheduler::kInvalidClientId; @@ -342,7 +380,7 @@ EXPECT_TRUE(Release(id2)); } -TEST_F(ResourceLoadSchedulerTest, PriorityIsConsidered) { +TEST_P(ResourceLoadSchedulerTest, PriorityIsConsidered) { // Push three requests. MockClient* client1 = MakeGarbageCollected<MockClient>(); @@ -381,26 +419,55 @@ EXPECT_FALSE(client3->WasRun()); EXPECT_TRUE(client4->WasRun()); - Scheduler()->SetOutstandingLimitForTesting(2); + if (base::FeatureList::IsEnabled( + features::kDelayCompetingLowPriorityRequests)) { + // Allows two requests (regardless of priority). No other clients are run, + // because the kHigh request is considered running / in-flight, so the kLow + // priority request should be delayed behind it as per this feature. + Scheduler()->SetOutstandingLimitForTesting(2); - EXPECT_FALSE(client1->WasRun()); - EXPECT_FALSE(client2->WasRun()); - EXPECT_TRUE(client3->WasRun()); - EXPECT_TRUE(client4->WasRun()); + EXPECT_FALSE(client1->WasRun()); + EXPECT_FALSE(client2->WasRun()); + EXPECT_FALSE(client3->WasRun()); + EXPECT_TRUE(client4->WasRun()); - Scheduler()->SetOutstandingLimitForTesting(3); + // ResourceLoadPriority::kLow requests will not run until client4 is + // released. + EXPECT_TRUE(ReleaseAndSchedule(id4)); - EXPECT_FALSE(client1->WasRun()); - EXPECT_TRUE(client2->WasRun()); - EXPECT_TRUE(client3->WasRun()); - EXPECT_TRUE(client4->WasRun()); + EXPECT_FALSE(client1->WasRun()); + EXPECT_TRUE(client2->WasRun()); + EXPECT_TRUE(client3->WasRun()); + EXPECT_TRUE(client4->WasRun()); - Scheduler()->SetOutstandingLimitForTesting(4); + Scheduler()->SetOutstandingLimitForTesting(3); - EXPECT_TRUE(client1->WasRun()); - EXPECT_TRUE(client2->WasRun()); - EXPECT_TRUE(client3->WasRun()); - EXPECT_TRUE(client4->WasRun()); + EXPECT_TRUE(client1->WasRun()); + EXPECT_TRUE(client2->WasRun()); + EXPECT_TRUE(client3->WasRun()); + EXPECT_TRUE(client4->WasRun()); + } else { + Scheduler()->SetOutstandingLimitForTesting(2); + + EXPECT_FALSE(client1->WasRun()); + EXPECT_FALSE(client2->WasRun()); + EXPECT_TRUE(client3->WasRun()); + EXPECT_TRUE(client4->WasRun()); + + Scheduler()->SetOutstandingLimitForTesting(3); + + EXPECT_FALSE(client1->WasRun()); + EXPECT_TRUE(client2->WasRun()); + EXPECT_TRUE(client3->WasRun()); + EXPECT_TRUE(client4->WasRun()); + + Scheduler()->SetOutstandingLimitForTesting(4); + + EXPECT_TRUE(client1->WasRun()); + EXPECT_TRUE(client2->WasRun()); + EXPECT_TRUE(client3->WasRun()); + EXPECT_TRUE(client4->WasRun()); + } // Release the rest. EXPECT_TRUE(Release(id3)); @@ -408,7 +475,7 @@ EXPECT_TRUE(Release(id1)); } -TEST_F(ResourceLoadSchedulerTest, AllowedRequestsRunInPriorityOrder) { +TEST_P(ResourceLoadSchedulerTest, AllowedRequestsRunInPriorityOrder) { Scheduler()->OnLifecycleStateChanged( scheduler::SchedulingLifecycleState::kStopped); Scheduler()->SetOutstandingLimitForTesting(0); @@ -441,20 +508,32 @@ Scheduler()->OnLifecycleStateChanged( scheduler::SchedulingLifecycleState::kThrottled); - EXPECT_TRUE(client1->WasRun()); - EXPECT_TRUE(client2->WasRun()); + if (base::FeatureList::IsEnabled( + features::kDelayCompetingLowPriorityRequests)) { + EXPECT_FALSE(client1->WasRun()); + EXPECT_TRUE(client2->WasRun()); + + EXPECT_TRUE(ReleaseAndSchedule(id2)); + EXPECT_TRUE(client1->WasRun()); + + // Finish releasing all. + EXPECT_TRUE(Release(id1)); + } else { + EXPECT_TRUE(client1->WasRun()); + EXPECT_TRUE(client2->WasRun()); + + // Release all. + EXPECT_TRUE(Release(id1)); + EXPECT_TRUE(Release(id2)); + } // Verify high priority request ran first. auto& order = delegate.client_order(); EXPECT_EQ(order[0], client2); EXPECT_EQ(order[1], client1); - - // Release all. - EXPECT_TRUE(Release(id1)); - EXPECT_TRUE(Release(id2)); } -TEST_F(ResourceLoadSchedulerTest, StoppableRequestResumesWhenThrottled) { +TEST_P(ResourceLoadSchedulerTest, StoppableRequestResumesWhenThrottled) { Scheduler()->OnLifecycleStateChanged( scheduler::SchedulingLifecycleState::kStopped); // Push two requests. @@ -505,7 +584,7 @@ EXPECT_TRUE(Release(id3)); } -TEST_F(ResourceLoadSchedulerTest, SetPriority) { +TEST_P(ResourceLoadSchedulerTest, SetPriority) { // Push three requests. MockClient* client1 = MakeGarbageCollected<MockClient>(); @@ -548,28 +627,62 @@ EXPECT_FALSE(client2->WasRun()); EXPECT_FALSE(client3->WasRun()); - // Loosen the policy to adopt the normal limit for all. - Scheduler()->LoosenThrottlingPolicy(); - Scheduler()->SetOutstandingLimitForTesting(0, 2); + if (base::FeatureList::IsEnabled( + features::kDelayCompetingLowPriorityRequests)) { + // Loosen the policy to adopt the normal limit for all. One request + // regardless of priority can be granted. + Scheduler()->LoosenThrottlingPolicy(); - EXPECT_TRUE(client1->WasRun()); - EXPECT_TRUE(client2->WasRun()); - EXPECT_FALSE(client3->WasRun()); + // The kLow requests are still delayed behind the in-flight kHigh one, since + // it hasn't been released yet. + EXPECT_TRUE(client1->WasRun()); + EXPECT_FALSE(client2->WasRun()); + EXPECT_FALSE(client3->WasRun()); - // kHigh priority does not help here. - Scheduler()->SetPriority(id3, ResourceLoadPriority::kHigh, 0); + // Releasing the in-flight high priority request makes room for the next two + // low priority requests to be granted, since the limit is two, and low + // priority. + EXPECT_TRUE(ReleaseAndSchedule(id1)); + EXPECT_TRUE(client1->WasRun()); + EXPECT_TRUE(client2->WasRun()); + EXPECT_FALSE(client3->WasRun()); - EXPECT_TRUE(client1->WasRun()); - EXPECT_TRUE(client2->WasRun()); - EXPECT_FALSE(client3->WasRun()); + // kHigh priority does not help the third request here. + Scheduler()->SetPriority(id3, ResourceLoadPriority::kHigh, 0); - // Release all. - EXPECT_TRUE(Release(id3)); - EXPECT_TRUE(Release(id2)); - EXPECT_TRUE(Release(id1)); + EXPECT_TRUE(client1->WasRun()); + EXPECT_TRUE(client2->WasRun()); + EXPECT_FALSE(client3->WasRun()); + + // Release remaining clients. + EXPECT_TRUE(Release(id3)); + EXPECT_TRUE(Release(id2)); + } else { + // Loosen the policy to adopt the normal limit for all. Two requests + // regardless of priority can be granted (including the in-flight high + // priority request). + Scheduler()->LoosenThrottlingPolicy(); + Scheduler()->SetOutstandingLimitForTesting(0, 2); + + EXPECT_TRUE(client1->WasRun()); + EXPECT_TRUE(client2->WasRun()); + EXPECT_FALSE(client3->WasRun()); + + // kHigh priority does not help the third request here. + Scheduler()->SetPriority(id3, ResourceLoadPriority::kHigh, 0); + + EXPECT_TRUE(client1->WasRun()); + EXPECT_TRUE(client2->WasRun()); + EXPECT_FALSE(client3->WasRun()); + + // Release all. + EXPECT_TRUE(Release(id3)); + EXPECT_TRUE(Release(id2)); + EXPECT_TRUE(Release(id1)); + } } -TEST_F(ResourceLoadSchedulerTest, LoosenThrottlingPolicy) { +TEST_P(ResourceLoadSchedulerTest, LoosenThrottlingPolicy) { MockClient* client1 = MakeGarbageCollected<MockClient>(); Scheduler()->SetOutstandingLimitForTesting(0, 0); @@ -645,7 +758,7 @@ EXPECT_TRUE(Release(id1)); } -TEST_F(ResourceLoadSchedulerTest, ConsoleMessage) { +TEST_P(ResourceLoadSchedulerTest, ConsoleMessage) { auto test_task_runner = base::MakeRefCounted<base::TestMockTimeTaskRunner>(); Scheduler()->SetClockForTesting(test_task_runner->GetMockClock()); Scheduler()->SetOutstandingLimitForTesting(0, 0); @@ -690,5 +803,160 @@ EXPECT_TRUE(Release(id2)); } +class ResourceLoadSchedulerTestDelayCompetingLowPriorityRequests + : public ResourceLoadSchedulerTestBase, + public testing::WithParamInterface< + std::tuple<features::DelayCompetingLowPriorityRequestsDelayType, + features::DelayCompetingLowPriorityRequestsThreshold>> { + public: + void SetUp() override { + std::map<std::string, std::string> parameters; + until_ = std::get<0>(GetParam()); + priority_threshold_ = std::get<1>(GetParam()); + + switch (until_) { + case features::DelayCompetingLowPriorityRequestsDelayType::kFirstPaint: + parameters[features::kDelayCompetingLowPriorityRequestsDelayParam + .name] = "first_paint"; + break; + case features::DelayCompetingLowPriorityRequestsDelayType:: + kFirstContentfulPaint: + parameters[features::kDelayCompetingLowPriorityRequestsDelayParam + .name] = "first_contentful_paint"; + break; + // This value is only included for manual testing. + case features::DelayCompetingLowPriorityRequestsDelayType::kAlways: + NOTREACHED(); + break; + } + + switch (priority_threshold_) { + case features::DelayCompetingLowPriorityRequestsThreshold::kMedium: + parameters[features::kDelayCompetingLowPriorityRequestsThresholdParam + .name] = "medium"; + break; + case features::DelayCompetingLowPriorityRequestsThreshold::kHigh: + parameters[features::kDelayCompetingLowPriorityRequestsThresholdParam + .name] = "high"; + break; + } + + feature_list_.InitWithFeaturesAndParameters( + {{features::kDelayCompetingLowPriorityRequests, parameters}}, {}); + ASSERT_TRUE(base::FeatureList::IsEnabled( + features::kDelayCompetingLowPriorityRequests)); + ASSERT_EQ(features::kDelayCompetingLowPriorityRequestsDelayParam.Get(), + until_); + ASSERT_EQ(features::kDelayCompetingLowPriorityRequestsThresholdParam.Get(), + priority_threshold_); + ResourceLoadSchedulerTestBase::SetUp(); + } + + // Returns a ResourceLoadPriority value (either kHigh, or kMedium) + // corresponding with the priority threshold field trial parameter. + ResourceLoadPriority ImportantPriority() { + if (priority_threshold_ == + features::DelayCompetingLowPriorityRequestsThreshold::kMedium) { + return ResourceLoadPriority::kMedium; + } + + if (priority_threshold_ == + features::DelayCompetingLowPriorityRequestsThreshold::kHigh) { + return ResourceLoadPriority::kHigh; + } + + NOTREACHED(); + return ResourceLoadPriority::kUnresolved; + } + + protected: + features::DelayCompetingLowPriorityRequestsDelayType until_; + features::DelayCompetingLowPriorityRequestsThreshold priority_threshold_; +}; + +INSTANTIATE_TEST_SUITE_P( + All, + ResourceLoadSchedulerTestDelayCompetingLowPriorityRequests, + testing::Combine( + // Delay "until" parameter: + testing::Values( + features::DelayCompetingLowPriorityRequestsDelayType::kFirstPaint, + features::DelayCompetingLowPriorityRequestsDelayType:: + kFirstContentfulPaint), + // Priority threshold parameter: + testing::Values( + features::DelayCompetingLowPriorityRequestsThreshold::kMedium, + features::DelayCompetingLowPriorityRequestsThreshold::kHigh))); + +TEST_P(ResourceLoadSchedulerTestDelayCompetingLowPriorityRequests, + DelayRequests) { + ResourceLoadPriority important = ImportantPriority(); + + // No throttling, so we can test the delay logic in an unobstructed way. + Scheduler()->OnLifecycleStateChanged( + scheduler::SchedulingLifecycleState::kNotThrottled); + Scheduler()->SetOutstandingLimitForTesting( + ResourceLoadScheduler::kOutstandingUnlimited); + + MockClient* important_client1 = MakeGarbageCollected<MockClient>(); + ResourceLoadScheduler::ClientId id1 = ResourceLoadScheduler::kInvalidClientId; + Scheduler()->Request(important_client1, ThrottleOption::kThrottleable, + important, 0 /* intra_priority */, &id1); + EXPECT_NE(ResourceLoadScheduler::kInvalidClientId, id1); + EXPECT_TRUE(important_client1->WasRun()); + + MockClient* important_client2 = MakeGarbageCollected<MockClient>(); + ResourceLoadScheduler::ClientId id2 = ResourceLoadScheduler::kInvalidClientId; + Scheduler()->Request(important_client2, ThrottleOption::kThrottleable, + important, 0 /* intra_priority */, &id2); + EXPECT_NE(ResourceLoadScheduler::kInvalidClientId, id2); + EXPECT_TRUE(important_client2->WasRun()); + + MockClient* low_client1 = MakeGarbageCollected<MockClient>(); + ResourceLoadScheduler::ClientId id3 = ResourceLoadScheduler::kInvalidClientId; + Scheduler()->Request(low_client1, ThrottleOption::kThrottleable, + ResourceLoadPriority::kLow, 0 /* intra_priority */, + &id3); + EXPECT_NE(ResourceLoadScheduler::kInvalidClientId, id3); + EXPECT_FALSE(low_client1->WasRun()); + + MockClient* low_client2 = MakeGarbageCollected<MockClient>(); + ResourceLoadScheduler::ClientId id4 = ResourceLoadScheduler::kInvalidClientId; + Scheduler()->Request(low_client2, ThrottleOption::kThrottleable, + ResourceLoadPriority::kLow, 0 /* intra_priority */, + &id4); + EXPECT_NE(ResourceLoadScheduler::kInvalidClientId, id4); + EXPECT_FALSE(low_client2->WasRun()); + + EXPECT_TRUE(ReleaseAndSchedule(id1)); + + // Releasing one important request is not enough to grant the low priority + // clients. + EXPECT_FALSE(low_client1->WasRun()); + EXPECT_FALSE(low_client2->WasRun()); + + // Triggering the loading milestone that we're not interested is not enough to + // grant the low priority clients. + if (until_ == + features::DelayCompetingLowPriorityRequestsDelayType::kFirstPaint) { + Scheduler()->MarkFirstContentfulPaint(); + } else { + Scheduler()->MarkFirstPaint(); + } + EXPECT_FALSE(low_client1->WasRun()); + EXPECT_FALSE(low_client2->WasRun()); + + // Triggering the loading milestone we are interested in *is* enough to grant + // the low priority clients. + Scheduler()->MarkFirstPaint(); + Scheduler()->MarkFirstContentfulPaint(); + EXPECT_TRUE(low_client1->WasRun()); + EXPECT_TRUE(low_client2->WasRun()); + + EXPECT_TRUE(Release(id2)); + EXPECT_TRUE(Release(id3)); + EXPECT_TRUE(Release(id4)); +} + } // namespace } // namespace blink
diff --git a/third_party/blink/renderer/platform/peerconnection/rtc_peer_connection_handler_client.h b/third_party/blink/renderer/platform/peerconnection/rtc_peer_connection_handler_client.h index 1821e68b..f7f61d75 100644 --- a/third_party/blink/renderer/platform/peerconnection/rtc_peer_connection_handler_client.h +++ b/third_party/blink/renderer/platform/peerconnection/rtc_peer_connection_handler_client.h
@@ -43,9 +43,8 @@ namespace blink { class RTCIceCandidatePlatform; -class RTCRtpReceiverPlatform; class RTCRtpTransceiverPlatform; -class RTCSessionDescriptionPlatform; +class RTCRtpReceiverPlatform; struct PLATFORM_EXPORT WebRTCSctpTransportSnapshot { rtc::scoped_refptr<webrtc::SctpTransportInterface> transport; @@ -67,11 +66,6 @@ const String& url, int error_code, const String& error_text) = 0; - virtual void DidChangeSessionDescriptions( - RTCSessionDescriptionPlatform* pending_local_description, - RTCSessionDescriptionPlatform* current_local_description, - RTCSessionDescriptionPlatform* pending_remote_description, - RTCSessionDescriptionPlatform* current_remote_description) = 0; virtual void DidChangeSignalingState( webrtc::PeerConnectionInterface::SignalingState) = 0; virtual void DidChangeIceGatheringState(
diff --git a/third_party/blink/renderer/platform/runtime_enabled_features.json5 b/third_party/blink/renderer/platform/runtime_enabled_features.json5 index 05ed61ff..9b30701 100644 --- a/third_party/blink/renderer/platform/runtime_enabled_features.json5 +++ b/third_party/blink/renderer/platform/runtime_enabled_features.json5
@@ -919,7 +919,6 @@ }, { name: "ImplicitRootScroller", - status: "experimental", settable_from_internals: true, }, {
diff --git a/third_party/blink/renderer/platform/scheduler/main_thread/main_thread_scheduler_impl.cc b/third_party/blink/renderer/platform/scheduler/main_thread/main_thread_scheduler_impl.cc index eaa796d0..cae3c682 100644 --- a/third_party/blink/renderer/platform/scheduler/main_thread/main_thread_scheduler_impl.cc +++ b/third_party/blink/renderer/platform/scheduler/main_thread/main_thread_scheduler_impl.cc
@@ -695,10 +695,12 @@ } auto insert_result = task_runners_.emplace(task_queue, std::move(voter)); + auto queue_class = task_queue->queue_class(); - UpdateTaskQueueState(task_queue.get(), insert_result.first->second.get(), - Policy(), main_thread_only().current_policy, - /*should_update_priority=*/true); + UpdateTaskQueueState( + task_queue.get(), insert_result.first->second.get(), TaskQueuePolicy(), + main_thread_only().current_policy.GetQueuePolicy(queue_class), + /*should_update_priority=*/true); // If this is a timer queue, and virtual time is enabled and paused, it should // be suspended by adding a fence to prevent immediate tasks from running when @@ -716,8 +718,8 @@ scoped_refptr<MainThreadTaskQueue> MainThreadSchedulerImpl::NewLoadingTaskQueue( MainThreadTaskQueue::QueueType queue_type, FrameSchedulerImpl* frame_scheduler) { - DCHECK(queue_type == MainThreadTaskQueue::QueueType::kFrameLoading || - queue_type == MainThreadTaskQueue::QueueType::kFrameLoadingControl); + DCHECK_EQ(MainThreadTaskQueue::QueueClassForQueueType(queue_type), + MainThreadTaskQueue::QueueClass::kLoading); return NewTaskQueue(MainThreadTaskQueue::QueueCreationParams(queue_type) .SetCanBePaused(true) .SetCanBeFrozen(true) @@ -1452,7 +1454,8 @@ case UseCase::kTouchstart: new_policy.rail_mode() = RAILMode::kResponse; - new_policy.should_defer_task_queues() = true; + new_policy.loading_queue_policy().is_deferred = true; + new_policy.default_queue_policy().is_deferred = true; break; case UseCase::kNone: @@ -1481,13 +1484,18 @@ if (main_thread_only().renderer_hidden) new_policy.rail_mode() = RAILMode::kIdle; - if (main_thread_only().renderer_pause_count != 0 || - main_thread_only().pause_timers_for_webview) { - new_policy.should_pause_task_queues() = true; + if (main_thread_only().renderer_pause_count != 0) { + new_policy.loading_queue_policy().is_paused = true; + new_policy.default_queue_policy().is_paused = true; + } + if (main_thread_only().pause_timers_for_webview) { + new_policy.default_queue_policy().is_paused = true; } if (main_thread_only().use_virtual_time) { - new_policy.use_virtual_time() = true; + new_policy.compositor_queue_policy().use_virtual_time = true; + new_policy.default_queue_policy().use_virtual_time = true; + new_policy.loading_queue_policy().use_virtual_time = true; } if (scheduling_settings_ @@ -1558,8 +1566,12 @@ !previous_policy.has_value() || ShouldUpdateTaskQueuePriorities(previous_policy.value()); for (const auto& pair : task_runners_) { - UpdateTaskQueueState(pair.first.get(), pair.second.get(), old_policy, - current_policy, should_update_priorities); + MainThreadTaskQueue::QueueClass queue_class = pair.first->queue_class(); + + UpdateTaskQueueState(pair.first.get(), pair.second.get(), + old_policy.GetQueuePolicy(queue_class), + current_policy.GetQueuePolicy(queue_class), + should_update_priorities); } compositor_task_queue_enabled_voter_->SetVoteToEnable( !current_policy.should_freeze_compositor_task_queue()); @@ -1568,25 +1580,31 @@ void MainThreadSchedulerImpl::UpdateTaskQueueState( MainThreadTaskQueue* task_queue, TaskQueue::QueueEnabledVoter* task_queue_enabled_voter, - const Policy& old_policy, - const Policy& new_policy, + const TaskQueuePolicy& old_task_queue_policy, + const TaskQueuePolicy& new_task_queue_policy, bool should_update_priority) const { if (should_update_priority) task_queue->SetQueuePriority(ComputePriority(task_queue)); + DCHECK(old_task_queue_policy.IsQueueEnabled(task_queue) || + task_queue_enabled_voter); if (task_queue_enabled_voter) { bool is_enabled_for_agent = agent_scheduling_strategy_->QueueEnabledState(*task_queue) .value_or(true); task_queue_enabled_voter->SetVoteToEnable( - is_enabled_for_agent && new_policy.IsQueueEnabled(task_queue)); + is_enabled_for_agent && + new_task_queue_policy.IsQueueEnabled(task_queue)); } // Make sure if there's no voter that the task queue is enabled. - DCHECK(task_queue_enabled_voter || old_policy.IsQueueEnabled(task_queue)); + DCHECK(task_queue_enabled_voter || + old_task_queue_policy.IsQueueEnabled(task_queue)); - TimeDomainType old_time_domain_type = old_policy.GetTimeDomainType(); - TimeDomainType new_time_domain_type = new_policy.GetTimeDomainType(); + TimeDomainType old_time_domain_type = + old_task_queue_policy.GetTimeDomainType(task_queue); + TimeDomainType new_time_domain_type = + new_task_queue_policy.GetTimeDomainType(task_queue); if (old_time_domain_type != new_time_domain_type) { if (new_time_domain_type == TimeDomainType::kVirtual) { @@ -2028,22 +2046,33 @@ state->EndDictionary(); } -bool MainThreadSchedulerImpl::Policy::IsQueueEnabled( +bool MainThreadSchedulerImpl::TaskQueuePolicy::IsQueueEnabled( MainThreadTaskQueue* task_queue) const { - if (should_pause_task_queues() && task_queue->CanBePaused()) + if (!is_enabled) return false; - if (should_defer_task_queues() && task_queue->CanBeDeferred()) + if (is_paused && task_queue->CanBePaused()) + return false; + if (is_deferred && task_queue->CanBeDeferred()) return false; return true; } MainThreadSchedulerImpl::TimeDomainType -MainThreadSchedulerImpl::Policy::GetTimeDomainType() const { - if (use_virtual_time()) +MainThreadSchedulerImpl::TaskQueuePolicy::GetTimeDomainType( + MainThreadTaskQueue* task_queue) const { + if (use_virtual_time) return TimeDomainType::kVirtual; return TimeDomainType::kReal; } +void MainThreadSchedulerImpl::TaskQueuePolicy::AsValueInto( + base::trace_event::TracedValue* state) const { + state->SetBoolean("is_enabled", is_enabled); + state->SetBoolean("is_paused", is_paused); + state->SetBoolean("is_deferred", is_deferred); + state->SetBoolean("use_virtual_time", use_virtual_time); +} + MainThreadSchedulerImpl::Policy::Policy() : rail_mode_(RAILMode::kAnimation), should_disable_throttling_(false), @@ -2057,14 +2086,24 @@ void MainThreadSchedulerImpl::Policy::AsValueInto( base::trace_event::TracedValue* state) const { + state->BeginDictionary("compositor_queue_policy"); + compositor_queue_policy().AsValueInto(state); + state->EndDictionary(); + + state->BeginDictionary("loading_queue_policy"); + loading_queue_policy().AsValueInto(state); + state->EndDictionary(); + + state->BeginDictionary("default_queue_policy"); + default_queue_policy().AsValueInto(state); + state->EndDictionary(); + state->SetString("rail_mode", RAILModeToString(rail_mode())); state->SetString("compositor_priority", TaskQueue::PriorityToString(compositor_priority())); state->SetString("use_case", UseCaseToString(use_case())); + state->SetBoolean("should_disable_throttling", should_disable_throttling()); - state->SetBoolean("should_defer_task_queues", should_defer_task_queues()); - state->SetBoolean("should_pause_task_queues", should_pause_task_queues()); - state->SetBoolean("use_virtual_time", use_virtual_time()); } void MainThreadSchedulerImpl::OnIdlePeriodStarted() {
diff --git a/third_party/blink/renderer/platform/scheduler/main_thread/main_thread_scheduler_impl.h b/third_party/blink/renderer/platform/scheduler/main_thread/main_thread_scheduler_impl.h index 28ea7ac..e15972a5 100644 --- a/third_party/blink/renderer/platform/scheduler/main_thread/main_thread_scheduler_impl.h +++ b/third_party/blink/renderer/platform/scheduler/main_thread/main_thread_scheduler_impl.h
@@ -474,6 +474,33 @@ bool IsAnyMainFrameWaitingForFirstContentfulPaint() const; bool IsAnyMainFrameWaitingForFirstMeaningfulPaint() const; + struct TaskQueuePolicy { + // Default constructor of TaskQueuePolicy should match behaviour of a + // newly-created task queue. + TaskQueuePolicy() + : is_enabled(true), + is_paused(false), + is_deferred(false), + use_virtual_time(false) {} + + bool is_enabled; + bool is_paused; + bool is_deferred; + bool use_virtual_time; + + bool IsQueueEnabled(MainThreadTaskQueue* task_queue) const; + + TimeDomainType GetTimeDomainType(MainThreadTaskQueue* task_queue) const; + + bool operator==(const TaskQueuePolicy& other) const { + return is_enabled == other.is_enabled && is_paused == other.is_paused && + is_deferred == other.is_deferred && + use_virtual_time == other.use_virtual_time; + } + + void AsValueInto(base::trace_event::TracedValue* state) const; + }; + class Policy { DISALLOW_NEW(); @@ -481,6 +508,38 @@ Policy(); ~Policy() = default; + TaskQueuePolicy& compositor_queue_policy() { + return policies_[static_cast<size_t>( + MainThreadTaskQueue::QueueClass::kCompositor)]; + } + const TaskQueuePolicy& compositor_queue_policy() const { + return policies_[static_cast<size_t>( + MainThreadTaskQueue::QueueClass::kCompositor)]; + } + + TaskQueuePolicy& loading_queue_policy() { + return policies_[static_cast<size_t>( + MainThreadTaskQueue::QueueClass::kLoading)]; + } + const TaskQueuePolicy& loading_queue_policy() const { + return policies_[static_cast<size_t>( + MainThreadTaskQueue::QueueClass::kLoading)]; + } + + TaskQueuePolicy& default_queue_policy() { + return policies_[static_cast<size_t>( + MainThreadTaskQueue::QueueClass::kNone)]; + } + const TaskQueuePolicy& default_queue_policy() const { + return policies_[static_cast<size_t>( + MainThreadTaskQueue::QueueClass::kNone)]; + } + + const TaskQueuePolicy& GetQueuePolicy( + MainThreadTaskQueue::QueueClass queue_class) const { + return policies_[static_cast<size_t>(queue_class)]; + } + RAILMode& rail_mode() { return rail_mode_; } RAILMode rail_mode() const { return rail_mode_; } @@ -506,15 +565,6 @@ return should_freeze_compositor_task_queue_; } - bool& should_defer_task_queues() { return should_defer_task_queues_; } - bool should_defer_task_queues() const { return should_defer_task_queues_; } - - bool& should_pause_task_queues() { return should_pause_task_queues_; } - bool should_pause_task_queues() const { return should_pause_task_queues_; } - - bool& use_virtual_time() { return use_virtual_time_; } - bool use_virtual_time() const { return use_virtual_time_; } - base::sequence_manager::TaskQueue::QueuePriority& compositor_priority() { return compositor_priority_; } @@ -535,16 +585,13 @@ UseCase use_case() const { return use_case_; } bool operator==(const Policy& other) const { - return rail_mode_ == other.rail_mode_ && + return policies_ == other.policies_ && rail_mode_ == other.rail_mode_ && should_disable_throttling_ == other.should_disable_throttling_ && frozen_when_backgrounded_ == other.frozen_when_backgrounded_ && should_prioritize_loading_with_compositing_ == other.should_prioritize_loading_with_compositing_ && should_freeze_compositor_task_queue_ == other.should_freeze_compositor_task_queue_ && - should_defer_task_queues_ == other.should_defer_task_queues_ && - should_pause_task_queues_ == other.should_pause_task_queues_ && - use_virtual_time_ == other.use_virtual_time_ && compositor_priority_ == other.compositor_priority_ && find_in_page_priority_ == other.find_in_page_priority_ && use_case_ == other.use_case_; @@ -552,19 +599,12 @@ void AsValueInto(base::trace_event::TracedValue* state) const; - bool IsQueueEnabled(MainThreadTaskQueue* task_queue) const; - - TimeDomainType GetTimeDomainType() const; - private: RAILMode rail_mode_; bool should_disable_throttling_; bool frozen_when_backgrounded_; bool should_prioritize_loading_with_compositing_; bool should_freeze_compositor_task_queue_{false}; - bool should_defer_task_queues_{false}; - bool should_pause_task_queues_{false}; - bool use_virtual_time_{false}; // Priority of task queues belonging to the compositor class (Check // MainThread::QueueClass). @@ -573,6 +613,10 @@ base::sequence_manager::TaskQueue::QueuePriority find_in_page_priority_; UseCase use_case_; + + std::array<TaskQueuePolicy, + static_cast<size_t>(MainThreadTaskQueue::QueueClass::kCount)> + policies_; }; class TaskDurationMetricTracker; @@ -697,8 +741,8 @@ MainThreadTaskQueue* task_queue, base::sequence_manager::TaskQueue::QueueEnabledVoter* task_queue_enabled_voter, - const Policy& old_policy, - const Policy& new_policy, + const TaskQueuePolicy& old_task_queue_policy, + const TaskQueuePolicy& new_task_queue_policy, bool should_update_priority) const; void PauseRendererImpl();
diff --git a/third_party/blink/renderer/platform/scheduler/main_thread/main_thread_scheduler_impl_unittest.cc b/third_party/blink/renderer/platform/scheduler/main_thread/main_thread_scheduler_impl_unittest.cc index a1f66d2..0909585 100644 --- a/third_party/blink/renderer/platform/scheduler/main_thread/main_thread_scheduler_impl_unittest.cc +++ b/third_party/blink/renderer/platform/scheduler/main_thread/main_thread_scheduler_impl_unittest.cc
@@ -3379,12 +3379,12 @@ scheduler_->PauseTimersForAndroidWebView(); EnableIdleTasks(); test_task_runner_->FastForwardUntilNoTasksRemain(); - EXPECT_THAT(run_order, testing::ElementsAre("D1", "C1", "I1")); + EXPECT_THAT(run_order, testing::ElementsAre("D1", "C1", "L1", "I1")); // The rest queued tasks fire when the throttleable queues are resumed. run_order.clear(); scheduler_->ResumeTimersForAndroidWebView(); test_task_runner_->FastForwardUntilNoTasksRemain(); - EXPECT_THAT(run_order, testing::ElementsAre("L1", "T1")); + EXPECT_THAT(run_order, testing::ElementsAre("T1")); } #endif // defined(OS_ANDROID)
diff --git a/third_party/blink/renderer/platform/scheduler/main_thread/main_thread_task_queue.cc b/third_party/blink/renderer/platform/scheduler/main_thread/main_thread_task_queue.cc index d1ad03d..a15ba518 100644 --- a/third_party/blink/renderer/platform/scheduler/main_thread/main_thread_task_queue.cc +++ b/third_party/blink/renderer/platform/scheduler/main_thread/main_thread_task_queue.cc
@@ -100,6 +100,37 @@ return false; } +MainThreadTaskQueue::QueueClass MainThreadTaskQueue::QueueClassForQueueType( + QueueType type) { + switch (type) { + case QueueType::kControl: + case QueueType::kDefault: + case QueueType::kIdle: + case QueueType::kTest: + case QueueType::kV8: + case QueueType::kNonWaking: + case QueueType::kFrameThrottleable: + case QueueType::kFrameDeferrable: + case QueueType::kFramePausable: + case QueueType::kFrameUnpausable: + case QueueType::kWebScheduling: + return QueueClass::kNone; + case QueueType::kFrameLoading: + case QueueType::kFrameLoadingControl: + return QueueClass::kLoading; + case QueueType::kCompositor: + case QueueType::kInput: + return QueueClass::kCompositor; + case QueueType::kDetached: + case QueueType::kOther: + case QueueType::kCount: + DCHECK(false); + return QueueClass::kCount; + } + NOTREACHED(); + return QueueClass::kNone; +} + MainThreadTaskQueue::MainThreadTaskQueue( std::unique_ptr<internal::TaskQueueImpl> impl, const TaskQueue::Spec& spec, @@ -107,6 +138,7 @@ MainThreadSchedulerImpl* main_thread_scheduler) : TaskQueue(std::move(impl), spec), queue_type_(params.queue_type), + queue_class_(QueueClassForQueueType(params.queue_type)), fixed_priority_(params.fixed_priority), queue_traits_(params.queue_traits), freeze_when_keep_active_(params.freeze_when_keep_active),
diff --git a/third_party/blink/renderer/platform/scheduler/main_thread/main_thread_task_queue.h b/third_party/blink/renderer/platform/scheduler/main_thread/main_thread_task_queue.h index 693b30c..13588ba5 100644 --- a/third_party/blink/renderer/platform/scheduler/main_thread/main_thread_task_queue.h +++ b/third_party/blink/renderer/platform/scheduler/main_thread/main_thread_task_queue.h
@@ -92,6 +92,18 @@ // the entire main thread. static bool IsPerFrameTaskQueue(QueueType); + // High-level category used by MainThreadScheduler to make scheduling + // decisions. + enum class QueueClass { + kNone = 0, + kLoading = 1, + kCompositor = 4, + + kCount = 5, + }; + + static QueueClass QueueClassForQueueType(QueueType type); + using QueueTraitsKeyType = int; // QueueTraits represent the deferrable, throttleable, pausable, and freezable @@ -326,6 +338,8 @@ QueueType queue_type() const { return queue_type_; } + QueueClass queue_class() const { return queue_class_; } + base::Optional<base::sequence_manager::TaskQueue::QueuePriority> FixedPriority() const { return fixed_priority_; @@ -417,6 +431,7 @@ void ClearReferencesToSchedulers(); const QueueType queue_type_; + const QueueClass queue_class_; const base::Optional<base::sequence_manager::TaskQueue::QueuePriority> fixed_priority_; const QueueTraits queue_traits_;
diff --git a/third_party/blink/renderer/platform/widget/compositing/widget_compositor_unittest.cc b/third_party/blink/renderer/platform/widget/compositing/widget_compositor_unittest.cc index 0819d635..aee84a4e 100644 --- a/third_party/blink/renderer/platform/widget/compositing/widget_compositor_unittest.cc +++ b/third_party/blink/renderer/platform/widget/compositing/widget_compositor_unittest.cc
@@ -35,10 +35,11 @@ void FocusChanged(bool) override {} void UpdateVisualProperties( const VisualProperties& visual_properties) override {} - void UpdateScreenRects(const gfx::Rect& widget_screen_rect, - const gfx::Rect& window_screen_rect) override {} - ScreenInfo GetOriginalScreenInfo() override { return ScreenInfo(); } + const ScreenInfo& GetOriginalScreenInfo() override { return screen_info_; } gfx::Rect ViewportVisibleRect() override { return gfx::Rect(); } + + private: + ScreenInfo screen_info_; }; class FakeWidgetCompositor : public WidgetCompositor {
diff --git a/third_party/blink/renderer/platform/widget/frame_widget.h b/third_party/blink/renderer/platform/widget/frame_widget.h index e04c5f2..45573eee 100644 --- a/third_party/blink/renderer/platform/widget/frame_widget.h +++ b/third_party/blink/renderer/platform/widget/frame_widget.h
@@ -92,7 +92,7 @@ virtual mojom::blink::DisplayMode DisplayMode() const = 0; // Returns the window segments for the widget. - virtual const WebVector<WebRect>& WindowSegments() const = 0; + virtual const WebVector<gfx::Rect>& WindowSegments() const = 0; // Sets the ink metadata on the layer tree host virtual void SetDelegatedInkMetadata( @@ -179,6 +179,15 @@ // Returns information about the screen where this widget is being displayed. virtual const ScreenInfo& GetScreenInfo() = 0; + + // Called to get the position of the widget's window in screen + // coordinates. Note, the window includes any decorations such as borders, + // scrollbars, URL bar, tab strip, etc. if they exist. + virtual gfx::Rect WindowRect() = 0; + + // Called to get the view rect in screen coordinates. This is the actual + // content view area, i.e. doesn't include any window decorations. + virtual gfx::Rect ViewRect() = 0; }; } // namespace blink
diff --git a/third_party/blink/renderer/platform/widget/input/widget_base_input_handler.cc b/third_party/blink/renderer/platform/widget/input/widget_base_input_handler.cc index 6fbec26..b19bb89 100644 --- a/third_party/blink/renderer/platform/widget/input/widget_base_input_handler.cc +++ b/third_party/blink/renderer/platform/widget/input/widget_base_input_handler.cc
@@ -25,6 +25,7 @@ #include "third_party/blink/public/common/input/web_touch_event.h" #include "third_party/blink/public/mojom/input/input_event_result.mojom-shared.h" #include "third_party/blink/public/platform/scheduler/web_thread_scheduler.h" +#include "third_party/blink/renderer/platform/widget/input/ime_event_guard.h" #include "third_party/blink/renderer/platform/widget/widget_base.h" #include "third_party/blink/renderer/platform/widget/widget_base_client.h" #include "ui/latency/latency_info.h" @@ -216,13 +217,6 @@ input_handler_->handling_input_event_ = previous_was_handling_input_; DCHECK_EQ(input_handler_->handling_input_state_, this); input_handler_->handling_input_state_ = previous_state_; - -#if defined(OS_ANDROID) - if (show_virtual_keyboard_) - input_handler_->ShowVirtualKeyboard(); - else - input_handler_->UpdateTextInputState(); -#endif } std::unique_ptr<InputHandlerProxy::DidOverscrollParams>& event_overscroll() { @@ -242,12 +236,6 @@ bool touch_start_or_move() { return touch_start_or_move_; } -#if defined(OS_ANDROID) - void set_show_virtual_keyboard(bool show_virtual_keyboard) { - show_virtual_keyboard_ = show_virtual_keyboard; - } -#endif // defined(OS_ANDROID) - private: // Used to intercept overscroll notifications while an event is being // handled. If the event causes overscroll, the overscroll metadata can be @@ -266,11 +254,6 @@ // Whether the event we are handling is a touch start or move. bool touch_start_or_move_; -#if defined(OS_ANDROID) - // Whether to show the virtual keyboard or not at the end of processing. - bool show_virtual_keyboard_ = false; -#endif - HandlingState* previous_state_; bool previous_was_handling_input_; base::WeakPtr<WidgetBaseInputHandler> input_handler_; @@ -323,6 +306,10 @@ weak_ptr_factory_.GetWeakPtr(); HandlingState handling_state(weak_self, IsTouchStartOrMove(input_event)); +#if defined(OS_ANDROID) + ImeEventGuard guard(widget_->GetWeakPtr()); +#endif + base::TimeTicks start_time; if (base::TimeTicks::IsHighResolution()) start_time = base::TimeTicks::Now(); @@ -504,7 +491,7 @@ if ((processed != WebInputEventResult::kNotHandled && input_event.GetType() == WebInputEvent::Type::kTouchEnd) || show_virtual_keyboard_for_mouse) { - ShowVirtualKeyboard(); + widget_->ShowVirtualKeyboard(); } if (!prevent_default && @@ -688,22 +675,4 @@ return true; } -void WidgetBaseInputHandler::ShowVirtualKeyboard() { -#if defined(OS_ANDROID) - if (handling_input_state_) { - handling_input_state_->set_show_virtual_keyboard(true); - return; - } -#endif - widget_->ShowVirtualKeyboard(); -} - -void WidgetBaseInputHandler::UpdateTextInputState() { -#if defined(OS_ANDROID) - if (handling_input_state_) - return; -#endif - widget_->UpdateTextInputState(); -} - } // namespace blink
diff --git a/third_party/blink/renderer/platform/widget/input/widget_base_input_handler.h b/third_party/blink/renderer/platform/widget/input/widget_base_input_handler.h index 645ecac..8b5fa9d 100644 --- a/third_party/blink/renderer/platform/widget/input/widget_base_input_handler.h +++ b/third_party/blink/renderer/platform/widget/input/widget_base_input_handler.h
@@ -86,11 +86,6 @@ // cursor. bool DidChangeCursor(const ui::Cursor& cursor); - // Request virtual keyboard be shown. The message will be debounced during - // handling of input events. - void ShowVirtualKeyboard(); - void UpdateTextInputState(); - private: class HandlingState; struct InjectScrollGestureParams {
diff --git a/third_party/blink/renderer/platform/widget/widget_base.cc b/third_party/blink/renderer/platform/widget/widget_base.cc index 7f1908e..37f3a1a8 100644 --- a/third_party/blink/renderer/platform/widget/widget_base.cc +++ b/third_party/blink/renderer/platform/widget/widget_base.cc
@@ -12,10 +12,12 @@ #include "cc/trees/ukm_manager.h" #include "mojo/public/cpp/bindings/pending_associated_receiver.h" #include "mojo/public/cpp/bindings/pending_associated_remote.h" +#include "third_party/blink/public/common/features.h" #include "third_party/blink/public/common/input/web_input_event_attribution.h" #include "third_party/blink/public/common/switches.h" #include "third_party/blink/public/common/widget/screen_info.h" #include "third_party/blink/public/mojom/input/pointer_lock_context.mojom-blink.h" +#include "third_party/blink/public/mojom/widget/visual_properties.mojom-blink.h" #include "third_party/blink/public/platform/platform.h" #include "third_party/blink/public/platform/scheduler/web_render_widget_scheduling_state.h" #include "third_party/blink/public/platform/scheduler/web_thread_scheduler.h" @@ -98,7 +100,8 @@ : client_(client), widget_host_(std::move(widget_host)), receiver_(this, std::move(widget)), - next_previous_flags_(kInvalidNextPreviousFlagsValue) { + next_previous_flags_(kInvalidNextPreviousFlagsValue), + use_zoom_for_dsf_(Platform::Current()->IsUseZoomForDSFEnabled()) { if (auto* main_thread_scheduler = scheduler::WebThreadScheduler::MainThreadScheduler()) { render_widget_scheduling_state_ = @@ -333,7 +336,10 @@ void WidgetBase::UpdateScreenRects(const gfx::Rect& widget_screen_rect, const gfx::Rect& window_screen_rect, UpdateScreenRectsCallback callback) { - client_->UpdateScreenRects(widget_screen_rect, window_screen_rect); + if (!client_->UpdateScreenRects(widget_screen_rect, window_screen_rect)) { + widget_screen_rect_ = widget_screen_rect; + window_screen_rect_ = window_screen_rect; + } std::move(callback).Run(); } @@ -1066,7 +1072,7 @@ if (orientation_changed) client_->OrientationChanged(); - client_->UpdatedSurfaceAndScreen(previous_original_screen_info); + client_->DidUpdateSurfaceAndScreen(previous_original_screen_info); } void WidgetBase::UpdateScreenInfo(const ScreenInfo& new_screen_info) { @@ -1091,6 +1097,42 @@ return screen_info_; } +void WidgetBase::SetScreenRects(const gfx::Rect& widget_screen_rect, + const gfx::Rect& window_screen_rect) { + widget_screen_rect_ = widget_screen_rect; + window_screen_rect_ = window_screen_rect; +} + +void WidgetBase::SetPendingWindowRect(const gfx::Rect* rect) { + if (rect) + pending_window_rect_ = *rect; + else + pending_window_rect_.reset(); +} + +gfx::Rect WidgetBase::WindowRect() { + gfx::Rect rect; + if (pending_window_rect_) { + // NOTE(mbelshe): If there is a pending_window_rect_, then getting + // the RootWindowRect is probably going to return wrong results since the + // browser may not have processed the Move yet. There isn't really anything + // good to do in this case, and it shouldn't happen - since this size is + // only really needed for windowToScreen, which is only used for Popups. + rect = pending_window_rect_.value(); + } else { + rect = window_screen_rect_; + } + + client_->ScreenRectToEmulated(rect); + return rect; +} + +gfx::Rect WidgetBase::ViewRect() { + gfx::Rect rect = widget_screen_rect_; + client_->ScreenRectToEmulated(rect); + return rect; +} + gfx::Rect WidgetBase::CompositorViewportRect() const { return LayerTreeHost()->device_viewport_rect(); }
diff --git a/third_party/blink/renderer/platform/widget/widget_base.h b/third_party/blink/renderer/platform/widget/widget_base.h index f7e710d..0956853 100644 --- a/third_party/blink/renderer/platform/widget/widget_base.h +++ b/third_party/blink/renderer/platform/widget/widget_base.h
@@ -217,6 +217,50 @@ CrossVariantMojoRemote< mojom::blink::PointerLockContextInterfaceBase>)> callback); + const viz::LocalSurfaceIdAllocation& + local_surface_id_allocation_from_parent() { + return local_surface_id_allocation_from_parent_; + } + + // Called to get the position of the widget's window in screen + // coordinates. Note, the window includes any decorations such as borders, + // scrollbars, URL bar, tab strip, etc. if they exist. + gfx::Rect WindowRect(); + + // Called to get the view rect in screen coordinates. This is the actual + // content view area, i.e. doesn't include any window decorations. + gfx::Rect ViewRect(); + + // Sets the pending window rects (in screen coordinates). This is used because + // the window rect is delivered asynchronously to the browser. Pass in nullptr + // to clear the pending window rect once the browser has acknowledged the + // request. + void SetPendingWindowRect(const gfx::Rect* rect); + + // Returns the location/bounds of the widget (in screen coordinates). + const gfx::Rect& WidgetScreenRect() const { return widget_screen_rect_; } + + // Returns the bounds of the screen the widget is contained in (in screen + // coordinates). + const gfx::Rect& WindowScreenRect() const { return window_screen_rect_; } + + // Sets the screen rects (in screen coordinates). + void SetScreenRects(const gfx::Rect& widget_screen_rect, + const gfx::Rect& window_screen_rect); + + // Returns the visible viewport size (in screen coorindates). + const gfx::Size& VisibleViewportSize() const { + return visible_viewport_size_; + } + + // Set the visible viewport size (in screen coorindates). + void SetVisibleViewportSize(const gfx::Size& size) { + visible_viewport_size_ = size; + } + + // Returns whether Zoom for DSF is enabled for the widget. + bool UseZoomForDsf() { return use_zoom_for_dsf_; } + void BindWidgetCompositor( mojo::PendingReceiver<mojom::blink::WidgetCompositor> receiver); @@ -326,6 +370,18 @@ // ImeEventGuard. We keep track of the outermost one, and update it as needed. ImeEventGuard* ime_event_guard_ = nullptr; + // The screen rects of the view and the window that contains it. These do not + // include any scaling by device scale factor, so are logical pixels not + // physical device pixels. + gfx::Rect widget_screen_rect_; + gfx::Rect window_screen_rect_; + base::Optional<gfx::Rect> pending_window_rect_; + + // The size of the visible viewport in pixels. + gfx::Size visible_viewport_size_; + + const bool use_zoom_for_dsf_; + base::WeakPtrFactory<WidgetBase> weak_ptr_factory_{this}; };
diff --git a/third_party/blink/renderer/platform/widget/widget_base_client.h b/third_party/blink/renderer/platform/widget/widget_base_client.h index ecafa6f..f27809a9 100644 --- a/third_party/blink/renderer/platform/widget/widget_base_client.h +++ b/third_party/blink/renderer/platform/widget/widget_base_client.h
@@ -165,19 +165,34 @@ virtual void UpdateVisualProperties( const VisualProperties& visual_properties) = 0; - // Apply the updated screen rects. - virtual void UpdateScreenRects(const gfx::Rect& widget_screen_rect, - const gfx::Rect& window_screen_rect) = 0; + // A callback to apply the updated screen rects, return true if it + // was handled. If not handled WidgetBase will apply the screen + // rects as the new values. + virtual bool UpdateScreenRects(const gfx::Rect& widget_screen_rect, + const gfx::Rect& window_screen_rect) { + return false; + } + // Convert screen coordinates to device emulated coordinates (scaled + // coordinates when devtools is used). This occurs for popups where their + // window bounds are emulated. + virtual void ScreenRectToEmulated(gfx::Rect& screen_rect) {} + virtual void EmulatedToScreenRect(gfx::Rect& screen_rect) {} + + // Signal the orientation has changed. virtual void OrientationChanged() {} - virtual ScreenInfo GetOriginalScreenInfo() = 0; + // Return the original (non-emulated) screen info. + virtual const ScreenInfo& GetOriginalScreenInfo() = 0; - virtual void UpdatedSurfaceAndScreen( + // Indication that the surface and screen were updated. + virtual void DidUpdateSurfaceAndScreen( const ScreenInfo& previous_original_screen_info) {} + // Return the viewport visible rect. virtual gfx::Rect ViewportVisibleRect() = 0; + // The screen orientation override. virtual base::Optional<mojom::blink::ScreenOrientation> ScreenOrientationOverride() { return base::nullopt;
diff --git a/third_party/blink/tools/blinkpy/presubmit/audit_non_blink_usage.py b/third_party/blink/tools/blinkpy/presubmit/audit_non_blink_usage.py index 9d69396..49f283e 100755 --- a/third_party/blink/tools/blinkpy/presubmit/audit_non_blink_usage.py +++ b/third_party/blink/tools/blinkpy/presubmit/audit_non_blink_usage.py
@@ -471,6 +471,7 @@ # depend on. 'ui::AXEvent', 'ui::AXEventIntent', + 'ui::AXMode', 'ui::AXNodeData', 'ui::IsDialog', 'ui::IsContainerWithSelectableChildren',
diff --git a/third_party/blink/web_tests/TestExpectations b/third_party/blink/web_tests/TestExpectations index 282d8fb..27c53390 100644 --- a/third_party/blink/web_tests/TestExpectations +++ b/third_party/blink/web_tests/TestExpectations
@@ -199,9 +199,7 @@ # This test was attributed to site isolation but times out with or without it. Broken test? crbug.com/1050826 external/wpt/mixed-content/gen/top.http-rp/opt-in/object-tag.https.html [ Timeout ] -crbug.com/774873 [ Mac ] virtual/exotic-color-space/images/color-profile-border-fade.html [ Pass Failure ] -crbug.com/774873 [ Linux ] virtual/exotic-color-space/images/color-profile-border-fade.html [ Pass Failure ] -crbug.com/774873 [ Win ] virtual/exotic-color-space/images/color-profile-border-fade.html [ Pass Failure ] +crbug.com/774873 virtual/exotic-color-space/images/color-profile-border-fade.html [ Pass Failure ] crbug.com/1098369 fast/canvas/OffscreenCanvas-copyImage.html [ Pass Failure ] @@ -365,55 +363,29 @@ crbug.com/1056778 fast/scrolling/scrollbars/scrollbar-thumb-snapping.html [ Failure ] # Most of these fail due to subpixel differences, but a couple are real failures. -crbug.com/1044742 [ Win ] external/wpt/css/compositing/mix-blend-mode/mix-blend-mode-animation.html [ Failure ] -crbug.com/1044742 [ Mac ] external/wpt/css/compositing/mix-blend-mode/mix-blend-mode-animation.html [ Failure ] +crbug.com/1044742 external/wpt/css/compositing/mix-blend-mode/mix-blend-mode-animation.html [ Failure ] crbug.com/1044742 [ Linux ] external/wpt/css/compositing/mix-blend-mode/mix-blend-mode-canvas-parent.html [ Failure ] crbug.com/1044742 [ Linux ] external/wpt/css/compositing/mix-blend-mode/mix-blend-mode-canvas-sibling.html [ Failure ] -crbug.com/1044742 [ Linux ] external/wpt/css/compositing/mix-blend-mode/mix-blend-mode-parent-with-border-radius.html [ Failure ] -crbug.com/1044742 [ Mac ] external/wpt/css/compositing/mix-blend-mode/mix-blend-mode-parent-with-border-radius.html [ Failure ] -crbug.com/1044742 [ Win ] external/wpt/css/compositing/mix-blend-mode/mix-blend-mode-parent-with-border-radius.html [ Failure ] +crbug.com/1044742 external/wpt/css/compositing/mix-blend-mode/mix-blend-mode-parent-with-border-radius.html [ Failure ] crbug.com/1044742 [ Linux ] external/wpt/css/compositing/mix-blend-mode/mix-blend-mode-iframe-sibling.html [ Failure ] -crbug.com/1044742 [ Linux ] external/wpt/css/compositing/mix-blend-mode/mix-blend-mode-border-image.html [ Failure ] -crbug.com/1044742 [ Mac ] external/wpt/css/compositing/mix-blend-mode/mix-blend-mode-border-image.html [ Failure ] -crbug.com/1044742 [ Win ] external/wpt/css/compositing/mix-blend-mode/mix-blend-mode-border-image.html [ Failure ] -crbug.com/1044742 [ Linux ] external/wpt/css/compositing/compositing_simple_div.html [ Failure ] -crbug.com/1044742 [ Mac ] external/wpt/css/compositing/compositing_simple_div.html [ Failure ] -crbug.com/1044742 [ Win ] external/wpt/css/compositing/compositing_simple_div.html [ Failure ] +crbug.com/1044742 external/wpt/css/compositing/mix-blend-mode/mix-blend-mode-border-image.html [ Failure ] +crbug.com/1044742 external/wpt/css/compositing/compositing_simple_div.html [ Failure ] crbug.com/1044742 [ Linux ] external/wpt/css/compositing/mix-blend-mode/mix-blend-mode-simple.html [ Failure ] -crbug.com/1044742 [ Linux ] external/wpt/css/compositing/mix-blend-mode/mix-blend-mode-stacking-context-001.html [ Failure ] -crbug.com/1044742 [ Mac ] external/wpt/css/compositing/mix-blend-mode/mix-blend-mode-stacking-context-001.html [ Failure ] -crbug.com/1044742 [ Win ] external/wpt/css/compositing/mix-blend-mode/mix-blend-mode-stacking-context-001.html [ Failure ] +crbug.com/1044742 external/wpt/css/compositing/mix-blend-mode/mix-blend-mode-stacking-context-001.html [ Failure ] crbug.com/1044742 [ Linux ] external/wpt/css/compositing/mix-blend-mode/mix-blend-mode-paragraph-background-image.html [ Failure ] -crbug.com/1044742 [ Linux ] external/wpt/css/compositing/mix-blend-mode/mix-blend-mode-parent-element-overflow-hidden-and-border-radius.html [ Failure ] -crbug.com/1044742 [ Mac ] external/wpt/css/compositing/mix-blend-mode/mix-blend-mode-parent-element-overflow-hidden-and-border-radius.html [ Failure ] -crbug.com/1044742 [ Win ] external/wpt/css/compositing/mix-blend-mode/mix-blend-mode-parent-element-overflow-hidden-and-border-radius.html [ Failure ] -crbug.com/1044742 [ Linux ] external/wpt/css/compositing/mix-blend-mode/mix-blend-mode-intermediate-element-overflow-hidden-and-border-radius.html [ Failure ] -crbug.com/1044742 [ Mac ] external/wpt/css/compositing/mix-blend-mode/mix-blend-mode-intermediate-element-overflow-hidden-and-border-radius.html [ Failure ] -crbug.com/1044742 [ Win ] external/wpt/css/compositing/mix-blend-mode/mix-blend-mode-intermediate-element-overflow-hidden-and-border-radius.html [ Failure ] +crbug.com/1044742 external/wpt/css/compositing/mix-blend-mode/mix-blend-mode-parent-element-overflow-hidden-and-border-radius.html [ Failure ] +crbug.com/1044742 external/wpt/css/compositing/mix-blend-mode/mix-blend-mode-intermediate-element-overflow-hidden-and-border-radius.html [ Failure ] crbug.com/1044742 [ Linux ] external/wpt/css/compositing/mix-blend-mode/mix-blend-mode-paragraph.html [ Failure ] -crbug.com/1044742 [ Linux ] external/wpt/css/compositing/mix-blend-mode/mix-blend-mode-both-parent-and-blended-with-3D-transform.html [ Failure ] -crbug.com/1044742 [ Mac ] external/wpt/css/compositing/mix-blend-mode/mix-blend-mode-both-parent-and-blended-with-3D-transform.html [ Failure ] -crbug.com/1044742 [ Win ] external/wpt/css/compositing/mix-blend-mode/mix-blend-mode-both-parent-and-blended-with-3D-transform.html [ Failure ] -crbug.com/1044742 [ Linux ] external/wpt/css/compositing/mix-blend-mode/mix-blend-mode-animation.html [ Failure ] -crbug.com/1044742 [ Linux ] external/wpt/css/compositing/mix-blend-mode/mix-blend-mode-blended-with-transform-and-perspective.html [ Failure ] -crbug.com/1044742 [ Mac ] external/wpt/css/compositing/mix-blend-mode/mix-blend-mode-blended-with-transform-and-perspective.html [ Failure ] -crbug.com/1044742 [ Win ] external/wpt/css/compositing/mix-blend-mode/mix-blend-mode-blended-with-transform-and-perspective.html [ Failure ] +crbug.com/1044742 external/wpt/css/compositing/mix-blend-mode/mix-blend-mode-both-parent-and-blended-with-3D-transform.html [ Failure ] +crbug.com/1044742 external/wpt/css/compositing/mix-blend-mode/mix-blend-mode-blended-with-transform-and-perspective.html [ Failure ] crbug.com/1044742 [ Linux ] external/wpt/css/compositing/mix-blend-mode/mix-blend-mode-svg.html [ Failure ] -crbug.com/1044742 [ Linux ] external/wpt/css/compositing/mix-blend-mode/mix-blend-mode-filter.html [ Failure ] -crbug.com/1044742 [ Mac ] external/wpt/css/compositing/mix-blend-mode/mix-blend-mode-filter.html [ Failure ] -crbug.com/1044742 [ Win ] external/wpt/css/compositing/mix-blend-mode/mix-blend-mode-filter.html [ Failure ] -crbug.com/1044742 [ Linux ] external/wpt/css/compositing/mix-blend-mode/mix-blend-mode-blended-with-3D-transform.html [ Failure ] -crbug.com/1044742 [ Mac ] external/wpt/css/compositing/mix-blend-mode/mix-blend-mode-blended-with-3D-transform.html [ Failure ] -crbug.com/1044742 [ Win ] external/wpt/css/compositing/mix-blend-mode/mix-blend-mode-blended-with-3D-transform.html [ Failure ] -crbug.com/1044742 [ Linux ] external/wpt/css/compositing/mix-blend-mode/mix-blend-mode-blended-element-overflow-hidden-and-border-radius.html [ Failure ] -crbug.com/1044742 [ Mac ] external/wpt/css/compositing/mix-blend-mode/mix-blend-mode-blended-element-overflow-hidden-and-border-radius.html [ Failure ] -crbug.com/1044742 [ Win ] external/wpt/css/compositing/mix-blend-mode/mix-blend-mode-blended-element-overflow-hidden-and-border-radius.html [ Failure ] +crbug.com/1044742 external/wpt/css/compositing/mix-blend-mode/mix-blend-mode-filter.html [ Failure ] +crbug.com/1044742 external/wpt/css/compositing/mix-blend-mode/mix-blend-mode-blended-with-3D-transform.html [ Failure ] +crbug.com/1044742 external/wpt/css/compositing/mix-blend-mode/mix-blend-mode-blended-element-overflow-hidden-and-border-radius.html [ Failure ] crbug.com/1044742 [ Linux ] external/wpt/css/compositing/mix-blend-mode/mix-blend-mode-script.html [ Failure ] crbug.com/1044742 [ Linux ] external/wpt/css/compositing/mix-blend-mode/mix-blend-mode-iframe-parent.html [ Failure ] crbug.com/1044742 [ Linux ] external/wpt/css/compositing/mix-blend-mode/mix-blend-mode-blended-element-interposed.html [ Failure ] -crbug.com/1044742 [ Linux ] external/wpt/css/compositing/mix-blend-mode/mix-blend-mode-with-transform-and-preserve-3D.html [ Failure ] -crbug.com/1044742 [ Mac ] external/wpt/css/compositing/mix-blend-mode/mix-blend-mode-with-transform-and-preserve-3D.html [ Failure ] -crbug.com/1044742 [ Win ] external/wpt/css/compositing/mix-blend-mode/mix-blend-mode-with-transform-and-preserve-3D.html [ Failure ] +crbug.com/1044742 external/wpt/css/compositing/mix-blend-mode/mix-blend-mode-with-transform-and-preserve-3D.html [ Failure ] crbug.com/1044742 [ Mac ] external/wpt/css/compositing/mix-blend-mode/mix-blend-mode-video.html [ Failure ] crbug.com/1044742 [ Win ] external/wpt/css/compositing/mix-blend-mode/mix-blend-mode-video.html [ Failure ] crbug.com/1044742 [ Linux ] external/wpt/css/compositing/mix-blend-mode/mix-blend-mode-parent-with-text.html [ Failure ] @@ -834,12 +806,8 @@ crbug.com/993813 external/wpt/css/css-overflow/webkit-line-clamp-029.html [ Failure ] # Lack of support for font-language-override -crbug.com/481430 [ Linux ] external/wpt/css/css-fonts/font-language-override-01.html [ Failure ] -crbug.com/481430 [ Mac ] external/wpt/css/css-fonts/font-language-override-01.html [ Failure ] -crbug.com/481430 [ Win ] external/wpt/css/css-fonts/font-language-override-01.html [ Failure ] -crbug.com/481430 [ Linux ] external/wpt/css/css-fonts/font-language-override-02.html [ Failure ] -crbug.com/481430 [ Mac ] external/wpt/css/css-fonts/font-language-override-02.html [ Failure ] -crbug.com/481430 [ Win ] external/wpt/css/css-fonts/font-language-override-02.html [ Failure ] +crbug.com/481430 external/wpt/css/css-fonts/font-language-override-01.html [ Failure ] +crbug.com/481430 external/wpt/css/css-fonts/font-language-override-02.html [ Failure ] # Comparing variable font rendering to static font rendering fails on systems that use FreeType for variable fonts crbug.com/1067242 [ Win7 ] external/wpt/css/css-text-decor/text-underline-position-from-font-variable.html [ Failure ] @@ -1509,9 +1477,7 @@ crbug.com/492664 [ Mac ] external/wpt/css/css-writing-modes/bidi-embed-002.html [ Failure ] crbug.com/492664 [ Mac ] external/wpt/css/css-writing-modes/bidi-isolate-002.html [ Failure ] -crbug.com/280342 [ Mac ] http/tests/media/progress-events-generated-correctly.html [ Failure Pass ] -crbug.com/280342 [ Linux ] http/tests/media/progress-events-generated-correctly.html [ Failure Pass ] -crbug.com/280342 [ Win ] http/tests/media/progress-events-generated-correctly.html [ Failure Pass ] +crbug.com/280342 http/tests/media/progress-events-generated-correctly.html [ Failure Pass ] crbug.com/520736 [ Win7 ] media/W3C/video/networkState/networkState_during_progress.html [ Failure Pass ] crbug.com/520736 [ Win10 ] media/W3C/video/networkState/networkState_during_progress.html [ Failure Pass ] @@ -1592,9 +1558,7 @@ crbug.com/498539 http/tests/devtools/tracing/timeline-misc/timeline-bound-function.js [ Pass Failure ] -crbug.com/498539 crbug.com/794869 crbug.com/798548 crbug.com/946716 [ Win ] http/tests/devtools/elements/styles-4/styles-update-from-js.js [ Crash Pass Failure Timeout ] -crbug.com/498539 crbug.com/794869 crbug.com/798548 [ Mac ] http/tests/devtools/elements/styles-4/styles-update-from-js.js [ Crash Pass Failure ] -crbug.com/498539 crbug.com/794869 crbug.com/798548 [ Linux ] http/tests/devtools/elements/styles-4/styles-update-from-js.js [ Crash Pass Failure ] +crbug.com/498539 crbug.com/794869 crbug.com/798548 crbug.com/946716 http/tests/devtools/elements/styles-4/styles-update-from-js.js [ Crash Pass Failure Timeout ] crbug.com/889952 fast/selectors/selection-window-inactive.html [ Pass Failure ] @@ -1624,7 +1588,7 @@ crbug.com/944583 [ Mac ] fast/events/platform-wheelevent-paging-y-in-scrolling-page.html [ Pass Failure Timeout ] # Sheriff: 2020-05-18 crbug.com/1083820 [ Mac ] fast/scrolling/document-level-wheel-event-listener-passive-by-default.html [ Pass Failure ] -crbug.com/1083824 [ Mac ] geolocation-api/watchPosition-page-visibility.html [ Pass Failure Timeout ] +crbug.com/1083824 geolocation-api/watchPosition-page-visibility.html [ Pass Failure Timeout ] # In external/wpt/html/, we prefer checking in failure # expectation files. The following tests with [ Failure ] don't have failure @@ -1908,11 +1872,9 @@ crbug.com/574283 [ Mac ] fast/scroll-behavior/smooth-scroll/ongoing-smooth-scroll-anchors.html [ Skip ] crbug.com/574283 [ Mac ] virtual/threaded-prefer-compositing/fast/scroll-behavior/smooth-scroll/fixed-background-in-iframe.html [ Skip ] crbug.com/574283 virtual/threaded-prefer-compositing/fast/scroll-behavior/smooth-scroll/main-thread-scrolling-reason-correctness.html [ Skip ] -crbug.com/574283 [ Mac ] virtual/threaded-prefer-compositing/fast/scroll-behavior/smooth-scroll/mousewheel-scroll-interrupted.html [ Skip ] +crbug.com/574283 virtual/threaded-prefer-compositing/fast/scroll-behavior/smooth-scroll/mousewheel-scroll-interrupted.html [ Skip ] crbug.com/665577 virtual/threaded-prefer-compositing/fast/scroll-behavior/overflow-scroll-root-frame-animates.html [ Pass Timeout ] -crbug.com/665577 [ Linux ] virtual/threaded-prefer-compositing/fast/scroll-behavior/smooth-scroll/mousewheel-scroll-interrupted.html [ Pass Failure Timeout ] -crbug.com/665577 [ Win ] virtual/threaded-prefer-compositing/fast/scroll-behavior/smooth-scroll/mousewheel-scroll-interrupted.html [ Pass Failure Timeout ] # This test was [Pass Failure] on Mac and linked crbug.com/665577, lately it's also flakey on all 3 platforms: crbug.com/901906 virtual/threaded-prefer-compositing/fast/scroll-behavior/smooth-scroll/track-scroll.html [ Pass Failure ] @@ -1986,12 +1948,8 @@ crbug.com/1029069 external/wpt/css/css-fonts/standard-font-family-19.html [ Failure ] crbug.com/1029069 external/wpt/css/css-fonts/standard-font-family-20.html [ Failure ] -crbug.com/1058772 [ Linux ] external/wpt/css/css-fonts/test-synthetic-italic-2.html [ Failure ] -crbug.com/1058772 [ Mac ] external/wpt/css/css-fonts/test-synthetic-italic-2.html [ Failure ] -crbug.com/1058772 [ Win ] external/wpt/css/css-fonts/test-synthetic-italic-2.html [ Failure ] -crbug.com/1058772 [ Linux ] external/wpt/css/css-fonts/test-synthetic-italic-3.html [ Failure ] -crbug.com/1058772 [ Mac ] external/wpt/css/css-fonts/test-synthetic-italic-3.html [ Failure ] -crbug.com/1058772 [ Win ] external/wpt/css/css-fonts/test-synthetic-italic-3.html [ Failure ] +crbug.com/1058772 external/wpt/css/css-fonts/test-synthetic-italic-2.html [ Failure ] +crbug.com/1058772 external/wpt/css/css-fonts/test-synthetic-italic-3.html [ Failure ] crbug.com/752449 [ Mac10.12 ] external/wpt/css/css-fonts/matching/fixed-stretch-style-over-weight.html [ Failure ] crbug.com/752449 [ Mac10.13 ] external/wpt/css/css-fonts/matching/fixed-stretch-style-over-weight.html [ Failure ] @@ -2051,20 +2009,12 @@ crbug.com/525296 fast/css/font-load-while-styleresolver-missing.html [ Crash Failure Pass ] -crbug.com/538717 [ Win ] http/tests/permissions/chromium/test-request-multiple-window.html [ Failure Pass Timeout ] -crbug.com/538717 [ Mac ] http/tests/permissions/chromium/test-request-multiple-window.html [ Failure Pass Timeout ] -crbug.com/538717 [ Linux ] http/tests/permissions/chromium/test-request-multiple-window.html [ Failure Pass Timeout ] -crbug.com/538717 [ Win ] http/tests/permissions/chromium/test-request-multiple-worker.html [ Failure Pass Timeout ] -crbug.com/538717 [ Mac ] http/tests/permissions/chromium/test-request-multiple-worker.html [ Failure Pass Timeout ] -crbug.com/538717 [ Linux ] http/tests/permissions/chromium/test-request-multiple-worker.html [ Failure Pass Timeout ] -crbug.com/538717 [ Win ] http/tests/permissions/chromium/test-request-multiple-sharedworker.html [ Failure Pass Timeout ] -crbug.com/538717 [ Mac ] http/tests/permissions/chromium/test-request-multiple-sharedworker.html [ Failure Pass Timeout ] -crbug.com/538717 [ Linux ] http/tests/permissions/chromium/test-request-multiple-sharedworker.html [ Failure Pass Timeout ] +crbug.com/538717 http/tests/permissions/chromium/test-request-multiple-window.html [ Failure Pass Timeout ] +crbug.com/538717 http/tests/permissions/chromium/test-request-multiple-worker.html [ Failure Pass Timeout ] +crbug.com/538717 http/tests/permissions/chromium/test-request-multiple-sharedworker.html [ Failure Pass Timeout ] crbug.com/538717 [ Win ] http/tests/permissions/chromium/test-request-worker.html [ Pass Timeout ] -crbug.com/543369 [ Win ] fast/forms/select-popup/popup-menu-appearance-tall.html [ Failure Pass ] -crbug.com/543369 [ Mac ] fast/forms/select-popup/popup-menu-appearance-tall.html [ Failure Pass ] -crbug.com/543369 [ Linux ] fast/forms/select-popup/popup-menu-appearance-tall.html [ Failure Pass ] +crbug.com/543369 fast/forms/select-popup/popup-menu-appearance-tall.html [ Failure Pass ] crbug.com/548765 http/tests/devtools/console-fetch-logging.js [ Failure Pass ] @@ -3351,9 +3301,7 @@ crbug.com/666993 [ Debug ] external/wpt/requestidlecallback/callback-idle-periods.html [ Pass Timeout ] # Doesn't match the new spec -crbug.com/1055943 [ Linux ] external/wpt/css/cssom/CSSStyleSheet-constructable-disallow-import.tentative.html [ Timeout ] -crbug.com/1055943 [ Mac ] external/wpt/css/cssom/CSSStyleSheet-constructable-disallow-import.tentative.html [ Timeout ] -crbug.com/1055943 [ Win ] external/wpt/css/cssom/CSSStyleSheet-constructable-disallow-import.tentative.html [ Timeout ] +crbug.com/1055943 external/wpt/css/cssom/CSSStyleSheet-constructable-disallow-import.tentative.html [ Timeout ] # Crashes with DCHECK enabled, but not on normal Release builds. crbug.com/809935 external/wpt/css/css-fonts/variations/font-style-interpolation.html [ Timeout ] @@ -3371,21 +3319,11 @@ crbug.com/785230 external/wpt/css/css-text-decor/text-underline-offset-scroll-001.html [ Skip ] crbug.com/785230 external/wpt/css/css-text-decor/text-underline-offset-vertical-001.html [ Skip ] crbug.com/785230 external/wpt/css/css-text-decor/text-underline-offset-vertical-002.html [ Skip ] -crbug.com/785230 [ Linux ] external/wpt/css/css-text-decor/text-decoration-skip-ink-003.html [ Failure ] -crbug.com/785230 [ Mac ] external/wpt/css/css-text-decor/text-decoration-skip-ink-003.html [ Failure ] -crbug.com/785230 [ Win ] external/wpt/css/css-text-decor/text-decoration-skip-ink-003.html [ Failure ] -crbug.com/785230 [ Linux ] external/wpt/css/css-text-decor/text-decoration-skip-ink-upright-002.html [ Failure ] -crbug.com/785230 [ Mac ] external/wpt/css/css-text-decor/text-decoration-skip-ink-upright-002.html [ Failure ] -crbug.com/785230 [ Win ] external/wpt/css/css-text-decor/text-decoration-skip-ink-upright-002.html [ Failure ] -crbug.com/785230 [ Linux ] external/wpt/css/css-text-decor/text-decoration-skip-ink-upright-001.html [ Failure ] -crbug.com/785230 [ Mac ] external/wpt/css/css-text-decor/text-decoration-skip-ink-upright-001.html [ Failure ] -crbug.com/785230 [ Win ] external/wpt/css/css-text-decor/text-decoration-skip-ink-upright-001.html [ Failure ] -crbug.com/785230 [ Linux ] external/wpt/css/css-text-decor/text-decoration-skip-ink-vertical-002.html [ Failure ] -crbug.com/785230 [ Mac ] external/wpt/css/css-text-decor/text-decoration-skip-ink-vertical-002.html [ Failure ] -crbug.com/785230 [ Win ] external/wpt/css/css-text-decor/text-decoration-skip-ink-vertical-002.html [ Failure ] -crbug.com/785230 [ Linux ] external/wpt/css/css-text-decor/text-decoration-skip-ink-vertical-001.html [ Failure ] -crbug.com/785230 [ Mac ] external/wpt/css/css-text-decor/text-decoration-skip-ink-vertical-001.html [ Failure ] -crbug.com/785230 [ Win ] external/wpt/css/css-text-decor/text-decoration-skip-ink-vertical-001.html [ Failure ] +crbug.com/785230 external/wpt/css/css-text-decor/text-decoration-skip-ink-003.html [ Failure ] +crbug.com/785230 external/wpt/css/css-text-decor/text-decoration-skip-ink-upright-002.html [ Failure ] +crbug.com/785230 external/wpt/css/css-text-decor/text-decoration-skip-ink-upright-001.html [ Failure ] +crbug.com/785230 external/wpt/css/css-text-decor/text-decoration-skip-ink-vertical-002.html [ Failure ] +crbug.com/785230 external/wpt/css/css-text-decor/text-decoration-skip-ink-vertical-001.html [ Failure ] crbug.com/912362 external/wpt/web-animations/timing-model/timelines/timelines.html [ Failure ] @@ -4787,9 +4725,7 @@ # Sheriff failures 2017-10-02 crbug.com/770971 [ Win7 ] fast/forms/suggested-value.html [ Pass Failure ] -crbug.com/771492 [ Win ] external/wpt/css/css-tables/table-model-fixup-2.html [ Failure ] -crbug.com/771492 [ Linux ] external/wpt/css/css-tables/table-model-fixup-2.html [ Failure ] -crbug.com/771492 [ Mac ] external/wpt/css/css-tables/table-model-fixup-2.html [ Failure ] +crbug.com/771492 external/wpt/css/css-tables/table-model-fixup-2.html [ Failure ] crbug.com/807191 fast/media/mq-color-gamut-picture.html [ Pass Failure Timeout ] @@ -4850,9 +4786,7 @@ # Seen flaky on Linux, suppressing on Windows as well crbug.com/831720 [ Win ] media/controls/doubletap-to-jump-forwards-too-short.html [ Pass Failure ] crbug.com/831720 [ Linux ] media/controls/doubletap-to-jump-forwards-too-short.html [ Pass Failure ] -crbug.com/831720 [ Mac ] media/controls/tap-to-hide-controls.html [ Pass Failure ] -crbug.com/831720 [ Win ] media/controls/tap-to-hide-controls.html [ Pass Failure ] -crbug.com/831720 [ Linux ] media/controls/tap-to-hide-controls.html [ Pass Failure ] +crbug.com/831720 media/controls/tap-to-hide-controls.html [ Pass Failure ] crbug.com/802915 css3/blending/isolation-should-include-non-local-background.html [ Failure ] @@ -5052,9 +4986,7 @@ # Sheriff 2018-03-22 crbug.com/824775 media/controls/video-controls-with-cast-rendering.html [ Pass Failure ] -crbug.com/824848 [ Linux ] external/wpt/html/semantics/links/following-hyperlinks/activation-behavior.window.html [ Pass Failure ] -crbug.com/824848 [ Mac ] external/wpt/html/semantics/links/following-hyperlinks/activation-behavior.window.html [ Pass Failure ] -crbug.com/824848 [ Win ] external/wpt/html/semantics/links/following-hyperlinks/activation-behavior.window.html [ Pass Failure ] +crbug.com/824848 external/wpt/html/semantics/links/following-hyperlinks/activation-behavior.window.html [ Pass Failure ] # Sheriff 2018-03-26 crbug.com/825733 [ Win ] media/color-profile-video-seek-filter.html [ Pass Timeout Failure ] @@ -5074,9 +5006,7 @@ # Sheriff 2018-04-13 crbug.com/833655 [ Linux ] media/controls/closed-captions-dynamic-update.html [ Skip ] -crbug.com/833658 [ Linux ] media/video-controls-focus-movement-on-hide.html [ Pass Failure ] -crbug.com/833658 [ Win ] media/video-controls-focus-movement-on-hide.html [ Pass Failure ] -crbug.com/833658 [ Mac ] media/video-controls-focus-movement-on-hide.html [ Pass Failure ] +crbug.com/833658 media/video-controls-focus-movement-on-hide.html [ Pass Failure ] # Sheriff 2018-04-23 crbug.com/833331 [ Win10 ] inspector-protocol/page/pageNavigateToFragment.js [ Pass Failure ] @@ -5173,9 +5103,7 @@ crbug.com/874703 [ Mac ] http/tests/devtools/extensions/extensions-panel.js [ Timeout Pass ] # Sheriff 2018-08-20 -crbug.com/862589 [ Linux ] virtual/threaded/fast/idle-callback/long_idle_periods.html [ Timeout Pass ] -crbug.com/862589 [ Mac ] virtual/threaded/fast/idle-callback/long_idle_periods.html [ Timeout Pass ] -crbug.com/862589 [ Win ] virtual/threaded/fast/idle-callback/long_idle_periods.html [ Timeout Pass ] +crbug.com/862589 virtual/threaded/fast/idle-callback/long_idle_periods.html [ Timeout Pass ] # fast/events/middleClickAutoscroll-* are failing on Mac crbug.com/874162 [ Mac ] fast/events/autoscroll-iframe-no-scrolling.html [ Skip ] @@ -5203,7 +5131,7 @@ crbug.com/886566 http/tests/csspaint/invalidation-content-image.html [ Pass Timeout ] # Sheriff 2018-09-25 -crbug.com/888609 [ Mac ] http/tests/devtools/coverage/gutter-css.js [ Pass Timeout ] +crbug.com/888609 http/tests/devtools/coverage/gutter-css.js [ Pass Timeout ] # Sheriff 2018-10-09 crbug.com/893869 [ Mac ] css3/masking/mask-repeat-space-padding.html [ Failure Pass ] @@ -5326,6 +5254,9 @@ # Recently became flaky on multiple platforms (Linux and Windows primarily) crbug.com/927769 fast/webgl/OffscreenCanvas-webgl-preserveDrawingBuffer.html [ Skip ] +# Flaky test. +crbug.com/1084378 external/wpt/webvtt/rendering/cues-with-video/processing-model/dom_override_remove_cue_while_paused.html [ Pass Failure ] + # Flay probably due to outstanding work for FeaturePolicyForSandbox. # Sheriff 2019-02-12 @@ -5515,19 +5446,14 @@ crbug.com/937991 [ Win7 Release ] http/tests/devtools/cache-storage/cache-data.js [ Pass Timeout ] # These video tests seem to take a screenshot too early. -crbug.com/963141 [ Mac ] media/video-object-fit.html [ Pass Failure ] -crbug.com/963141 [ Win ] media/video-object-fit.html [ Pass Failure ] +crbug.com/963141 media/video-object-fit.html [ Pass Failure ] crbug.com/963141 media/video-object-fit-change.html [ Pass Failure ] -crbug.com/963141 [ Mac ] media/video-aspect-ratio.html [ Pass Failure ] -crbug.com/963141 [ Win ] media/video-aspect-ratio.html [ Pass Failure ] +crbug.com/963141 media/video-aspect-ratio.html [ Pass Failure ] # Updated by sheriff 2020-06-01: this one seem flaky on all platforms now. # See also: crbug.com/1083564 crbug.com/963141 media/controls/video-overlay-cast-light-rendering.html [ Pass Failure ] -# Sheriff 2019-05-16 -crbug.com/963141 [ Linux ] media/video-object-fit.html [ Pass Failure ] - # Sheriff 2020-05-18 crbug.com/988248 media/track/track-cue-rendering-position-auto.html [ Pass Failure ] @@ -5927,10 +5853,6 @@ # Failing origin trial for css properties test crbug.com/1041993 http/tests/origin_trials/sample-api-script-added-after-css-declaration.html [ Failure ] -# Sheriff 2020-01-16 -crbug.com/1042689 [ Linux ] http/tests/devtools/coverage/gutter-css.js [ Pass Timeout ] -crbug.com/1042689 [ Win ] http/tests/devtools/coverage/gutter-css.js [ Pass Timeout ] - # Sheriff 2020-01-20 crbug.com/1043357 http/tests/credentialmanager/credentialscontainer-get-with-virtual-authenticator.html [ Pass Timeout Failure ] crbug.com/1043774 [ Linux ] virtual/web-components-v0-disabled/external/wpt/html/dom/reflection-grouping.html [ Pass Failure ] @@ -6184,9 +6106,7 @@ crbug.com/848799 [ Win10 ] http/tests/devtools/coverage/multiple-instances-merge.js [ Pass Timeout ] # Sheriff 2020-02-19 -crbug.com/1053903 [ Mac ] external/wpt/webxr/events_referenceSpace_reset_inline.https.html [ Pass Failure Timeout ] -crbug.com/1053903 [ Linux ] external/wpt/webxr/events_referenceSpace_reset_inline.https.html [ Pass Failure Timeout ] -crbug.com/1053903 [ Win ] external/wpt/webxr/events_referenceSpace_reset_inline.https.html [ Pass Failure Timeout ] +crbug.com/1053903 external/wpt/webxr/events_referenceSpace_reset_inline.https.html [ Pass Failure Timeout ] # Sheriff 2020-02-21 crbug.com/1054977 media/video-controls-rendering.html [ Pass Failure ] @@ -6334,11 +6254,9 @@ crbug.com/1071189 [ Debug ] editing/selection/programmatic-selection-on-mac-is-directionless.html [ Timeout Pass ] # Sheriff 2020-05-27 -crbug.com/1083585 [ Win ] geolocation-api/watchPosition-page-visibility.html [ Pass Failure ] crbug.com/1046784 http/tests/devtools/elements/styles/stylesheet-tracking.js [ Pass Failure Timeout ] # Sheriff 2020-05-28 -crbug.com/1083585 [ Linux ] geolocation-api/watchPosition-page-visibility.html [ Pass Failure ] crbug.com/1087077 external/wpt/html/semantics/forms/form-submission-0/form-double-submit.html [ Failure ] crbug.com/1087077 external/wpt/html/semantics/forms/form-submission-0/form-double-submit-3.html [ Failure ] crbug.com/1087077 external/wpt/html/semantics/forms/form-submission-0/form-double-submit-to-different-origin-frame.html [ Failure ] @@ -6366,9 +6284,6 @@ # Disabled for landing DevTools change crbug.com/1011811 http/tests/devtools/persistence/automapping-sourcemap.js [ Pass Failure ] -# Sheriff 2020-06-03 -crbug.com/1083293 [ Linux ] media/video-aspect-ratio.html [ Pass Failure ] - # Sheriff 2020-06-04 crbug.com/1041973 virtual/web-components-v0-disabled/external/wpt/html/semantics/forms/constraints/form-validation-reportValidity.html [ Pass Failure Timeout ] @@ -6531,6 +6446,9 @@ # Flaky test crbug.com/1112778 external/wpt/html/semantics/scripting-1/the-script-element/module/dynamic-import/alpha/base-url-worker.sub.html [ Pass Failure ] +# Flaky timeout +crbug.com/1092048 external/wpt/FileAPI/blob/Blob-stream.any.html [ Pass Timeout ] + # Sheriff 2020-08-04: New wpt tests are failing crbug.com/1112771 external/wpt/webhid/idlharness.https.window.html [ Failure ] @@ -6574,3 +6492,6 @@ crbug.com/1120330 virtual/threaded/external/wpt/feature-policy/experimental-features/vertical-scroll-disabled-scrollbar-tentative.html [ Pass Failure ] crbug.com/1119676 external/wpt/html/cross-origin-embedder-policy/reporting-to-endpoint.https.html [ Failure ] + +# Sheriff 2020-08-26 +crbug.com/1122106 external/wpt/webrtc/protocol/crypto-suite.https.html [ Pass Timeout ]
diff --git a/third_party/blink/web_tests/WebDriverExpectations b/third_party/blink/web_tests/WebDriverExpectations index a04fb9ec93..3e0fb69a 100644 --- a/third_party/blink/web_tests/WebDriverExpectations +++ b/third_party/blink/web_tests/WebDriverExpectations
@@ -77,6 +77,7 @@ crbug.com/1020018 [ Linux ] external/wpt/webdriver/tests/get_active_element/get.py>>test_sucess_input_non_interactable [ Failure ] # ====== New tests from wpt-importer added here ====== +crbug.com/626703 [ Linux ] external/wpt/webdriver/tests/get_title/iframe.py>>test_origin[cross_origin] [ Failure ] crbug.com/626703 [ Linux ] external/wpt/webdriver/tests/get_current_url/iframe.py>>test_origin[cross_origin] [ Failure ] crbug.com/626703 [ Linux ] external/wpt/webdriver/tests/perform_actions/pointer_tripleclick.py>>test_tripleclick_at_coordinates [ Failure ] crbug.com/626703 [ Linux ] external/wpt/webdriver/tests/minimize_window/minimize.py>>test_fully_exit_fullscreen [ Failure ]
diff --git a/third_party/blink/web_tests/android/ChromiumWPTExpectations b/third_party/blink/web_tests/android/ChromiumWPTExpectations index 026641c..4036d3b 100644 --- a/third_party/blink/web_tests/android/ChromiumWPTExpectations +++ b/third_party/blink/web_tests/android/ChromiumWPTExpectations
@@ -2181,7 +2181,6 @@ crbug.com/1050754 external/wpt/html/canvas/element/manual/wide-gamut-canvas/canvas-drawImage-offscreenCanvas.html [ Failure ] crbug.com/1050754 external/wpt/html/canvas/element/manual/wide-gamut-canvas/canvas-getImageData-e_srgb.html [ Failure ] crbug.com/1050754 external/wpt/html/canvas/element/manual/wide-gamut-canvas/imageData-colorManagedBehavior.html [ Failure ] -crbug.com/1050754 external/wpt/html/canvas/element/manual/wide-gamut-canvas/imageData-colorSpace.html [ Failure ] crbug.com/1050754 external/wpt/html/canvas/element/manual/wide-gamut-canvas/transferFromImageBitmap.html [ Failure ] crbug.com/1050754 external/wpt/html/canvas/element/path-objects/2d.path.stroke.prune.arc.html [ Failure ] crbug.com/1050754 external/wpt/html/canvas/element/path-objects/2d.path.stroke.prune.closed.html [ Failure ]
diff --git a/third_party/blink/web_tests/android/WeblayerWPTExpectations b/third_party/blink/web_tests/android/WeblayerWPTExpectations index 23bdb200..4960f55 100644 --- a/third_party/blink/web_tests/android/WeblayerWPTExpectations +++ b/third_party/blink/web_tests/android/WeblayerWPTExpectations
@@ -2080,7 +2080,6 @@ crbug.com/1050754 external/wpt/html/canvas/element/manual/wide-gamut-canvas/canvas-drawImage-offscreenCanvas.html [ Failure ] crbug.com/1050754 external/wpt/html/canvas/element/manual/wide-gamut-canvas/canvas-getImageData-e_srgb.html [ Failure ] crbug.com/1050754 external/wpt/html/canvas/element/manual/wide-gamut-canvas/imageData-colorManagedBehavior.html [ Failure ] -crbug.com/1050754 external/wpt/html/canvas/element/manual/wide-gamut-canvas/imageData-colorSpace.html [ Failure ] crbug.com/1050754 external/wpt/html/canvas/element/manual/wide-gamut-canvas/transferFromImageBitmap.html [ Failure ] crbug.com/1050754 external/wpt/html/canvas/element/path-objects/2d.path.stroke.prune.arc.html [ Failure ] crbug.com/1050754 external/wpt/html/canvas/element/path-objects/2d.path.stroke.prune.closed.html [ Failure ]
diff --git a/third_party/blink/web_tests/android/WebviewWPTExpectations b/third_party/blink/web_tests/android/WebviewWPTExpectations index bea0f550..a36c3ba 100644 --- a/third_party/blink/web_tests/android/WebviewWPTExpectations +++ b/third_party/blink/web_tests/android/WebviewWPTExpectations
@@ -2228,7 +2228,6 @@ crbug.com/1050754 external/wpt/html/canvas/element/manual/wide-gamut-canvas/canvas-drawImage-offscreenCanvas.html [ Failure ] crbug.com/1050754 external/wpt/html/canvas/element/manual/wide-gamut-canvas/canvas-getImageData-e_srgb.html [ Failure ] crbug.com/1050754 external/wpt/html/canvas/element/manual/wide-gamut-canvas/imageData-colorManagedBehavior.html [ Failure ] -crbug.com/1050754 external/wpt/html/canvas/element/manual/wide-gamut-canvas/imageData-colorSpace.html [ Failure ] crbug.com/1050754 external/wpt/html/canvas/element/manual/wide-gamut-canvas/transferFromImageBitmap.html [ Failure ] crbug.com/1050754 external/wpt/html/canvas/element/path-objects/2d.path.stroke.prune.arc.html [ Failure ] crbug.com/1050754 external/wpt/html/canvas/element/path-objects/2d.path.stroke.prune.closed.html [ Failure ]
diff --git a/third_party/blink/web_tests/external/WPT_BASE_MANIFEST_8.json b/third_party/blink/web_tests/external/WPT_BASE_MANIFEST_8.json index dd604fc8..7b5ace7 100644 --- a/third_party/blink/web_tests/external/WPT_BASE_MANIFEST_8.json +++ b/third_party/blink/web_tests/external/WPT_BASE_MANIFEST_8.json
@@ -593,6 +593,13 @@ null, {} ] + ], + "second-legend-becomes-rendered-legend-crash.html": [ + "6e36b3bb5aed7550b12bcbdf7a94d9f8fd372687", + [ + null, + {} + ] ] } }, @@ -2568,6 +2575,15 @@ ] ] }, + "css-cascade": { + "important-transition-manual.html": [ + "b9abed469f3ff123f4639095e78c65ce0ec18ba0", + [ + null, + {} + ] + ] + }, "css-flexbox": { "css-flexbox-height-animation-stretch.html": [ "7aa16aaeecea007ae40c9ddbd9d0e53e5cd9eaeb", @@ -43742,7 +43758,7 @@ ] ], "css3-border-image-repeat-repeat.html": [ - "001e52a003cd3669fd574ebfa629650f2d8ac229", + "1b8e7588d261e9478cbe35a68039b0da06c900e3", [ null, [ @@ -43755,7 +43771,7 @@ ] ], "css3-border-image-repeat-stretch.html": [ - "d9e1fc03e6f131c5a181422a83de263b5f9a357a", + "c83cf383725572c0ebc6c19146416ad59ab2847f", [ null, [ @@ -168263,11 +168279,11 @@ [] ], "css3-border-image-repeat-repeat-ref.html": [ - "64490d2e5ce99601e9ca38eccf2944509519d496", + "58d48f007502c1d149dccb8efb94f47f067d8208", [] ], "css3-border-image-repeat-stretch-ref.html": [ - "cdbffd153b2d71e5fa4f4a095ff6f0f42ef0ca8c", + "ed83c3dbf279aadc94da3df5d767fe453f8ce39c", [] ], "css3-border-image-source-ref.html": [ @@ -168422,6 +168438,10 @@ "5b2f7e156ce34b51379b7a72e65d912ed0066171", [] ], + "blue-diamond-27x27.png": [ + "1e66726482551231aba9e44557752fd483afa0cd", + [] + ], "blue-diamond.png": [ "3617045efbc0ab9702af523f4999cf45247db38b", [] @@ -168506,6 +168526,10 @@ "9945ef47114c2841a746c99a2fb1e93e050aac8b", [] ], + "new-red-diamond-27x27.png": [ + "859cbc33d216aa454ede2702b1c6ac7f39e6ca02", + [] + ], "orange_color.png": [ "329491802f2fccfa565491fc316e0f06e0a849e3", [] @@ -298917,6 +298941,13 @@ {} ] ], + "recursive-exec-command-calls.tentative.html": [ + "60a3b03099f358cf88e8e10c67347d9322cc9124", + [ + null, + {} + ] + ], "restoration.html": [ "4c53008b41027c4e11734dea068a57ea0e7283db", [ @@ -318002,6 +318033,13 @@ {} ] ], + "failure-check-sequence.https.html": [ + "5d7aa2b9cbbf8a0a2aebe3f1af3e10dd38d5f1a7", + [ + null, + {} + ] + ], "javascript-url-abort": { "javascript-url-abort-return-value-string.tentative.html": [ "f626a79ae66ab4502e611f4c713c2240d1a12722", @@ -426632,7 +426670,14 @@ }, "get_title": { "get.py": [ - "f0e58acbe9988e5e818b2f25ca958b69d3ca9887", + "7bb83c3f9cdb94be5189e9230e1f22a3e12b63b6", + [ + null, + {} + ] + ], + "iframe.py": [ + "5991bf3590691f69cacba4e45fd23a3595d1fb99", [ null, {}
diff --git a/third_party/blink/web_tests/external/wpt/css/css-backgrounds/css3-border-image-repeat-repeat.html b/third_party/blink/web_tests/external/wpt/css/css-backgrounds/css3-border-image-repeat-repeat.html index 001e52a..1b8e7588 100644 --- a/third_party/blink/web_tests/external/wpt/css/css-backgrounds/css3-border-image-repeat-repeat.html +++ b/third_party/blink/web_tests/external/wpt/css/css-backgrounds/css3-border-image-repeat-repeat.html
@@ -1,27 +1,26 @@ <!DOCTYPE html> -<html lang="en"> - <head> - <meta charset="utf-8" /> - <title>CSS Border Test:border image repeat property with value repeat</title> - <link rel="author" title="yanshasha" href="mailto:yanshasha133@gmail.com" /> - <link rel="reviewer" title="Dayang Shen" href="mailto:shendayang@baidu.com" /> <!-- 2013-08-26 --> - <link rel="help" href="http://www.w3.org/TR/css3-background/#border-image-repeat" /> - <link rel="match" href="reference/css3-border-image-repeat-repeat-ref.html" /> - <style type="text/css"> + + <meta charset="UTF-8"> + <title>CSS Border Test: border image repeat property with value repeat</title> + <link rel="author" title="yanshasha" href="mailto:yanshasha133@gmail.com"> + <link rel="reviewer" title="Dayang Shen" href="mailto:shendayang@baidu.com"> <!-- 2013-08-26 --> + <!-- + corrected and improved to be more precise, rigorous and much more challenging + by Gérard Talbot 2020-08-24 + --> + <link rel="help" href="http://www.w3.org/TR/css3-background/#the-border-image-repeat"> + <link rel="match" href="reference/css3-border-image-repeat-repeat-ref.html"> + <style> div { - width: 100px; - height: 100px; - border: solid 26px blue; - border-image-source: url(support/border.png); - border-image-slice: 26; + border: red solid 18px; border-image-repeat: repeat; + border-image-slice: 27; + border-image-source: url("support/blue-and-red-diamonds-81x81.png"); + height: 108px; /* 6 times 18 == 108 */ + width: 144px; /* 8 times 18 == 144 */ } </style> - </head> - <body> - <p> - The test passes if the blue diamond is repeating between the red diamonds. - </p> + + <p>Test passes if a blue diamond is repeated 8 times horizontally between red diamonds and repeated 6 times vertically between red diamonds. Each of the 4 edges between red diamonds must start and end with a half slice of a blue diamond. + <div></div> - </body> -</html>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-backgrounds/css3-border-image-repeat-stretch.html b/third_party/blink/web_tests/external/wpt/css/css-backgrounds/css3-border-image-repeat-stretch.html index d9e1fc0..c83cf383 100644 --- a/third_party/blink/web_tests/external/wpt/css/css-backgrounds/css3-border-image-repeat-stretch.html +++ b/third_party/blink/web_tests/external/wpt/css/css-backgrounds/css3-border-image-repeat-stretch.html
@@ -1,27 +1,26 @@ <!DOCTYPE html> -<html lang="en"> - <head> - <meta charset="utf-8" /> - <title>CSS Border Test:border image repeat property with value stretch</title> - <link rel="author" title="yanshasha" href="mailto:yanshasha133@gmail.com" /> - <link rel="reviewer" title="Dayang Shen" href="mailto:shendayang@baidu.com" /> <!-- 2013-08-26 --> - <link rel="help" href="http://www.w3.org/TR/css3-background/#border-image-repeat" /> - <link rel="match" href="reference/css3-border-image-repeat-stretch-ref.html" /> - <style type="text/css"> + + <meta charset="UTF-8"> + <title>CSS Border Test: border image repeat property with value stretch</title> + <link rel="author" title="yanshasha" href="mailto:yanshasha133@gmail.com"> + <link rel="reviewer" title="Dayang Shen" href="mailto:shendayang@baidu.com"> <!-- 2013-08-26 --> + <!-- + corrected and improved to be more precise + by Gérard Talbot 2020-05-27 + --> + <link rel="help" href="http://www.w3.org/TR/css3-background/#the-border-image-repeat"> + <link rel="match" href="reference/css3-border-image-repeat-stretch-ref.html"> + <style> div { - width: 100px; - height: 100px; - border: solid 26px blue; - border-image-source: url(support/border.png); - border-image-slice: 26; + border: red solid 27px; border-image-repeat: stretch; + border-image-source: url("support/blue-and-red-diamonds-81x81.png"); + border-image-slice: 27; + height: 100px; + width: 100px; } </style> - </head> - <body> - <p> - The test passes if the blue diamond is stretching between the red diamonds. - </p> + + <p>Test passes if a blue diamond is stretched between red diamonds. + <div></div> - </body> -</html>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-backgrounds/reference/css3-border-image-repeat-repeat-ref.html b/third_party/blink/web_tests/external/wpt/css/css-backgrounds/reference/css3-border-image-repeat-repeat-ref.html index 64490d2..58d48f00 100644 --- a/third_party/blink/web_tests/external/wpt/css/css-backgrounds/reference/css3-border-image-repeat-repeat-ref.html +++ b/third_party/blink/web_tests/external/wpt/css/css-backgrounds/reference/css3-border-image-repeat-repeat-ref.html
@@ -1,86 +1,53 @@ <!DOCTYPE html> -<html lang="en"> - <head> - <meta charset="utf-8" /> - <title>CSS Border Test:border image repeat property with value repeat</title> - <link rel="author" title="yanshasha" href="mailto:yanshasha133@gmail.com" /> - <link rel="reviewer" title="Dayang Shen" href="mailto:shendayang@baidu.com"> <!-- 2013-09-03 --> - <style type="text/css"> - .box { - width: 152px; - height: 152px; - position: relative; - } - .red { - width: 26px; - height: 26px; - position: absolute; - } - #red1 { - top: 0; - left: 0; - } - #red2 { - top: 0; - right: 0; - } - #red3 { - bottom: 0; - right: 0; - } - #red4 { - bottom: 0; - left: 0; - } - .blue { - position: absolute; - background-image: url(../support/blue-diamond.png); - background-repeat: repeat; - background-position: center; - } - #blue1 { - top: 0; - left: 26px; - width: 100px; - height: 26px; - } - #blue2 { - top: 26px; - right: 0; - width: 26px; - height: 100px; - } - #blue3 { - bottom: 0; - right: 26px; - width: 100px; - height: 26px; - } - #blue4 { - bottom: 26px; - left: 0; - width: 26px; - height: 100px; - } - </style> - </head> - <body> - <p> - The test passes if the blue diamond is repeating between the red diamonds. - </p> - <div class="box"> - <img src="../support/red-diamond.png" alt="left top red diamond" class="red" id="red1"/> - <img src="../support/red-diamond.png" alt="right top red diamond" class="red" id="red2" /> - <img src="../support/red-diamond.png" alt="right bottom red diamond" class="red" id="red3" /> - <img src="../support/red-diamond.png" alt="left bottom red diamond" class="red" id="red4" /> - <img src="../support/blue-diamond.png" alt="top blue diamond" class="blue" id="blue1"/> - <img src="../support/blue-diamond.png" alt="right blue diamond" class="blue" id="blue2" /> - <img src="../support/blue-diamond.png" alt="bottom blue diamond" class="blue" id="blue3" /> - <img src="../support/blue-diamond.png" alt="left blue diamond" class="blue" id="blue4" /> - <div class="blue" id="blue1"></div> - <div class="blue" id="blue2"></div> - <div class="blue" id="blue3"></div> - <div class="blue" id="blue4"></div> - </div> - </body> -</html> + + <meta charset="UTF-8"> + + <title>CSS Reference Test</title> + + <link rel="author" title="Gérard Talbot" href="http://www.gtalbot.org/BrowserBugsSection/css21testsuite/"> + + <style> + table + { + border-spacing: 0px; + table-layout: fixed; + } + + td + { + height: 18px; + padding: 0px; + } + + td.corner + { + background-image: url("../support/new-red-diamond-27x27.png"); + background-size: cover; + } + + td#first-row-second-cell , td#third-row-second-cell , td.second-row + { + background-image: url("../support/blue-diamond-27x27.png"); + background-size: contain; + background-position: center; + } + + td.second-row + { + height: 108px; /* 6 times 18 == 108 */ + } + </style> + + <p>Test passes if a blue diamond is repeated 8 times horizontally between red diamonds and repeated 6 times vertically between red diamonds. Each of the 4 edges between red diamonds must start and end with a half slice of a blue diamond. + + <table> + + <col width="18"><col width="144"><col width="18"> + + <tr><td class="corner"><td id="first-row-second-cell"><td class="corner"> + + <tr><td class="second-row"><td><td class="second-row"> + + <tr><td class="corner"><td id="third-row-second-cell"><td class="corner"> + + </table>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-backgrounds/reference/css3-border-image-repeat-stretch-ref.html b/third_party/blink/web_tests/external/wpt/css/css-backgrounds/reference/css3-border-image-repeat-stretch-ref.html index cdbffd1..ed83c3d 100644 --- a/third_party/blink/web_tests/external/wpt/css/css-backgrounds/reference/css3-border-image-repeat-stretch-ref.html +++ b/third_party/blink/web_tests/external/wpt/css/css-backgrounds/reference/css3-border-image-repeat-stretch-ref.html
@@ -1,79 +1,46 @@ <!DOCTYPE html> -<html lang="en"> - <head> - <meta charset="utf-8" /> - <title>CSS Border Test:border image repeat property with value stretch</title> - <link rel="author" title="yanshasha" href="mailto:yanshasha133@gmail.com" /> - <link rel="reviewer" title="Dayang Shen" href="mailto:shendayang@baidu.com"> <!-- 2013-09-03 --> - <style type="text/css"> - div { - width: 152px; - height: 152px; - position: relative; - } - .red { - width: 26px; - height: 26px; - position: absolute; - } - #red1 { - top: 0; - left: 0; - } - #red2 { - top: 0; - right: 0; - } - #red3 { - bottom: 0; - right: 0; - } - #red4 { - bottom: 0; - left: 0; - } - .blue { - position: absolute; - } - #blue1 { - top: 0; - left: 26px; - width: 100px; - height: 26px; - } - #blue2 { - top: 26px; - right: 0; - width: 26px; - height: 100px; - } - #blue3 { - bottom: 0; - right: 26px; - width: 100px; - height: 26px; - } - #blue4 { - bottom: 26px; - left: 0; - width: 26px; - height: 100px; - } - </style> - </head> - <body> - <p> - The test passes if the blue diamond is stretching between the red diamonds. - </p> - <div> - <img src="../support/red-diamond.png" alt="left top red diamond" class="red" id="red1"/> - <img src="../support/red-diamond.png" alt="right top red diamond" class="red" id="red2" /> - <img src="../support/red-diamond.png" alt="right bottom red diamond" class="red" id="red3" /> - <img src="../support/red-diamond.png" alt="left bottom red diamond" class="red" id="red4" /> - <img src="../support/blue-diamond.png" alt="top blue diamond" class="blue" id="blue1"/> - <img src="../support/blue-diamond.png" alt="right blue diamond" class="blue" id="blue2" /> - <img src="../support/blue-diamond.png" alt="bottom blue diamond" class="blue" id="blue3" /> - <img src="../support/blue-diamond.png" alt="left blue diamond" class="blue" id="blue4" /> - </div> - </body> -</html> + + <meta charset="UTF-8"> + + <title>CSS Reference Test</title> + + <link rel="author" title="Gérard Talbot" href="http://www.gtalbot.org/BrowserBugsSection/css21testsuite/"> + + <style> + table + { + border-spacing: 0px; + table-layout: fixed; + width: 154px; + } + + td + { + height: 27px; + padding: 0px; + } + + td.corner + { + background-image: url("../support/blue-and-red-diamonds-81x81.png"); + } + + img + { + vertical-align: top; + } + </style> + + <p>Test passes if a blue diamond is stretched between red diamonds. + + <table> + + <col width="27"><col width="100"><col width="27"> + + <tr><td class="corner"><td><img src="../support/blue-diamond-27x27.png" width="100" height="27" alt="Image download support must be enabled"><td class="corner"> + + <tr><td><img src="../support/blue-diamond-27x27.png" width="27" height="100" alt="Image download support must be enabled"><td><td><img src="../support/blue-diamond-27x27.png" width="27" height="100" alt="Image download support must be enabled"> + + <tr><td class="corner"><td><img src="../support/blue-diamond-27x27.png" width="100" height="27" alt="Image download support must be enabled"><td class="corner"> + + </table>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-backgrounds/support/blue-diamond-27x27.png b/third_party/blink/web_tests/external/wpt/css/css-backgrounds/support/blue-diamond-27x27.png new file mode 100644 index 0000000..1e66726 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-backgrounds/support/blue-diamond-27x27.png Binary files differ
diff --git a/third_party/blink/web_tests/external/wpt/css/css-backgrounds/support/new-red-diamond-27x27.png b/third_party/blink/web_tests/external/wpt/css/css-backgrounds/support/new-red-diamond-27x27.png new file mode 100644 index 0000000..859cbc33 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-backgrounds/support/new-red-diamond-27x27.png Binary files differ
diff --git a/third_party/blink/web_tests/external/wpt/css/css-cascade/important-transition-manual.html b/third_party/blink/web_tests/external/wpt/css/css-cascade/important-transition-manual.html new file mode 100644 index 0000000..b9abed4 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-cascade/important-transition-manual.html
@@ -0,0 +1,25 @@ +<!DOCTYPE html> +<html> +<head> + <meta charset="utf-8"> + <title>CSS Cascade: Author !important vs. Transitions</title> + <link rel="author" title="Elika J. Etemad" href="http://fantasai.inkedblade.net/contact"> + <link rel="help" href="https://www.w3.org/TR/css-cascade-3/#cascade-sort"> + <style> + .container { padding: 1em 0; border-style: dotted none; border-width: 1px; } + .container > div { width: 5em; text-align: center; border: solid; transition: all 3s; } + + .container > .ref { border-color: blue ; color: navy ; background: aqua ; margin: 0.25em ; } + :hover > .ref { border-color: aqua ; color: orange ; background: teal ; margin-left: 40% ; } + + :not(:hover) > .test { border-color: blue !important; color: navy !important; background: aqua ; } + div > .test { margin: 0.25em !important; } + :hover > .test { border-color: aqua !important; color: orange ; background: teal !important; margin-left: 40% !important; } + </style> + +<p>Test passes if the two boxes transition identically when hovering with a mouse below. + +<div class=container> + <div class=test>Box 1</div> + <div class=ref>Box 2</div> +</div>
diff --git a/third_party/blink/web_tests/external/wpt/editing/other/recursive-exec-command-calls.tentative.html b/third_party/blink/web_tests/external/wpt/editing/other/recursive-exec-command-calls.tentative.html new file mode 100644 index 0000000..60a3b030 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/editing/other/recursive-exec-command-calls.tentative.html
@@ -0,0 +1,37 @@ +<!doctype html> +<meta charset=utf-8> +<title>Test recursive `Document.execCommand()` calls</title> +<script src=/resources/testharness.js></script> +<script src=/resources/testharnessreport.js></script> +<div contenteditable><br></div> +<script> +"use strict"; + +setup({explicit_done: true}); + +/** + * This test checks whether the browser allows or disallows recursive + * Document.execCommand() calls. + * https://github.com/w3c/editing/issues/200#issuecomment-578097441 + */ +function runTests() { + test(function () { + let editor = document.querySelector("div[contenteditable]"); + editor.focus(); + let counter = 0; + editor.addEventListener("input", event => { + if (++counter < 10) { + let result = document.execCommand("insertText", false, `, ${counter}`); + assert_false(result, + '`execCommand("insertText") in the "input" event listener should return `false`'); + } + }); + document.execCommand("insertText", false, "0"); + assert_equals(editor.textContent, "0", + '`execCommand("insertText") in the "input" event listener should do nothing'); + }, "Recursive `Document.execCommand()` shouldn't be supported"); + done(); +} + +window.addEventListener("load", runTests, {once: true}); +</script>
diff --git a/third_party/blink/web_tests/external/wpt/html/browsers/browsing-the-web/navigating-across-documents/failure-check-sequence.https.html b/third_party/blink/web_tests/external/wpt/html/browsers/browsing-the-web/navigating-across-documents/failure-check-sequence.https.html new file mode 100644 index 0000000..5d7aa2b9 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/html/browsers/browsing-the-web/navigating-across-documents/failure-check-sequence.https.html
@@ -0,0 +1,76 @@ +<!DOCTYPE html> +<html> +<head> +<meta charset="utf-8"> +<title>Sequence of the checks performed against a navigation response</title> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +</head> +<body> +<script> +'use strict'; +const collect = (win) => { + const report = new Promise((resolve) => { + if (!win.ReportingObserver) { + return; + } + + const observer = new win.ReportingObserver(resolve); + observer.observe(); + }).then((reports) => reports[0].type); + // Although CSP also makes use of ReportingObserver, monitoring this event + // allows the test to provide value to implementations that have not yet + // integrated CSP and Reporting (as of the time of this writing, Firefox and + // Safari). + const cspViolation = new Promise((resolve) => { + win.document.addEventListener('securitypolicyviolation', () => resolve('csp-violation')); + }); + const halfASecond = new Promise((resolve) => setTimeout(() => resolve(null), 500)); + + return Promise.race([report, cspViolation, halfASecond]); +}; + +const createWindow = (t, url) => { + const win = open(url); + t.add_cleanup(() => win.close()); + return new Promise((resolve) => win.onload = () => resolve(win)); +}; + +promise_test(async (t) => { + const win = await createWindow(t, '/common/blank.html?pipe=header(content-security-policy, frame-src none)'); + const iframe = win.document.createElement('iframe'); + iframe.src = '/common/blank.html?pipe=header(x-frame-options, deny)'; + win.document.body.appendChild(iframe); + + assert_equals(await collect(win), 'csp-violation'); +}, 'CSP check precedes X-Frame-Options check'); + +promise_test(async (t) => { + const win = await createWindow(t, '/common/blank.html?pipe=header(content-security-policy, frame-src none)|header(cross-origin-embedder-policy, require-corp)'); + const iframe = win.document.createElement('iframe'); + iframe.src = '/common/blank.html'; + win.document.body.appendChild(iframe); + + assert_equals(await collect(win), 'csp-violation'); +}, 'CSP check precedes COEP check - CSP header first'); + +promise_test(async (t) => { + const win = await createWindow(t, '/common/blank.html?pipe=header(cross-origin-embedder-policy, require-corp)|header(content-security-policy, frame-src none)'); + const iframe = win.document.createElement('iframe'); + iframe.src = '/common/blank.html'; + win.document.body.appendChild(iframe); + + assert_equals(await collect(win), 'csp-violation'); +}, 'CSP check precedes COEP check - COEP header first'); + +promise_test(async (t) => { + const win = await createWindow(t, '/common/blank.html?pipe=header(cross-origin-embedder-policy, require-corp)'); + const iframe = win.document.createElement('iframe'); + iframe.src = '/common/blank.html?pipe=header(x-frame-options, deny)'; + win.document.body.appendChild(iframe); + + assert_equals(await collect(win), 'coep'); +}, 'COEP check precedes X-Frame-Options check'); +</script> +</body> +</html>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/manual/wide-gamut-canvas/canvas-createPutGetImageData-colorManaged.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/manual/wide-gamut-canvas/canvas-createPutGetImageData-colorManaged.html index a6b202e..f153a983 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/manual/wide-gamut-canvas/canvas-createPutGetImageData-colorManaged.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/manual/wide-gamut-canvas/canvas-createPutGetImageData-colorManaged.html
@@ -76,17 +76,6 @@ // Test putImageData when the canvas is color managed. -var dataU8 = new Uint8ClampedArray(4 * xWidth * xHeight); -var dataU16 = new Uint16Array(4 * xWidth * xHeight); -var dataF32 = new Float32Array(4 * xWidth * xHeight); -function prepareDataArrays() { - for (i = 0; i < 4 * xWidth * xHeight; i++) { - dataU8[i] = (i % 4 == 3) ? 255 : i % 256; - dataU16[i] = dataU8[i] * 257; - dataF32[i] = dataU8[i] / 255.0; - } -} - var testScenariosPutImageData = []; function prepareTestScenariosPutImageData() { var colorSpaces = ["srgb"]; @@ -108,25 +97,24 @@ } } -function createAndPutImageData(data, imageDataColorSettings, canvasColorSettings) { +function createAndPutImageData(imageDataColorSettings, canvasColorSettings) { // create color managed canvas var aCanvas = document.createElement("canvas"); aCanvas.width = xWidth; aCanvas.height = xHeight; var ctx = aCanvas.getContext('2d', canvasColorSettings); // create color managed ImageData - var imageData = ctx.createImageData(data, xWidth, xHeight, imageDataColorSettings); + var imageData = ctx.createImageData(xWidth, xHeight, imageDataColorSettings); // put image data into canvas. test succeeds if this does not crash. ctx.putImageData(imageData, 0, 0); } function runTestPutImageData(imageDataColorSettings, canvasColorSettings) { - createAndPutImageData(dataU8, imageDataColorSettings, canvasColorSettings); - createAndPutImageData(dataU16, imageDataColorSettings, canvasColorSettings); - createAndPutImageData(dataF32, imageDataColorSettings, canvasColorSettings); + createAndPutImageData(imageDataColorSettings, canvasColorSettings); + createAndPutImageData(imageDataColorSettings, canvasColorSettings); + createAndPutImageData(imageDataColorSettings, canvasColorSettings); } -prepareDataArrays(); prepareTestScenariosPutImageData(); function runPutImageDataTests() {
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/manual/wide-gamut-canvas/canvas-getImageData-e_srgb.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/manual/wide-gamut-canvas/canvas-getImageData-e_srgb.html index f5f0e629d..c38da7c 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/manual/wide-gamut-canvas/canvas-getImageData-e_srgb.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/manual/wide-gamut-canvas/canvas-getImageData-e_srgb.html
@@ -39,13 +39,12 @@ canvas.height = 10; var ctx = canvas.getContext('2d', {colorSpace: 'srgb', pixelFormat:'float16'}) - var data_e_sRGB = new Float32Array(4); - data_e_sRGB[0] = 0.2; - data_e_sRGB[1] = 0.4; - data_e_sRGB[2] = 0.6; - data_e_sRGB[3] = 0.8; - var imageData = ctx.createImageData(data_e_sRGB, 1, 1, + var imageData = ctx.createImageData(1, 1, {colorSpace: 'srgb', storageFormat:'float32'}); + imageData.dataUnion[0] = 0.2; + imageData.dataUnion[1] = 0.4; + imageData.dataUnion[2] = 0.6; + imageData.dataUnion[3] = 0.8; ctx.putImageData(imageData, 5, 5); var pixel = ctx.getImageData(5, 5, 1, 1).dataUnion; // Check against the same color in e-sRGB. 0.001 protects the test against @@ -59,13 +58,12 @@ canvas.height = 10; var ctx = canvas.getContext('2d', {colorSpace: 'srgb', pixelFormat:'float16'}) - var data_e_sRGB = new Float32Array(4); - data_e_sRGB[0] = 1.3; - data_e_sRGB[1] = -1.13; - data_e_sRGB[2] = 0.7; - data_e_sRGB[3] = 1.8; - var imageData = ctx.createImageData(data_e_sRGB, 1, 1, + var imageData = ctx.createImageData(1, 1, {colorSpace: 'srgb', storageFormat:'float32'}); + imageData.dataUnion[0] = 1.3; + imageData.dataUnion[1] = -1.13; + imageData.dataUnion[2] = 0.7; + imageData.dataUnion[3] = 1.8; ctx.putImageData(imageData, 5, 5); var pixel = ctx.getImageData(5, 5, 1, 1).dataUnion; // Check against the same color in e-sRGB. 0.001 protects the test against @@ -80,12 +78,12 @@ var ctx = canvas.getContext('2d', {colorSpace: 'srgb', pixelFormat:'float16'}); var dataSRGB = new Uint8ClampedArray(4); - dataSRGB[0] = 51; - dataSRGB[1] = 102; - dataSRGB[2] = 153; - dataSRGB[3] = 204; - var imageData = ctx.createImageData(dataSRGB, 1, 1, + var imageData = ctx.createImageData(1, 1, {colorSpace: 'srgb', storageFormat:'uint8'}); + imageData.data[0] = 51; + imageData.data[1] = 102; + imageData.data[2] = 153; + imageData.data[3] = 204; ctx.putImageData(imageData, 5, 5); var pixel = ctx.getImageData(5, 5, 1, 1).dataUnion; // Check against the same color in e-sRGB. 0.01 protects the test against
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/manual/wide-gamut-canvas/imageData-colorManagedBehavior.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/manual/wide-gamut-canvas/imageData-colorManagedBehavior.html index 6bc55b7..dda9f9c 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/manual/wide-gamut-canvas/imageData-colorManagedBehavior.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/manual/wide-gamut-canvas/imageData-colorManagedBehavior.html
@@ -336,29 +336,6 @@ "ImageData should be transparent black"); } -var testScenariosCreateImageDataDWHC = []; -for (var i = 0; i < canvasColorSettingsSet.length; i++) { - for (var j = 0; j < imageDataColorSettingsSet.length; j++) { - message = "Test createImageData(data, width, height, imageDataColorSettings): " + - canvasColorSettingsSet[i].name + " canvas, " + - imageDataColorSettingsSet[j].name + " ImageData"; - testScenariosCreateImageDataDWHC. - push([message, canvasColorSettingsSet[i].colorSettings, - imageDataColorSettingsSet[j].imageData]); - } -} - -function runTestCreateImageDataDWHCTests() { - for (var i = 0; i < testScenariosCreateImageDataDWHC.length; i++){ - var t = test(function() { - runTestCreateImageDataDWHC( - testScenariosCreateImageDataDWHC[i][1], - testScenariosCreateImageDataDWHC[i][2]); - }, testScenariosCreateImageDataDWHC[i][0]); - } -} -runTestCreateImageDataDWHCTests(); - //////////////////////////////////////////////////////////////////////////////// </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/manual/wide-gamut-canvas/imageData-colorSpace.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/manual/wide-gamut-canvas/imageData-colorSpace.html deleted file mode 100644 index 9023cbe..0000000 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/manual/wide-gamut-canvas/imageData-colorSpace.html +++ /dev/null
@@ -1,71 +0,0 @@ -<!DOCTYPE html> -<body> -<script src="/resources/testharness.js"></script> -<script src="/resources/testharnessreport.js"></script> -<script> - -var dataU8 = new Uint8ClampedArray([255, 192, 128, 64]); -var dataU16 = new Uint16Array([65535, 256*192, 256*128, 256*64]); -var dataF32 = new Float32Array([1.0, 0.75, 0.5, 0.25]); - -function checkDataTypeAgainstStorageFormat(data, storageFormat) { - if (storageFormat == "uint8") - assert_equals(Object.prototype.toString.call(data), "[object Uint8ClampedArray]"); - else if (storageFormat == "uint16") - assert_equals(Object.prototype.toString.call(data), "[object Uint16Array]"); - else if (storageFormat == "float32") - assert_equals(Object.prototype.toString.call(data), "[object Float32Array]"); -} - -function checkColorSettings(colorSettings, colorSpace, storageFormat) { - assert_equals(colorSettings.colorSpace, colorSpace); - assert_equals(colorSettings.storageFormat, storageFormat); -} - -function runTest(colorSettings, expectedColorSettings) { - var canvas = document.createElement("canvas"); - var ctx = canvas.getContext("2d"); - - imageData = ctx.createImageData(1, 1, colorSettings); - checkDataTypeAgainstStorageFormat(imageData.dataUnion, colorSettings.storageFormat); - assert_array_equals(imageData.dataUnion, [0, 0, 0, 0]); - checkColorSettings(imageData.getColorSettings(), expectedColorSettings.colorSpace, expectedColorSettings.storageFormat); - - imageData = ctx.createImageData(dataU8, 1, 1, colorSettings); - assert_equals(Object.prototype.toString.call(imageData.dataUnion), "[object Uint8ClampedArray]"); - assert_array_equals(imageData.dataUnion, dataU8); - checkColorSettings(imageData.getColorSettings(), expectedColorSettings.colorSpace, "uint8"); - - imageData = ctx.createImageData(dataU16, 1, 1, colorSettings); - assert_equals(Object.prototype.toString.call(imageData.dataUnion), "[object Uint16Array]"); - assert_array_equals(imageData.dataUnion, dataU16); - checkColorSettings(imageData.getColorSettings(), expectedColorSettings.colorSpace, "uint16"); - - imageData = ctx.createImageData(dataF32, 1, 1, colorSettings); - assert_equals(Object.prototype.toString.call(imageData.dataUnion), "[object Float32Array]"); - assert_array_equals(imageData.dataUnion, dataF32); - checkColorSettings(imageData.getColorSettings(), expectedColorSettings.colorSpace, "float32"); -} - -var testScenarios = [ - ["Test default color settings: {undefined, undefined} -> {srgb, uint8}", {}, {colorSpace: "srgb", storageFormat: "uint8"}], - - ["Test default color space: {undefined, float32} -> {srgb, float32}", {storageFormat: "float32"}, {colorSpace: "srgb", storageFormat: "float32"}], - ["Test default storage format: {srgb, undefined} -> {srgb, uint8}", {colorSpace: "srgb"}, {colorSpace: "srgb", storageFormat: "uint8"}], - - ["Test color settings: {srgb, uint8}", {colorSpace: "srgb", storageFormat: "uint8"}, {colorSpace: "srgb", storageFormat: "uint8"}], - ["Test color settings: {srgb, uint16}", {colorSpace: "srgb", storageFormat: "uint16"}, {colorSpace: "srgb", storageFormat: "uint16"}], - ["Test color settings: {srgb, float32}", {colorSpace: "srgb", storageFormat: "float32"}, {colorSpace: "srgb", storageFormat: "float32"}], -]; - -function runAllTests() { - for (var i = 0; i < testScenarios.length; i++){ - var t = test(function() { - runTest(testScenarios[i][1], testScenarios[i][2]); - }, testScenarios[i][0]); - } -} -runAllTests(); - -</script> -</body>
diff --git a/third_party/blink/web_tests/external/wpt/webdriver/tests/get_title/get.py b/third_party/blink/web_tests/external/wpt/webdriver/tests/get_title/get.py index f0e58ac..7bb83c3 100644 --- a/third_party/blink/web_tests/external/wpt/webdriver/tests/get_title/get.py +++ b/third_party/blink/web_tests/external/wpt/webdriver/tests/get_title/get.py
@@ -1,10 +1,7 @@ +from six import text_type + from tests.support.asserts import assert_error, assert_success from tests.support.inline import inline -from tests.support.sync import Poll - - -def read_global(session, name): - return session.execute_script("return %s;" % name) def get_title(session): @@ -12,56 +9,44 @@ "GET", "session/{session_id}/title".format(**vars(session))) +def test_payload(session): + session.start() + + response = get_title(session) + value = assert_success(response) + assert isinstance(value, text_type) + + def test_no_browsing_context(session, closed_window): response = get_title(session) assert_error(response, "no such window") -def test_title_from_top_context(session): - session.url = inline("<title>Foobar</title><h2>Hello</h2>") - - result = get_title(session) - assert_success(result, read_global(session, "document.title")) - - -def test_title_with_duplicate_element(session): +def test_with_duplicated_title(session): session.url = inline("<title>First</title><title>Second</title>") result = get_title(session) - assert_success(result, read_global(session, "document.title")) + assert_success(result, "First") -def test_title_without_element(session): +def test_without_title(session): session.url = inline("<h2>Hello</h2>") result = get_title(session) - assert_success(result, read_global(session, "document.title")) + assert_success(result, "") -def test_title_after_modification(session): - def title(): - return read_global(session, "document.title") - +def test_after_modification(session): session.url = inline("<title>Initial</title><h2>Hello</h2>") session.execute_script("document.title = 'Updated'") - wait = Poll(session, message='Document title does not match "{}"'.format(title())) - wait.until(lambda s: assert_success(get_title(s)) == title()) + result = get_title(session) + assert_success(result, "Updated") -def test_title_strip_and_collapse(session): +def test_strip_and_collapse(session): document = "<title> a b\tc\nd\t \n e\t\n </title><h2>Hello</h2>" session.url = inline(document) result = get_title(session) - assert_success(result, read_global(session, "document.title")) - - -def test_title_from_frame(session, create_frame): - session.url = inline("<title>Parent</title>parent") - - session.switch_frame(create_frame()) - session.switch_frame(create_frame()) - - result = get_title(session) - assert_success(result, "Parent") + assert_success(result, "a b c d e")
diff --git a/third_party/blink/web_tests/external/wpt/webdriver/tests/get_title/iframe.py b/third_party/blink/web_tests/external/wpt/webdriver/tests/get_title/iframe.py new file mode 100644 index 0000000..5991bf3 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/webdriver/tests/get_title/iframe.py
@@ -0,0 +1,70 @@ +import pytest + +from tests.support.asserts import assert_success +from tests.support.inline import iframe, inline + + +""" +Tests that WebDriver can transcend site origins. + +Many modern browsers impose strict cross-origin checks, +and WebDriver should be able to transcend these. + +Although an implementation detail, certain browsers +also enforce process isolation based on site origin. +This is known to sometimes cause problems for WebDriver implementations. +""" + +frame_doc = inline("<title>cheese</title><p>frame") +one_frame_doc = inline("<title>bar</title><iframe src='%s'></iframe>" % frame_doc) +nested_frames_doc = inline("<title>foo</title><iframe src='%s'></iframe>" % one_frame_doc) + + +def get_title(session): + return session.transport.send( + "GET", "session/{session_id}/title".format(**vars(session))) + + +def test_no_iframe(session): + session.url = inline("<title>Foobar</title><h2>Hello</h2>") + + result = get_title(session) + assert_success(result, "Foobar") + + +def test_iframe(session): + session.url = one_frame_doc + + frame = session.find.css("iframe", all=False) + session.switch_frame(frame) + session.find.css("p", all=False) + + response = get_title(session) + assert_success(response, "bar") + + +def test_nested_iframe(session): + session.url = nested_frames_doc + + outer_frame = session.find.css("iframe", all=False) + session.switch_frame(outer_frame) + + inner_frame = session.find.css("iframe", all=False) + session.switch_frame(inner_frame) + session.find.css("p", all=False) + + response = get_title(session) + assert_success(response, "foo") + + +@pytest.mark.parametrize("domain", ["", "alt"], ids=["same_origin", "cross_origin"]) +def test_origin(session, domain, url): + session.url = inline("<title>foo</title>{}".format( + iframe("<title>bar</title><p>frame", domain=domain))) + + frame = session.find.css("iframe", all=False) + session.switch_frame(frame) + session.find.css("p", all=False) + + response = get_title(session) + assert_success(response, "foo")
diff --git a/third_party/blink/web_tests/external/wpt/webdriver/tests/perform_actions/conftest.py b/third_party/blink/web_tests/external/wpt/webdriver/tests/perform_actions/conftest.py index dffae0b9..5ee8ae1 100644 --- a/third_party/blink/web_tests/external/wpt/webdriver/tests/perform_actions/conftest.py +++ b/third_party/blink/web_tests/external/wpt/webdriver/tests/perform_actions/conftest.py
@@ -1,5 +1,22 @@ import pytest +from webdriver.error import NoSuchWindowException + + +@pytest.fixture +def session_new_window(capabilities, session): + # Prevent unreleased dragged elements by running the test in a new window. + original_handle = session.window_handle + session.window_handle = session.new_window() + + yield session + + try: + session.window.close() + except NoSuchWindowException: + pass + + session.window_handle = original_handle @pytest.fixture def key_chain(session):
diff --git a/third_party/blink/web_tests/external/wpt/webdriver/tests/perform_actions/pointer.py b/third_party/blink/web_tests/external/wpt/webdriver/tests/perform_actions/pointer.py index d021eee7..fcb1e5b1 100644 --- a/third_party/blink/web_tests/external/wpt/webdriver/tests/perform_actions/pointer.py +++ b/third_party/blink/web_tests/external/wpt/webdriver/tests/perform_actions/pointer.py
@@ -144,12 +144,13 @@ @pytest.mark.parametrize("drag_duration", [0, 300, 800]) -def test_drag_and_drop_with_draggable_element(session, +def test_drag_and_drop_with_draggable_element(session_new_window, test_actions_page, mouse_chain, drag_duration): - drag_target = session.find.css("#draggable", all=False) - drop_target = session.find.css("#droppable", all=False) + new_session = session_with_new_window + drag_target = new_session.find.css("#draggable", all=False) + drop_target = new_session.find.css("#droppable", all=False) # Conclude chain with extra move to allow time for last queued # coordinate-update of drag_target and to test that drag_target is "dropped". mouse_chain \ @@ -163,7 +164,8 @@ .pointer_move(80, 50, duration=100, origin="pointer") \ .perform() # mouseup that ends the drag is at the expected destination - e = get_events(session) + e = get_events(new_session) + assert len(e) >= 5 assert e[1]["type"] == "dragstart", "Events captured were {}".format(e) assert e[2]["type"] == "dragover", "Events captured were {}".format(e) drag_events_captured = [ev["type"] for ev in e if ev["type"].startswith("drag") or ev["type"].startswith("drop")]
diff --git a/third_party/blink/web_tests/external/wpt/webrtc/RTCPeerConnection-description-attributes-timing.https.html b/third_party/blink/web_tests/external/wpt/webrtc/RTCPeerConnection-description-attributes-timing.https.html deleted file mode 100644 index 2d2565c3..0000000 --- a/third_party/blink/web_tests/external/wpt/webrtc/RTCPeerConnection-description-attributes-timing.https.html +++ /dev/null
@@ -1,81 +0,0 @@ -<!doctype html> -<meta charset=utf-8> -<title></title> -<script src=/resources/testharness.js></script> -<script src=/resources/testharnessreport.js></script> -<script> -'use strict'; - -promise_test(async t => { - const pc = new RTCPeerConnection(); - t.add_cleanup(() => pc.close()); - const offer = await pc.createOffer(); - - assert_equals(pc.pendingLocalDescription, null, - 'pendingLocalDescription is null before setLocalDescription'); - const promise = pc.setLocalDescription(offer); - assert_equals(pc.pendingLocalDescription, null, - 'pendingLocalDescription is still null while promise pending'); - await promise; - assert_not_equals(pc.pendingLocalDescription, null, - 'pendingLocalDescription is not null after await'); -}, "pendingLocalDescription is surfaced at the right time"); - -promise_test(async t => { - const pc = new RTCPeerConnection(); - t.add_cleanup(() => pc.close()); - const offer = await pc.createOffer(); - - assert_equals(pc.pendingRemoteDescription, null, - 'pendingRemoteDescription is null before setRemoteDescription'); - const promise = pc.setRemoteDescription(offer); - assert_equals(pc.pendingRemoteDescription, null, - 'pendingRemoteDescription is still null while promise pending'); - await promise; - assert_not_equals(pc.pendingRemoteDescription, null, - 'pendingRemoteDescription is not null after await'); -}, "pendingRemoteDescription is surfaced at the right time"); - -promise_test(async t => { - const pc1 = new RTCPeerConnection(); - t.add_cleanup(() => pc1.close()); - const pc2 = new RTCPeerConnection(); - t.add_cleanup(() => pc2.close()); - - const offer = await pc1.createOffer(); - await pc1.setLocalDescription(offer); - await pc2.setRemoteDescription(offer); - const answer = await pc2.createAnswer(); - - assert_equals(pc2.currentLocalDescription, null, - 'currentLocalDescription is null before setLocalDescription'); - const promise = pc2.setLocalDescription(answer); - assert_equals(pc2.currentLocalDescription, null, - 'currentLocalDescription is still null while promise pending'); - await promise; - assert_not_equals(pc2.currentLocalDescription, null, - 'currentLocalDescription is not null after await'); -}, "currentLocalDescription is surfaced at the right time"); - -promise_test(async t => { - const pc1 = new RTCPeerConnection(); - t.add_cleanup(() => pc1.close()); - const pc2 = new RTCPeerConnection(); - t.add_cleanup(() => pc2.close()); - - const offer = await pc1.createOffer(); - await pc1.setLocalDescription(offer); - await pc2.setRemoteDescription(offer); - const answer = await pc2.createAnswer(); - - assert_equals(pc1.currentRemoteDescription, null, - 'currentRemoteDescription is null before setRemoteDescription'); - const promise = pc1.setRemoteDescription(answer); - assert_equals(pc1.currentRemoteDescription, null, - 'currentRemoteDescription is still null while promise pending'); - await promise; - assert_not_equals(pc1.currentRemoteDescription, null, - 'currentRemoteDescription is not null after await'); -}, "currentRemoteDescription is surfaced at the right time"); - -</script>
diff --git a/third_party/blink/web_tests/external/wpt/webrtc/RTCPeerConnection-setLocalDescription-answer-expected.txt b/third_party/blink/web_tests/external/wpt/webrtc/RTCPeerConnection-setLocalDescription-answer-expected.txt index bbb4460..550acfb 100644 --- a/third_party/blink/web_tests/external/wpt/webrtc/RTCPeerConnection-setLocalDescription-answer-expected.txt +++ b/third_party/blink/web_tests/external/wpt/webrtc/RTCPeerConnection-setLocalDescription-answer-expected.txt
@@ -5,6 +5,6 @@ FAIL Calling setLocalDescription(answer) from stable state should reject with InvalidModificationError promise_rejects_dom: function "function() { throw e }" threw object "OperationError: Failed to execute 'setLocalDescription' on 'RTCPeerConnection': Failed to set local answer sdp: Called in wrong state: stable" that is not a DOMException InvalidModificationError: property "code" is equal to 0, expected 13 FAIL Calling setLocalDescription(answer) from have-local-offer state should reject with InvalidModificationError promise_rejects_dom: function "function() { throw e }" threw object "OperationError: Failed to execute 'setLocalDescription' on 'RTCPeerConnection': Failed to set local answer sdp: Called in wrong state: have-local-offer" that is not a DOMException InvalidModificationError: property "code" is equal to 0, expected 13 PASS Setting previously generated answer after a call to createOffer should work -PASS setLocalDescription(answer) should update internal state with a queued task, in the right order +FAIL setLocalDescription(answer) should update internal state with a queued task, in the right order assert_not_equals: pendingRemoteDescription should not be set synchronously after a call to sLD got disallowed value null Harness: the test ran to completion.
diff --git a/third_party/blink/web_tests/external/wpt/webrtc/RTCPeerConnection-setLocalDescription-offer-expected.txt b/third_party/blink/web_tests/external/wpt/webrtc/RTCPeerConnection-setLocalDescription-offer-expected.txt index cf9f74e..1608296c 100644 --- a/third_party/blink/web_tests/external/wpt/webrtc/RTCPeerConnection-setLocalDescription-offer-expected.txt +++ b/third_party/blink/web_tests/external/wpt/webrtc/RTCPeerConnection-setLocalDescription-offer-expected.txt
@@ -6,6 +6,6 @@ PASS Creating and setting offer multiple times should succeed PASS Setting previously generated offer after a call to createAnswer should work PASS Negotiation works when there has been a repeated setLocalDescription(offer) -PASS setLocalDescription(offer) should update internal state with a queued task, in the right order +FAIL setLocalDescription(offer) should update internal state with a queued task, in the right order assert_equals: pendingRemoteDescription should never be set due to sLD expected null but got object "[object RTCSessionDescription]" Harness: the test ran to completion.
diff --git a/third_party/blink/web_tests/external/wpt/webrtc/RTCPeerConnection-setLocalDescription-rollback-expected.txt b/third_party/blink/web_tests/external/wpt/webrtc/RTCPeerConnection-setLocalDescription-rollback-expected.txt new file mode 100644 index 0000000..b0e9cd08 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/webrtc/RTCPeerConnection-setLocalDescription-rollback-expected.txt
@@ -0,0 +1,8 @@ +This is a testharness.js-based test. +PASS setLocalDescription(rollback) from have-local-offer state should reset back to stable state +PASS setLocalDescription(rollback) from stable state should reject with InvalidStateError +PASS setLocalDescription(rollback) after setting answer description should reject with InvalidStateError +PASS setLocalDescription(rollback) should ignore invalid sdp content and succeed +FAIL setLocalDescription(rollback) should update internal state with a queued tassk, in the right order assert_not_equals: pendingLocalDescription should not be set synchronously after a call to sLD got disallowed value null +Harness: the test ran to completion. +
diff --git a/third_party/blink/web_tests/fast/canvas/color-space/canvas-createPutGetImageData-colorManaged.html b/third_party/blink/web_tests/fast/canvas/color-space/canvas-createPutGetImageData-colorManaged.html index ace93f1..903200c 100644 --- a/third_party/blink/web_tests/fast/canvas/color-space/canvas-createPutGetImageData-colorManaged.html +++ b/third_party/blink/web_tests/fast/canvas/color-space/canvas-createPutGetImageData-colorManaged.html
@@ -74,16 +74,6 @@ // the output correcteness is verified as a unit test. Please see: // CanvasRenderingContext2DTest::ColorManagedGetPutImageData -var dataU8 = new Uint8ClampedArray(4 * xWidth * xHeight); -var dataU16 = new Uint16Array(4 * xWidth * xHeight); -var dataF32 = new Float32Array(4 * xWidth * xHeight); -function prepareDataArrays() { - for (i = 0; i < 4 * xWidth * xHeight; i++) { - dataU8[i] = (i % 4 == 3) ? 255 : i % 256; - dataU16[i] = dataU8[i] * 257; - dataF32[i] = dataU8[i] / 255.0; - } -} var testScenariosPutImageData = []; function prepareTestScenariosPutImageData() { @@ -106,25 +96,24 @@ } } -function createAndPutImageData(data, imageDataColorSettings, canvasColorSettings) { +function createAndPutImageData(imageDataColorSettings, canvasColorSettings) { // create color managed canvas var aCanvas = document.createElement("canvas"); aCanvas.width = xWidth; aCanvas.height = xHeight; var ctx = aCanvas.getContext('2d', canvasColorSettings); // create color managed ImageData - var imageData = ctx.createImageData(data, xWidth, xHeight, imageDataColorSettings); - // put image data into canvas. test succeeds if this does not crash. + var imageData = ctx.createImageData(xWidth, xHeight, imageDataColorSettings); + // This test does not check the values that were written. ctx.putImageData(imageData, 0, 0); } function runTestPutImageData(imageDataColorSettings, canvasColorSettings) { - createAndPutImageData(dataU8, imageDataColorSettings, canvasColorSettings); - createAndPutImageData(dataU16, imageDataColorSettings, canvasColorSettings); - createAndPutImageData(dataF32, imageDataColorSettings, canvasColorSettings); + createAndPutImageData(imageDataColorSettings, canvasColorSettings); + createAndPutImageData(imageDataColorSettings, canvasColorSettings); + createAndPutImageData(imageDataColorSettings, canvasColorSettings); } -prepareDataArrays(); prepareTestScenariosPutImageData(); generate_tests(runTestPutImageData, testScenariosPutImageData);
diff --git a/third_party/blink/web_tests/fast/canvas/color-space/canvas-getImageData-e_srgb.html b/third_party/blink/web_tests/fast/canvas/color-space/canvas-getImageData-e_srgb.html index 8ef307a4..7aa868c 100644 --- a/third_party/blink/web_tests/fast/canvas/color-space/canvas-getImageData-e_srgb.html +++ b/third_party/blink/web_tests/fast/canvas/color-space/canvas-getImageData-e_srgb.html
@@ -39,13 +39,12 @@ canvas.height = 10; var ctx = canvas.getContext('2d', {colorSpace: 'srgb', pixelFormat:'float16'}) - var data_e_sRGB = new Float32Array(4); - data_e_sRGB[0] = 0.2; - data_e_sRGB[1] = 0.4; - data_e_sRGB[2] = 0.6; - data_e_sRGB[3] = 0.8; - var imageData = ctx.createImageData(data_e_sRGB, 1, 1, + var imageData = ctx.createImageData(1, 1, {colorSpace: 'srgb', storageFormat:'float32'}); + imageData.dataUnion[0] = 0.2; + imageData.dataUnion[1] = 0.4; + imageData.dataUnion[2] = 0.6; + imageData.dataUnion[3] = 0.8; ctx.putImageData(imageData, 5, 5); var pixel = ctx.getImageData(5, 5, 1, 1).dataUnion; // Check against the same color in e-sRGB. 0.001 protects the test against @@ -59,13 +58,12 @@ canvas.height = 10; var ctx = canvas.getContext('2d', {colorSpace: 'srgb', pixelFormat:'float16'}) - var data_e_sRGB = new Float32Array(4); - data_e_sRGB[0] = 1.3; - data_e_sRGB[1] = -1.13; - data_e_sRGB[2] = 0.7; - data_e_sRGB[3] = 1.8; - var imageData = ctx.createImageData(data_e_sRGB, 1, 1, + var imageData = ctx.createImageData(1, 1, {colorSpace: 'srgb', storageFormat:'float32'}); + imageData.dataUnion[0] = 1.3; + imageData.dataUnion[1] = -1.13; + imageData.dataUnion[2] = 0.7; + imageData.dataUnion[3] = 1.8; ctx.putImageData(imageData, 5, 5); var pixel = ctx.getImageData(5, 5, 1, 1).dataUnion; // Check against the same color in e-sRGB. 0.001 protects the test against @@ -79,13 +77,12 @@ canvas.height = 10; var ctx = canvas.getContext('2d', {colorSpace: 'srgb', pixelFormat:'float16'}); - var dataSRGB = new Uint8ClampedArray(4); - dataSRGB[0] = 51; - dataSRGB[1] = 102; - dataSRGB[2] = 153; - dataSRGB[3] = 204; - var imageData = ctx.createImageData(dataSRGB, 1, 1, + var imageData = ctx.createImageData(1, 1, {colorSpace: 'srgb', storageFormat:'uint8'}); + imageData.data[0] = 51; + imageData.data[1] = 102; + imageData.data[2] = 153; + imageData.data[3] = 204; ctx.putImageData(imageData, 5, 5); var pixel = ctx.getImageData(5, 5, 1, 1).dataUnion; // Check against the same color in e-sRGB. 0.01 protects the test against
diff --git a/third_party/blink/web_tests/fast/canvas/color-space/canvas-getImageData-p3.html b/third_party/blink/web_tests/fast/canvas/color-space/canvas-getImageData-p3.html index eabb1d2..e8af44cf 100644 --- a/third_party/blink/web_tests/fast/canvas/color-space/canvas-getImageData-p3.html +++ b/third_party/blink/web_tests/fast/canvas/color-space/canvas-getImageData-p3.html
@@ -38,12 +38,12 @@ var ctx = canvas.getContext('2d', {colorSpace: 'p3', pixelFormat:'float16'}) var dataP3 = new Float32Array(4); - dataP3[0] = 0.24304; - dataP3[1] = 0.38818; - dataP3[2] = 0.57227; - dataP3[3] = 1; - var imageData = ctx.createImageData(dataP3, 1, 1, + var imageData = ctx.createImageData(1, 1, {colorSpace: 'p3', storageFormat:'float32'}); + imageData.dataUnion[0] = 0.24304; + imageData.dataUnion[1] = 0.38818; + imageData.dataUnion[2] = 0.57227; + imageData.dataUnion[3] = 1; ctx.putImageData(imageData, 5, 5); var pixel = ctx.getImageData(5, 5, 1, 1).dataUnion; // Check against the same color in P3. 0.001 protects the test against @@ -57,13 +57,12 @@ canvas.height = 10; var ctx = canvas.getContext('2d', {colorSpace: 'p3', pixelFormat:'float16'}); - var dataSRGB = new Uint8ClampedArray(4); - dataSRGB[0] = 50; - dataSRGB[1] = 100; - dataSRGB[2] = 150; - dataSRGB[3] = 255; - var imageData = ctx.createImageData(dataSRGB, 1, 1, + var imageData = ctx.createImageData(1, 1, {colorSpace: 'srgb', storageFormat:'uint8'}); + imageData.data[0] = 50; + imageData.data[1] = 100; + imageData.data[2] = 150; + imageData.data[3] = 255; ctx.putImageData(imageData, 5, 5); var pixel = ctx.getImageData(5, 5, 1, 1).dataUnion; // Check against the same color in P3. 0.01 protects the test against
diff --git a/third_party/blink/web_tests/fast/canvas/color-space/canvas-getImageData-rec2020.html b/third_party/blink/web_tests/fast/canvas/color-space/canvas-getImageData-rec2020.html index f71e2f0..4455760 100644 --- a/third_party/blink/web_tests/fast/canvas/color-space/canvas-getImageData-rec2020.html +++ b/third_party/blink/web_tests/fast/canvas/color-space/canvas-getImageData-rec2020.html
@@ -37,13 +37,12 @@ canvas.height = 10; var ctx = canvas.getContext('2d', {colorSpace: 'rec2020', pixelFormat:'float16'}) - var dataRec2020 = new Float32Array(4); - dataRec2020[0] = 0.34106; - dataRec2020[1] = 0.41553; - dataRec2020[2] = 0.59180; - dataRec2020[3] = 1.00000; - var imageData = ctx.createImageData(dataRec2020, 1, 1, + var imageData = ctx.createImageData(1, 1, {colorSpace: 'rec2020', storageFormat:'float32'}); + imageData.dataUnion[0] = 0.34106; + imageData.dataUnion[1] = 0.41553; + imageData.dataUnion[2] = 0.59180; + imageData.dataUnion[3] = 1.00000; ctx.putImageData(imageData, 5, 5); var pixel = ctx.getImageData(5, 5, 1, 1).dataUnion; // Check against the same color in Rec2020. 0.001 protects the test against @@ -57,13 +56,12 @@ canvas.height = 10; var ctx = canvas.getContext('2d', {colorSpace: 'rec2020', pixelFormat:'float16'}); - var dataSRGB = new Uint8ClampedArray(4); - dataSRGB[0] = 50; - dataSRGB[1] = 100; - dataSRGB[2] = 150; - dataSRGB[3] = 255; - var imageData = ctx.createImageData(dataSRGB, 1, 1, + var imageData = ctx.createImageData(1, 1, {colorSpace: 'srgb', storageFormat:'uint8'}); + imageData.data[0] = 50; + imageData.data[1] = 100; + imageData.data[2] = 150; + imageData.data[3] = 255; ctx.putImageData(imageData, 5, 5); var pixel = ctx.getImageData(5, 5, 1, 1).dataUnion; // Check against the same color in Rec2020. 0.01 protects the test against
diff --git a/third_party/blink/web_tests/fast/canvas/color-space/imageData-colorManagedBehavior.html b/third_party/blink/web_tests/fast/canvas/color-space/imageData-colorManagedBehavior.html index 342a4e5b..f395be5 100644 --- a/third_party/blink/web_tests/fast/canvas/color-space/imageData-colorManagedBehavior.html +++ b/third_party/blink/web_tests/fast/canvas/color-space/imageData-colorManagedBehavior.html
@@ -353,47 +353,4 @@ generate_tests(runTestCreateImageDataWHC, testScenariosCreateImageDataWHC); -//////////////////////////////////////////////////////////////////////////////// - -// *ImageData ctx.createImageData(data, width, height, imageDataColorSettings); -// No color conversion to the color settings of the canvas. ImageData is created -// from param "data" with proper storage format and is tagged with the -// CanvasColorSpace which is given in imageDataColorSettings. - -function runTestCreateImageDataDWHC(canvasColorSettings, imageData) { - var data = imageData.dataUnion; - width = xWidth; - height = xHeight; - var colorSettings = imageData.getColorSettings(); - - var canvas = initializeColorManagedCanvas(canvasColorSettings); - var ctx = canvas.getContext('2d'); - var newImageData = ctx.createImageData(data, width, height, colorSettings); - var newColorSettings = newImageData.getColorSettings(); - assert_equals(newColorSettings.colorSpace, - colorSettings.colorSpace, - "colorSpace should match"); - assert_equals(newColorSettings.storageFormat, - colorSettings.storageFormat, - "storageFormat should match"); - assert_array_equals(newImageData.dataUnion, imageData.dataUnion, - "ImageData should be transparent black"); -} - -var testScenariosCreateImageDataDWHC = []; -for (var i = 0; i < canvasColorSettingsSet.length; i++) { - for (var j = 0; j < imageDataColorSettingsSet.length; j++) { - message = "Test createImageData(data, width, height, imageDataColorSettings): " + - canvasColorSettingsSet[i].name + " canvas, " + - imageDataColorSettingsSet[j].name + " ImageData"; - testScenariosCreateImageDataDWHC. - push([message, canvasColorSettingsSet[i].colorSettings, - imageDataColorSettingsSet[j].imageData]); - } -} - -generate_tests(runTestCreateImageDataDWHC, testScenariosCreateImageDataDWHC); - -//////////////////////////////////////////////////////////////////////////////// - </script>
diff --git a/third_party/blink/web_tests/fast/canvas/color-space/imageData-colorSpace.html b/third_party/blink/web_tests/fast/canvas/color-space/imageData-colorSpace.html index d540436..f1187645 100644 --- a/third_party/blink/web_tests/fast/canvas/color-space/imageData-colorSpace.html +++ b/third_party/blink/web_tests/fast/canvas/color-space/imageData-colorSpace.html
@@ -4,10 +4,6 @@ <script src="../../../resources/testharnessreport.js"></script> <script> -var dataU8 = new Uint8ClampedArray([255, 192, 128, 64]); -var dataU16 = new Uint16Array([65535, 256*192, 256*128, 256*64]); -var dataF32 = new Float32Array([1.0, 0.75, 0.5, 0.25]); - function checkDataTypeAgainstStorageFormat(data, storageFormat) { if (storageFormat == "uint8") assert_equals(Object.prototype.toString.call(data), "[object Uint8ClampedArray]"); @@ -30,21 +26,6 @@ checkDataTypeAgainstStorageFormat(imageData.dataUnion, colorSettings.storageFormat); assert_array_equals(imageData.dataUnion, [0, 0, 0, 0]); checkColorSettings(imageData.getColorSettings(), expectedColorSettings.colorSpace, expectedColorSettings.storageFormat); - - imageData = ctx.createImageData(dataU8, 1, 1, colorSettings); - assert_equals(Object.prototype.toString.call(imageData.dataUnion), "[object Uint8ClampedArray]"); - assert_array_equals(imageData.dataUnion, dataU8); - checkColorSettings(imageData.getColorSettings(), expectedColorSettings.colorSpace, "uint8"); - - imageData = ctx.createImageData(dataU16, 1, 1, colorSettings); - assert_equals(Object.prototype.toString.call(imageData.dataUnion), "[object Uint16Array]"); - assert_array_equals(imageData.dataUnion, dataU16); - checkColorSettings(imageData.getColorSettings(), expectedColorSettings.colorSpace, "uint16"); - - imageData = ctx.createImageData(dataF32, 1, 1, colorSettings); - assert_equals(Object.prototype.toString.call(imageData.dataUnion), "[object Float32Array]"); - assert_array_equals(imageData.dataUnion, dataF32); - checkColorSettings(imageData.getColorSettings(), expectedColorSettings.colorSpace, "float32"); } var testScenarios = [
diff --git a/third_party/blink/web_tests/fast/canvas/color-space/imagedata-no-color-settings-crash.html b/third_party/blink/web_tests/fast/canvas/color-space/imagedata-no-color-settings-crash.html deleted file mode 100644 index 78cd341..0000000 --- a/third_party/blink/web_tests/fast/canvas/color-space/imagedata-no-color-settings-crash.html +++ /dev/null
@@ -1,26 +0,0 @@ -<!DOCTYPE HTML> -<script src="../../../resources/testharness.js"></script> -<script src="../../../resources/testharnessreport.js"></script> -<script> -test(function() { - var canvas = document.createElement('canvas'); - var ctx = canvas.getContext('2d', - {}) - var dataLinearRGB = new Float32Array(4); - var imageData = ctx.createImageData(dataLinearRGB, 1, 1, - {}); - ctx.putImageData(imageData, 5, 5); - var data = ctx.getImageData(5,5,1,1).dataUnion; -}, "Putting a float-32 ImageData with no color settings on a context 2D should not crash."); - -test(function() { - var canvas = document.createElement('canvas'); - var ctx = canvas.getContext('2d', - {}) - var dataLinearRGB = new Uint16Array(4); - var imageData = ctx.createImageData(dataLinearRGB, 1, 1, - {}); - ctx.putImageData(imageData, 5, 5); - var data = ctx.getImageData(5,5,1,1).dataUnion; -}, "Putting a uint-16 ImageData with no color settings on a context 2D should not crash."); -</script> \ No newline at end of file
diff --git a/third_party/blink/web_tests/fast/dom/SelectorAPI/caseID-almost-strict-expected.txt b/third_party/blink/web_tests/fast/dom/SelectorAPI/caseID-almost-strict-expected.txt deleted file mode 100644 index 611b8e72..0000000 --- a/third_party/blink/web_tests/fast/dom/SelectorAPI/caseID-almost-strict-expected.txt +++ /dev/null
@@ -1,12 +0,0 @@ -PASS document.querySelector('#lower1').textContent is 'lower 1' -PASS document.querySelector('#LOWER2') is null -PASS document.querySelector('#UPPER1').textContent is 'UPPER 1' -PASS document.querySelector('#upper2') is null -PASS document.getElementById('lower1').webkitMatchesSelector('#lower1') is true -PASS document.getElementById('lower2').webkitMatchesSelector('#LOWER2') is false -PASS document.getElementById('UPPER1').webkitMatchesSelector('#UPPER1') is true -PASS document.getElementById('UPPER2').webkitMatchesSelector('#upper2') is false -PASS successfullyParsed is true - -TEST COMPLETE -
diff --git a/third_party/blink/web_tests/fast/dom/SelectorAPI/caseID-almost-strict.html b/third_party/blink/web_tests/fast/dom/SelectorAPI/caseID-almost-strict.html index 4a4db9e..5ffcdcc 100644 --- a/third_party/blink/web_tests/fast/dom/SelectorAPI/caseID-almost-strict.html +++ b/third_party/blink/web_tests/fast/dom/SelectorAPI/caseID-almost-strict.html
@@ -1,7 +1,9 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> -<script src="../../../resources/js-test.js"></script> +<title>fast/dom/SelectorAPI/caseID-almost-strict.html</title> +<script src="../../../resources/testharness.js"></script> +<script src="../../../resources/testharnessreport.js"></script> </head> <body> <div style="display: none"> @@ -11,15 +13,17 @@ <span id="UPPER2">UPPER 2</span><br> </div> <script> - shouldBe("document.querySelector('#lower1').textContent", "'lower 1'"); - shouldBeNull("document.querySelector('#LOWER2')"); - shouldBe("document.querySelector('#UPPER1').textContent", "'UPPER 1'"); - shouldBeNull("document.querySelector('#upper2')"); + setup({ single_test: true }); + assert_equals(document.querySelector('#lower1').textContent, 'lower 1'); + assert_equals(document.querySelector('#LOWER2'), null); + assert_equals(document.querySelector('#UPPER1').textContent, 'UPPER 1'); + assert_equals(document.querySelector('#upper2'), null); - shouldBeTrue("document.getElementById('lower1').webkitMatchesSelector('#lower1')"); - shouldBeFalse("document.getElementById('lower2').webkitMatchesSelector('#LOWER2')"); - shouldBeTrue("document.getElementById('UPPER1').webkitMatchesSelector('#UPPER1')"); - shouldBeFalse("document.getElementById('UPPER2').webkitMatchesSelector('#upper2')"); + assert_true(document.getElementById('lower1').webkitMatchesSelector('#lower1')); + assert_false(document.getElementById('lower2').webkitMatchesSelector('#LOWER2')); + assert_true(document.getElementById('UPPER1').webkitMatchesSelector('#UPPER1')); + assert_false(document.getElementById('UPPER2').webkitMatchesSelector('#upper2')); + done(); </script> </body> </html>
diff --git a/third_party/blink/web_tests/fast/dom/SelectorAPI/caseID-expected.txt b/third_party/blink/web_tests/fast/dom/SelectorAPI/caseID-expected.txt deleted file mode 100644 index 2b60689..0000000 --- a/third_party/blink/web_tests/fast/dom/SelectorAPI/caseID-expected.txt +++ /dev/null
@@ -1,12 +0,0 @@ -PASS document.querySelector('#lower1').textContent is 'lower 1' -PASS document.querySelector('#LOWER2').textContent is 'lower 2' -PASS document.querySelector('#UPPER1').textContent is 'UPPER 1' -PASS document.querySelector('#upper2').textContent is 'UPPER 2' -PASS document.getElementById('lower1').webkitMatchesSelector('#lower1') is true -PASS document.getElementById('lower2').webkitMatchesSelector('#LOWER2') is true -PASS document.getElementById('UPPER1').webkitMatchesSelector('#UPPER1') is true -PASS document.getElementById('UPPER2').webkitMatchesSelector('#upper2') is true -PASS successfullyParsed is true - -TEST COMPLETE -
diff --git a/third_party/blink/web_tests/fast/dom/SelectorAPI/caseID-strict-expected.txt b/third_party/blink/web_tests/fast/dom/SelectorAPI/caseID-strict-expected.txt deleted file mode 100644 index 611b8e72..0000000 --- a/third_party/blink/web_tests/fast/dom/SelectorAPI/caseID-strict-expected.txt +++ /dev/null
@@ -1,12 +0,0 @@ -PASS document.querySelector('#lower1').textContent is 'lower 1' -PASS document.querySelector('#LOWER2') is null -PASS document.querySelector('#UPPER1').textContent is 'UPPER 1' -PASS document.querySelector('#upper2') is null -PASS document.getElementById('lower1').webkitMatchesSelector('#lower1') is true -PASS document.getElementById('lower2').webkitMatchesSelector('#LOWER2') is false -PASS document.getElementById('UPPER1').webkitMatchesSelector('#UPPER1') is true -PASS document.getElementById('UPPER2').webkitMatchesSelector('#upper2') is false -PASS successfullyParsed is true - -TEST COMPLETE -
diff --git a/third_party/blink/web_tests/fast/dom/SelectorAPI/caseID-strict.html b/third_party/blink/web_tests/fast/dom/SelectorAPI/caseID-strict.html index 6fa1e9e..569e609 100644 --- a/third_party/blink/web_tests/fast/dom/SelectorAPI/caseID-strict.html +++ b/third_party/blink/web_tests/fast/dom/SelectorAPI/caseID-strict.html
@@ -1,7 +1,9 @@ <!DOCTYPE html> <html> <head> -<script src="../../../resources/js-test.js"></script> +<title>fast/dom/SelectorAPI/caseID-strict.html</title> +<script src="../../../resources/testharness.js"></script> +<script src="../../../resources/testharnessreport.js"></script> </head> <body> <div style="display: none"> @@ -11,15 +13,17 @@ <span id="UPPER2">UPPER 2</span><br> </div> <script> - shouldBe("document.querySelector('#lower1').textContent", "'lower 1'"); - shouldBeNull("document.querySelector('#LOWER2')"); - shouldBe("document.querySelector('#UPPER1').textContent", "'UPPER 1'"); - shouldBeNull("document.querySelector('#upper2')"); + setup({ single_test: true }); + assert_equals(document.querySelector('#lower1').textContent, 'lower 1'); + assert_equals(document.querySelector('#LOWER2'), null); + assert_equals(document.querySelector('#UPPER1').textContent, 'UPPER 1'); + assert_equals(document.querySelector('#upper2'), null); - shouldBeTrue("document.getElementById('lower1').webkitMatchesSelector('#lower1')"); - shouldBeFalse("document.getElementById('lower2').webkitMatchesSelector('#LOWER2')"); - shouldBeTrue("document.getElementById('UPPER1').webkitMatchesSelector('#UPPER1')"); - shouldBeFalse("document.getElementById('UPPER2').webkitMatchesSelector('#upper2')"); - </script> + assert_true(document.getElementById('lower1').webkitMatchesSelector('#lower1')); + assert_false(document.getElementById('lower2').webkitMatchesSelector('#LOWER2')); + assert_true(document.getElementById('UPPER1').webkitMatchesSelector('#UPPER1')); + assert_false(document.getElementById('UPPER2').webkitMatchesSelector('#upper2')); + done(); +</script> </body> </html>
diff --git a/third_party/blink/web_tests/fast/dom/SelectorAPI/caseID.html b/third_party/blink/web_tests/fast/dom/SelectorAPI/caseID.html index aea66a8..cec2e78 100644 --- a/third_party/blink/web_tests/fast/dom/SelectorAPI/caseID.html +++ b/third_party/blink/web_tests/fast/dom/SelectorAPI/caseID.html
@@ -1,6 +1,8 @@ <html> <head> -<script src="../../../resources/js-test.js"></script> +<title>fast/dom/SelectorAPI/caseID.html</title> +<script src="../../../resources/testharness.js"></script> +<script src="../../../resources/testharnessreport.js"></script> </head> <body> <div style="display: none"> @@ -10,15 +12,17 @@ <span id="UPPER2">UPPER 2</span><br> </div> <script> - shouldBe("document.querySelector('#lower1').textContent", "'lower 1'"); - shouldBe("document.querySelector('#LOWER2').textContent", "'lower 2'"); - shouldBe("document.querySelector('#UPPER1').textContent", "'UPPER 1'"); - shouldBe("document.querySelector('#upper2').textContent", "'UPPER 2'"); + setup({ single_test: true }); + assert_equals(document.querySelector('#lower1').textContent, 'lower 1'); + assert_equals(document.querySelector('#LOWER2').textContent, 'lower 2'); + assert_equals(document.querySelector('#UPPER1').textContent, 'UPPER 1'); + assert_equals(document.querySelector('#upper2').textContent, 'UPPER 2'); - shouldBeTrue("document.getElementById('lower1').webkitMatchesSelector('#lower1')"); - shouldBeTrue("document.getElementById('lower2').webkitMatchesSelector('#LOWER2')"); - shouldBeTrue("document.getElementById('UPPER1').webkitMatchesSelector('#UPPER1')"); - shouldBeTrue("document.getElementById('UPPER2').webkitMatchesSelector('#upper2')"); - </script> + assert_true(document.getElementById('lower1').webkitMatchesSelector('#lower1')); + assert_true(document.getElementById('lower2').webkitMatchesSelector('#LOWER2')); + assert_true(document.getElementById('UPPER1').webkitMatchesSelector('#UPPER1')); + assert_true(document.getElementById('UPPER2').webkitMatchesSelector('#upper2')); + done(); +</script> </body> </html>
diff --git a/third_party/blink/web_tests/fast/dom/SelectorAPI/caseTag-expected.txt b/third_party/blink/web_tests/fast/dom/SelectorAPI/caseTag-expected.txt deleted file mode 100644 index fe5b1480..0000000 --- a/third_party/blink/web_tests/fast/dom/SelectorAPI/caseTag-expected.txt +++ /dev/null
@@ -1,8 +0,0 @@ -PASS document.querySelector('div SPAN').textContent is 'lower' -PASS document.querySelector('div p').textContent is 'UPPER' -PASS document.getElementById('lower1').webkitMatchesSelector('div SPAN') is true -PASS document.getElementById('UPPER1').webkitMatchesSelector('div p') is true -PASS successfullyParsed is true - -TEST COMPLETE -
diff --git a/third_party/blink/web_tests/fast/dom/SelectorAPI/caseTag.html b/third_party/blink/web_tests/fast/dom/SelectorAPI/caseTag.html index 9b5e3bcf..a8ae706 100644 --- a/third_party/blink/web_tests/fast/dom/SelectorAPI/caseTag.html +++ b/third_party/blink/web_tests/fast/dom/SelectorAPI/caseTag.html
@@ -1,6 +1,8 @@ <html> <head> -<script src="../../../resources/js-test.js"></script> +<title>fast/dom/SelectorAPI/caseTag.html</title> +<script src="../../../resources/testharness.js"></script> +<script src="../../../resources/testharnessreport.js"></script> </head> <body> <div style="display: none"> @@ -8,11 +10,13 @@ <P id="UPPER1">UPPER</P><br> </div> <script> - shouldBe("document.querySelector('div SPAN').textContent", "'lower'"); - shouldBe("document.querySelector('div p').textContent", "'UPPER'"); + setup({ single_test: true }); + assert_equals(document.querySelector('div SPAN').textContent, 'lower'); + assert_equals(document.querySelector('div p').textContent, 'UPPER'); - shouldBeTrue("document.getElementById('lower1').webkitMatchesSelector('div SPAN')"); - shouldBeTrue("document.getElementById('UPPER1').webkitMatchesSelector('div p')"); - </script> + assert_true(document.getElementById('lower1').webkitMatchesSelector('div SPAN')); + assert_true(document.getElementById('UPPER1').webkitMatchesSelector('div p')); + done(); +</script> </body> </html>
diff --git a/third_party/blink/web_tests/fast/dom/SelectorAPI/detached-element-expected.txt b/third_party/blink/web_tests/fast/dom/SelectorAPI/detached-element-expected.txt deleted file mode 100644 index 7dfd52da..0000000 --- a/third_party/blink/web_tests/fast/dom/SelectorAPI/detached-element-expected.txt +++ /dev/null
@@ -1,18 +0,0 @@ -This tests that querySelector, querySelectorAll and matchesSelector (webkitMatchesSelector) work with elements that are not in a document yet. - -On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE". - -PASS root.querySelector('div') is correctNode -PASS root.querySelector('#testId') is correctNode -PASS root.querySelectorAll('div').length is 1 -PASS root.querySelectorAll('div').item(0) is correctNode -PASS root.querySelectorAll('#testId').length is 1 -PASS root.querySelectorAll('#testId').item(0) is correctNode -PASS noChild.querySelector('div') is null -PASS noChild.querySelectorAll('div').length is 0 -PASS correctNode.webkitMatchesSelector('div') is true -PASS correctNode.webkitMatchesSelector('#testId') is true -PASS successfullyParsed is true - -TEST COMPLETE -
diff --git a/third_party/blink/web_tests/fast/dom/SelectorAPI/detached-element.html b/third_party/blink/web_tests/fast/dom/SelectorAPI/detached-element.html index cebc4a5..5066235f2 100644 --- a/third_party/blink/web_tests/fast/dom/SelectorAPI/detached-element.html +++ b/third_party/blink/web_tests/fast/dom/SelectorAPI/detached-element.html
@@ -1,33 +1,34 @@ <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN"> <html> <head> -<script src="../../../resources/js-test.js"></script> +<title>This tests that querySelector, querySelectorAll and matchesSelector (webkitMatchesSelector) work with elements that are not in a document yet.</title> +<script src="../../../resources/testharness.js"></script> +<script src="../../../resources/testharnessreport.js"></script> </head> <body> <script> -description( -"This tests that querySelector, querySelectorAll and matchesSelector (webkitMatchesSelector) work with elements that are not in a document yet." -); +setup({ single_test: true }); var root = document.createElement('div'); var correctNode = document.createElement('div'); -correctNode.setAttribute("id", "testId") +correctNode.setAttribute("id", "testId"); root.appendChild(correctNode); var noChild = document.createElement('div'); -shouldBe("root.querySelector('div')", "correctNode"); -shouldBe("root.querySelector('#testId')", "correctNode"); +assert_equals(root.querySelector('div'), correctNode); +assert_equals(root.querySelector('#testId'), correctNode); -shouldBe("root.querySelectorAll('div').length", "1"); -shouldBe("root.querySelectorAll('div').item(0)", "correctNode"); -shouldBe("root.querySelectorAll('#testId').length", "1"); -shouldBe("root.querySelectorAll('#testId').item(0)", "correctNode"); +assert_equals(root.querySelectorAll('div').length, 1); +assert_equals(root.querySelectorAll('div').item(0), correctNode); +assert_equals(root.querySelectorAll('#testId').length, 1); +assert_equals(root.querySelectorAll('#testId').item(0), correctNode); -shouldBeNull("noChild.querySelector('div')"); -shouldBe("noChild.querySelectorAll('div').length", "0"); +assert_equals(noChild.querySelector('div'), null); +assert_equals(noChild.querySelectorAll('div').length, 0); -shouldBeTrue("correctNode.webkitMatchesSelector('div')"); -shouldBeTrue("correctNode.webkitMatchesSelector('#testId')"); +assert_true(correctNode.webkitMatchesSelector('div')); +assert_true(correctNode.webkitMatchesSelector('#testId')); +done(); </script> </body> </html>
diff --git a/third_party/blink/web_tests/fast/dom/SelectorAPI/document-fragment-nth-expected.txt b/third_party/blink/web_tests/fast/dom/SelectorAPI/document-fragment-nth-expected.txt deleted file mode 100644 index 4c270f7..0000000 --- a/third_party/blink/web_tests/fast/dom/SelectorAPI/document-fragment-nth-expected.txt +++ /dev/null
@@ -1,9 +0,0 @@ -DocumentFragment.querySelector matching nth-child of fragment. - -On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE". - -PASS fragment.querySelector(":nth-child(12)").id is "pass" -PASS successfullyParsed is true - -TEST COMPLETE -
diff --git a/third_party/blink/web_tests/fast/dom/SelectorAPI/document-fragment-nth.html b/third_party/blink/web_tests/fast/dom/SelectorAPI/document-fragment-nth.html index b4cd8236..f96897d40 100644 --- a/third_party/blink/web_tests/fast/dom/SelectorAPI/document-fragment-nth.html +++ b/third_party/blink/web_tests/fast/dom/SelectorAPI/document-fragment-nth.html
@@ -1,15 +1,19 @@ <!DOCTYPE html> -<script src="../../../resources/js-test.js"></script> +<title>DocumentFragment.querySelector matching nth-child of fragment.</title> +<script src="../../../resources/testharness.js"></script> +<script src="../../../resources/testharnessreport.js"></script> <script> -description("DocumentFragment.querySelector matching nth-child of fragment."); +setup({ single_test: true }); + var fragment = document.createDocumentFragment(); for (var i = 0; i < 12; i++) { - var child = document.createElement("span"); - if (i == 11) - child.id = "pass"; - fragment.appendChild(child); + var child = document.createElement("span"); + if (i == 11) + child.id = "pass"; + fragment.appendChild(child); } -shouldBe('fragment.querySelector(":nth-child(12)").id', '"pass"'); +assert_equals(fragment.querySelector(":nth-child(12)").id, "pass"); +done(); </script>
diff --git a/third_party/blink/web_tests/fast/dom/SelectorAPI/dumpNodeList-2-expected.txt b/third_party/blink/web_tests/fast/dom/SelectorAPI/dumpNodeList-2-expected.txt deleted file mode 100644 index e4cccb2..0000000 --- a/third_party/blink/web_tests/fast/dom/SelectorAPI/dumpNodeList-2-expected.txt +++ /dev/null
@@ -1,12 +0,0 @@ -line 4 - -line 5 - -PASS testQuerySelectorAll(document, ".target + div") is "[object HTMLDivElement], [object HTMLDivElement], length: 2" -PASS testQuerySelectorAll(document.getElementById("test"), ".target + div") is "[object HTMLDivElement], [object HTMLDivElement], length: 2" -PASS testQuerySelectorAll(document.getElementById("test2"), ".target + div") is "length: 0" -PASS testQuerySelectorAll(document.getElementById("test3"), ".target + div") is "length: 0" -PASS successfullyParsed is true - -TEST COMPLETE -
diff --git a/third_party/blink/web_tests/fast/dom/SelectorAPI/dumpNodeList-2.html b/third_party/blink/web_tests/fast/dom/SelectorAPI/dumpNodeList-2.html index 073145d..fb396fc1 100644 --- a/third_party/blink/web_tests/fast/dom/SelectorAPI/dumpNodeList-2.html +++ b/third_party/blink/web_tests/fast/dom/SelectorAPI/dumpNodeList-2.html
@@ -1,7 +1,9 @@ <!doctype html> <html> <head> -<script src="../../../resources/js-test.js"></script> +<title>fast/dom/SelectorAPI/dumpNodeList-2.html</title> +<script src="../../../resources/testharness.js"></script> +<script src="../../../resources/testharnessreport.js"></script> </head> <body> <div id="test"> @@ -19,29 +21,31 @@ </div> <pre id="console"></pre> <script> -NodeList.prototype.dump = function() +setup({ single_test: true }); +NodeList.prototype.dump = function () { - var result = ""; - var length = this.length; - for (var i = 0; i < length; i++) - result += this[i] + ", "; - result += "length: " + length; - return result; -} + var result = ""; + var length = this.length; + for (var i = 0; i < length; i++) + result += this[i] + ", "; + result += "length: " + length; + return result; +}; function testQuerySelectorAll(node, selectorString) { - try { - return node.querySelectorAll(selectorString).dump(); - } catch (e) { - return "" + e; - } + try { + return node.querySelectorAll(selectorString).dump(); + } catch (e) { + return "" + e; + } } -shouldBeEqualToString('testQuerySelectorAll(document, ".target + div")', "[object HTMLDivElement], [object HTMLDivElement], length: 2"); -shouldBeEqualToString('testQuerySelectorAll(document.getElementById("test"), ".target + div")', "[object HTMLDivElement], [object HTMLDivElement], length: 2"); -shouldBeEqualToString('testQuerySelectorAll(document.getElementById("test2"), ".target + div")', "length: 0"); -shouldBeEqualToString('testQuerySelectorAll(document.getElementById("test3"), ".target + div")', "length: 0"); +assert_equals(testQuerySelectorAll(document, ".target + div"), "[object HTMLDivElement], [object HTMLDivElement], length: 2"); +assert_equals(testQuerySelectorAll(document.getElementById("test"), ".target + div"), "[object HTMLDivElement], [object HTMLDivElement], length: 2"); +assert_equals(testQuerySelectorAll(document.getElementById("test2"), ".target + div"), "length: 0"); +assert_equals(testQuerySelectorAll(document.getElementById("test3"), ".target + div"), "length: 0"); +done(); </script> </body> </html>
diff --git a/third_party/blink/web_tests/fast/dom/SelectorAPI/duplicate-id-scope-expected.txt b/third_party/blink/web_tests/fast/dom/SelectorAPI/duplicate-id-scope-expected.txt deleted file mode 100644 index 2ceaa5a1..0000000 --- a/third_party/blink/web_tests/fast/dom/SelectorAPI/duplicate-id-scope-expected.txt +++ /dev/null
@@ -1,13 +0,0 @@ -Test that CSS selector queries on duplicate Ids respect scope. - -On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE". - -PASS document.querySelectorAll('#duplicateId1').length is 6 -PASS document.querySelectorAll('#duplicateId2').length is 2 -PASS scopeDiv.querySelectorAll('#duplicateId1').length is 4 -PASS scopeDiv.querySelector('#duplicateId2') is null -PASS scopeDiv.querySelectorAll('#duplicateId2').length is 0 -PASS successfullyParsed is true - -TEST COMPLETE -
diff --git a/third_party/blink/web_tests/fast/dom/SelectorAPI/duplicate-id-scope.html b/third_party/blink/web_tests/fast/dom/SelectorAPI/duplicate-id-scope.html index 408fab8ed..afc4b08 100644 --- a/third_party/blink/web_tests/fast/dom/SelectorAPI/duplicate-id-scope.html +++ b/third_party/blink/web_tests/fast/dom/SelectorAPI/duplicate-id-scope.html
@@ -1,7 +1,9 @@ <!DOCTYPE html> <html> <head> -<script src="../../../resources/js-test.js"></script> +<title>Test that CSS selector queries on duplicate Ids respect scope.</title> +<script src="../../../resources/testharness.js"></script> +<script src="../../../resources/testharnessreport.js"></script> </head> <body> <span id="duplicateId1"></span> @@ -15,15 +17,16 @@ <span id="duplicateId1"></span> </div> <script> - description("Test that CSS selector queries on duplicate Ids respect scope."); + setup({ single_test: true }); - shouldBe("document.querySelectorAll('#duplicateId1').length", "6"); - shouldBe("document.querySelectorAll('#duplicateId2').length", "2"); + assert_equals(document.querySelectorAll('#duplicateId1').length, 6); + assert_equals(document.querySelectorAll('#duplicateId2').length, 2); - scopeDiv = document.getElementById("scopeDiv"); - shouldBe("scopeDiv.querySelectorAll('#duplicateId1').length", "4"); - shouldBeNull("scopeDiv.querySelector('#duplicateId2')"); - shouldBe("scopeDiv.querySelectorAll('#duplicateId2').length", "0"); - </script> + scopeDiv = document.getElementById("scopeDiv"); + assert_equals(scopeDiv.querySelectorAll('#duplicateId1').length, 4); + assert_equals(scopeDiv.querySelector('#duplicateId2'), null); + assert_equals(scopeDiv.querySelectorAll('#duplicateId2').length, 0); + done(); +</script> </body> </html>
diff --git a/third_party/blink/web_tests/fast/dom/SelectorAPI/elementRoot-expected.txt b/third_party/blink/web_tests/fast/dom/SelectorAPI/elementRoot-expected.txt deleted file mode 100644 index 3f08cdcb4..0000000 --- a/third_party/blink/web_tests/fast/dom/SelectorAPI/elementRoot-expected.txt +++ /dev/null
@@ -1,13 +0,0 @@ -This tests that querySelector and querySelectorAll don't search outside their root node. - -On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE". - -PASS root.querySelector('div') is correctNode -PASS root.querySelectorAll('div').length is 1 -PASS root.querySelectorAll('div').item(0) is correctNode -PASS noChild.querySelector('div') is null -PASS noChild.querySelectorAll('div').length is 0 -PASS successfullyParsed is true - -TEST COMPLETE -
diff --git a/third_party/blink/web_tests/fast/dom/SelectorAPI/elementRoot.html b/third_party/blink/web_tests/fast/dom/SelectorAPI/elementRoot.html index 98a494fb..8d66a48 100644 --- a/third_party/blink/web_tests/fast/dom/SelectorAPI/elementRoot.html +++ b/third_party/blink/web_tests/fast/dom/SelectorAPI/elementRoot.html
@@ -1,13 +1,13 @@ <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN"> <html> <head> -<script src="../../../resources/js-test.js"></script> +<title>This tests that querySelector and querySelectorAll don't search outside their root node.</title> +<script src="../../../resources/testharness.js"></script> +<script src="../../../resources/testharnessreport.js"></script> </head> <body> <script> -description( -"This tests that querySelector and querySelectorAll don't search outside their root node." -); +setup({ single_test: true }); var root = document.createElement('div'); var correctNode = document.createElement('div'); @@ -16,12 +16,13 @@ var noChild = document.createElement('div'); document.body.appendChild(noChild); -shouldBe("root.querySelector('div')", "correctNode"); -shouldBe("root.querySelectorAll('div').length", "1"); -shouldBe("root.querySelectorAll('div').item(0)", "correctNode"); +assert_equals(root.querySelector('div'), correctNode); +assert_equals(root.querySelectorAll('div').length, 1); +assert_equals(root.querySelectorAll('div').item(0), correctNode); -shouldBeNull("noChild.querySelector('div')"); -shouldBe("noChild.querySelectorAll('div').length", "0"); +assert_equals(noChild.querySelector('div'), null); +assert_equals(noChild.querySelectorAll('div').length, 0); +done(); </script> </body> </html>
diff --git a/third_party/blink/web_tests/fast/dom/SelectorAPI/id-fastpath-almost-strict-expected.txt b/third_party/blink/web_tests/fast/dom/SelectorAPI/id-fastpath-almost-strict-expected.txt deleted file mode 100644 index 805bbdcebb..0000000 --- a/third_party/blink/web_tests/fast/dom/SelectorAPI/id-fastpath-almost-strict-expected.txt +++ /dev/null
@@ -1,22 +0,0 @@ -This tests that the querySelector and querySelectorAll fast path for IDs in almost strict mode. - -On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE". - -PASS document.querySelector('#testId') is correctNode -PASS document.querySelector('div#testId') is correctNode -PASS document.querySelector('ul#testId') is null -PASS document.querySelector('ul #testId') is null -PASS document.querySelector('#testId[attr]') is null -PASS document.querySelector('#testId:not(div)') is null -PASS document.querySelectorAll('div#testId').length is 1 -PASS document.querySelectorAll('div#testId').item(0) is correctNode -PASS document.querySelectorAll('#testId').length is 1 -PASS document.querySelectorAll('#testId').item(0) is correctNode -PASS document.querySelectorAll('ul#testId').length is 0 -PASS document.querySelectorAll('ul #testId').length is 0 -PASS document.querySelectorAll('#testId[attr]').length is 0 -PASS document.querySelectorAll('#testId:not(div)').length is 0 -PASS successfullyParsed is true - -TEST COMPLETE -
diff --git a/third_party/blink/web_tests/fast/dom/SelectorAPI/id-fastpath-almost-strict.html b/third_party/blink/web_tests/fast/dom/SelectorAPI/id-fastpath-almost-strict.html index e8b1b87..11a9bc5 100644 --- a/third_party/blink/web_tests/fast/dom/SelectorAPI/id-fastpath-almost-strict.html +++ b/third_party/blink/web_tests/fast/dom/SelectorAPI/id-fastpath-almost-strict.html
@@ -1,7 +1,9 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> -<script src="../../../resources/js-test.js"></script> +<title>This tests that the querySelector and querySelectorAll fast path for IDs in almost strict mode.</title> +<script src="../../../resources/testharness.js"></script> +<script src="../../../resources/testharnessreport.js"></script> </head> <body> <script src="resources/id-fastpath-almost-strict.js"></script>
diff --git a/third_party/blink/web_tests/fast/dom/SelectorAPI/id-fastpath-expected.txt b/third_party/blink/web_tests/fast/dom/SelectorAPI/id-fastpath-expected.txt deleted file mode 100644 index 35507c5..0000000 --- a/third_party/blink/web_tests/fast/dom/SelectorAPI/id-fastpath-expected.txt +++ /dev/null
@@ -1,22 +0,0 @@ -This tests that the querySelector and querySelectorAll fast path for IDs is not overzelous. - -On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE". - -PASS document.querySelector('div#testid') is correctNode -PASS document.querySelector('#testid') is correctNode -PASS document.querySelector('ul#testid') is null -PASS document.querySelector('ul #testid') is null -PASS document.querySelector('#testid[attr]') is null -PASS document.querySelector('#testid:not(div)') is null -PASS document.querySelectorAll('div#testid').length is 1 -PASS document.querySelectorAll('div#testid').item(0) is correctNode -PASS document.querySelectorAll('#testid').length is 1 -PASS document.querySelectorAll('#testid').item(0) is correctNode -PASS document.querySelectorAll('ul#testid').length is 0 -PASS document.querySelectorAll('ul #testid').length is 0 -PASS document.querySelectorAll('#testid[attr]').length is 0 -PASS document.querySelectorAll('#testid:not(div)').length is 0 -PASS successfullyParsed is true - -TEST COMPLETE -
diff --git a/third_party/blink/web_tests/fast/dom/SelectorAPI/id-fastpath-strict-expected.txt b/third_party/blink/web_tests/fast/dom/SelectorAPI/id-fastpath-strict-expected.txt deleted file mode 100644 index 56d67c8..0000000 --- a/third_party/blink/web_tests/fast/dom/SelectorAPI/id-fastpath-strict-expected.txt +++ /dev/null
@@ -1,22 +0,0 @@ -This tests that the querySelector and querySelectorAll fast path for IDs is not overzelous. - -On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE". - -PASS document.querySelector('#testId') is correctNode -PASS document.querySelector('div#testId') is correctNode -PASS document.querySelector('ul#testId') is null -PASS document.querySelector('ul #testId') is null -PASS document.querySelector('#testId[attr]') is null -PASS document.querySelector('#testId:not(div)') is null -PASS document.querySelectorAll('div#testId').length is 1 -PASS document.querySelectorAll('div#testId').item(0) is correctNode -PASS document.querySelectorAll('#testId').length is 1 -PASS document.querySelectorAll('#testId').item(0) is correctNode -PASS document.querySelectorAll('ul#testId').length is 0 -PASS document.querySelectorAll('ul #testId').length is 0 -PASS document.querySelectorAll('#testId[attr]').length is 0 -PASS document.querySelectorAll('#testId:not(div)').length is 0 -PASS successfullyParsed is true - -TEST COMPLETE -
diff --git a/third_party/blink/web_tests/fast/dom/SelectorAPI/id-fastpath-strict.html b/third_party/blink/web_tests/fast/dom/SelectorAPI/id-fastpath-strict.html index 7e8dc9d..e073dde 100644 --- a/third_party/blink/web_tests/fast/dom/SelectorAPI/id-fastpath-strict.html +++ b/third_party/blink/web_tests/fast/dom/SelectorAPI/id-fastpath-strict.html
@@ -2,7 +2,9 @@ "http://www.w3.org/TR/html4/strict.dtd"> <html> <head> -<script src="../../../resources/js-test.js"></script> +<title>This tests that the querySelector and querySelectorAll fast path for IDs is not overzelous.</title> +<script src="../../../resources/testharness.js"></script> +<script src="../../../resources/testharnessreport.js"></script> </head> <body> <script src="resources/id-fastpath-strict.js"></script>
diff --git a/third_party/blink/web_tests/fast/dom/SelectorAPI/id-fastpath.html b/third_party/blink/web_tests/fast/dom/SelectorAPI/id-fastpath.html index db578ff..faadd8b4 100644 --- a/third_party/blink/web_tests/fast/dom/SelectorAPI/id-fastpath.html +++ b/third_party/blink/web_tests/fast/dom/SelectorAPI/id-fastpath.html
@@ -1,35 +1,36 @@ <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN"> <html> <head> -<script src="../../../resources/js-test.js"></script> +<title>This tests that the querySelector and querySelectorAll fast path for IDs is not overzelous.</title> +<script src="../../../resources/testharness.js"></script> +<script src="../../../resources/testharnessreport.js"></script> </head> <body> <script> -description( -"This tests that the querySelector and querySelectorAll fast path for IDs is not overzelous." -); +setup({ single_test: true }); var root = document.createElement('div'); var correctNode = document.createElement('div'); -correctNode.setAttribute("id", "testid") +correctNode.setAttribute("id", "testid"); root.appendChild(correctNode); document.body.appendChild(root); -shouldBe("document.querySelector('div#testid')", "correctNode"); -shouldBe("document.querySelector('#testid')", "correctNode"); -shouldBeNull("document.querySelector('ul#testid')"); -shouldBeNull("document.querySelector('ul #testid')"); -shouldBeNull("document.querySelector('#testid[attr]')"); -shouldBeNull("document.querySelector('#testid:not(div)')"); +assert_equals(document.querySelector('div#testid'), correctNode); +assert_equals(document.querySelector('#testid'), correctNode); +assert_equals(document.querySelector('ul#testid'), null); +assert_equals(document.querySelector('ul #testid'), null); +assert_equals(document.querySelector('#testid[attr]'), null); +assert_equals(document.querySelector('#testid:not(div)'), null); -shouldBe("document.querySelectorAll('div#testid').length", "1"); -shouldBe("document.querySelectorAll('div#testid').item(0)", "correctNode"); -shouldBe("document.querySelectorAll('#testid').length", "1"); -shouldBe("document.querySelectorAll('#testid').item(0)", "correctNode"); -shouldBe("document.querySelectorAll('ul#testid').length", "0"); -shouldBe("document.querySelectorAll('ul #testid').length", "0"); -shouldBe("document.querySelectorAll('#testid[attr]').length", "0"); -shouldBe("document.querySelectorAll('#testid:not(div)').length", "0"); +assert_equals(document.querySelectorAll('div#testid').length, 1); +assert_equals(document.querySelectorAll('div#testid').item(0), correctNode); +assert_equals(document.querySelectorAll('#testid').length, 1); +assert_equals(document.querySelectorAll('#testid').item(0), correctNode); +assert_equals(document.querySelectorAll('ul#testid').length, 0); +assert_equals(document.querySelectorAll('ul #testid').length, 0); +assert_equals(document.querySelectorAll('#testid[attr]').length, 0); +assert_equals(document.querySelectorAll('#testid:not(div)').length, 0); +done(); </script> </body> </html>
diff --git a/third_party/blink/web_tests/fast/dom/SelectorAPI/loose-subtree-nth-expected.txt b/third_party/blink/web_tests/fast/dom/SelectorAPI/loose-subtree-nth-expected.txt deleted file mode 100644 index 2216eade..0000000 --- a/third_party/blink/web_tests/fast/dom/SelectorAPI/loose-subtree-nth-expected.txt +++ /dev/null
@@ -1,9 +0,0 @@ -Element.querySelector matching nth-child of loose subtree. - -On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE". - -PASS root.querySelector(":nth-child(12)").id is "pass" -PASS successfullyParsed is true - -TEST COMPLETE -
diff --git a/third_party/blink/web_tests/fast/dom/SelectorAPI/loose-subtree-nth.html b/third_party/blink/web_tests/fast/dom/SelectorAPI/loose-subtree-nth.html index cda7c1d..dc5e55c 100644 --- a/third_party/blink/web_tests/fast/dom/SelectorAPI/loose-subtree-nth.html +++ b/third_party/blink/web_tests/fast/dom/SelectorAPI/loose-subtree-nth.html
@@ -1,15 +1,18 @@ <!DOCTYPE html> -<script src="../../../resources/js-test.js"></script> +<title>Element.querySelector matching nth-child of loose subtree.</title> +<script src="../../../resources/testharness.js"></script> +<script src="../../../resources/testharnessreport.js"></script> <script> -description("Element.querySelector matching nth-child of loose subtree."); +setup({ single_test: true }); var root = document.createElement("div"); for (var i = 0; i < 12; i++) { - var child = document.createElement("span"); - if (i == 11) - child.id = "pass"; - root.appendChild(child); + var child = document.createElement("span"); + if (i == 11) + child.id = "pass"; + root.appendChild(child); } -shouldBe('root.querySelector(":nth-child(12)").id', '"pass"'); +assert_equals(root.querySelector(":nth-child(12)").id, "pass"); +done(); </script>
diff --git a/third_party/blink/web_tests/fast/dom/SelectorAPI/namespaced-elements-and-selectors-expected.txt b/third_party/blink/web_tests/fast/dom/SelectorAPI/namespaced-elements-and-selectors-expected.txt deleted file mode 100644 index 0eb400f..0000000 --- a/third_party/blink/web_tests/fast/dom/SelectorAPI/namespaced-elements-and-selectors-expected.txt +++ /dev/null
@@ -1,11 +0,0 @@ -querySelectorAll and namespaces - -On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE". - -PASS sandbox.querySelectorAll('span').length is 3 -PASS sandbox.querySelectorAll('*|span').length is 3 -PASS sandbox.querySelectorAll('|span').length is 1 -PASS successfullyParsed is true - -TEST COMPLETE -
diff --git a/third_party/blink/web_tests/fast/dom/SelectorAPI/namespaced-elements-and-selectors.html b/third_party/blink/web_tests/fast/dom/SelectorAPI/namespaced-elements-and-selectors.html index 2f5a54e..9b0b2d33 100644 --- a/third_party/blink/web_tests/fast/dom/SelectorAPI/namespaced-elements-and-selectors.html +++ b/third_party/blink/web_tests/fast/dom/SelectorAPI/namespaced-elements-and-selectors.html
@@ -1,15 +1,19 @@ <!DOCTYPE html> -<script src="../../../resources/js-test.js"></script> +<title>querySelectorAll and namespaces</title> +<script src="../../../resources/testharness.js"></script> +<script src="../../../resources/testharnessreport.js"></script> <div id="sandbox"> <span></span> </div> <script> -description("querySelectorAll and namespaces"); +setup({ single_test: true }); + sandbox.appendChild(document.createElementNS("http://dummynamespace", "span")); sandbox.appendChild(document.createElementNS("", "span")); -shouldBe("sandbox.querySelectorAll('span').length", "3"); -shouldBe("sandbox.querySelectorAll('*|span').length", "3"); -shouldBe("sandbox.querySelectorAll('|span').length", "1"); +assert_equals(sandbox.querySelectorAll('span').length, 3); +assert_equals(sandbox.querySelectorAll('*|span').length, 3); +assert_equals(sandbox.querySelectorAll('|span').length, 1); +done(); </script>
diff --git a/third_party/blink/web_tests/fast/dom/SelectorAPI/resources/id-fastpath-almost-strict.js b/third_party/blink/web_tests/fast/dom/SelectorAPI/resources/id-fastpath-almost-strict.js index a00ee6c9..2ce7343 100644 --- a/third_party/blink/web_tests/fast/dom/SelectorAPI/resources/id-fastpath-almost-strict.js +++ b/third_party/blink/web_tests/fast/dom/SelectorAPI/resources/id-fastpath-almost-strict.js
@@ -1,25 +1,26 @@ -description( -"This tests that the querySelector and querySelectorAll fast path for IDs in almost strict mode." -); +setup({single_test: true}); + + var root = document.createElement('div'); var correctNode = document.createElement('div'); -correctNode.setAttribute("id", "testId") +correctNode.setAttribute('id', 'testId'); root.appendChild(correctNode); document.body.appendChild(root); -shouldBe("document.querySelector('#testId')", "correctNode"); -shouldBe("document.querySelector('div#testId')", "correctNode"); -shouldBeNull("document.querySelector('ul#testId')"); -shouldBeNull("document.querySelector('ul #testId')"); -shouldBeNull("document.querySelector('#testId[attr]')"); -shouldBeNull("document.querySelector('#testId:not(div)')"); +assert_equals(document.querySelector('#testId'), correctNode); +assert_equals(document.querySelector('div#testId'), correctNode); +assert_equals(document.querySelector('ul#testId'), null); +assert_equals(document.querySelector('ul #testId'), null); +assert_equals(document.querySelector('#testId[attr]'), null); +assert_equals(document.querySelector('#testId:not(div)'), null); -shouldBe("document.querySelectorAll('div#testId').length", "1"); -shouldBe("document.querySelectorAll('div#testId').item(0)", "correctNode"); -shouldBe("document.querySelectorAll('#testId').length", "1"); -shouldBe("document.querySelectorAll('#testId').item(0)", "correctNode"); -shouldBe("document.querySelectorAll('ul#testId').length", "0"); -shouldBe("document.querySelectorAll('ul #testId').length", "0"); -shouldBe("document.querySelectorAll('#testId[attr]').length", "0"); -shouldBe("document.querySelectorAll('#testId:not(div)').length", "0"); +assert_equals(document.querySelectorAll('div#testId').length, 1); +assert_equals(document.querySelectorAll('div#testId').item(0), correctNode); +assert_equals(document.querySelectorAll('#testId').length, 1); +assert_equals(document.querySelectorAll('#testId').item(0), correctNode); +assert_equals(document.querySelectorAll('ul#testId').length, 0); +assert_equals(document.querySelectorAll('ul #testId').length, 0); +assert_equals(document.querySelectorAll('#testId[attr]').length, 0); +assert_equals(document.querySelectorAll('#testId:not(div)').length, 0); +done(); \ No newline at end of file
diff --git a/third_party/blink/web_tests/fast/dom/SelectorAPI/resources/id-fastpath-strict.js b/third_party/blink/web_tests/fast/dom/SelectorAPI/resources/id-fastpath-strict.js index b52d5e3..3cf933a 100644 --- a/third_party/blink/web_tests/fast/dom/SelectorAPI/resources/id-fastpath-strict.js +++ b/third_party/blink/web_tests/fast/dom/SelectorAPI/resources/id-fastpath-strict.js
@@ -1,26 +1,27 @@ -description( -"This tests that the querySelector and querySelectorAll fast path for IDs is not overzelous." -); +setup({single_test: true}); + + var root = document.createElement('div'); var correctNode = document.createElement('div'); -correctNode.setAttribute("id", "testId") +correctNode.setAttribute('id', 'testId'); root.appendChild(correctNode); document.body.appendChild(root); -shouldBe("document.querySelector('#testId')", "correctNode"); -shouldBe("document.querySelector('div#testId')", "correctNode"); -shouldBeNull("document.querySelector('ul#testId')"); -shouldBeNull("document.querySelector('ul #testId')"); -shouldBeNull("document.querySelector('#testId[attr]')"); -shouldBeNull("document.querySelector('#testId:not(div)')"); +assert_equals(document.querySelector('#testId'), correctNode); +assert_equals(document.querySelector('div#testId'), correctNode); +assert_equals(document.querySelector('ul#testId'), null); +assert_equals(document.querySelector('ul #testId'), null); +assert_equals(document.querySelector('#testId[attr]'), null); +assert_equals(document.querySelector('#testId:not(div)'), null); -shouldBe("document.querySelectorAll('div#testId').length", "1"); -shouldBe("document.querySelectorAll('div#testId').item(0)", "correctNode"); -shouldBe("document.querySelectorAll('#testId').length", "1"); -shouldBe("document.querySelectorAll('#testId').item(0)", "correctNode"); -shouldBe("document.querySelectorAll('ul#testId').length", "0"); -shouldBe("document.querySelectorAll('ul #testId').length", "0"); -shouldBe("document.querySelectorAll('#testId[attr]').length", "0"); -shouldBe("document.querySelectorAll('#testId:not(div)').length", "0"); +assert_equals(document.querySelectorAll('div#testId').length, 1); +assert_equals(document.querySelectorAll('div#testId').item(0), correctNode); +assert_equals(document.querySelectorAll('#testId').length, 1); +assert_equals(document.querySelectorAll('#testId').item(0), correctNode); +assert_equals(document.querySelectorAll('ul#testId').length, 0); +assert_equals(document.querySelectorAll('ul #testId').length, 0); +assert_equals(document.querySelectorAll('#testId[attr]').length, 0); +assert_equals(document.querySelectorAll('#testId:not(div)').length, 0); +done(); \ No newline at end of file
diff --git a/third_party/blink/web_tests/fast/dom/SelectorAPI/undefined-null-stringify-expected.txt b/third_party/blink/web_tests/fast/dom/SelectorAPI/undefined-null-stringify-expected.txt deleted file mode 100644 index 781625e2..0000000 --- a/third_party/blink/web_tests/fast/dom/SelectorAPI/undefined-null-stringify-expected.txt +++ /dev/null
@@ -1,16 +0,0 @@ -This tests that the querySelector, querySelectorAll and matchesSelector (webkitMatchesSelector) correctly stringify null and undefined to "null" and "undefined". - -On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE". - -PASS document.querySelector(null) is nullNode -PASS document.querySelector(undefined) is undefinedNode -PASS document.querySelectorAll(null).length is 1 -PASS document.querySelectorAll(null).item(0) is nullNode -PASS document.querySelectorAll(undefined).length is 1 -PASS document.querySelectorAll(undefined).item(0) is undefinedNode -PASS nullNode.webkitMatchesSelector(null) is true -PASS undefinedNode.webkitMatchesSelector(undefined) is true -PASS successfullyParsed is true - -TEST COMPLETE -
diff --git a/third_party/blink/web_tests/fast/dom/SelectorAPI/undefined-null-stringify.html b/third_party/blink/web_tests/fast/dom/SelectorAPI/undefined-null-stringify.html index 18b9911e..9b41c2ae 100644 --- a/third_party/blink/web_tests/fast/dom/SelectorAPI/undefined-null-stringify.html +++ b/third_party/blink/web_tests/fast/dom/SelectorAPI/undefined-null-stringify.html
@@ -1,13 +1,13 @@ <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN"> <html> <head> -<script src="../../../resources/js-test.js"></script> +<title>This tests that the querySelector, querySelectorAll and matchesSelector (webkitMatchesSelector) correctly stringify null and undefined to "null" and "undefined".</title> +<script src="../../../resources/testharness.js"></script> +<script src="../../../resources/testharnessreport.js"></script> </head> <body> <script> -description( -"This tests that the querySelector, querySelectorAll and matchesSelector (webkitMatchesSelector) correctly stringify null and undefined to \"null\" and \"undefined\"." -); +setup({ single_test: true }); var root = document.createElement('div'); var nullNode = document.createElement('null'); @@ -16,16 +16,17 @@ root.appendChild(undefinedNode); document.body.appendChild(root); -shouldBe("document.querySelector(null)", "nullNode"); -shouldBe("document.querySelector(undefined)", "undefinedNode"); +assert_equals(document.querySelector(null), nullNode); +assert_equals(document.querySelector(undefined), undefinedNode); -shouldBe("document.querySelectorAll(null).length", "1"); -shouldBe("document.querySelectorAll(null).item(0)", "nullNode"); -shouldBe("document.querySelectorAll(undefined).length", "1"); -shouldBe("document.querySelectorAll(undefined).item(0)", "undefinedNode"); +assert_equals(document.querySelectorAll(null).length, 1); +assert_equals(document.querySelectorAll(null).item(0), nullNode); +assert_equals(document.querySelectorAll(undefined).length, 1); +assert_equals(document.querySelectorAll(undefined).item(0), undefinedNode); -shouldBeTrue("nullNode.webkitMatchesSelector(null)"); -shouldBeTrue("undefinedNode.webkitMatchesSelector(undefined)"); +assert_true(nullNode.webkitMatchesSelector(null)); +assert_true(undefinedNode.webkitMatchesSelector(undefined)); +done(); </script> </body> </html>
diff --git a/third_party/blink/web_tests/fast/dom/SelectorAPI/viewless-document-expected.txt b/third_party/blink/web_tests/fast/dom/SelectorAPI/viewless-document-expected.txt deleted file mode 100644 index 4e54eea..0000000 --- a/third_party/blink/web_tests/fast/dom/SelectorAPI/viewless-document-expected.txt +++ /dev/null
@@ -1,17 +0,0 @@ -This tests that querySelector, querySelectorAll and matchesSelector (webkitMatchesSelector) don't crash when used in a viewless document. - -On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE". - -PASS testDoc.querySelector('p') is p1 -PASS testDoc.querySelectorAll('span').length is 2 -PASS testDoc.querySelectorAll('span').item(1) is s2 -PASS testDoc.querySelector('.d1') is d1 -PASS testDoc.querySelectorAll('p span').length is 1 -PASS p1.webkitMatchesSelector('p') is true -PASS s1.webkitMatchesSelector('p span') is true -PASS s2.webkitMatchesSelector('#s2') is true -PASS d1.webkitMatchesSelector('.d1') is true -PASS successfullyParsed is true - -TEST COMPLETE -
diff --git a/third_party/blink/web_tests/fast/dom/SelectorAPI/viewless-document.html b/third_party/blink/web_tests/fast/dom/SelectorAPI/viewless-document.html index 953a24e0..493b9a4 100644 --- a/third_party/blink/web_tests/fast/dom/SelectorAPI/viewless-document.html +++ b/third_party/blink/web_tests/fast/dom/SelectorAPI/viewless-document.html
@@ -1,13 +1,13 @@ <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN"> <html> <head> -<script src="../../../resources/js-test.js"></script> +<title>This tests that querySelector, querySelectorAll and matchesSelector (webkitMatchesSelector) don't crash when used in a viewless document.</title> +<script src="../../../resources/testharness.js"></script> +<script src="../../../resources/testharnessreport.js"></script> </head> <body> <script> -description( -"This tests that querySelector, querySelectorAll and matchesSelector (webkitMatchesSelector) don't crash when used in a viewless document." -); +setup({ single_test: true }); var testDoc = document.implementation.createDocument("http://www.w3.org/1999/xhtml", "html"); testDoc.documentElement.appendChild(testDoc.createElement("body")); @@ -21,16 +21,17 @@ var s2 = testDoc.getElementById("s2"); var d1 = testDoc.body.lastChild; -shouldBe("testDoc.querySelector('p')", "p1"); -shouldBe("testDoc.querySelectorAll('span').length", "2"); -shouldBe("testDoc.querySelectorAll('span').item(1)", "s2"); -shouldBe("testDoc.querySelector('.d1')", "d1"); -shouldBe("testDoc.querySelectorAll('p span').length", "1"); +assert_equals(testDoc.querySelector('p'), p1); +assert_equals(testDoc.querySelectorAll('span').length, 2); +assert_equals(testDoc.querySelectorAll('span').item(1), s2); +assert_equals(testDoc.querySelector('.d1'), d1); +assert_equals(testDoc.querySelectorAll('p span').length, 1); -shouldBeTrue("p1.webkitMatchesSelector('p')"); -shouldBeTrue("s1.webkitMatchesSelector('p span')"); -shouldBeTrue("s2.webkitMatchesSelector('#s2')"); -shouldBeTrue("d1.webkitMatchesSelector('.d1')"); +assert_true(p1.webkitMatchesSelector('p')); +assert_true(s1.webkitMatchesSelector('p span')); +assert_true(s2.webkitMatchesSelector('#s2')); +assert_true(d1.webkitMatchesSelector('.d1')); +done(); </script> </body> </html>
diff --git a/third_party/blink/web_tests/platform/linux/external/wpt/css/css-cascade/important-transition-manual-expected.png b/third_party/blink/web_tests/platform/linux/external/wpt/css/css-cascade/important-transition-manual-expected.png new file mode 100644 index 0000000..d065f26 --- /dev/null +++ b/third_party/blink/web_tests/platform/linux/external/wpt/css/css-cascade/important-transition-manual-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/fast/forms/validation-bubble-device-emulation-change-expected.png b/third_party/blink/web_tests/platform/linux/fast/forms/validation-bubble-device-emulation-change-expected.png index b95a9c2..9da30f86 100644 --- a/third_party/blink/web_tests/platform/linux/fast/forms/validation-bubble-device-emulation-change-expected.png +++ b/third_party/blink/web_tests/platform/linux/fast/forms/validation-bubble-device-emulation-change-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/fast/forms/validation-bubble-device-emulation-expected.png b/third_party/blink/web_tests/platform/linux/fast/forms/validation-bubble-device-emulation-expected.png index b95a9c2..68aef42 100644 --- a/third_party/blink/web_tests/platform/linux/fast/forms/validation-bubble-device-emulation-expected.png +++ b/third_party/blink/web_tests/platform/linux/fast/forms/validation-bubble-device-emulation-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.12/fast/forms/validation-bubble-device-emulation-change-expected.png b/third_party/blink/web_tests/platform/mac-mac10.12/fast/forms/validation-bubble-device-emulation-change-expected.png index 548f3506..bdcc70d 100644 --- a/third_party/blink/web_tests/platform/mac-mac10.12/fast/forms/validation-bubble-device-emulation-change-expected.png +++ b/third_party/blink/web_tests/platform/mac-mac10.12/fast/forms/validation-bubble-device-emulation-change-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.12/fast/forms/validation-bubble-device-emulation-expected.png b/third_party/blink/web_tests/platform/mac-mac10.12/fast/forms/validation-bubble-device-emulation-expected.png index 548f3506..9bcd6b5 100644 --- a/third_party/blink/web_tests/platform/mac-mac10.12/fast/forms/validation-bubble-device-emulation-expected.png +++ b/third_party/blink/web_tests/platform/mac-mac10.12/fast/forms/validation-bubble-device-emulation-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.13/fast/forms/validation-bubble-device-emulation-change-expected.png b/third_party/blink/web_tests/platform/mac-mac10.13/fast/forms/validation-bubble-device-emulation-change-expected.png index f201688..91529ff 100644 --- a/third_party/blink/web_tests/platform/mac-mac10.13/fast/forms/validation-bubble-device-emulation-change-expected.png +++ b/third_party/blink/web_tests/platform/mac-mac10.13/fast/forms/validation-bubble-device-emulation-change-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.13/fast/forms/validation-bubble-device-emulation-expected.png b/third_party/blink/web_tests/platform/mac-mac10.13/fast/forms/validation-bubble-device-emulation-expected.png index f201688..b22026a7 100644 --- a/third_party/blink/web_tests/platform/mac-mac10.13/fast/forms/validation-bubble-device-emulation-expected.png +++ b/third_party/blink/web_tests/platform/mac-mac10.13/fast/forms/validation-bubble-device-emulation-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.14/fast/forms/validation-bubble-device-emulation-change-expected.png b/third_party/blink/web_tests/platform/mac-mac10.14/fast/forms/validation-bubble-device-emulation-change-expected.png index feaa1d9..377f349 100644 --- a/third_party/blink/web_tests/platform/mac-mac10.14/fast/forms/validation-bubble-device-emulation-change-expected.png +++ b/third_party/blink/web_tests/platform/mac-mac10.14/fast/forms/validation-bubble-device-emulation-change-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.14/fast/forms/validation-bubble-device-emulation-expected.png b/third_party/blink/web_tests/platform/mac-mac10.14/fast/forms/validation-bubble-device-emulation-expected.png index feaa1d9..b0cbc8b 100644 --- a/third_party/blink/web_tests/platform/mac-mac10.14/fast/forms/validation-bubble-device-emulation-expected.png +++ b/third_party/blink/web_tests/platform/mac-mac10.14/fast/forms/validation-bubble-device-emulation-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac/external/wpt/css/css-cascade/important-transition-manual-expected.png b/third_party/blink/web_tests/platform/mac/external/wpt/css/css-cascade/important-transition-manual-expected.png new file mode 100644 index 0000000..a62ef39 --- /dev/null +++ b/third_party/blink/web_tests/platform/mac/external/wpt/css/css-cascade/important-transition-manual-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac/fast/forms/validation-bubble-device-emulation-change-expected.png b/third_party/blink/web_tests/platform/mac/fast/forms/validation-bubble-device-emulation-change-expected.png index ef3cbc3..43d0978 100644 --- a/third_party/blink/web_tests/platform/mac/fast/forms/validation-bubble-device-emulation-change-expected.png +++ b/third_party/blink/web_tests/platform/mac/fast/forms/validation-bubble-device-emulation-change-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac/fast/forms/validation-bubble-device-emulation-expected.png b/third_party/blink/web_tests/platform/mac/fast/forms/validation-bubble-device-emulation-expected.png index ef3cbc3..3a386dd7 100644 --- a/third_party/blink/web_tests/platform/mac/fast/forms/validation-bubble-device-emulation-expected.png +++ b/third_party/blink/web_tests/platform/mac/fast/forms/validation-bubble-device-emulation-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/external/wpt/css/css-cascade/important-transition-manual-expected.png b/third_party/blink/web_tests/platform/win/external/wpt/css/css-cascade/important-transition-manual-expected.png new file mode 100644 index 0000000..ceee3ea6 --- /dev/null +++ b/third_party/blink/web_tests/platform/win/external/wpt/css/css-cascade/important-transition-manual-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/forms/validation-bubble-device-emulation-change-expected.png b/third_party/blink/web_tests/platform/win/fast/forms/validation-bubble-device-emulation-change-expected.png index 579e910..775bfa3 100644 --- a/third_party/blink/web_tests/platform/win/fast/forms/validation-bubble-device-emulation-change-expected.png +++ b/third_party/blink/web_tests/platform/win/fast/forms/validation-bubble-device-emulation-change-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/forms/validation-bubble-device-emulation-expected.png b/third_party/blink/web_tests/platform/win/fast/forms/validation-bubble-device-emulation-expected.png index 579e910..be4a448 100644 --- a/third_party/blink/web_tests/platform/win/fast/forms/validation-bubble-device-emulation-expected.png +++ b/third_party/blink/web_tests/platform/win/fast/forms/validation-bubble-device-emulation-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/virtual/webrtc-wpt-plan-b/external/wpt/webrtc/RTCPeerConnection-setLocalDescription-answer-expected.txt b/third_party/blink/web_tests/virtual/webrtc-wpt-plan-b/external/wpt/webrtc/RTCPeerConnection-setLocalDescription-answer-expected.txt index 72c9b807..6a545e1 100644 --- a/third_party/blink/web_tests/virtual/webrtc-wpt-plan-b/external/wpt/webrtc/RTCPeerConnection-setLocalDescription-answer-expected.txt +++ b/third_party/blink/web_tests/virtual/webrtc-wpt-plan-b/external/wpt/webrtc/RTCPeerConnection-setLocalDescription-answer-expected.txt
@@ -5,6 +5,6 @@ FAIL Calling setLocalDescription(answer) from stable state should reject with InvalidModificationError promise_rejects_dom: function "function() { throw e }" threw object "OperationError: Failed to execute 'setLocalDescription' on 'RTCPeerConnection': Failed to set local answer sdp: Called in wrong state: stable" that is not a DOMException InvalidModificationError: property "code" is equal to 0, expected 13 FAIL Calling setLocalDescription(answer) from have-local-offer state should reject with InvalidModificationError promise_rejects_dom: function "function() { throw e }" threw object "OperationError: Failed to execute 'setLocalDescription' on 'RTCPeerConnection': Failed to set local answer sdp: Called in wrong state: have-local-offer" that is not a DOMException InvalidModificationError: property "code" is equal to 0, expected 13 FAIL Setting previously generated answer after a call to createOffer should work promise_test: Unhandled rejection with value: object "OperationError: Failed to execute 'setRemoteDescription' on 'RTCPeerConnection': Rollback not supported in Plan B" -PASS setLocalDescription(answer) should update internal state with a queued task, in the right order +FAIL setLocalDescription(answer) should update internal state with a queued task, in the right order assert_not_equals: pendingRemoteDescription should not be set synchronously after a call to sLD got disallowed value null Harness: the test ran to completion.
diff --git a/third_party/blink/web_tests/virtual/webrtc-wpt-plan-b/external/wpt/webrtc/RTCPeerConnection-setLocalDescription-offer-expected.txt b/third_party/blink/web_tests/virtual/webrtc-wpt-plan-b/external/wpt/webrtc/RTCPeerConnection-setLocalDescription-offer-expected.txt index 2b750bc..708aba1 100644 --- a/third_party/blink/web_tests/virtual/webrtc-wpt-plan-b/external/wpt/webrtc/RTCPeerConnection-setLocalDescription-offer-expected.txt +++ b/third_party/blink/web_tests/virtual/webrtc-wpt-plan-b/external/wpt/webrtc/RTCPeerConnection-setLocalDescription-offer-expected.txt
@@ -6,6 +6,6 @@ PASS Creating and setting offer multiple times should succeed FAIL Setting previously generated offer after a call to createAnswer should work promise_test: Unhandled rejection with value: object "OperationError: Failed to execute 'setRemoteDescription' on 'RTCPeerConnection': Rollback not supported in Plan B" FAIL Negotiation works when there has been a repeated setLocalDescription(offer) assert_equals: expected 1 but got 0 -PASS setLocalDescription(offer) should update internal state with a queued task, in the right order +FAIL setLocalDescription(offer) should update internal state with a queued task, in the right order assert_equals: pendingRemoteDescription should never be set due to sLD expected null but got object "[object RTCSessionDescription]" Harness: the test ran to completion.
diff --git a/third_party/blink/web_tests/webexposed/global-interface-listing-expected.txt b/third_party/blink/web_tests/webexposed/global-interface-listing-expected.txt index 01f9c19c8..c6664fb2 100644 --- a/third_party/blink/web_tests/webexposed/global-interface-listing-expected.txt +++ b/third_party/blink/web_tests/webexposed/global-interface-listing-expected.txt
@@ -5875,6 +5875,9 @@ getter sortingCode method constructor method toJSON +interface PaymentCredential : PublicKeyCredential + attribute @@toStringTag + method constructor interface PaymentInstruments attribute @@toStringTag method clear
diff --git a/third_party/wayland/BUILD.gn b/third_party/wayland/BUILD.gn index cd10980..a77ac7d 100644 --- a/third_party/wayland/BUILD.gn +++ b/third_party/wayland/BUILD.gn
@@ -138,7 +138,6 @@ configs -= [ "//build/config/compiler:chromium_code" ] configs += [ "//build/config/compiler:no_chromium_code", - "//build/config/linux/libffi", ":wayland_scanner_config", ] }
diff --git a/tools/mb/mb_config.pyl b/tools/mb/mb_config.pyl index b631d62..2805531 100644 --- a/tools/mb/mb_config.pyl +++ b/tools/mb/mb_config.pyl
@@ -712,6 +712,7 @@ # TODO(crbug/597596): Switch this back to debug_trybot when cronet's # shared library loading is fixed. 'android-cronet-arm-dbg': 'android_cronet_debug_static_bot_arm_no_neon', + 'android-cronet-marshmallow-arm64-rel': 'android_cronet_release_trybot_arm64', 'android-lollipop-arm-rel': 'android_release_trybot_webview_google', 'android-marshmallow-arm64-rel': 'gpu_tests_android_release_trybot_arm64_resource_whitelisting_fastbuild_java_coverage', 'android-marshmallow-x86-fyi-rel': 'android_release_trybot_x86_fastbuild_resource_whitelisting_webview_google', @@ -1186,6 +1187,10 @@ 'android', 'cronet_android', 'release_trybot', 'arm_no_neon', ], + 'android_cronet_release_trybot_arm64': [ + 'android', 'cronet_android', 'release_trybot', 'arm64', 'strip_debug_info', + ], + 'android_debug_bot': [ 'android', 'debug_bot', ],
diff --git a/tools/metrics/histograms/enums.xml b/tools/metrics/histograms/enums.xml index c7bd7df..0fbc9bd 100644 --- a/tools/metrics/histograms/enums.xml +++ b/tools/metrics/histograms/enums.xml
@@ -1317,6 +1317,11 @@ <int value="5" label="Google Photos No Albums"/> </enum> +<enum name="AmbientUiMode"> + <int value="0" label="Lock Screen"/> + <int value="1" label="In Session Idle"/> +</enum> + <enum name="Android.ChildProcessBindingStateCombination"> <int value="0" label="No waived no moderate no strong"/> <int value="1" label="No waived no moderate has strong"/> @@ -9079,6 +9084,12 @@ <int value="9" label="Ignored Locally Trusted Leaf Cert"/> </enum> +<enum name="ChangePasswordUrlFetchResult"> + <int value="0" label="Fetch succeeded"/> + <int value="1" label="Fetch failed"/> + <int value="2" label="Response is malformed"/> +</enum> + <enum name="ChannelLayout"> <int value="0" label="CHANNEL_LAYOUT_NONE"/> <int value="1" label="CHANNEL_LAYOUT_UNSUPPORTED"/> @@ -9293,6 +9304,24 @@ <int value="2" label="Startup"/> </enum> +<enum name="ChromeMLServiceDecisionTreePredictionResult"> + <int value="0" label="Unknown"/> + <int value="1" label="True"/> + <int value="2" label="False"/> +</enum> + +<enum name="ChromeMLServiceLoadModelResult"> + <int value="0" label="OK"/> + <int value="1" label="Model spec error"/> + <int value="2" label="Load model error"/> + <int value="3" label="Feature not supported"/> +</enum> + +<enum name="ChromeMLServiceRequestStatus"> + <int value="0" label="Requested Service Launched"/> + <int value="1" label="Requested Service Not Launched"/> +</enum> + <enum name="ChromeNotifierServiceActionType"> <int value="0" label="Unknown"/> <int value="1" label="First service enabled"/> @@ -9722,6 +9751,30 @@ <int value="1" label="A hash is saved"/> </enum> +<enum name="ChromeVoxGestureType"> + <int value="1" label="click"/> + <int value="2" label="swipeDown1"/> + <int value="3" label="swipeDown2"/> + <int value="4" label="swipeDown3"/> + <int value="5" label="swipeDown4"/> + <int value="6" label="swipeLeft1"/> + <int value="7" label="swipeLeft2"/> + <int value="8" label="swipeLeft3"/> + <int value="9" label="swipeLeft4"/> + <int value="10" label="swipeRight1"/> + <int value="11" label="swipeRight2"/> + <int value="12" label="swipeRight3"/> + <int value="13" label="swipeRight4"/> + <int value="14" label="swipeUp1"/> + <int value="15" label="swipeUp2"/> + <int value="16" label="swipeUp3"/> + <int value="17" label="swipeUp4"/> + <int value="18" label="tap2"/> + <int value="19" label="tap3"/> + <int value="20" label="tap4"/> + <int value="21" label="touchExplore"/> +</enum> + <enum name="ChromiumAndroidLinkerBrowserState"> <obsolete> Deprecated as of 06/2019. @@ -28938,6 +28991,11 @@ <int value="3454" label="RTCPeerConnectionCreateAnswer"/> <int value="3455" label="V8AuthenticatorAttestationResponse_GetTransports_Method"/> + <int value="3456" label="WebCodecsAudioDecoder"/> + <int value="3457" label="WebCodecsVideoDecoder"/> + <int value="3458" label="WebCodecsVideoEncoder"/> + <int value="3459" label="WebCodecsVideoTrackReader"/> + <int value="3460" label="WebCodecsImageDecoder"/> </enum> <enum name="FeaturePolicyAllowlistType"> @@ -33139,6 +33197,12 @@ <int value="27" label="kCanceled"/> </enum> +<enum name="GetChangePasswordUrlMetric"> + <int value="0" label="Gstatic file was not fetched yet"/> + <int value="1" label="Url override was available and used"/> + <int value="2" label="No url override was available"/> +</enum> + <enum name="GetEncryptionKeyAction"> <int value="0" label="Key is successfully found - not first time"/> <int value="1" label="Key is successfully found for the first time"/> @@ -40172,6 +40236,7 @@ <int value="-2146832142" label="SyncPseudoUSSSearchEngines:enabled"/> <int value="-2146613579" label="V8Future:disabled"/> <int value="-2145472146" label="OfflinePagesResourceBasedSnapshot:disabled"/> + <int value="-2144796781" label="TurnOffStreamingMediaCachingAlways:enabled"/> <int value="-2143961262" label="D3DVsync:disabled"/> <int value="-2143681040" label="ViewsCastDialog:enabled"/> <int value="-2143328006" @@ -40659,6 +40724,8 @@ <int value="-1677715989" label="UnifiedConsent:disabled"/> <int value="-1676256979" label="AutofillUpstreamUseGooglePayOnAndroidBranding:enabled"/> + <int value="-1675747412" + label="TurnOffStreamingMediaCachingOnBattery:enabled"/> <int value="-1674868343" label="DlcSettingsUi:enabled"/> <int value="-1672160462" label="SwapSideVolumeButtonsForOrientation:disabled"/> @@ -40832,6 +40899,8 @@ <int value="-1497338981" label="disable-accelerated-overflow-scroll"/> <int value="-1496106797" label="IPH_PasswordsAccountStorage:enabled"/> <int value="-1492934655" label="TabSwitcherOnReturn:enabled"/> + <int value="-1492609320" + label="TurnOffStreamingMediaCachingOnBattery:disabled"/> <int value="-1492589689" label="ContentSuggestionsCategories:enabled"/> <int value="-1492211482" label="EnableWindowsGamingInputDataFetcher:enabled"/> <int value="-1491417046" label="enable-fullscreen-toolbar-reveal"/> @@ -41291,6 +41360,7 @@ <int value="-1064302126" label="OmniboxAlternateMatchDescriptionSeparator:enabled"/> <int value="-1062119671" label="enable-password-force-saving"/> + <int value="-1061203892" label="VideoToolboxVp9Decoding:disabled"/> <int value="-1060541241" label="ForcePreferredIntervalForVideo:enabled"/> <int value="-1060395248" label="PasswordSearchMobile:enabled"/> <int value="-1056860259" @@ -41495,6 +41565,7 @@ <int value="-861343291" label="ChromeHome:disabled"/> <int value="-860578793" label="TabGridLayoutAndroid:disabled"/> <int value="-860534647" label="SiteDetails:enabled"/> + <int value="-858280894" label="DelayCompetingLowPriorityRequests:disabled"/> <int value="-856915246" label="enable-new-audio-rendering-mixing-strategy"/> <int value="-856016114" label="NTPOfflinePages:disabled"/> <int value="-855277252" label="CookiesWithoutSameSiteMustBeSecure:disabled"/> @@ -41589,6 +41660,7 @@ <int value="-749048160" label="enable-panels"/> <int value="-748571227" label="AssistantEnableMediaSessionIntegration:enabled"/> + <int value="-747919789" label="VideoToolboxVp9Decoding:enabled"/> <int value="-747463111" label="ContentSuggestionsNotifications:disabled"/> <int value="-747072690" label="NtpRepeatableQueries:disabled"/> <int value="-746328467" label="ExpensiveBackgroundTimerThrottling:disabled"/> @@ -42187,6 +42259,7 @@ <int value="-109569254" label="QueryTilesInOmnibox:enabled"/> <int value="-108881882" label="NTPCondensedTileLayout:enabled"/> <int value="-108468535" label="ChromeColorsCustomColorPicker:disabled"/> + <int value="-106631643" label="TurnOffStreamingMediaCachingAlways:disabled"/> <int value="-106373261" label="PaintPreviewDemo:enabled"/> <int value="-102537270" label="extension-content-verification"/> <int value="-102227288" label="PasswordExport:disabled"/> @@ -43545,7 +43618,6 @@ <int value="1331513360" label="SafetyCheckAndroid:disabled"/> <int value="1332120969" label="ChromeDuet:disabled"/> <int value="1333847867" label="NoScriptPreviews:enabled"/> - <int value="1334185492" label="TurnOffStreamingMediaCaching:disabled"/> <int value="1338356182" label="AutofillAssistantChromeEntry:disabled"/> <int value="1338864675" label="EnableTouchableAppContextMenu:disabled"/> <int value="1339191800" label="OmniboxMaxZeroSuggestMatches:disabled"/> @@ -44058,7 +44130,6 @@ <int value="1880955305" label="enable-preconnect-to-search"/> <int value="1881036528" label="disable-multilingual-spellchecker"/> <int value="1881174782" label="disable-brotli"/> - <int value="1885368291" label="TurnOffStreamingMediaCaching:enabled"/> <int value="1887031213" label="AutofillManualFallbackAndroid:disabled"/> <int value="1887882558" label="RTCUnifiedPlanByDefault:enabled"/> <int value="1888812860" label="ChromeModernAlternateCardLayout:enabled"/> @@ -44282,6 +44353,7 @@ <int value="2106855416" label="HostWindowsInAppShimProcess:enabled"/> <int value="2113804526" label="EnableAppShortcutSearch:enabled"/> <int value="2114843059" label="ContextualSuggestionsOptOut:enabled"/> + <int value="2114894984" label="DelayCompetingLowPriorityRequests:enabled"/> <int value="2115848376" label="LacrosSupport:disabled"/> <int value="2118287149" label="HelpAppSearchServiceIntegration:enabled"/> <int value="2119964154" label="enable-download-resumption"/> @@ -69335,6 +69407,8 @@ <int value="5" label="Compositor Deserialization Error"/> <int value="6" label="Invalid Root Frame SKP"/> <int value="7" label="Invalid Request"/> + <int value="8" label="Old Version"/> + <int value="9" label="Unexpected Version"/> </enum> <enum name="TabbedPaintPreviewExitCause">
diff --git a/tools/metrics/histograms/histograms.xml b/tools/metrics/histograms/histograms.xml index a874fbd..aa766ac 100644 --- a/tools/metrics/histograms/histograms.xml +++ b/tools/metrics/histograms/histograms.xml
@@ -142,6 +142,17 @@ </summary> </histogram> +<histogram name="Accessibility.ChromeVox.PerformGestureType" + enum="ChromeVoxGestureType" expires_after="M90"> + <owner>dtseng@chromium.org</owner> + <owner>chrome-a11y-core@google.com</owner> + <summary> + A user can control ChromeVox via a variety of gestures on the touch screen. + For example, swiping right with one finger causes ChromeVox to navigate to + the next object. Track all possible gestures here. + </summary> +</histogram> + <histogram name="Accessibility.CrosAlwaysShowA11yMenu" enum="BooleanEnabled" expires_after="M90"> <owner>dmazzoni@chromium.org</owner> @@ -9034,7 +9045,7 @@ </histogram> <histogram name="Arc.NativeBridge" enum="ArcNativeBridgeType" - expires_after="2020-09-06"> + expires_after="2021-09-06"> <owner>elijahtaylor@google.com</owner> <owner>levarum@google.com</owner> <summary> @@ -9694,6 +9705,21 @@ </summary> </histogram> +<histogram name="Ash.AmbientMode.Activation.{TabletOrClamshell}" + enum="AmbientUiMode" expires_after="2021-05-01"> + <owner>cowmoo@google.com</owner> + <owner>xiaohuic@chromium.org</owner> + <summary> + Recorded whenever Ambient mode is entered from {TabletOrClamshell}. + AmbientUiMode indicates whether the user entered Ambient mode from the lock + screen or from screen idle. + </summary> + <token key="TabletOrClamshell"> + <variant name="ClamshellMode" label="Clamshell mode"/> + <variant name="TabletMode" label="Tablet mode"/> + </token> +</histogram> + <histogram name="Ash.AmbientMode.AnimationSmoothness.PhotoTransition" units="%" expires_after="2021-05-01"> <owner>wutao@chromium.org</owner> @@ -24096,6 +24122,18 @@ </summary> </histogram> +<histogram name="Browser.PaintPreview.TabbedPlayer.HadCapture" units="Boolean" + expires_after="2021-07-01"> + <owner>ckitagawa@chromium.org</owner> + <owner>mahmoudi@chromium.org</owner> + <owner>fredmello@chromium.org</owner> + <summary> + Records whether a paint preview exists. Recorded when attempting to show a + preview on startup. This in conjuction with CompositorFailureReason gives + the total number of failures to show a paint preview. + </summary> +</histogram> + <histogram name="Browser.PaintPreview.TabbedPlayer.SnackbarCount" units="units" expires_after="2020-10-20"> <owner>ckitagawa@chromium.org</owner> @@ -26616,6 +26654,88 @@ </summary> </histogram> +<histogram base="true" name="ChromeMLService.EvaluationLatency" units="ms" + expires_after="2021-02-27"> + <owner>mcrouse@chromium.org</owner> + <owner>sophiechang@chromium.org</owner> + <summary> + Measures the model evaluation latency in the Chrome ML Service. This will be + recorded whenever a model evaluation call is invoked on a valid model, + regardless of whether the evaluation result is valid or not. + </summary> +</histogram> + +<histogram base="true" name="ChromeMLService.LoadModelResult" + enum="ChromeMLServiceLoadModelResult" expires_after="2021-02-27"> + <owner>mcrouse@chromium.org</owner> + <owner>sophiechang@chromium.org</owner> + <summary> + Records the model loading result status from the Chrome ML Service. + </summary> +</histogram> + +<histogram name="ChromeMLService.PredictionResult.DecisionTreeModel" + enum="ChromeMLServiceDecisionTreePredictionResult" + expires_after="2021-02-27"> + <owner>mcrouse@chromium.org</owner> + <owner>sophiechang@chromium.org</owner> + <summary> + Records the decision model prediction result from the Chrome ML Service. + </summary> +</histogram> + +<histogram name="ChromeMLService.ServiceAliveDuration" units="ms" + expires_after="2021-02-27"> + <owner>mcrouse@chromium.org</owner> + <owner>sophiechang@chromium.org</owner> + <summary> + Measures the duration in which the Chrome ML Service is alive. This is + monitored by a service observer in the browser process, and should be + recorded correctly when the service exits either gracefully or unexpectedly. + </summary> +</histogram> + +<histogram name="ChromeMLService.ServiceCrash" enum="Boolean" + expires_after="2021-02-27"> + <owner>mcrouse@chromium.org</owner> + <owner>sophiechang@chromium.org</owner> + <summary>Records if the Chrome ML Service crashed.</summary> +</histogram> + +<histogram name="ChromeMLService.ServiceLaunch" enum="Boolean" + expires_after="2021-02-27"> + <owner>mcrouse@chromium.org</owner> + <owner>sophiechang@chromium.org</owner> + <summary>Records if the Chrome ML Service launched successfully.</summary> +</histogram> + +<histogram name="ChromeMLService.ServiceNormalTermination" enum="Boolean" + expires_after="2021-02-27"> + <owner>mcrouse@chromium.org</owner> + <owner>sophiechang@chromium.org</owner> + <summary>Records if the Chrome ML Service terminated normally.</summary> +</histogram> + +<histogram name="ChromeMLService.ServiceStatusWhenRequested" + enum="ChromeMLServiceRequestStatus" expires_after="2021-02-27"> + <owner>mcrouse@chromium.org</owner> + <owner>sophiechang@chromium.org</owner> + <summary> + Whether the ML Service is already running when it is requested. + </summary> +</histogram> + +<histogram base="true" name="ChromeMLService.ValidationLatency" units="ms" + expires_after="2021-02-27"> + <owner>mcrouse@chromium.org</owner> + <owner>sophiechang@chromium.org</owner> + <summary> + Measures the model validation latency in the Chrome ML Service. This is + recorded when the ML service receives a model and evaluates it, regardless + of whether the model turns out to be valid or not. + </summary> +</histogram> + <histogram name="ChromeNotifierService.Actions" enum="ChromeNotifierServiceActionType" expires_after="2016-04-29"> <obsolete> @@ -73193,8 +73313,8 @@ </histogram> <histogram name="interstitial.decision" enum="SecurityInterstitialDecision" - expires_after="M85"> - <owner>felt@chromium.org</owner> + expires_after="M89"> + <owner>estark@chromium.org</owner> <owner>carlosil@chromium.org</owner> <summary> User decision when presented with a security interstitial. As of M44, @@ -73218,8 +73338,8 @@ </histogram> <histogram name="interstitial.interaction" - enum="SecurityInterstitialInteraction" expires_after="M85"> - <owner>felt@chromium.org</owner> + enum="SecurityInterstitialInteraction" expires_after="M89"> + <owner>estark@chromium.org</owner> <owner>carlosil@chromium.org</owner> <summary> User interactions with a security interstitial. As of M44, subresource @@ -73262,7 +73382,7 @@ <histogram name="interstitial.ssl.cause.nonoverridable" enum="SSLErrorCauses" expires_after="M90"> - <owner>felt@chromium.org</owner> + <owner>estark@chromium.org</owner> <owner>carlosil@chromium.org</owner> <summary> Possible non-attack causes of the non-overridable SSL interstitial. Many @@ -73278,8 +73398,8 @@ </histogram> <histogram name="interstitial.ssl.cause.overridable" enum="SSLErrorCauses" - expires_after="M85"> - <owner>felt@chromium.org</owner> + expires_after="M89"> + <owner>estark@chromium.org</owner> <owner>carlosil@chromium.org</owner> <summary> Possible non-attack causes of the overridable SSL interstitial. Many errors @@ -73483,9 +73603,10 @@ </histogram> <histogram name="interstitial.ssl_error_handler" enum="SSLErrorHandlerEvent" - expires_after="M85"> + expires_after="M89"> <owner>meacer@chromium.org</owner> <owner>carlosil@chromium.org</owner> + <owner>estark@chromium.org</owner> <summary>The type of action that the SSL error handler takes.</summary> </histogram> @@ -73520,8 +73641,8 @@ </histogram> <histogram name="interstitial.ssl_error_type" enum="SSLErrorTypes" - expires_after="M85"> - <owner>felt@chromium.org</owner> + expires_after="M89"> + <owner>estark@chromium.org</owner> <owner>carlosil@chromium.org</owner> <summary> The type of SSL error that the user encounters. This is recorded for all SSL @@ -73887,7 +74008,7 @@ </histogram> <histogram name="IOS.EnterTabSwitcherSnapshotResult" - enum="EnterTabSwitcherSnapshotResult" expires_after="2020-08-01"> + enum="EnterTabSwitcherSnapshotResult" expires_after="2021-08-01"> <owner>edchin@chromium.org</owner> <owner>justincohen@chromium.org</owner> <summary> @@ -74181,7 +74302,7 @@ </histogram> <histogram name="IOS.PageLoadedSnapshotResult" enum="PageLoadedSnapshotResult" - expires_after="2020-08-01"> + expires_after="2021-08-01"> <owner>edchin@chromium.org</owner> <owner>justincohen@chromium.org</owner> <summary> @@ -92348,8 +92469,9 @@ </summary> </histogram> -<histogram name="Navigation.EngagementTime.HTTP" units="ms" expires_after="M85"> - <owner>felt@chromium.org</owner> +<histogram name="Navigation.EngagementTime.HTTP" units="ms" expires_after="M89"> + <owner>estark@chromium.org</owner> + <owner>security-enamel@chromium.org</owner> <summary> The amount of time that an HTTP page was in the foreground. Recorded on every page close/transition. @@ -92357,16 +92479,18 @@ </histogram> <histogram name="Navigation.EngagementTime.HTTPS" units="ms" - expires_after="M85"> - <owner>felt@chromium.org</owner> + expires_after="M89"> + <owner>estark@chromium.org</owner> + <owner>security-enamel@chromium.org</owner> <summary> The amount of time that an HTTPS page was in the foreground. Recorded on every page close/transition. </summary> </histogram> -<histogram name="Navigation.EngagementTime.Ratio" units="%" expires_after="M85"> - <owner>felt@chromium.org</owner> +<histogram name="Navigation.EngagementTime.Ratio" units="%" expires_after="M89"> + <owner>estark@chromium.org</owner> + <owner>security-enamel@chromium.org</owner> <summary> The percentage of time that HTTPS pages were in the foreground, as compared to total foreground time. Recorded whenever user metrics are uploaded. @@ -93281,8 +93405,9 @@ </histogram> <histogram name="NavigationSuggestion.Event" enum="NavigationSuggestionEvent" - expires_after="M85"> + expires_after="M89"> <owner>meacer@chromium.org</owner> + <owner>security-enamel@chromium.org</owner> <summary> Tracks events when the currently navigated domain name is a lookalike to one of the top 10K domains or a domain that the user interacted with, resulting @@ -129689,6 +129814,54 @@ </summary> </histogram> +<histogram + name="PasswordManager.WellKnownChangePassword.GetChangePasswordUsage" + enum="GetChangePasswordUrlMetric" expires_after="2021-01-31"> + <owner>jdoerrie@chromium.org</owner> + <owner>vasilii@chromium.org</owner> + <summary> + A JSON file with change password form url is fetched from gstatic. This + metric logs if the response arrived in time and if the url override was + available for a given origin. + </summary> +</histogram> + +<histogram name="PasswordManager.WellKnownChangePassword.GstaticFetchErrorCode" + units="NetErrorCode" expires_after="2021-01-31"> + <owner>jdoerrie@chromium.org</owner> + <owner>vasilii@chromium.org</owner> + <summary> + Logs the error code when the fetch to the gstatic file failed. + </summary> +</histogram> + +<histogram + name="PasswordManager.WellKnownChangePassword.GstaticFetchHttpResponseCode" + units="HttpResponseCode" expires_after="2021-01-31"> + <owner>jdoerrie@chromium.org</owner> + <owner>vasilii@chromium.org</owner> + <summary> + Logs the response code when the fetch to the gstatic file failed. + </summary> +</histogram> + +<histogram name="PasswordManager.WellKnownChangePassword.GstaticFetchResult" + enum="ChangePasswordUrlFetchResult" expires_after="2021-01-31"> + <owner>jdoerrie@chromium.org</owner> + <owner>vasilii@chromium.org</owner> + <summary> + Logs if the request for the gstatic file succeeded, failed or if the + response was malformed. + </summary> +</histogram> + +<histogram name="PasswordManager.WellKnownChangePassword.GstaticFetchTime" + units="ms" expires_after="2021-01-31"> + <owner>jdoerrie@chromium.org</owner> + <owner>vasilii@chromium.org</owner> + <summary>Logs the loading time for the gstatic file request.</summary> +</histogram> + <histogram name="PasswordProtection.CacheVerdictDuration" units="ms" expires_after="2020-01-01"> <obsolete> @@ -140685,8 +140858,11 @@ </histogram> <histogram name="PrintPreview.InitializationTime" units="ms" - expires_after="2020-08-30"> + expires_after="never"> +<!-- expires-never: Monitors printing system health. --> + <owner>thestig@chromium.org</owner> + <owner>dhoss@chromium.org</owner> <summary> Time from when print preview is initiated until the preview PDF generation is started. @@ -140981,8 +141157,11 @@ </histogram> <histogram name="PrintPreview.RenderAndGeneratePDFTime" units="ms" - expires_after="2020-08-31"> + expires_after="never"> +<!-- expires-never: Monitors printing system health. --> + <owner>thestig@chromium.org</owner> + <owner>dhoss@chromium.org</owner> <summary> Time taken to render and generate PDF for print preview. (Includes time to reflow the page back to normal, but not the time to reflow the page to @@ -140991,8 +141170,11 @@ </histogram> <histogram name="PrintPreview.RenderAndGeneratePDFTimeAvgPerPage" units="ms" - expires_after="2020-08-31"> + expires_after="never"> +<!-- expires-never: Monitors printing system health. --> + <owner>thestig@chromium.org</owner> + <owner>dhoss@chromium.org</owner> <summary> Time taken to render and generate PDF for print preview divided by the number of pages. (Includes time to reflow the page back to normal, but not @@ -175305,7 +175487,7 @@ </histogram> <histogram name="Sync.BackendInitializeFirstTime" units="ms" - expires_after="2021-01-17"> + expires_after="2021-09-01"> <owner>mastiz@chromium.org</owner> <owner>treib@chromium.org</owner> <summary> @@ -175314,7 +175496,7 @@ </histogram> <histogram name="Sync.BackendInitializeFirstTimeSuccess" enum="BooleanSuccess" - expires_after="2020-09-01"> + expires_after="2021-09-01"> <owner>mastiz@chromium.org</owner> <owner>treib@chromium.org</owner> <summary> @@ -175335,7 +175517,7 @@ </histogram> <histogram name="Sync.BackendInitializeRestoreSuccess" enum="BooleanSuccess" - expires_after="2020-09-01"> + expires_after="2021-09-01"> <owner>mastiz@chromium.org</owner> <owner>treib@chromium.org</owner> <summary> @@ -175345,7 +175527,7 @@ </histogram> <histogram name="Sync.BackendInitializeRestoreTime" units="ms" - expires_after="2020-09-01"> + expires_after="2021-09-01"> <owner>mastiz@chromium.org</owner> <owner>treib@chromium.org</owner> <summary> @@ -183697,6 +183879,16 @@ </summary> </histogram> +<histogram name="Translate.CLD3.TopLanguageEvaluationDuration" units="ms" + expires_after="2021-02-28"> + <owner>mcrouse@chromium.org</owner> + <owner>chrome-language@google.com</owner> + <summary> + The time to evaluate the CLD3 language detection model for the top language. + This information is logged on every request. + </summary> +</histogram> + <histogram name="Translate.CompactInfobar.Event" enum="TranslateCompactUIEvent" expires_after="2021-01-31"> <owner>anthonyvd@chromium.org</owner> @@ -201319,6 +201511,13 @@ name="ServiceWorker.ActivatedWorkerPreparationForMainFrame.Type"/> </histogram_suffixes> +<histogram_suffixes name="ChromeMLService.ModelType" separator="."> + <suffix name="DecisionTreeModel" label="Decision tree model"/> + <affected-histogram name="ChromeMLService.EvaluationLatency"/> + <affected-histogram name="ChromeMLService.LoadModelResult"/> + <affected-histogram name="ChromeMLService.ValidationLatency"/> +</histogram_suffixes> + <histogram_suffixes name="ChromeOS.Camera.JpegProcessMethod" separator="."> <suffix name="Hardware" label=""/> <suffix name="Software" label=""/>
diff --git a/tools/metrics/histograms/histograms_xml/Fingerprint/histograms.xml b/tools/metrics/histograms/histograms_xml/Fingerprint/histograms.xml index 449d6ee..630f7683 100644 --- a/tools/metrics/histograms/histograms_xml/Fingerprint/histograms.xml +++ b/tools/metrics/histograms/histograms_xml/Fingerprint/histograms.xml
@@ -5,7 +5,7 @@ --> <!-- -This file is used to generate a comprehensive list of Chrome histograms along +This file is used to generate a comprehensive list of Fingerprint histograms along with a detailed description for each histogram. For best practices on writing histogram descriptions, see @@ -14,10 +14,6 @@ For brief details on how to modify this file to add your description, see https://chromium.googlesource.com/chromium/src.git/+/HEAD/tools/metrics/histograms/one-pager.md -Please pretty-print and validate your edits by running the pretty_print.py -and validate_format.py scripts in the same directory as this file before -uploading your change for review. - Please send CLs to chromium-metrics-reviews@google.com rather than to specific individuals. These CLs will be automatically reassigned to a reviewer within about 5 minutes. This approach helps the metrics team to load-balance incoming
diff --git a/tools/metrics/histograms/histograms_xml/UMA/histograms.xml b/tools/metrics/histograms/histograms_xml/UMA/histograms.xml index b7691dacf..6d3da85 100644 --- a/tools/metrics/histograms/histograms_xml/UMA/histograms.xml +++ b/tools/metrics/histograms/histograms_xml/UMA/histograms.xml
@@ -5,7 +5,7 @@ --> <!-- -This file is used to generate a comprehensive list of Chrome histograms along +This file is used to generate a comprehensive list of UMA histograms along with a detailed description for each histogram. For best practices on writing histogram descriptions, see @@ -14,10 +14,6 @@ For brief details on how to modify this file to add your description, see https://chromium.googlesource.com/chromium/src.git/+/HEAD/tools/metrics/histograms/one-pager.md -Please pretty-print and validate your edits by running the pretty_print.py -and validate_format.py scripts in the same directory as this file before -uploading your change for review. - Please send CLs to chromium-metrics-reviews@google.com rather than to specific individuals. These CLs will be automatically reassigned to a reviewer within about 5 minutes. This approach helps the metrics team to load-balance incoming
diff --git a/tools/metrics/histograms/histograms_xml/obsolete_histograms.xml b/tools/metrics/histograms/histograms_xml/obsolete_histograms.xml index c00fbd3..bb2ef8a 100644 --- a/tools/metrics/histograms/histograms_xml/obsolete_histograms.xml +++ b/tools/metrics/histograms/histograms_xml/obsolete_histograms.xml
@@ -5,8 +5,8 @@ --> <!-- -This file is used to generate a comprehensive list of Chrome histograms along -with a detailed description for each histogram. +This file is used to store a list of obsolete Chrome histograms along with a detailed +description for each histogram. For best practices on writing histogram descriptions, see https://chromium.googlesource.com/chromium/src.git/+/HEAD/tools/metrics/histograms/README.md @@ -14,10 +14,6 @@ For brief details on how to modify this file to add your description, see https://chromium.googlesource.com/chromium/src.git/+/HEAD/tools/metrics/histograms/one-pager.md -Please pretty-print and validate your edits by running the pretty_print.py -and validate_format.py scripts in the same directory as this file before -uploading your change for review. - Please send CLs to chromium-metrics-reviews@google.com rather than to specific individuals. These CLs will be automatically reassigned to a reviewer within about 5 minutes. This approach helps the metrics team to load-balance incoming
diff --git a/tools/perf/core/perfetto_binary_roller/binary_deps.json b/tools/perf/core/perfetto_binary_roller/binary_deps.json index 252896d..b1770fc 100644 --- a/tools/perf/core/perfetto_binary_roller/binary_deps.json +++ b/tools/perf/core/perfetto_binary_roller/binary_deps.json
@@ -6,11 +6,11 @@ }, "mac": { "hash": "be6a7ab2c70ff31ad87286fee6617d97b436a541", - "remote_path": "perfetto_binaries/trace_processor_shell/mac/7023f47299aa157951b4677ee4450cac58685a2d/trace_processor_shell" + "remote_path": "perfetto_binaries/trace_processor_shell/mac/0fdfdcf61cd436faf7cf9b8be2596df9c6ca6010/trace_processor_shell" }, "linux": { "hash": "6cf2b33261fa3274f1c8b56085b924410037460c", - "remote_path": "perfetto_binaries/trace_processor_shell/linux/7023f47299aa157951b4677ee4450cac58685a2d/trace_processor_shell" + "remote_path": "perfetto_binaries/trace_processor_shell/linux/14a9bffb3e9e43f056b7621402572b205ac1d176/trace_processor_shell" } }, "power_profile.sql": {
diff --git a/ui/accessibility/BUILD.gn b/ui/accessibility/BUILD.gn index 03aa4c6..3203df9 100644 --- a/ui/accessibility/BUILD.gn +++ b/ui/accessibility/BUILD.gn
@@ -55,6 +55,8 @@ "ax_event.h", "ax_event_intent.cc", "ax_event_intent.h", + "ax_mode.cc", + "ax_mode.h", "ax_node_data.cc", "ax_node_data.h", "ax_node_text_styles.cc", @@ -109,8 +111,6 @@ "ax_export.h", "ax_language_detection.cc", "ax_language_detection.h", - "ax_mode.cc", - "ax_mode.h", "ax_mode_observer.h", "ax_node.cc", "ax_node.h",
diff --git a/ui/accessibility/ax_event_generator.cc b/ui/accessibility/ax_event_generator.cc index c30674f..4197ddb 100644 --- a/ui/accessibility/ax_event_generator.cc +++ b/ui/accessibility/ax_event_generator.cc
@@ -51,9 +51,12 @@ // platforms likely will do that in response to ignored-changed. // Suppress name- and description-changed because those can be emitted as a side // effect of calculating alternative text values for a newly-displayed object. -// Ditto for text attributes such as foreground and background colors. +// Ditto for text attributes such as foreground and background colors, or +// display changing from "none" to "block." void RemoveEventsDueToIgnoredChanged( std::set<AXEventGenerator::EventParams>* node_events) { + RemoveEvent(node_events, + AXEventGenerator::Event::ATK_TEXT_OBJECT_ATTRIBUTE_CHANGED); RemoveEvent(node_events, AXEventGenerator::Event::CHILDREN_CHANGED); RemoveEvent(node_events, AXEventGenerator::Event::DESCRIPTION_CHANGED); RemoveEvent(node_events, AXEventGenerator::Event::NAME_CHANGED); @@ -392,6 +395,11 @@ AddEvent(node, Event::TEXT_ATTRIBUTE_CHANGED); break; case ax::mojom::IntAttribute::kTextAlign: + // Alignment is exposed as an object attribute because it cannot apply to + // a substring. However, for some platforms (e.g. ATK), alignment is a + // text attribute. Therefore fire both events to ensure platforms get the + // expected notifications. + AddEvent(node, Event::ATK_TEXT_OBJECT_ATTRIBUTE_CHANGED); AddEvent(node, Event::OBJECT_ATTRIBUTE_CHANGED); break; default: @@ -425,6 +433,11 @@ AddEvent(node, Event::TEXT_ATTRIBUTE_CHANGED); break; case ax::mojom::FloatAttribute::kTextIndent: + // Indentation is exposed as an object attribute because it cannot apply + // to a substring. However, for some platforms (e.g. ATK), alignment is a + // text attribute. Therefore fire both events to ensure platforms get the + // expected notifications. + AddEvent(node, Event::ATK_TEXT_OBJECT_ATTRIBUTE_CHANGED); AddEvent(node, Event::OBJECT_ATTRIBUTE_CHANGED); break; default: @@ -834,6 +847,8 @@ return "ACTIVE_DESCENDANT_CHANGED"; case AXEventGenerator::Event::ALERT: return "ALERT"; + case AXEventGenerator::Event::ATK_TEXT_OBJECT_ATTRIBUTE_CHANGED: + return "ATK_TEXT_OBJECT_ATTRIBUTE_CHANGED"; case AXEventGenerator::Event::BUSY_CHANGED: return "BUSY_CHANGED"; case AXEventGenerator::Event::CHECKED_STATE_CHANGED:
diff --git a/ui/accessibility/ax_event_generator.h b/ui/accessibility/ax_event_generator.h index b068624..4baef9f 100644 --- a/ui/accessibility/ax_event_generator.h +++ b/ui/accessibility/ax_event_generator.h
@@ -28,6 +28,10 @@ ACCESS_KEY_CHANGED, ACTIVE_DESCENDANT_CHANGED, ALERT, + // ATK treats alignment, indentation, and other format-related attributes as + // text attributes even when they are only applicable to the entire object. + // And it lacks an event for object attributes changing. + ATK_TEXT_OBJECT_ATTRIBUTE_CHANGED, ATOMIC_CHANGED, AUTO_COMPLETE_CHANGED, BUSY_CHANGED,
diff --git a/ui/accessibility/ax_event_generator_unittest.cc b/ui/accessibility/ax_event_generator_unittest.cc index f82b0c5e..e54ba4f 100644 --- a/ui/accessibility/ax_event_generator_unittest.cc +++ b/ui/accessibility/ax_event_generator_unittest.cc
@@ -806,6 +806,10 @@ EXPECT_THAT( event_generator, UnorderedElementsAre( + HasEventAtNode( + AXEventGenerator::Event::ATK_TEXT_OBJECT_ATTRIBUTE_CHANGED, 2), + HasEventAtNode( + AXEventGenerator::Event::ATK_TEXT_OBJECT_ATTRIBUTE_CHANGED, 3), HasEventAtNode(AXEventGenerator::Event::OBJECT_ATTRIBUTE_CHANGED, 2), HasEventAtNode(AXEventGenerator::Event::OBJECT_ATTRIBUTE_CHANGED, 3)));
diff --git a/ui/accessibility/ax_mode.h b/ui/accessibility/ax_mode.h index 2536ad5..e358666 100644 --- a/ui/accessibility/ax_mode.h +++ b/ui/accessibility/ax_mode.h
@@ -10,11 +10,11 @@ #include <ostream> #include <string> -#include "ui/accessibility/ax_export.h" +#include "ui/accessibility/ax_base_export.h" namespace ui { -class AX_EXPORT AXMode { +class AX_BASE_EXPORT AXMode { public: static constexpr uint32_t kFirstModeFlag = 1 << 0; @@ -107,7 +107,8 @@ AXMode::kScreenReader | AXMode::kHTML); // For debugging, test assertions, etc. -AX_EXPORT std::ostream& operator<<(std::ostream& stream, const AXMode& mode); +AX_BASE_EXPORT std::ostream& operator<<(std::ostream& stream, + const AXMode& mode); } // namespace ui
diff --git a/ui/base/clipboard/clipboard_test_template.h b/ui/base/clipboard/clipboard_test_template.h index 62475dd..828b283a 100644 --- a/ui/base/clipboard/clipboard_test_template.h +++ b/ui/base/clipboard/clipboard_test_template.h
@@ -44,7 +44,6 @@ #include "ui/base/clipboard/scoped_clipboard_writer.h" #include "ui/base/clipboard/test/clipboard_test_util.h" #include "ui/base/clipboard/test/test_clipboard.h" -#include "ui/base/ui_base_features.h" #include "ui/gfx/geometry/size.h" #include "ui/gfx/half_float.h" #include "url/origin.h" @@ -54,6 +53,7 @@ #endif #if defined(USE_X11) +#include "ui/base/ui_base_features.h" #include "ui/events/platform/platform_event_source.h" #endif
diff --git a/ui/base/clipboard/clipboard_x11.cc b/ui/base/clipboard/clipboard_x11.cc index b02f4bd..71b5489d 100644 --- a/ui/base/clipboard/clipboard_x11.cc +++ b/ui/base/clipboard/clipboard_x11.cc
@@ -462,8 +462,6 @@ clipboard_owner_.OnSelectionClear(*xev); } } else if (auto* prop = xev->As<x11::PropertyNotifyEvent>()) { - if (prop->window != x_window_) - return false; if (primary_owner_.CanDispatchPropertyEvent(*xev)) primary_owner_.OnPropertyEvent(*xev); if (clipboard_owner_.CanDispatchPropertyEvent(*xev))
diff --git a/ui/base/ime/win/tsf_bridge.cc b/ui/base/ime/win/tsf_bridge.cc index 83eb5530..afe0b9a0 100644 --- a/ui/base/ime/win/tsf_bridge.cc +++ b/ui/base/ime/win/tsf_bridge.cc
@@ -183,7 +183,7 @@ DCHECK(base::CurrentUIThread::IsSet()); if (client_id_ != TF_CLIENTID_NULL) { DVLOG(1) << "Already initialized."; - return S_FALSE; + return S_OK; // shouldn't return error code in this case. } HRESULT hr = @@ -332,8 +332,7 @@ void TSFBridgeImpl::RemoveFocusedClient(TextInputClient* client) { DCHECK(base::CurrentUIThread::IsSet()); - if (!IsInitialized()) - return; + DCHECK(IsInitialized()); if (client_ != client) return; ClearAssociateFocus(); @@ -633,6 +632,11 @@ return *tsf_bridge_tls; } +// Get the TSFBridge from the thread-local storage without its ownership. +TSFBridgeImpl* GetThreadLocalTSFBridge() { + return static_cast<TSFBridgeImpl*>(TSFBridgeTLS().Get()); +} + } // namespace // TsfBridge ----------------------------------------------------------------- @@ -644,18 +648,24 @@ // static HRESULT TSFBridge::Initialize() { if (!base::CurrentUIThread::IsSet()) { - DVLOG(1) << "Do not use TSFBridge without UI thread."; return E_FAIL; } + TSFBridgeImpl* delegate = static_cast<TSFBridgeImpl*>(TSFBridgeTLS().Get()); if (delegate) return S_OK; // If we aren't supporting TSF early out. if (!base::FeatureList::IsEnabled(features::kTSFImeSupport)) return E_FAIL; + delegate = new TSFBridgeImpl(); - TSFBridgeTLS().Set(delegate); - return delegate->Initialize(); + ReplaceThreadLocalTSFBridge(delegate); + HRESULT hr = delegate->Initialize(); + if (FAILED(hr)) { + // reset the TSFBridge as the initialization has failed. + ReplaceThreadLocalTSFBridge(nullptr); + } + return hr; } // static @@ -663,41 +673,40 @@ if (!base::CurrentUIThread::IsSet()) { return; } - TSFBridgeImpl* delegate = static_cast<TSFBridgeImpl*>(TSFBridgeTLS().Get()); + + TSFBridgeImpl* delegate = GetThreadLocalTSFBridge(); if (delegate) return; if (!base::FeatureList::IsEnabled(features::kTSFImeSupport)) return; - TSFBridgeTLS().Set(new MockTSFBridge()); + ReplaceThreadLocalTSFBridge(new MockTSFBridge()); } // static -TSFBridge* TSFBridge::ReplaceForTesting(TSFBridge* bridge) { +void TSFBridge::ReplaceThreadLocalTSFBridge(TSFBridge* new_instance) { if (!base::CurrentUIThread::IsSet()) { - return nullptr; + return; } - TSFBridge* old_bridge = TSFBridge::GetInstance(); - TSFBridgeTLS().Set(bridge); - return old_bridge; + + TSFBridgeImpl* old_instance = GetThreadLocalTSFBridge(); + TSFBridgeTLS().Set(new_instance); + delete old_instance; } // static void TSFBridge::Shutdown() { if (!base::CurrentUIThread::IsSet()) { - DVLOG(1) << "Do not use TSFBridge without UI thread."; } - TSFBridgeImpl* delegate = static_cast<TSFBridgeImpl*>(TSFBridgeTLS().Get()); - TSFBridgeTLS().Set(nullptr); - delete delegate; + ReplaceThreadLocalTSFBridge(nullptr); } // static TSFBridge* TSFBridge::GetInstance() { if (!base::CurrentUIThread::IsSet()) { - DVLOG(1) << "Do not use TSFBridge without UI thread."; return nullptr; } - TSFBridgeImpl* delegate = static_cast<TSFBridgeImpl*>(TSFBridgeTLS().Get()); + + TSFBridgeImpl* delegate = GetThreadLocalTSFBridge(); DCHECK(delegate) << "Do no call GetInstance before TSFBridge::Initialize."; return delegate; }
diff --git a/ui/base/ime/win/tsf_bridge.h b/ui/base/ime/win/tsf_bridge.h index 0a9cb1b..035b22c 100644 --- a/ui/base/ime/win/tsf_bridge.h +++ b/ui/base/ime/win/tsf_bridge.h
@@ -42,10 +42,10 @@ // any calls to GetInstance(). static void InitializeForTesting(); - // Injects an alternative TSFBridge such as MockTSFBridge for testing. The - // injected object should be released by the caller. This function returns - // previous TSFBridge pointer with ownership. - static TSFBridge* ReplaceForTesting(TSFBridge* bridge); + // Sets the new instance of TSFBridge in the thread-local storage (such as + // MockTSFBridge for testing). This function replaces previous TSFBridge + // instance with the newInstance and also deletes the old instance. + static void ReplaceThreadLocalTSFBridge(TSFBridge* new_instance); // Destroys the thread local instance. static void Shutdown();
diff --git a/ui/base/ui_features.gni b/ui/base/ui_features.gni index e2ac40d..e5203cd 100644 --- a/ui/base/ui_features.gni +++ b/ui/base/ui_features.gni
@@ -12,8 +12,7 @@ has_native_accessibility = use_atk || is_win || is_mac # Whether the message center should be included for displaying notifications. - enable_message_center = - is_win || is_mac || is_linux || is_chromeos || is_fuchsia + enable_message_center = is_win || is_mac || is_linux || is_chromeos || is_fuchsia } enable_hidpi = is_mac || is_win || is_linux || is_chromeos || is_ios
diff --git a/ui/chromeos/translations/ui_chromeos_strings_es.xtb b/ui/chromeos/translations/ui_chromeos_strings_es.xtb index 657aac1..57312b3 100644 --- a/ui/chromeos/translations/ui_chromeos_strings_es.xtb +++ b/ui/chromeos/translations/ui_chromeos_strings_es.xtb
@@ -44,7 +44,7 @@ <translation id="1363028406613469049">Pista</translation> <translation id="1378727793141957596">Te damos la bienvenida a Google Drive</translation> <translation id="1383876407941801731">Buscar</translation> -<translation id="1395262318152388157">Control deslizante de búsqueda</translation> +<translation id="1395262318152388157">Control deslizante</translation> <translation id="1399648040768741453">Teclado télugu (fonético)</translation> <translation id="1430915738399379752">Imprimir</translation> <translation id="1433600251059882049">Esta carpeta se comparte con Linux y Windows</translation>
diff --git a/ui/ozone/platform/wayland/fuzzer/wayland_buffer_fuzzer.cc b/ui/ozone/platform/wayland/fuzzer/wayland_buffer_fuzzer.cc index 90cc6ef..240ee962 100644 --- a/ui/ozone/platform/wayland/fuzzer/wayland_buffer_fuzzer.cc +++ b/ui/ozone/platform/wayland/fuzzer/wayland_buffer_fuzzer.cc
@@ -126,7 +126,7 @@ // real system so here is a hard limit of 500. const uint32_t kPlaneCount = data_provider.ConsumeIntegralInRange(1U, 500U); const uint32_t kFormat = known_fourccs[data_provider.ConsumeIntegralInRange( - 0UL, known_fourccs.size() - 1)]; + 0UL, static_cast<unsigned long>(known_fourccs.size() - 1))]; std::vector<uint32_t> strides(kPlaneCount); std::vector<uint32_t> offsets(kPlaneCount);
diff --git a/ui/views/animation/ink_drop_host_view.cc b/ui/views/animation/ink_drop_host_view.cc index fc3fde14..ed2a1288 100644 --- a/ui/views/animation/ink_drop_host_view.cc +++ b/ui/views/animation/ink_drop_host_view.cc
@@ -256,7 +256,7 @@ } BEGIN_METADATA(InkDropHostView, View) -ADD_READONLY_PROPERTY_METADATA(InkDropHostView, bool, Highlighted) +ADD_READONLY_PROPERTY_METADATA(bool, Highlighted) END_METADATA() } // namespace views
diff --git a/ui/views/controls/button/button.cc b/ui/views/controls/button/button.cc index cc6a7996..9cb7911 100644 --- a/ui/views/controls/button/button.cc +++ b/ui/views/controls/button/button.cc
@@ -585,7 +585,7 @@ {Button::STATE_DISABLED, base::ASCIIToUTF16("STATE_DISABLED")}) BEGIN_METADATA(Button, InkDropHostView) -ADD_PROPERTY_METADATA(Button, ButtonState, State) +ADD_PROPERTY_METADATA(ButtonState, State) END_METADATA() } // namespace views
diff --git a/ui/views/controls/button/checkbox.cc b/ui/views/controls/button/checkbox.cc index 34847d3..70adccd 100644 --- a/ui/views/controls/button/checkbox.cc +++ b/ui/views/controls/button/checkbox.cc
@@ -212,8 +212,8 @@ } BEGIN_METADATA(Checkbox, LabelButton) -ADD_PROPERTY_METADATA(Checkbox, bool, Checked) -ADD_PROPERTY_METADATA(Checkbox, bool, MultiLine) +ADD_PROPERTY_METADATA(bool, Checked) +ADD_PROPERTY_METADATA(bool, MultiLine) END_METADATA() } // namespace views
diff --git a/ui/views/controls/button/image_button.cc b/ui/views/controls/button/image_button.cc index 3579369..438d495 100644 --- a/ui/views/controls/button/image_button.cc +++ b/ui/views/controls/button/image_button.cc
@@ -315,11 +315,9 @@ base::ASCIIToUTF16("ALIGN_BOTTOM")}) BEGIN_METADATA(ImageButton, Button) -ADD_PROPERTY_METADATA(ImageButton, - HorizontalAlignment, - ImageHorizontalAlignment) -ADD_PROPERTY_METADATA(ImageButton, VerticalAlignment, ImageVerticalAlignment) -ADD_PROPERTY_METADATA(ImageButton, gfx::Size, MinimumImageSize) +ADD_PROPERTY_METADATA(HorizontalAlignment, ImageHorizontalAlignment) +ADD_PROPERTY_METADATA(VerticalAlignment, ImageVerticalAlignment) +ADD_PROPERTY_METADATA(gfx::Size, MinimumImageSize) END_METADATA() } // namespace views
diff --git a/ui/views/controls/button/label_button.cc b/ui/views/controls/button/label_button.cc index 14d5a0a3..69587c8 100644 --- a/ui/views/controls/button/label_button.cc +++ b/ui/views/controls/button/label_button.cc
@@ -604,15 +604,13 @@ } BEGIN_METADATA(LabelButton, Button) -ADD_PROPERTY_METADATA(LabelButton, base::string16, Text) -ADD_PROPERTY_METADATA(LabelButton, - gfx::HorizontalAlignment, - HorizontalAlignment) -ADD_PROPERTY_METADATA(LabelButton, gfx::Size, MinSize) -ADD_PROPERTY_METADATA(LabelButton, gfx::Size, MaxSize) -ADD_PROPERTY_METADATA(LabelButton, bool, IsDefault) -ADD_PROPERTY_METADATA(LabelButton, int, ImageLabelSpacing) -ADD_PROPERTY_METADATA(LabelButton, bool, ImageCentered) +ADD_PROPERTY_METADATA(base::string16, Text) +ADD_PROPERTY_METADATA(gfx::HorizontalAlignment, HorizontalAlignment) +ADD_PROPERTY_METADATA(gfx::Size, MinSize) +ADD_PROPERTY_METADATA(gfx::Size, MaxSize) +ADD_PROPERTY_METADATA(bool, IsDefault) +ADD_PROPERTY_METADATA(int, ImageLabelSpacing) +ADD_PROPERTY_METADATA(bool, ImageCentered) END_METADATA() } // namespace views
diff --git a/ui/views/controls/button/md_text_button.cc b/ui/views/controls/button/md_text_button.cc index c659b4d..a686b07 100644 --- a/ui/views/controls/button/md_text_button.cc +++ b/ui/views/controls/button/md_text_button.cc
@@ -287,9 +287,9 @@ } BEGIN_METADATA(MdTextButton, LabelButton) -ADD_PROPERTY_METADATA(MdTextButton, bool, Prominent) -ADD_PROPERTY_METADATA(MdTextButton, float, CornerRadius) -ADD_PROPERTY_METADATA(MdTextButton, base::Optional<SkColor>, BgColorOverride) +ADD_PROPERTY_METADATA(bool, Prominent) +ADD_PROPERTY_METADATA(float, CornerRadius) +ADD_PROPERTY_METADATA(base::Optional<SkColor>, BgColorOverride) END_METADATA() } // namespace views
diff --git a/ui/views/controls/button/toggle_button.cc b/ui/views/controls/button/toggle_button.cc index dd06e104..1beef6f 100644 --- a/ui/views/controls/button/toggle_button.cc +++ b/ui/views/controls/button/toggle_button.cc
@@ -351,12 +351,12 @@ } BEGIN_METADATA(ToggleButton, Button) -ADD_PROPERTY_METADATA(ToggleButton, bool, IsOn) -ADD_PROPERTY_METADATA(ToggleButton, bool, AcceptsEvents) -ADD_PROPERTY_METADATA(ToggleButton, base::Optional<SkColor>, ThumbOnColor) -ADD_PROPERTY_METADATA(ToggleButton, base::Optional<SkColor>, ThumbOffColor) -ADD_PROPERTY_METADATA(ToggleButton, base::Optional<SkColor>, TrackOnColor) -ADD_PROPERTY_METADATA(ToggleButton, base::Optional<SkColor>, TrackOffColor) +ADD_PROPERTY_METADATA(bool, IsOn) +ADD_PROPERTY_METADATA(bool, AcceptsEvents) +ADD_PROPERTY_METADATA(base::Optional<SkColor>, ThumbOnColor) +ADD_PROPERTY_METADATA(base::Optional<SkColor>, ThumbOffColor) +ADD_PROPERTY_METADATA(base::Optional<SkColor>, TrackOnColor) +ADD_PROPERTY_METADATA(base::Optional<SkColor>, TrackOffColor) END_METADATA() } // namespace views
diff --git a/ui/views/controls/combobox/combobox.cc b/ui/views/controls/combobox/combobox.cc index 600ababf..796df6062 100644 --- a/ui/views/controls/combobox/combobox.cc +++ b/ui/views/controls/combobox/combobox.cc
@@ -706,9 +706,9 @@ } BEGIN_METADATA(Combobox, View) -ADD_PROPERTY_METADATA(Combobox, int, SelectedIndex) -ADD_PROPERTY_METADATA(Combobox, bool, Invalid) -ADD_PROPERTY_METADATA(Combobox, base::string16, AccessibleName) +ADD_PROPERTY_METADATA(int, SelectedIndex) +ADD_PROPERTY_METADATA(bool, Invalid) +ADD_PROPERTY_METADATA(base::string16, AccessibleName) END_METADATA() } // namespace views
diff --git a/ui/views/controls/image_view.cc b/ui/views/controls/image_view.cc index 19b08b6a..ef804eeb 100644 --- a/ui/views/controls/image_view.cc +++ b/ui/views/controls/image_view.cc
@@ -268,9 +268,9 @@ {ImageView::Alignment::kTrailing, base::ASCIIToUTF16("kTrailing")}) BEGIN_METADATA(ImageView, View) -ADD_PROPERTY_METADATA(ImageView, Alignment, HorizontalAlignment) -ADD_PROPERTY_METADATA(ImageView, Alignment, VerticalAlignment) -ADD_PROPERTY_METADATA(ImageView, base::string16, AccessibleName) +ADD_PROPERTY_METADATA(Alignment, HorizontalAlignment) +ADD_PROPERTY_METADATA(Alignment, VerticalAlignment) +ADD_PROPERTY_METADATA(base::string16, AccessibleName) END_METADATA() } // namespace views
diff --git a/ui/views/controls/label.cc b/ui/views/controls/label.cc index 853187c..88827df 100644 --- a/ui/views/controls/label.cc +++ b/ui/views/controls/label.cc
@@ -1133,28 +1133,28 @@ } BEGIN_METADATA(Label, View) -ADD_PROPERTY_METADATA(Label, base::string16, Text) -ADD_PROPERTY_METADATA(Label, int, TextStyle) -ADD_PROPERTY_METADATA(Label, bool, AutoColorReadabilityEnabled) -ADD_PROPERTY_METADATA(Label, SkColor, EnabledColor) -ADD_PROPERTY_METADATA(Label, gfx::ElideBehavior, ElideBehavior) -ADD_PROPERTY_METADATA(Label, SkColor, BackgroundColor) -ADD_PROPERTY_METADATA(Label, SkColor, SelectionTextColor) -ADD_PROPERTY_METADATA(Label, SkColor, SelectionBackgroundColor) -ADD_PROPERTY_METADATA(Label, bool, SubpixelRenderingEnabled) -ADD_PROPERTY_METADATA(Label, gfx::ShadowValues, Shadows) -ADD_PROPERTY_METADATA(Label, gfx::HorizontalAlignment, HorizontalAlignment) -ADD_PROPERTY_METADATA(Label, gfx::VerticalAlignment, VerticalAlignment) -ADD_PROPERTY_METADATA(Label, int, LineHeight) -ADD_PROPERTY_METADATA(Label, bool, MultiLine) -ADD_PROPERTY_METADATA(Label, int, MaxLines) -ADD_PROPERTY_METADATA(Label, bool, Obscured) -ADD_PROPERTY_METADATA(Label, bool, AllowCharacterBreak) -ADD_PROPERTY_METADATA(Label, base::string16, TooltipText) -ADD_PROPERTY_METADATA(Label, bool, HandlesTooltips) -ADD_PROPERTY_METADATA(Label, bool, CollapseWhenHidden) -ADD_PROPERTY_METADATA(Label, int, MaximumWidth) -ADD_READONLY_PROPERTY_METADATA(Label, int, TextContext) +ADD_PROPERTY_METADATA(base::string16, Text) +ADD_PROPERTY_METADATA(int, TextStyle) +ADD_PROPERTY_METADATA(bool, AutoColorReadabilityEnabled) +ADD_PROPERTY_METADATA(SkColor, EnabledColor) +ADD_PROPERTY_METADATA(gfx::ElideBehavior, ElideBehavior) +ADD_PROPERTY_METADATA(SkColor, BackgroundColor) +ADD_PROPERTY_METADATA(SkColor, SelectionTextColor) +ADD_PROPERTY_METADATA(SkColor, SelectionBackgroundColor) +ADD_PROPERTY_METADATA(bool, SubpixelRenderingEnabled) +ADD_PROPERTY_METADATA(gfx::ShadowValues, Shadows) +ADD_PROPERTY_METADATA(gfx::HorizontalAlignment, HorizontalAlignment) +ADD_PROPERTY_METADATA(gfx::VerticalAlignment, VerticalAlignment) +ADD_PROPERTY_METADATA(int, LineHeight) +ADD_PROPERTY_METADATA(bool, MultiLine) +ADD_PROPERTY_METADATA(int, MaxLines) +ADD_PROPERTY_METADATA(bool, Obscured) +ADD_PROPERTY_METADATA(bool, AllowCharacterBreak) +ADD_PROPERTY_METADATA(base::string16, TooltipText) +ADD_PROPERTY_METADATA(bool, HandlesTooltips) +ADD_PROPERTY_METADATA(bool, CollapseWhenHidden) +ADD_PROPERTY_METADATA(int, MaximumWidth) +ADD_READONLY_PROPERTY_METADATA(int, TextContext) END_METADATA() } // namespace views
diff --git a/ui/views/controls/link.cc b/ui/views/controls/link.cc index 55c36626..a8a4592 100644 --- a/ui/views/controls/link.cc +++ b/ui/views/controls/link.cc
@@ -219,7 +219,7 @@ } BEGIN_METADATA(Link, Label) -ADD_READONLY_PROPERTY_METADATA(Link, SkColor, Color) +ADD_READONLY_PROPERTY_METADATA(SkColor, Color) END_METADATA() } // namespace views
diff --git a/ui/views/controls/menu/menu_separator.cc b/ui/views/controls/menu/menu_separator.cc index 043f294..c93388d 100644 --- a/ui/views/controls/menu/menu_separator.cc +++ b/ui/views/controls/menu/menu_separator.cc
@@ -101,7 +101,7 @@ } BEGIN_METADATA(MenuSeparator, View) -ADD_PROPERTY_METADATA(MenuSeparator, ui::MenuSeparatorType, Type) +ADD_PROPERTY_METADATA(ui::MenuSeparatorType, Type) END_METADATA() } // namespace views
diff --git a/ui/views/controls/progress_bar.cc b/ui/views/controls/progress_bar.cc index fb3c0f1..8809046 100644 --- a/ui/views/controls/progress_bar.cc +++ b/ui/views/controls/progress_bar.cc
@@ -257,8 +257,8 @@ } BEGIN_METADATA(ProgressBar, View) -ADD_PROPERTY_METADATA(ProgressBar, SkColor, ForegroundColor) -ADD_PROPERTY_METADATA(ProgressBar, SkColor, BackgroundColor) +ADD_PROPERTY_METADATA(SkColor, ForegroundColor) +ADD_PROPERTY_METADATA(SkColor, BackgroundColor) END_METADATA() } // namespace views
diff --git a/ui/views/controls/scroll_view.cc b/ui/views/controls/scroll_view.cc index 6754f54..b2af81f 100644 --- a/ui/views/controls/scroll_view.cc +++ b/ui/views/controls/scroll_view.cc
@@ -1025,15 +1025,14 @@ } BEGIN_METADATA(ScrollView, View) -ADD_READONLY_PROPERTY_METADATA(ScrollView, int, MinHeight) -ADD_READONLY_PROPERTY_METADATA(ScrollView, int, MaxHeight) -ADD_PROPERTY_METADATA(ScrollView, base::Optional<SkColor>, BackgroundColor) -ADD_PROPERTY_METADATA(ScrollView, - base::Optional<ui::NativeTheme::ColorId>, +ADD_READONLY_PROPERTY_METADATA(int, MinHeight) +ADD_READONLY_PROPERTY_METADATA(int, MaxHeight) +ADD_PROPERTY_METADATA(base::Optional<SkColor>, BackgroundColor) +ADD_PROPERTY_METADATA(base::Optional<ui::NativeTheme::ColorId>, BackgroundThemeColorId) -ADD_PROPERTY_METADATA(ScrollView, bool, DrawOverflowIndicator) -ADD_PROPERTY_METADATA(ScrollView, bool, HasFocusIndicator) -ADD_PROPERTY_METADATA(ScrollView, bool, HideHorizontalScrollBar) +ADD_PROPERTY_METADATA(bool, DrawOverflowIndicator) +ADD_PROPERTY_METADATA(bool, HasFocusIndicator) +ADD_PROPERTY_METADATA(bool, HideHorizontalScrollBar) END_METADATA() // VariableRowHeightScrollHelper ----------------------------------------------
diff --git a/ui/views/controls/scrollbar/scroll_bar.cc b/ui/views/controls/scrollbar/scroll_bar.cc index 87f7597..eb6677f9 100644 --- a/ui/views/controls/scrollbar/scroll_bar.cc +++ b/ui/views/controls/scrollbar/scroll_bar.cc
@@ -461,9 +461,9 @@ } BEGIN_METADATA(ScrollBar, View) -ADD_READONLY_PROPERTY_METADATA(ScrollBar, int, MaxPosition) -ADD_READONLY_PROPERTY_METADATA(ScrollBar, int, MinPosition) -ADD_READONLY_PROPERTY_METADATA(ScrollBar, int, Position) +ADD_READONLY_PROPERTY_METADATA(int, MaxPosition) +ADD_READONLY_PROPERTY_METADATA(int, MinPosition) +ADD_READONLY_PROPERTY_METADATA(int, Position) END_METADATA() } // namespace views
diff --git a/ui/views/controls/separator.cc b/ui/views/controls/separator.cc index 69a2e4d..ef5d9a02 100644 --- a/ui/views/controls/separator.cc +++ b/ui/views/controls/separator.cc
@@ -96,8 +96,8 @@ } BEGIN_METADATA(Separator, View) -ADD_PROPERTY_METADATA(Separator, SkColor, Color) -ADD_PROPERTY_METADATA(Separator, int, PreferredHeight) +ADD_PROPERTY_METADATA(SkColor, Color) +ADD_PROPERTY_METADATA(int, PreferredHeight) END_METADATA() } // namespace views
diff --git a/ui/views/controls/slider.cc b/ui/views/controls/slider.cc index 9e8912a..4f3c9d7 100644 --- a/ui/views/controls/slider.cc +++ b/ui/views/controls/slider.cc
@@ -377,8 +377,8 @@ } BEGIN_METADATA(Slider, View) -ADD_PROPERTY_METADATA(Slider, float, Value) -ADD_PROPERTY_METADATA(Slider, bool, EnableAccessibilityEvents) +ADD_PROPERTY_METADATA(float, Value) +ADD_PROPERTY_METADATA(bool, EnableAccessibilityEvents) END_METADATA() } // namespace views
diff --git a/ui/views/controls/styled_label.cc b/ui/views/controls/styled_label.cc index 96dfd7d..181b807e 100644 --- a/ui/views/controls/styled_label.cc +++ b/ui/views/controls/styled_label.cc
@@ -584,14 +584,12 @@ } BEGIN_METADATA(StyledLabel, View) -ADD_PROPERTY_METADATA(StyledLabel, base::string16, Text) -ADD_PROPERTY_METADATA(StyledLabel, int, TextContext) -ADD_PROPERTY_METADATA(StyledLabel, int, DefaultTextStyle) -ADD_PROPERTY_METADATA(StyledLabel, int, LineHeight) -ADD_PROPERTY_METADATA(StyledLabel, bool, AutoColorReadabilityEnabled) -ADD_PROPERTY_METADATA(StyledLabel, - base::Optional<SkColor>, - DisplayedOnBackgroundColor) +ADD_PROPERTY_METADATA(base::string16, Text) +ADD_PROPERTY_METADATA(int, TextContext) +ADD_PROPERTY_METADATA(int, DefaultTextStyle) +ADD_PROPERTY_METADATA(int, LineHeight) +ADD_PROPERTY_METADATA(bool, AutoColorReadabilityEnabled) +ADD_PROPERTY_METADATA(base::Optional<SkColor>, DisplayedOnBackgroundColor) END_METADATA() } // namespace views
diff --git a/ui/views/controls/tabbed_pane/tabbed_pane.cc b/ui/views/controls/tabbed_pane/tabbed_pane.cc index 3405ea86..59820740 100644 --- a/ui/views/controls/tabbed_pane/tabbed_pane.cc +++ b/ui/views/controls/tabbed_pane/tabbed_pane.cc
@@ -487,9 +487,9 @@ base::ASCIIToUTF16("HIGHLIGHT")}) BEGIN_METADATA(TabStrip, View) -ADD_READONLY_PROPERTY_METADATA(TabStrip, int, SelectedTabIndex) -ADD_READONLY_PROPERTY_METADATA(TabStrip, TabbedPane::Orientation, Orientation) -ADD_READONLY_PROPERTY_METADATA(TabStrip, TabbedPane::TabStripStyle, Style) +ADD_READONLY_PROPERTY_METADATA(int, SelectedTabIndex) +ADD_READONLY_PROPERTY_METADATA(TabbedPane::Orientation, Orientation) +ADD_READONLY_PROPERTY_METADATA(TabbedPane::TabStripStyle, Style) END_METADATA() TabbedPane::TabbedPane(TabbedPane::Orientation orientation,
diff --git a/ui/views/controls/table/table_view.cc b/ui/views/controls/table/table_view.cc index 37774c43..5232eae 100644 --- a/ui/views/controls/table/table_view.cc +++ b/ui/views/controls/table/table_view.cc
@@ -1530,15 +1530,15 @@ base::ASCIIToUTF16("ICON_AND_TEXT")}) BEGIN_METADATA(TableView, View) -ADD_READONLY_PROPERTY_METADATA(TableView, int, RowCount) -ADD_READONLY_PROPERTY_METADATA(TableView, int, FirstSelectedRow) -ADD_READONLY_PROPERTY_METADATA(TableView, bool, HasFocusIndicator) -ADD_PROPERTY_METADATA(TableView, int, ActiveVisibleColumnIndex) -ADD_READONLY_PROPERTY_METADATA(TableView, bool, IsSorted) -ADD_READONLY_PROPERTY_METADATA(TableView, int, RowHeight) -ADD_PROPERTY_METADATA(TableView, bool, SelectOnRemove) -ADD_READONLY_PROPERTY_METADATA(TableView, TableTypes, TableType) -ADD_PROPERTY_METADATA(TableView, bool, SortOnPaint) +ADD_READONLY_PROPERTY_METADATA(int, RowCount) +ADD_READONLY_PROPERTY_METADATA(int, FirstSelectedRow) +ADD_READONLY_PROPERTY_METADATA(bool, HasFocusIndicator) +ADD_PROPERTY_METADATA(int, ActiveVisibleColumnIndex) +ADD_READONLY_PROPERTY_METADATA(bool, IsSorted) +ADD_READONLY_PROPERTY_METADATA(int, RowHeight) +ADD_PROPERTY_METADATA(bool, SelectOnRemove) +ADD_READONLY_PROPERTY_METADATA(TableTypes, TableType) +ADD_PROPERTY_METADATA(bool, SortOnPaint) END_METADATA() } // namespace views
diff --git a/ui/views/controls/textfield/textfield.cc b/ui/views/controls/textfield/textfield.cc index 1743a4a..31ad40b 100644 --- a/ui/views/controls/textfield/textfield.cc +++ b/ui/views/controls/textfield/textfield.cc
@@ -2539,20 +2539,20 @@ } BEGIN_METADATA(Textfield, View) -ADD_PROPERTY_METADATA(Textfield, bool, ReadOnly) -ADD_PROPERTY_METADATA(Textfield, base::string16, Text) -ADD_PROPERTY_METADATA(Textfield, ui::TextInputType, TextInputType) -ADD_PROPERTY_METADATA(Textfield, int, TextInputFlags) -ADD_PROPERTY_METADATA(Textfield, SkColor, TextColor) -ADD_PROPERTY_METADATA(Textfield, SkColor, SelectionTextColor) -ADD_PROPERTY_METADATA(Textfield, SkColor, BackgroundColor) -ADD_PROPERTY_METADATA(Textfield, SkColor, SelectionBackgroundColor) -ADD_PROPERTY_METADATA(Textfield, bool, CursorEnabled) -ADD_PROPERTY_METADATA(Textfield, base::string16, PlaceholderText) -ADD_PROPERTY_METADATA(Textfield, bool, Invalid) -ADD_PROPERTY_METADATA(Textfield, gfx::HorizontalAlignment, HorizontalAlignment) -ADD_PROPERTY_METADATA(Textfield, gfx::Range, SelectedRange) -ADD_PROPERTY_METADATA(Textfield, base::string16, AccessibleName) +ADD_PROPERTY_METADATA(bool, ReadOnly) +ADD_PROPERTY_METADATA(base::string16, Text) +ADD_PROPERTY_METADATA(ui::TextInputType, TextInputType) +ADD_PROPERTY_METADATA(int, TextInputFlags) +ADD_PROPERTY_METADATA(SkColor, TextColor) +ADD_PROPERTY_METADATA(SkColor, SelectionTextColor) +ADD_PROPERTY_METADATA(SkColor, BackgroundColor) +ADD_PROPERTY_METADATA(SkColor, SelectionBackgroundColor) +ADD_PROPERTY_METADATA(bool, CursorEnabled) +ADD_PROPERTY_METADATA(base::string16, PlaceholderText) +ADD_PROPERTY_METADATA(bool, Invalid) +ADD_PROPERTY_METADATA(gfx::HorizontalAlignment, HorizontalAlignment) +ADD_PROPERTY_METADATA(gfx::Range, SelectedRange) +ADD_PROPERTY_METADATA(base::string16, AccessibleName) END_METADATA() } // namespace views
diff --git a/ui/views/controls/throbber.cc b/ui/views/controls/throbber.cc index 585a218e..bd5a1707 100644 --- a/ui/views/controls/throbber.cc +++ b/ui/views/controls/throbber.cc
@@ -90,7 +90,7 @@ } BEGIN_METADATA(Throbber, View) -ADD_PROPERTY_METADATA(Throbber, bool, Checked) +ADD_PROPERTY_METADATA(bool, Checked) END_METADATA() // Smoothed throbber --------------------------------------------------------- @@ -150,8 +150,8 @@ } BEGIN_METADATA(SmoothedThrobber, Throbber) -ADD_PROPERTY_METADATA(SmoothedThrobber, base::TimeDelta, StartDelay) -ADD_PROPERTY_METADATA(SmoothedThrobber, base::TimeDelta, StopDelay) +ADD_PROPERTY_METADATA(base::TimeDelta, StartDelay) +ADD_PROPERTY_METADATA(base::TimeDelta, StopDelay) END_METADATA() } // namespace views
diff --git a/ui/views/metadata/metadata_impl_macros.h b/ui/views/metadata/metadata_impl_macros.h index 6a54f1ef..f8a7c9f1 100644 --- a/ui/views/metadata/metadata_impl_macros.h +++ b/ui/views/metadata/metadata_impl_macros.h
@@ -26,7 +26,7 @@ // This will fail to compile if the property accessors aren't in the form of // SetXXXX and GetXXXX. -#define ADD_PROPERTY_METADATA(class_name, property_type, property_name) \ +#define ADD_PROPERTY_METADATA(property_type, property_name) \ std::unique_ptr<METADATA_PROPERTY_TYPE_INTERNAL(property_type, \ property_name)> \ property_name##_prop = std::make_unique<METADATA_PROPERTY_TYPE_INTERNAL( \ @@ -37,8 +37,7 @@ // This will fail to compile if the property accessor isn't in the form of // GetXXXX. -#define ADD_READONLY_PROPERTY_METADATA(class_name, property_type, \ - property_name) \ +#define ADD_READONLY_PROPERTY_METADATA(property_type, property_name) \ std::unique_ptr<METADATA_READONLY_PROPERTY_TYPE_INTERNAL(property_type, \ property_name)> \ property_name##_prop = \
diff --git a/ui/views/metadata/metadata_unittest.cc b/ui/views/metadata/metadata_unittest.cc index db298a0..799504c2 100644 --- a/ui/views/metadata/metadata_unittest.cc +++ b/ui/views/metadata/metadata_unittest.cc
@@ -65,7 +65,7 @@ }; BEGIN_METADATA(MetadataTestBaseView, views::View) -ADD_PROPERTY_METADATA(MetadataTestBaseView, int, IntProperty) +ADD_PROPERTY_METADATA(int, IntProperty) END_METADATA() // Descendent view in the simple hierarchy. The inherited properties are visible @@ -94,7 +94,7 @@ }; BEGIN_METADATA(MetadataTestView, MetadataTestBaseView) -ADD_PROPERTY_METADATA(MetadataTestView, float, FloatProperty) +ADD_PROPERTY_METADATA(float, FloatProperty) END_METADATA() TEST_F(MetadataTest, TestFloatMetadataPropertyAccess) {
diff --git a/ui/views/view.cc b/ui/views/view.cc index 28bb140..f3e0e57 100644 --- a/ui/views/view.cc +++ b/ui/views/view.cc
@@ -3005,15 +3005,15 @@ // This block requires the existence of METADATA_HEADER(View) in the class // declaration for View. BEGIN_METADATA_BASE(View) -ADD_READONLY_PROPERTY_METADATA(View, const char*, ClassName) -ADD_PROPERTY_METADATA(View, bool, Enabled) -ADD_PROPERTY_METADATA(View, View::FocusBehavior, FocusBehavior) -ADD_PROPERTY_METADATA(View, int, Group) -ADD_PROPERTY_METADATA(View, int, ID) -ADD_READONLY_PROPERTY_METADATA(View, gfx::Size, MaximumSize) -ADD_READONLY_PROPERTY_METADATA(View, gfx::Size, MinimumSize) -ADD_PROPERTY_METADATA(View, bool, Mirrored) -ADD_PROPERTY_METADATA(View, bool, Visible) +ADD_READONLY_PROPERTY_METADATA(const char*, ClassName) +ADD_PROPERTY_METADATA(bool, Enabled) +ADD_PROPERTY_METADATA(View::FocusBehavior, FocusBehavior) +ADD_PROPERTY_METADATA(int, Group) +ADD_PROPERTY_METADATA(int, ID) +ADD_READONLY_PROPERTY_METADATA(gfx::Size, MaximumSize) +ADD_READONLY_PROPERTY_METADATA(gfx::Size, MinimumSize) +ADD_PROPERTY_METADATA(bool, Mirrored) +ADD_PROPERTY_METADATA(bool, Visible) END_METADATA() } // namespace views
diff --git a/ui/views/view.h b/ui/views/view.h index 45d1a55..913fadef 100644 --- a/ui/views/view.h +++ b/ui/views/view.h
@@ -254,7 +254,7 @@ // namespace in which the class resides. // // BEGIN_METADATA(View, ParentView) -// ADD_PROPERTY_METADATA(View, bool, Frobble) +// ADD_PROPERTY_METADATA(bool, Frobble) // END_METADATA() // // For each property, add a definition using ADD_PROPERTY_METADATA() between @@ -263,7 +263,7 @@ // Descendant classes must specify the parent class as a macro parameter. // // BEGIN_METADATA(MyView, views::View) -// ADD_PROPERTY_METADATA(MyView, int, Bobble) +// ADD_PROPERTY_METADATA(int, Bobble) // END_METADATA() ///////////////////////////////////////////////////////////////////////////// class VIEWS_EXPORT View : public ui::LayerDelegate,
diff --git a/ui/webui/resources/cr_components/chromeos/cellular_setup/BUILD.gn b/ui/webui/resources/cr_components/chromeos/cellular_setup/BUILD.gn index 53290a1..b4829fd2 100644 --- a/ui/webui/resources/cr_components/chromeos/cellular_setup/BUILD.gn +++ b/ui/webui/resources/cr_components/chromeos/cellular_setup/BUILD.gn
@@ -70,6 +70,7 @@ ":sim_detect_page", ":subflow_behavior", "//chromeos/services/cellular_setup/public/mojom:mojom_js_library_for_compile", + "//ui/webui/resources/js:assert.m", "//ui/webui/resources/js:i18n_behavior", ] } @@ -127,18 +128,15 @@ ":base_page.m", ":button_bar.m", ":cellular_types.m", - - # ":cellular_setup.m", - # ":esim_flow_ui.m", + ":cellular_setup.m", + ":esim_flow_ui.m", ":final_page.m", ":mojo_interface_provider.m", ":provisioning_page.m", - - # ":psim_flow_ui.m", + ":psim_flow_ui.m", ":sim_detect_page.m", ":subflow_behavior.m", - - # ":setup_selection_flow.m", + ":setup_selection_flow.m", ":webview_post_util.m", ] } @@ -223,13 +221,68 @@ extra_deps = [ ":modulize" ] } +js_library("psim_flow_ui.m") { + sources = [ "$root_gen_dir/ui/webui/resources/cr_components/chromeos/cellular_setup/psim_flow_ui.m.js" ] + deps = [ + ":cellular_types.m", + ":cellular_types.m", + ":final_page.m", + ":mojo_interface_provider.m", + ":provisioning_page.m", + ":sim_detect_page.m", + ":subflow_behavior.m", + "//chromeos/services/cellular_setup/public/mojom:mojom_js_library_for_compile", + "//third_party/polymer/v3_0/components-chromium/polymer:polymer_bundled", + "//ui/webui/resources/js:assert.m", + "//ui/webui/resources/js:i18n_behavior.m", + ] + extra_deps = [ ":psim_flow_ui_module" ] +} + +js_library("esim_flow_ui.m") { + sources = [ "$root_gen_dir/ui/webui/resources/cr_components/chromeos/cellular_setup/esim_flow_ui.m.js" ] + deps = [ + ":cellular_types.m", + ":subflow_behavior.m", + "//ui/webui/resources/js:i18n_behavior.m", + ] + extra_deps = [ ":esim_flow_ui_module" ] +} + +js_library("setup_selection_flow.m") { + sources = [ "$root_gen_dir/ui/webui/resources/cr_components/chromeos/cellular_setup/setup_selection_flow.m.js" ] + deps = [ + ":cellular_types.m", + ":subflow_behavior.m", + "//ui/webui/resources/js:i18n_behavior.m", + ] + extra_deps = [ ":setup_selection_flow_module" ] +} + +js_library("cellular_setup.m") { + sources = [ "$root_gen_dir/ui/webui/resources/cr_components/chromeos/cellular_setup/cellular_setup.m.js" ] + deps = [ + ":button_bar.m", + ":cellular_types.m", + ":esim_flow_ui.m", + ":psim_flow_ui.m", + ":setup_selection_flow.m", + "//ui/webui/resources/js:i18n_behavior.m", + ] + extra_deps = [ ":cellular_setup_module" ] +} + group("polymer3_elements") { public_deps = [ + ":cellular_setup_module", ":base_page_module", ":button_bar_module", + ":esim_flow_ui_module", ":final_page_module", ":modulize", ":provisioning_page_module", + ":psim_flow_ui_module", + ":setup_selection_flow_module", ":sim_detect_page_module", ] } @@ -274,6 +327,38 @@ auto_imports = cr_components_chromeos_auto_imports } +polymer_modulizer("psim_flow_ui") { + js_file = "psim_flow_ui.js" + html_file = "psim_flow_ui.html" + html_type = "dom-module" + namespace_rewrites = cr_components_chromeos_namespace_rewrites + auto_imports = cr_components_chromeos_auto_imports +} + +polymer_modulizer("esim_flow_ui") { + js_file = "esim_flow_ui.js" + html_file = "esim_flow_ui.html" + html_type = "dom-module" + namespace_rewrites = cr_components_chromeos_namespace_rewrites + auto_imports = cr_components_chromeos_auto_imports +} + +polymer_modulizer("setup_selection_flow") { + js_file = "setup_selection_flow.js" + html_file = "setup_selection_flow.html" + html_type = "dom-module" + namespace_rewrites = cr_components_chromeos_namespace_rewrites + auto_imports = cr_components_chromeos_auto_imports +} + +polymer_modulizer("cellular_setup") { + js_file = "cellular_setup.js" + html_file = "cellular_setup.html" + html_type = "dom-module" + namespace_rewrites = cr_components_chromeos_namespace_rewrites + auto_imports = cr_components_chromeos_auto_imports +} + js_modulizer("modulize") { input_files = [ "cellular_types.js",
diff --git a/ui/webui/resources/cr_components/chromeos/cellular_setup/cellular_setup.html b/ui/webui/resources/cr_components/chromeos/cellular_setup/cellular_setup.html index 16797d0..ba35f1d 100644 --- a/ui/webui/resources/cr_components/chromeos/cellular_setup/cellular_setup.html +++ b/ui/webui/resources/cr_components/chromeos/cellular_setup/cellular_setup.html
@@ -36,6 +36,5 @@ <button-bar button-state="[[buttonState_]]"> </button-bar> </template> - <script src="cellular_setup.js"> - </script> + <script src="cellular_setup.js"></script> </dom-module>
diff --git a/ui/webui/resources/cr_components/chromeos/cellular_setup/esim_flow_ui.html b/ui/webui/resources/cr_components/chromeos/cellular_setup/esim_flow_ui.html index 83b9c707..4dcbfc2 100644 --- a/ui/webui/resources/cr_components/chromeos/cellular_setup/esim_flow_ui.html +++ b/ui/webui/resources/cr_components/chromeos/cellular_setup/esim_flow_ui.html
@@ -1,6 +1,7 @@ <link rel="import" href="../../../html/polymer.html"> <link rel="import" href="../../../html/i18n_behavior.html"> <link rel="import" href="subflow_behavior.html"> +<link rel="import" href="cellular_types.html"> <dom-module id="esim-flow-ui"> <template> @@ -14,6 +15,5 @@ <!-- TODO(crbug.com/1093185): Add eSIM UI--> <p>TODO(eSIM flow)</p> </template> - <script src="esim_flow_ui.js"> - </script> + <script src="esim_flow_ui.js"></script> </dom-module> \ No newline at end of file
diff --git a/ui/webui/resources/cr_components/chromeos/cellular_setup/psim_flow_ui.html b/ui/webui/resources/cr_components/chromeos/cellular_setup/psim_flow_ui.html index 80444fc..b47043e 100644 --- a/ui/webui/resources/cr_components/chromeos/cellular_setup/psim_flow_ui.html +++ b/ui/webui/resources/cr_components/chromeos/cellular_setup/psim_flow_ui.html
@@ -6,10 +6,13 @@ <link rel="import" href="provisioning_page.html"> <link rel="import" href="final_page.html"> <link rel="import" href="subflow_behavior.html"> +<link rel="import" href="cellular_types.html"> +<link rel="import" href="chrome://resources/html/assert.html"> <link rel="import" href="chrome://resources/polymer/v1_0/iron-flex-layout/iron-flex-layout.html"> <link rel="import" href="chrome://resources/polymer/v1_0/iron-flex-layout/iron-flex-layout-classes.html"> <link rel="import" href="chrome://resources/polymer/v1_0/iron-pages/iron-pages.html"> + <dom-module id="psim-flow-ui"> <template> <style include="iron-flex"> @@ -31,6 +34,5 @@ <final-page show-error="[[showError_]]"></final-page> </iron-pages> </template> - <script src="psim_flow_ui.js"> - </script> + <script src="psim_flow_ui.js"></script> </dom-module>
diff --git a/ui/webui/resources/cr_components/chromeos/cellular_setup/psim_flow_ui.js b/ui/webui/resources/cr_components/chromeos/cellular_setup/psim_flow_ui.js index 1afacc1..16d316e 100644 --- a/ui/webui/resources/cr_components/chromeos/cellular_setup/psim_flow_ui.js +++ b/ui/webui/resources/cr_components/chromeos/cellular_setup/psim_flow_ui.js
@@ -52,306 +52,312 @@ return null; } + /** + * Root element for the pSIM cellular setup flow. This element interacts with + * the CellularSetup service to carry out the psim activation flow. It + * contains navigation buttons and sub-pages corresponding to each step of the + * flow. + */ + Polymer({ + is: 'psim-flow-ui', + + behaviors: [ + I18nBehavior, + SubflowBehavior, + ], + + properties: { + /** + * @type {!cellularSetup.PSimUIState} + * @private + */ + state_: { + type: String, + value: PSimUIState.IDLE, + }, + + /** + * Element name of the current selected sub-page. + * @type {!cellularSetup.PSimPageName} + * @private + */ + selectedPSimPageName_: { + type: String, + value: PSimPageName.SIM_DETECT, + notify: true, + }, + + /** + * DOM Element for the current selected sub-page. + * @private {!SimDetectPageElement|!ProvisioningPageElement| + * !FinalPageElement} + */ + selectedPage_: Object, + + /** + * Whether error state should be shown for the current page. + * @private {boolean} + */ + showError_: {type: Boolean, value: false}, + + /** + * Cellular metadata received via the onActivationStarted() callback. If + * that callback has not occurred, this field is null. + * @private {?chromeos.cellularSetup.mojom.CellularMetadata} + */ + cellularMetadata_: { + type: Object, + value: null, + }, + + /** + * Whether try again should be shown in the button bar. + * @private {boolean} + */ + showTryAgainButton_: {type: Boolean, value: false}, + + /** + * Whether finish button should be shown in the button bar. + * @private {boolean} + */ + showFinishButton_: {type: Boolean, value: false}, + + /** + * Whether cancel button should be shown in the button bar. + * @private {boolean} + */ + showCancelButton_: {type: Boolean, value: false} + }, + + observers: [ + 'updateShowError_(state_)', + 'updateSelectedPage_(state_)', + 'handlePSimUIStateChange_(state_)', + ], + + /** + * Provides an interface to the CellularSetup Mojo service. + * @private {?cellular_setup.MojoInterfaceProvider} + */ + mojoInterfaceProvider_: null, + + /** + * Delegate responsible for routing activation started/finished events. + * @private {?chromeos.cellularSetup.mojom.ActivationDelegateReceiver} + */ + activationDelegateReceiver_: null, + + /** + * The timeout ID corresponding to a timeout for the current state. If no + * timeout is active, this value is null. + * @private {?number} + */ + currentTimeoutId_: null, + + /** + * Handler used to communicate state updates back to the CellularSetup + * service. + * @private {?chromeos.cellularSetup.mojom.CarrierPortalHandlerRemote} + */ + carrierPortalHandler_: null, + + /** @override */ + created() { + this.mojoInterfaceProvider_ = + cellular_setup.MojoInterfaceProviderImpl.getInstance(); + }, + + /** + * Overrides chromeos.cellularSetup.mojom.ActivationDelegateInterface. + * @param {!chromeos.cellularSetup.mojom.CellularMetadata} metadata + * @private + */ + onActivationStarted(metadata) { + this.clearTimer_(); + this.cellularMetadata_ = metadata; + this.state_ = PSimUIState.WAITING_FOR_PORTAL_TO_LOAD; + }, + + initSubflow() { + this.state_ = PSimUIState.STARTING_ACTIVATION; + this.set('buttonState', { + backward: cellularSetup.ButtonState.HIDDEN, + cancel: cellularSetup.ButtonState.SHOWN_AND_ENABLED, + finish: cellularSetup.ButtonState.HIDDEN, + next: cellularSetup.ButtonState.SHOWN_AND_ENABLED, + tryAgain: cellularSetup.ButtonState.HIDDEN + }); + }, + + /** + * Overrides chromeos.cellularSetup.mojom.ActivationDelegateInterface. + * @param {!chromeos.cellularSetup.mojom.ActivationResult} result + * @private + */ + onActivationFinished(result) { + this.closeActivationConnection_(); + + const ActivationResult = chromeos.cellularSetup.mojom.ActivationResult; + switch (result) { + case ActivationResult.kSuccessfullyStartedActivation: + this.state_ = PSimUIState.ALREADY_ACTIVATED; + break; + case ActivationResult.kAlreadyActivated: + this.state_ = PSimUIState.ACTIVATION_SUCCESS; + break; + case ActivationResult.kFailedToActivate: + this.state_ = PSimUIState.ACTIVATION_FAILURE; + break; + default: + assertNotReached(); + } + }, + + /** @private */ + updateShowError_() { + switch (this.state_) { + case PSimUIState.TIMEOUT_START_ACTIVATION: + case PSimUIState.TIMEOUT_PORTAL_LOAD: + case PSimUIState.TIMEOUT_FINISH_ACTIVATION: + case PSimUIState.ACTIVATION_FAILURE: + this.showError_ = true; + return; + default: + this.showError_ = false; + return; + } + }, + + /** @private */ + updateSelectedPage_() { + switch (this.state_) { + case PSimUIState.IDLE: + case PSimUIState.STARTING_ACTIVATION: + case PSimUIState.WAITING_FOR_ACTIVATION_TO_START: + case PSimUIState.TIMEOUT_START_ACTIVATION: + this.selectedPSimPageName_ = PSimPageName.SIM_DETECT; + return; + case PSimUIState.WAITING_FOR_PORTAL_TO_LOAD: + case PSimUIState.TIMEOUT_PORTAL_LOAD: + case PSimUIState.WAITING_FOR_USER_PAYMENT: + this.selectedPSimPageName_ = PSimPageName.PROVISIONING; + return; + case PSimUIState.WAITING_FOR_ACTIVATION_TO_FINISH: + case PSimUIState.TIMEOUT_FINISH_ACTIVATION: + case PSimUIState.ACTIVATION_SUCCESS: + case PSimUIState.ALREADY_ACTIVATED: + case PSimUIState.ACTIVATION_FAILURE: + this.selectedPSimPageName_ = PSimPageName.FINAL; + return; + default: + assertNotReached(); + } + }, + + /** @private */ + handlePSimUIStateChange_() { + // Since the state has changed, the previous state did not time out, so + // clear any active timeout. + this.clearTimer_(); + + // If the new state has an associated timeout, set it. + const timeoutMs = getTimeoutMsForPSimUIState(this.state_); + if (timeoutMs !== null) { + this.currentTimeoutId_ = + setTimeout(this.onTimeout_.bind(this), timeoutMs); + } + + if (this.state_ === PSimUIState.STARTING_ACTIVATION) { + this.startActivation_(); + return; + } + }, + + /** @private */ + onTimeout_() { + // The activation attempt failed, so close the connection to the service. + this.closeActivationConnection_(); + + switch (this.state_) { + case PSimUIState.STARTING_ACTIVATION: + this.state_ = PSimUIState.TIMEOUT_START_ACTIVATION; + return; + case PSimUIState.WAITING_FOR_PORTAL_TO_LOAD: + this.state_ = PSimUIState.TIMEOUT_PORTAL_LOAD; + return; + case PSimUIState.WAITING_FOR_ACTIVATION_TO_FINISH: + this.state_ = PSimUIState.TIMEOUT_FINISH_ACTIVATION; + return; + default: + // Only the above states are expected to time out. + assertNotReached(); + } + }, + + /** @private */ + startActivation_() { + assert(!this.activationDelegateReceiver_); + this.activationDelegateReceiver_ = + new chromeos.cellularSetup.mojom.ActivationDelegateReceiver( + /** + * @type {!chromeos.cellularSetup.mojom.ActivationDelegateInterface} + */ + (this)); + + this.mojoInterfaceProvider_.getMojoServiceRemote() + .startActivation( + this.activationDelegateReceiver_.$.bindNewPipeAndPassRemote()) + .then( + /** + * @param {!chromeos.cellularSetup. + * mojom.CellularSetup_StartActivation_ResponseParams} + * params + */ + (params) => { + this.carrierPortalHandler_ = params.observer; + }); + }, + + /** @private */ + closeActivationConnection_() { + assert(!!this.activationDelegateReceiver_); + this.activationDelegateReceiver_.$.close(); + this.activationDelegateReceiver_ = null; + this.carrierPortalHandler_ = null; + this.cellularMetadata_ = null; + }, + + /** @private */ + clearTimer_() { + if (this.currentTimeoutId_) { + clearTimeout(this.currentTimeoutId_); + } + this.currentTimeoutId_ = null; + }, + + /** @private */ + onCarrierPortalLoaded_() { + this.state_ = PSimUIState.WAITING_FOR_USER_PAYMENT; + this.carrierPortalHandler_.onCarrierPortalStatusChange( + chromeos.cellularSetup.mojom.CarrierPortalStatus + .kPortalLoadedWithoutPaidUser); + }, + + /** + * @param {!CustomEvent<boolean>} event + * @private + */ + onCarrierPortalResult_(event) { + const success = event.detail; + this.state_ = success ? PSimUIState.ACTIVATION_SUCCESS : + PSimUIState.ACTIVATION_FAILURE; + }, + }); + + // #cr_define_end return { PSimPageName: PSimPageName, PSimUIState: PSimUIState, getTimeoutMsForPSimUIState: getTimeoutMsForPSimUIState }; }); - -/** - * Root element for the pSIM cellular setup flow. This element interacts with - * the CellularSetup service to carry out the psim activation flow. It contains - * navigation buttons and sub-pages corresponding to each step of the flow. - */ -Polymer({ - is: 'psim-flow-ui', - - behaviors: [ - I18nBehavior, - SubflowBehavior, - ], - - properties: { - /** @private {!cellularSetup.PSimUIState} */ - state_: { - type: String, - value: cellularSetup.PSimUIState.IDLE, - }, - - /** - * Element name of the current selected sub-page. - * @private {!cellularSetup.PSimPageName} - */ - selectedPSimPageName_: { - type: String, - value: cellularSetup.PSimPageName.SIM_DETECT, - notify: true, - }, - - /** - * DOM Element for the current selected sub-page. - * @private {!SimDetectPageElement|!ProvisioningPageElement| - * !FinalPageElement} - */ - selectedPage_: Object, - - /** - * Whether error state should be shown for the current page. - * @private {boolean} - */ - showError_: {type: Boolean, value: false}, - - /** - * Cellular metadata received via the onActivationStarted() callback. If - * that callback has not occurred, this field is null. - * @private {?chromeos.cellularSetup.mojom.CellularMetadata} - */ - cellularMetadata_: { - type: Object, - value: null, - }, - - /** - * Whether try again should be shown in the button bar. - * @private {boolean} - */ - showTryAgainButton_: {type: Boolean, value: false}, - - /** - * Whether finish button should be shown in the button bar. - * @private {boolean} - */ - showFinishButton_: {type: Boolean, value: false}, - - /** - * Whether cancel button should be shown in the button bar. - * @private {boolean} - */ - showCancelButton_: {type: Boolean, value: false} - }, - - observers: [ - 'updateShowError_(state_)', - 'updateSelectedPage_(state_)', - 'handlePSimUIStateChange_(state_)', - ], - - /** - * Provides an interface to the CellularSetup Mojo service. - * @private {?cellular_setup.MojoInterfaceProvider} - */ - mojoInterfaceProvider_: null, - - /** - * Delegate responsible for routing activation started/finished events. - * @private {?chromeos.cellularSetup.mojom.ActivationDelegateReceiver} - */ - activationDelegateReceiver_: null, - - /** - * The timeout ID corresponding to a timeout for the current state. If no - * timeout is active, this value is null. - * @private {?number} - */ - currentTimeoutId_: null, - - /** - * Handler used to communicate state updates back to the CellularSetup - * service. - * @private {?chromeos.cellularSetup.mojom.CarrierPortalHandlerRemote} - */ - carrierPortalHandler_: null, - - /** @override */ - created() { - this.mojoInterfaceProvider_ = - cellular_setup.MojoInterfaceProviderImpl.getInstance(); - }, - - /** - * Overrides chromeos.cellularSetup.mojom.ActivationDelegateInterface. - * @param {!chromeos.cellularSetup.mojom.CellularMetadata} metadata - * @private - */ - onActivationStarted(metadata) { - this.clearTimer_(); - this.cellularMetadata_ = metadata; - this.state_ = cellularSetup.PSimUIState.WAITING_FOR_PORTAL_TO_LOAD; - }, - - initSubflow() { - this.state_ = cellularSetup.PSimUIState.STARTING_ACTIVATION; - this.set('buttonState', { - backward: cellularSetup.ButtonState.HIDDEN, - cancel: cellularSetup.ButtonState.SHOWN_AND_ENABLED, - finish: cellularSetup.ButtonState.HIDDEN, - next: cellularSetup.ButtonState.SHOWN_AND_ENABLED, - tryAgain: cellularSetup.ButtonState.HIDDEN - }); - }, - - /** - * Overrides chromeos.cellularSetup.mojom.ActivationDelegateInterface. - * @param {!chromeos.cellularSetup.mojom.ActivationResult} result - * @private - */ - onActivationFinished(result) { - this.closeActivationConnection_(); - - const ActivationResult = chromeos.cellularSetup.mojom.ActivationResult; - switch (result) { - case ActivationResult.kSuccessfullyStartedActivation: - this.state_ = cellularSetup.PSimUIState.ALREADY_ACTIVATED; - break; - case ActivationResult.kAlreadyActivated: - this.state_ = cellularSetup.PSimUIState.ACTIVATION_SUCCESS; - break; - case ActivationResult.kFailedToActivate: - this.state_ = cellularSetup.PSimUIState.ACTIVATION_FAILURE; - break; - default: - assertNotReached(); - } - }, - - /** @private */ - updateShowError_() { - switch (this.state_) { - case cellularSetup.PSimUIState.TIMEOUT_START_ACTIVATION: - case cellularSetup.PSimUIState.TIMEOUT_PORTAL_LOAD: - case cellularSetup.PSimUIState.TIMEOUT_FINISH_ACTIVATION: - case cellularSetup.PSimUIState.ACTIVATION_FAILURE: - this.showError_ = true; - return; - default: - this.showError_ = false; - return; - } - }, - - /** @private */ - updateSelectedPage_() { - switch (this.state_) { - case cellularSetup.PSimUIState.IDLE: - case cellularSetup.PSimUIState.STARTING_ACTIVATION: - case cellularSetup.PSimUIState.WAITING_FOR_ACTIVATION_TO_START: - case cellularSetup.PSimUIState.TIMEOUT_START_ACTIVATION: - this.selectedPSimPageName_ = cellularSetup.PSimPageName.SIM_DETECT; - return; - case cellularSetup.PSimUIState.WAITING_FOR_PORTAL_TO_LOAD: - case cellularSetup.PSimUIState.TIMEOUT_PORTAL_LOAD: - case cellularSetup.PSimUIState.WAITING_FOR_USER_PAYMENT: - this.selectedPSimPageName_ = cellularSetup.PSimPageName.PROVISIONING; - return; - case cellularSetup.PSimUIState.WAITING_FOR_ACTIVATION_TO_FINISH: - case cellularSetup.PSimUIState.TIMEOUT_FINISH_ACTIVATION: - case cellularSetup.PSimUIState.ACTIVATION_SUCCESS: - case cellularSetup.PSimUIState.ALREADY_ACTIVATED: - case cellularSetup.PSimUIState.ACTIVATION_FAILURE: - this.selectedPSimPageName_ = cellularSetup.PSimPageName.FINAL; - return; - default: - assertNotReached(); - } - }, - - /** @private */ - handlePSimUIStateChange_() { - // Since the state has changed, the previous state did not time out, so - // clear any active timeout. - this.clearTimer_(); - - // If the new state has an associated timeout, set it. - const timeoutMs = cellularSetup.getTimeoutMsForPSimUIState(this.state_); - if (timeoutMs !== null) { - this.currentTimeoutId_ = - setTimeout(this.onTimeout_.bind(this), timeoutMs); - } - - if (this.state_ === cellularSetup.PSimUIState.STARTING_ACTIVATION) { - this.startActivation_(); - return; - } - }, - - /** @private */ - onTimeout_() { - // The activation attempt failed, so close the connection to the service. - this.closeActivationConnection_(); - - switch (this.state_) { - case cellularSetup.PSimUIState.STARTING_ACTIVATION: - this.state_ = cellularSetup.PSimUIState.TIMEOUT_START_ACTIVATION; - return; - case cellularSetup.PSimUIState.WAITING_FOR_PORTAL_TO_LOAD: - this.state_ = cellularSetup.PSimUIState.TIMEOUT_PORTAL_LOAD; - return; - case cellularSetup.PSimUIState.WAITING_FOR_ACTIVATION_TO_FINISH: - this.state_ = cellularSetup.PSimUIState.TIMEOUT_FINISH_ACTIVATION; - return; - default: - // Only the above states are expected to time out. - assertNotReached(); - } - }, - - /** @private */ - startActivation_() { - assert(!this.activationDelegateReceiver_); - this.activationDelegateReceiver_ = - new chromeos.cellularSetup.mojom.ActivationDelegateReceiver( - /** - * @type {!chromeos.cellularSetup.mojom.ActivationDelegateInterface} - */ - (this)); - - this.mojoInterfaceProvider_.getMojoServiceRemote() - .startActivation( - this.activationDelegateReceiver_.$.bindNewPipeAndPassRemote()) - .then( - /** - * @param {!chromeos.cellularSetup. - * mojom.CellularSetup_StartActivation_ResponseParams} - * params - */ - (params) => { - this.carrierPortalHandler_ = params.observer; - }); - }, - - /** @private */ - closeActivationConnection_() { - assert(!!this.activationDelegateReceiver_); - this.activationDelegateReceiver_.$.close(); - this.activationDelegateReceiver_ = null; - this.carrierPortalHandler_ = null; - this.cellularMetadata_ = null; - }, - - /** @private */ - clearTimer_() { - if (this.currentTimeoutId_) { - clearTimeout(this.currentTimeoutId_); - } - this.currentTimeoutId_ = null; - }, - - /** @private */ - onCarrierPortalLoaded_() { - this.state_ = cellularSetup.PSimUIState.WAITING_FOR_USER_PAYMENT; - this.carrierPortalHandler_.onCarrierPortalStatusChange( - chromeos.cellularSetup.mojom.CarrierPortalStatus - .kPortalLoadedWithoutPaidUser); - }, - - /** - * @param {!CustomEvent<boolean>} event - * @private - */ - onCarrierPortalResult_(event) { - const success = event.detail; - this.state_ = success ? cellularSetup.PSimUIState.ACTIVATION_SUCCESS : - cellularSetup.PSimUIState.ACTIVATION_FAILURE; - }, -});
diff --git a/ui/webui/resources/cr_components/chromeos/cellular_setup/setup_selection_flow.html b/ui/webui/resources/cr_components/chromeos/cellular_setup/setup_selection_flow.html index b686fe11..a457823 100644 --- a/ui/webui/resources/cr_components/chromeos/cellular_setup/setup_selection_flow.html +++ b/ui/webui/resources/cr_components/chromeos/cellular_setup/setup_selection_flow.html
@@ -28,6 +28,5 @@ </cr-card-radio-button> </cr-radio-group> </template> - <script src="setup_selection_flow.js"> - </script> + <script src="setup_selection_flow.js"></script> </dom-module> \ No newline at end of file
diff --git a/ui/webui/resources/cr_components/chromeos/os_cr_components.gni b/ui/webui/resources/cr_components/chromeos/os_cr_components.gni index 4fb6e651..45d3969 100644 --- a/ui/webui/resources/cr_components/chromeos/os_cr_components.gni +++ b/ui/webui/resources/cr_components/chromeos/os_cr_components.gni
@@ -14,11 +14,16 @@ "cellularSetup.Button|Button", "cellularSetup.ButtonBarState|ButtonBarState", "cellularSetup.CellularSetupPageName|CellularSetupPageName", + "cellularSetup.PSimPageName|PSimPageName", + "cellularSetup.PSimUIState|PSimUIState", + "cellularSetup.getTimeoutMsForPSimUIState|getTimeoutMsForPSimUIState", ] cr_components_chromeos_auto_imports = [ "ui/webui/resources/cr_elements/policy/cr_policy_indicator_behavior.html|CrPolicyIndicatorType", "ui/webui/resources/cr_components/chromeos/cellular_setup/cellular_types.html|ButtonState,Button,ButtonBarState,CellularSetupPageName", + "ui/webui/resources/cr_components/chromeos/cellular_setup/subflow_behavior.html|SubflowBehavior", + "ui/webui/resources/cr_components/chromeos/cellular_setup/mojo_interface_provider.html|MojoInterfaceProviderImpl,MojoInterfaceProvider", "ui/webui/resources/cr_components/chromeos/network/cr_policy_network_behavior_mojo.html|CrPolicyNetworkBehaviorMojo", "ui/webui/resources/cr_components/chromeos/network/onc_mojo.html|OncMojo", "ui/webui/resources/cr_components/chromeos/network/network_listener_behavior.html|NetworkListenerBehavior",
diff --git a/ui/webui/resources/cr_components/cr_components_resources_v3.grdp b/ui/webui/resources/cr_components/cr_components_resources_v3.grdp index 22a2cf4..8c17f79f 100644 --- a/ui/webui/resources/cr_components/cr_components_resources_v3.grdp +++ b/ui/webui/resources/cr_components/cr_components_resources_v3.grdp
@@ -156,6 +156,26 @@ file="${root_gen_dir}/ui/webui/resources/cr_components/chromeos/cellular_setup/cellular_types.m.js" use_base_dir="false" type="BINDATA" /> + <include name="IDR_WEBUI_CHROMEOS_CELLULAR_SETUP_SUBFLOW_BEHAVIOR_M_JS" + file="${root_gen_dir}/ui/webui/resources/cr_components/chromeos/cellular_setup/subflow_behavior.m.js" + use_base_dir="false" + type="BINDATA" /> + <include name="IDR_WEBUI_CHROMEOS_CELLULAR_SETUP_PSIM_FLOW_UI_M_JS" + file="${root_gen_dir}/ui/webui/resources/cr_components/chromeos/cellular_setup/psim_flow_ui.m.js" + use_base_dir="false" + type="BINDATA" /> + <include name="IDR_WEBUI_CHROMEOS_CELLULAR_SETUP_ESIM_FLOW_UI_M_JS" + file="${root_gen_dir}/ui/webui/resources/cr_components/chromeos/cellular_setup/esim_flow_ui.m.js" + use_base_dir="false" + type="BINDATA" /> + <include name="IDR_WEBUI_CHROMEOS_CELLULAR_SETUP_SETUP_SELECTION_FLOW_M_JS" + file="${root_gen_dir}/ui/webui/resources/cr_components/chromeos/cellular_setup/setup_selection_flow.m.js" + use_base_dir="false" + type="BINDATA" /> + <include name="IDR_WEBUI_CHROMEOS_CELLULAR_SETUP_CELLULAR_SETUP_M_JS" + file="${root_gen_dir}/ui/webui/resources/cr_components/chromeos/cellular_setup/cellular_setup.m.js" + use_base_dir="false" + type="BINDATA" /> </if> <if expr="use_nss_certs"> <include name="IDR_WEBUI_CA_TRUST_EDIT_DIALOG_JS"
diff --git a/weblayer/BUILD.gn b/weblayer/BUILD.gn index 8a015db..6104233 100644 --- a/weblayer/BUILD.gn +++ b/weblayer/BUILD.gn
@@ -386,6 +386,7 @@ "//components/keyed_service/content", "//components/language/core/browser", "//components/metrics", + "//components/metrics:content", "//components/network_time", "//components/omnibox/browser:location_bar", "//components/page_info",
diff --git a/weblayer/browser/android/javatests/src/org/chromium/weblayer/test/ExternalNavigationTest.java b/weblayer/browser/android/javatests/src/org/chromium/weblayer/test/ExternalNavigationTest.java index 762c8af..6746cbe8 100644 --- a/weblayer/browser/android/javatests/src/org/chromium/weblayer/test/ExternalNavigationTest.java +++ b/weblayer/browser/android/javatests/src/org/chromium/weblayer/test/ExternalNavigationTest.java
@@ -20,6 +20,7 @@ import org.chromium.base.test.util.CallbackHelper; import org.chromium.content_public.browser.test.util.TestThreadUtils; import org.chromium.weblayer.Browser; +import org.chromium.weblayer.NavigateParams; import org.chromium.weblayer.Tab; import org.chromium.weblayer.TabListCallback; import org.chromium.weblayer.shell.InstrumentationActivity; @@ -532,4 +533,35 @@ Assert.assertEquals(INTENT_TO_CHROME_ACTION, intent.getAction()); Assert.assertEquals(INTENT_TO_CHROME_DATA_STRING, intent.getDataString()); } + + /** + * Verifies that disableIntentProcessing() does in fact disable intent processing. + */ + @Test + @SmallTest + @MinWebLayerVersion(87) + public void testDisableIntentProcessing() throws Throwable { + InstrumentationActivity activity = mActivityTestRule.launchShellWithUrl(ABOUT_BLANK_URL); + IntentInterceptor intentInterceptor = new IntentInterceptor(); + activity.setIntentInterceptor(intentInterceptor); + + String url = mActivityTestRule.getTestDataURL(PAGE_THAT_INTENTS_TO_CHROME_ON_LOAD_FILE); + + Tab tab = mActivityTestRule.getActivity().getTab(); + + TestThreadUtils.runOnUiThreadBlocking(() -> { + NavigateParams.Builder navigateParamsBuilder = new NavigateParams.Builder(); + navigateParamsBuilder.disableIntentProcessing(); + tab.getNavigationController().navigate(Uri.parse(url), navigateParamsBuilder.build()); + }); + + NavigationWaiter waiter = new NavigationWaiter( + INTENT_TO_CHROME_URL, tab, /*expectFailure=*/true, /*waitForPaint=*/false); + waiter.waitForNavigation(); + + Assert.assertNull(intentInterceptor.mLastIntent); + + // The current URL should not have changed. + Assert.assertEquals(url, mActivityTestRule.getCurrentDisplayUrl()); + } }
diff --git a/weblayer/browser/android/metrics/metrics_browsertest.cc b/weblayer/browser/android/metrics/metrics_browsertest.cc index b2cef45..ec8bff6 100644 --- a/weblayer/browser/android/metrics/metrics_browsertest.cc +++ b/weblayer/browser/android/metrics/metrics_browsertest.cc
@@ -145,6 +145,28 @@ // might potentially have a third metrics log in the queue. } +IN_PROC_BROWSER_TEST_F(MetricsBrowserTest, NavigationIncrementsPageLoadCount) { + ASSERT_TRUE(embedded_test_server()->Start()); + metrics::ChromeUserMetricsExtension log = WaitForNextMetricsLog(); + // The initial log should not have a page load count (because nothing was + // loaded). + { + const metrics::SystemProfileProto& system_profile = log.system_profile(); + ASSERT_TRUE(system_profile.has_stability()); + EXPECT_EQ(0, system_profile.stability().page_load_count()); + } + + // Loading a page should increment the page load count. + NavigateAndWaitForCompletion( + embedded_test_server()->GetURL("/simple_page.html"), shell()); + log = WaitForNextMetricsLog(); + { + const metrics::SystemProfileProto& system_profile = log.system_profile(); + ASSERT_TRUE(system_profile.has_stability()); + EXPECT_EQ(1, system_profile.stability().page_load_count()); + } +} + IN_PROC_BROWSER_TEST_F(MetricsBrowserTest, RendererHistograms) { base::HistogramTester histogram_tester; ASSERT_TRUE(embedded_test_server()->Start());
diff --git a/weblayer/browser/android/metrics/weblayer_metrics_service_client.cc b/weblayer/browser/android/metrics/weblayer_metrics_service_client.cc index 29cfaf58..4cb3579 100644 --- a/weblayer/browser/android/metrics/weblayer_metrics_service_client.cc +++ b/weblayer/browser/android/metrics/weblayer_metrics_service_client.cc
@@ -10,6 +10,8 @@ #include "base/base64.h" #include "base/no_destructor.h" +#include "components/metrics/content/content_stability_metrics_provider.h" +#include "components/metrics/content/extensions_helper.h" #include "components/metrics/metrics_provider.h" #include "components/metrics/metrics_service.h" #include "components/page_load_metrics/browser/metrics_web_contents_observer.h" @@ -150,6 +152,9 @@ void WebLayerMetricsServiceClient::RegisterAdditionalMetricsProviders( metrics::MetricsService* service) { + service->RegisterMetricsProvider( + std::make_unique<metrics::ContentStabilityMetricsProvider>(pref_service(), + nullptr)); service->RegisterMetricsProvider(std::make_unique<PageLoadMetricsProvider>()); }
diff --git a/weblayer/browser/browser_context_impl.cc b/weblayer/browser/browser_context_impl.cc index 71e62bc..bbb9a17 100644 --- a/weblayer/browser/browser_context_impl.cc +++ b/weblayer/browser/browser_context_impl.cc
@@ -70,6 +70,9 @@ } // namespace namespace prefs { +// Used to persist the public SettingType::NETWORK_PREDICTION_ENABLED API. +const char kNoStatePrefetchEnabled[] = "weblayer.network_prediction_enabled"; + // Used to persist the public SettingType::UKM_ENABLED API. const char kUkmEnabled[] = "weblayer.ukm_enabled"; } // namespace prefs @@ -247,6 +250,7 @@ void BrowserContextImpl::RegisterPrefs( user_prefs::PrefRegistrySyncable* pref_registry) { + pref_registry->RegisterBooleanPref(prefs::kNoStatePrefetchEnabled, true); pref_registry->RegisterBooleanPref(prefs::kUkmEnabled, false); // This pref is used by captive_portal::CaptivePortalService (as well as other
diff --git a/weblayer/browser/browser_context_impl.h b/weblayer/browser/browser_context_impl.h index 7d888462..7a8eba3 100644 --- a/weblayer/browser/browser_context_impl.h +++ b/weblayer/browser/browser_context_impl.h
@@ -23,6 +23,7 @@ namespace prefs { // WebLayer specific pref names. +extern const char kNoStatePrefetchEnabled[]; extern const char kUkmEnabled[]; } // namespace prefs
diff --git a/weblayer/browser/java/org/chromium/weblayer_private/NavigationControllerImpl.java b/weblayer/browser/java/org/chromium/weblayer_private/NavigationControllerImpl.java index 3957ed4..c591c27 100644 --- a/weblayer/browser/java/org/chromium/weblayer_private/NavigationControllerImpl.java +++ b/weblayer/browser/java/org/chromium/weblayer_private/NavigationControllerImpl.java
@@ -36,12 +36,15 @@ if (WebLayerFactoryImpl.getClientMajorVersion() < 83) { assert params == null; } - if (params == null) { - NavigationControllerImplJni.get().navigate(mNativeNavigationController, uri); - } else { - NavigationControllerImplJni.get().navigateWithParams( - mNativeNavigationController, uri, params.mShouldReplaceCurrentEntry); - } + navigate2(uri, params == null ? false : params.mShouldReplaceCurrentEntry, false); + } + + @Override + public void navigate2(String uri, boolean shouldReplaceCurrentEntry, + boolean disableIntentProcessing) throws RemoteException { + StrictModeWorkaround.apply(); + NavigationControllerImplJni.get().navigate(mNativeNavigationController, uri, + shouldReplaceCurrentEntry, disableIntentProcessing); } @Override @@ -177,9 +180,8 @@ void setNavigationControllerImpl( long nativeNavigationControllerImpl, NavigationControllerImpl caller); long getNavigationController(long tab); - void navigate(long nativeNavigationControllerImpl, String uri); - void navigateWithParams( - long nativeNavigationControllerImpl, String uri, boolean shouldReplaceCurrentEntry); + void navigate(long nativeNavigationControllerImpl, String uri, + boolean shouldReplaceCurrentEntry, boolean disableIntentProcessing); void goBack(long nativeNavigationControllerImpl); void goForward(long nativeNavigationControllerImpl); boolean canGoBack(long nativeNavigationControllerImpl);
diff --git a/weblayer/browser/java/org/chromium/weblayer_private/interfaces/INavigationController.aidl b/weblayer/browser/java/org/chromium/weblayer_private/interfaces/INavigationController.aidl index 653b9a6..c4af907 100644 --- a/weblayer/browser/java/org/chromium/weblayer_private/interfaces/INavigationController.aidl +++ b/weblayer/browser/java/org/chromium/weblayer_private/interfaces/INavigationController.aidl
@@ -36,4 +36,9 @@ // Added in 85. boolean isNavigationEntrySkippable(int index) = 13; + + // Added in 87. + void navigate2(in String uri, + in boolean shouldReplaceEntry, + in boolean disableIntentProcessing) = 14; }
diff --git a/weblayer/browser/java/org/chromium/weblayer_private/interfaces/SettingType.java b/weblayer/browser/java/org/chromium/weblayer_private/interfaces/SettingType.java index 1b37b08d..b15bc939d 100644 --- a/weblayer/browser/java/org/chromium/weblayer_private/interfaces/SettingType.java +++ b/weblayer/browser/java/org/chromium/weblayer_private/interfaces/SettingType.java
@@ -11,11 +11,12 @@ @IntDef({SettingType.BASIC_SAFE_BROWSING_ENABLED, SettingType.UKM_ENABLED, SettingType.EXTENDED_REPORTING_SAFE_BROWSING_ENABLED, - SettingType.REAL_TIME_SAFE_BROWSING_ENABLED}) + SettingType.REAL_TIME_SAFE_BROWSING_ENABLED, SettingType.NETWORK_PREDICTION_ENABLED}) @Retention(RetentionPolicy.SOURCE) public @interface SettingType { int BASIC_SAFE_BROWSING_ENABLED = 0; int UKM_ENABLED = 1; int EXTENDED_REPORTING_SAFE_BROWSING_ENABLED = 2; int REAL_TIME_SAFE_BROWSING_ENABLED = 3; + int NETWORK_PREDICTION_ENABLED = 4; }
diff --git a/weblayer/browser/navigation_controller_impl.cc b/weblayer/browser/navigation_controller_impl.cc index 24343946..b7788f47 100644 --- a/weblayer/browser/navigation_controller_impl.cc +++ b/weblayer/browser/navigation_controller_impl.cc
@@ -125,17 +125,19 @@ } void NavigationControllerImpl::Navigate(JNIEnv* env, - const JavaParamRef<jstring>& url) { - Navigate(GURL(base::android::ConvertJavaStringToUTF8(env, url))); -} - -void NavigationControllerImpl::NavigateWithParams( - JNIEnv* env, - const JavaParamRef<jstring>& url, - jboolean should_replace_current_entry) { + const JavaParamRef<jstring>& url, + jboolean should_replace_current_entry, + jboolean disable_intent_processing) { auto params = std::make_unique<content::NavigationController::LoadURLParams>( GURL(base::android::ConvertJavaStringToUTF8(env, url))); params->should_replace_current_entry = should_replace_current_entry; + // On android, the transition type largely dictates whether intent processing + // happens. PAGE_TRANSITION_TYPED does not process intents, where as + // PAGE_TRANSITION_LINK will (with the caveat that even links may not trigger + // intent processing under some circumstances). + params->transition_type = disable_intent_processing + ? ui::PAGE_TRANSITION_TYPED + : ui::PAGE_TRANSITION_LINK; DoNavigate(std::move(params)); } @@ -465,11 +467,6 @@ return; } - // For WebLayer's production use cases, navigations from the embedder are most - // appropriately viewed as being from links with user gestures. In particular, - // this ensures that intents resulting from these navigations get launched as - // the embedder expects. - params->transition_type = ui::PageTransitionFromInt(ui::PAGE_TRANSITION_LINK); params->has_user_gesture = true; web_contents()->GetController().LoadURLWithParams(*params); // So that if the user had entered the UI in a bar it stops flashing the
diff --git a/weblayer/browser/navigation_controller_impl.h b/weblayer/browser/navigation_controller_impl.h index d249588..d7e24bd 100644 --- a/weblayer/browser/navigation_controller_impl.h +++ b/weblayer/browser/navigation_controller_impl.h
@@ -50,10 +50,9 @@ JNIEnv* env, const base::android::JavaParamRef<jobject>& java_controller); void Navigate(JNIEnv* env, - const base::android::JavaParamRef<jstring>& url); - void NavigateWithParams(JNIEnv* env, - const base::android::JavaParamRef<jstring>& url, - jboolean should_replace_current_entry); + const base::android::JavaParamRef<jstring>& url, + jboolean should_replace_current_entry, + jboolean disableIntentProcessing); void GoBack(JNIEnv* env) { GoBack(); } void GoForward(JNIEnv* env) { GoForward(); } bool CanGoBack(JNIEnv* env) { return CanGoBack(); }
diff --git a/weblayer/browser/no_state_prefetch/no_state_prefetch_browsertest.cc b/weblayer/browser/no_state_prefetch/no_state_prefetch_browsertest.cc index ab8195d..03e5d9a 100644 --- a/weblayer/browser/no_state_prefetch/no_state_prefetch_browsertest.cc +++ b/weblayer/browser/no_state_prefetch/no_state_prefetch_browsertest.cc
@@ -81,17 +81,19 @@ if (request.GetURL().path().find("prefetch_meta.js") != std::string::npos) { script_executed_ = true; } + if (request.GetURL().path().find("alert.html") != std::string::npos) { + link_rel_next_started_ = true; + } // The default handlers will take care of this request. return nullptr; } - void NavigateToPrerenderedPageAndWaitForTitleChange() { - auto expected_title = base::ASCIIToUTF16("Prefetch Page"); + void NavigateToPageAndWaitForTitleChange(const GURL& navigate_to, + base::string16 expected_title) { content::TitleWatcher title_watcher( static_cast<TabImpl*>(shell()->tab())->web_contents(), expected_title); - NavigateAndWaitForCompletion( - GURL(https_server_->GetURL("/prerendered_page.html")), shell()); + NavigateAndWaitForCompletion(navigate_to, shell()); ASSERT_TRUE(expected_title == title_watcher.WaitAndGetTitle()); } @@ -104,6 +106,7 @@ std::unique_ptr<base::RunLoop> prerendered_page_fetched_; std::unique_ptr<base::RunLoop> script_resource_fetched_; + bool link_rel_next_started_ = false; bool script_fetched_ = false; bool script_executed_ = false; std::string purpose_header_value_; @@ -152,7 +155,9 @@ // Navigate to the prerendered page and wait for its title to change. script_fetched_ = false; - NavigateToPrerenderedPageAndWaitForTitleChange(); + NavigateToPageAndWaitForTitleChange( + GURL(https_server_->GetURL("/prerendered_page.html")), + base::ASCIIToUTF16("Prefetch Page")); EXPECT_FALSE(script_fetched_); EXPECT_TRUE(script_executed_); @@ -166,7 +171,9 @@ shell()); script_resource_fetched_->Run(); - NavigateToPrerenderedPageAndWaitForTitleChange(); + NavigateToPageAndWaitForTitleChange( + GURL(https_server_->GetURL("/prerendered_page.html")), + base::ASCIIToUTF16("Prefetch Page")); auto entries = ukm_recorder_->GetEntriesByName( ukm::builders::NoStatePrefetch::kEntryName); @@ -182,4 +189,24 @@ } #endif +// link-rel="prerender" happens even when NoStatePrefetch has been disabled. +IN_PROC_BROWSER_TEST_F(NoStatePrefetchBrowserTest, + LinkRelPrerenderWithNSPDisabled) { + GetProfile()->SetBooleanSetting(SettingType::NETWORK_PREDICTION_ENABLED, + false); + NavigateAndWaitForCompletion(GURL(https_server_->GetURL("/parent_page.html")), + shell()); + prerendered_page_fetched_->Run(); +} + +// link-rel="next" doesn't happen when NoStatePrefetch has been disabled. +IN_PROC_BROWSER_TEST_F(NoStatePrefetchBrowserTest, LinkRelNextWithNSPDisabled) { + GetProfile()->SetBooleanSetting(SettingType::NETWORK_PREDICTION_ENABLED, + false); + NavigateToPageAndWaitForTitleChange( + GURL(https_server_->GetURL("/parent_page.html")), + base::ASCIIToUTF16("Parent Page")); + EXPECT_FALSE(link_rel_next_started_); +} + } // namespace weblayer \ No newline at end of file
diff --git a/weblayer/browser/no_state_prefetch/prerender_manager_delegate_impl.cc b/weblayer/browser/no_state_prefetch/prerender_manager_delegate_impl.cc index 5b46a21..7194cdb2 100644 --- a/weblayer/browser/no_state_prefetch/prerender_manager_delegate_impl.cc +++ b/weblayer/browser/no_state_prefetch/prerender_manager_delegate_impl.cc
@@ -7,7 +7,10 @@ #include "components/prerender/browser/prerender_contents_delegate.h" #include "content/public/browser/browser_context.h" #include "content/public/browser/browser_thread.h" +#include "weblayer/browser/browser_context_impl.h" #include "weblayer/browser/cookie_settings_factory.h" +#include "weblayer/browser/profile_impl.h" +#include "weblayer/public/profile.h" namespace weblayer { @@ -27,4 +30,16 @@ return std::make_unique<prerender::PrerenderContentsDelegate>(); } +bool PrerenderManagerDelegateImpl::IsNetworkPredictionPreferenceEnabled() { + auto* profile = ProfileImpl::FromBrowserContext(browser_context_); + DCHECK(profile); + + return profile->GetBooleanSetting(SettingType::NETWORK_PREDICTION_ENABLED); +} + +std::string PrerenderManagerDelegateImpl::GetReasonForDisablingPrediction() { + return IsNetworkPredictionPreferenceEnabled() ? "" + : "Disabled by user setting"; +} + } // namespace weblayer
diff --git a/weblayer/browser/no_state_prefetch/prerender_manager_delegate_impl.h b/weblayer/browser/no_state_prefetch/prerender_manager_delegate_impl.h index e93b16b..788a8ca 100644 --- a/weblayer/browser/no_state_prefetch/prerender_manager_delegate_impl.h +++ b/weblayer/browser/no_state_prefetch/prerender_manager_delegate_impl.h
@@ -25,6 +25,8 @@ scoped_refptr<content_settings::CookieSettings> GetCookieSettings() override; std::unique_ptr<prerender::PrerenderContentsDelegate> GetPrerenderContentsDelegate() override; + bool IsNetworkPredictionPreferenceEnabled() override; + std::string GetReasonForDisablingPrediction() override; private: content::BrowserContext* browser_context_;
diff --git a/weblayer/browser/profile_browsertest.cc b/weblayer/browser/profile_browsertest.cc index 6a72ca9..fd9be83d 100644 --- a/weblayer/browser/profile_browsertest.cc +++ b/weblayer/browser/profile_browsertest.cc
@@ -29,6 +29,17 @@ ASSERT_TRUE(GetProfile()->GetBooleanSetting(SettingType::UKM_ENABLED)); } +// Enabling Network Prediction via Profile persists across restarts. +IN_PROC_BROWSER_TEST_F(ProfileBrowserTest, PRE_PersistNetworkPrediction) { + GetProfile()->SetBooleanSetting(SettingType::NETWORK_PREDICTION_ENABLED, + false); +} + +IN_PROC_BROWSER_TEST_F(ProfileBrowserTest, PersistNetworkPrediction) { + ASSERT_FALSE( + GetProfile()->GetBooleanSetting(SettingType::NETWORK_PREDICTION_ENABLED)); +} + #endif // !defined(OS_ANDROID) IN_PROC_BROWSER_TEST_F(ProfileBrowserTest, GetCachedFaviconForPageUrl) { @@ -113,4 +124,10 @@ run_loop3.Run(); } +// Test default value. +IN_PROC_BROWSER_TEST_F(ProfileBrowserTest, DefaultNetworkPredictionState) { + ASSERT_TRUE( + GetProfile()->GetBooleanSetting(SettingType::NETWORK_PREDICTION_ENABLED)); +} + } // namespace weblayer
diff --git a/weblayer/browser/profile_impl.cc b/weblayer/browser/profile_impl.cc index c21027d..2ccc51e6 100644 --- a/weblayer/browser/profile_impl.cc +++ b/weblayer/browser/profile_impl.cc
@@ -611,6 +611,8 @@ value); #endif break; + case SettingType::NETWORK_PREDICTION_ENABLED: + pref_service->SetBoolean(prefs::kNoStatePrefetchEnabled, value); } } @@ -636,6 +638,8 @@ unified_consent::prefs::kUrlKeyedAnonymizedDataCollectionEnabled); #endif return false; + case SettingType::NETWORK_PREDICTION_ENABLED: + return pref_service->GetBoolean(prefs::kNoStatePrefetchEnabled); } NOTREACHED(); }
diff --git a/weblayer/public/java/org/chromium/weblayer/NavigateParams.java b/weblayer/public/java/org/chromium/weblayer/NavigateParams.java index ef6dc84b..fa6a5f8d 100644 --- a/weblayer/public/java/org/chromium/weblayer/NavigateParams.java +++ b/weblayer/public/java/org/chromium/weblayer/NavigateParams.java
@@ -14,6 +14,7 @@ public class NavigateParams { private org.chromium.weblayer_private.interfaces.NavigateParams mInterfaceParams = new org.chromium.weblayer_private.interfaces.NavigateParams(); + private boolean mIntentProcessingDisabled; /** * A Builder class to help create NavigateParams. @@ -45,6 +46,24 @@ mParams.mInterfaceParams.mShouldReplaceCurrentEntry = replace; return this; } + + /** + * Disables lookup and launching of an Intent that matches the uri being navigated to. If + * this is not called, WebLayer may look for a matching intent-filter, and if one is found, + * create and launch an Intent. The exact heuristics of when Intent matching is performed + * depends upon a wide range of state (such as the uri being navigated to, navigation + * stack...). + * + * @since 87 + */ + @NonNull + public Builder disableIntentProcessing() { + if (WebLayer.getSupportedMajorVersionInternal() < 87) { + throw new UnsupportedOperationException(); + } + mParams.mIntentProcessingDisabled = true; + return this; + } } org.chromium.weblayer_private.interfaces.NavigateParams toInterfaceParams() { @@ -59,4 +78,18 @@ public boolean getShouldReplaceCurrentEntry() { return mInterfaceParams.mShouldReplaceCurrentEntry; } + + /** + * Returns true if intent processing is disabled. + * + * @return Whether intent process is disabled. + * + * @since 87 + */ + public boolean isIntentProcessingDisabled() { + if (WebLayer.getSupportedMajorVersionInternal() < 87) { + throw new UnsupportedOperationException(); + } + return mIntentProcessingDisabled; + } }
diff --git a/weblayer/public/java/org/chromium/weblayer/NavigationController.java b/weblayer/public/java/org/chromium/weblayer/NavigationController.java index d36650ff..fcdf2dd4 100644 --- a/weblayer/public/java/org/chromium/weblayer/NavigationController.java +++ b/weblayer/public/java/org/chromium/weblayer/NavigationController.java
@@ -59,8 +59,14 @@ throw new UnsupportedOperationException(); } try { - mNavigationController.navigate( - uri.toString(), params == null ? null : params.toInterfaceParams()); + if (params == null || WebLayer.getSupportedMajorVersionInternal() < 87) { + mNavigationController.navigate( + uri.toString(), params == null ? null : params.toInterfaceParams()); + } else { + mNavigationController.navigate2(uri.toString(), + params == null ? false : params.getShouldReplaceCurrentEntry(), + params == null ? false : params.isIntentProcessingDisabled()); + } } catch (RemoteException e) { throw new APICallException(e); }
diff --git a/weblayer/public/java/org/chromium/weblayer/SettingType.java b/weblayer/public/java/org/chromium/weblayer/SettingType.java index 583e437d..ea5900c6 100644 --- a/weblayer/public/java/org/chromium/weblayer/SettingType.java +++ b/weblayer/public/java/org/chromium/weblayer/SettingType.java
@@ -62,4 +62,12 @@ */ int REAL_TIME_SAFE_BROWSING_ENABLED = org.chromium.weblayer_private.interfaces.SettingType.REAL_TIME_SAFE_BROWSING_ENABLED; + + /** + * Allows the embedder to enable/disable NoStatePrefetch. Enabled by default. + * + * @since 86 + */ + int NETWORK_PREDICTION_ENABLED = + org.chromium.weblayer_private.interfaces.SettingType.NETWORK_PREDICTION_ENABLED; }
diff --git a/weblayer/public/profile.h b/weblayer/public/profile.h index 5b09572..e48d893d 100644 --- a/weblayer/public/profile.h +++ b/weblayer/public/profile.h
@@ -39,6 +39,7 @@ UKM_ENABLED = 1, EXTENDED_REPORTING_SAFE_BROWSING_ENABLED = 2, REAL_TIME_SAFE_BROWSING_ENABLED = 3, + NETWORK_PREDICTION_ENABLED = 4, }; class Profile {
diff --git a/weblayer/test/data/parent_page.html b/weblayer/test/data/parent_page.html index 4097acc..3a99da9 100644 --- a/weblayer/test/data/parent_page.html +++ b/weblayer/test/data/parent_page.html
@@ -1,7 +1,10 @@ <html> -<head><title>Parent Page</title></head> <body> This page will prerender something. <link rel="prerender" href="/prerendered_page.html"> +<link rel="next" href="/alert.html"> </body> + +<!-- Order is important for tests. --> +<head><title>Parent Page</title></head> </html>